Академический Документы
Профессиональный Документы
Культура Документы
Asterisk est un projet démarré en 1999 par Mark Spencer. Son objectif était alors de fournir à
Linux un commutateur téléphonique complet et totalement libre.
Aujourd’hui Asterisk est un PABX (Private Automatic Branch eXchange) d’une rare
puissance et souplesse, capable de gérer la téléphonie analogique, mais surtout, et c’est ce qui
nous intéresse, la voix sur IP.
La VoIP sur Asterisk passe entre autre par la prise en charge d’un protocole standard, ouvert
et très largement utilisé, le SIP (Session Initiation Protocol).
SIP qui est un protocole très proche d’HTTP qui n’est pas limité à la seule voix mais qui
prend aussi en charge la vidéo et la messagerie instantanée.
D’un point de vue fonctionnalité, Asterisk permet tout ce que l’on peut attendre d’un PABX
moderne:
La gestion des postes téléphonique sur IP locaux. Il peut s’agir de téléphones
physiques mais aussi logiciels (ou SoftPhone) comme Zoiper, Ekiga ou X-lite.
Boîtes voales, transfert d’appel, mise en attente etc…
Le TP est divisé en deux parties principales :
Etc/network/interfaces
Auto eth0
Iface eth0 inet static
Address 192.168.2.202
Netmask 255.255.255.0
1
Installation d’ Asterisk
Il y a deux façons d’installer Asterisk sur une distribution à base de Debian, la première via le
gestionnaire de paquet de Debian, la seconde en compilant directement la dernière
version d’Asterisk.
Nous allons dans ce TP installer Asterisk en compilant ses sources pour pouvoir disposer de la
dernière version d’Asterisk.
Préparation à l’installation
On commence par mettre à jour notre distribution et installer les dépendances nécessaires à la
compilation d’Asterisk.
Installation
On télécharge la dernière version d’Asterisk et on l’installe.
wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-10.7.0.tar.gz
tar xvzf asterisk-10.7.0.tar.gz
cd asterik-asterisk-10.7.0
./configure
make menuselect
La commande make menuselect va faire apparaître un écran qui va vous permettre de
personnaliser votre installation d’Asterisk.
2
Nous allons en profiter pour installer les sons français pour Asterisk au format µ-law.
Dans Core Sound Package nous allons cocher la case CORE-SOUNDS-FR-ULAW avec la
touche Espace puis appuyez sur Echap pour retourner à l’écran précédent.
Puis dans Music On Hold File Packages cochez MOH-OPSOUND-ULAW (Dechochez
celui en WAV), appuyez sur Echap et enfin allez dans dans Extras Sound Packages et
cochez EXTRA-SOUNDS-FR-ULAW.
Enfin appuyez sur Echap et une fois à l’écran principal refaites Echap et appuyez sur S pour
sauvegarder les changements.
Enfin tapez les commandes suivantes pour terminer l’installation:
make
make install
make samples
make config
Pendant le make install assurez-vous que votre serveur soit connecté à internet parce que
celui-ci va télécharger les package de langue FR que nous avons sélectionnés.
3
Après toutes ces commandes vous pouvez lancer Asterisk à l’aide de la commande suivante:
/etc/init.d/asterisk start
Vous pouvez vérifier le bon fonctionnement de votre serveur Asterisk avec la commande
suivante qui sert à afficher la console d’Asterisk
asterisk -cvvvvvvvvvvr
Si vous avez les lignes suivantes qui s’affichent:
Asterisk 10.7.0, Copyright (C) 1999 - 2012 Digium, Inc. and others.
Created by Mark Spencer
Asterisk comes with ABSOLUTELY NO WARRANTY; type 'core show warranty' for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type 'core show license' for details.
===================================================================
======
== Parsing '/etc/asterisk/asterisk.conf': == Found
== Parsing '/etc/asterisk/extconfig.conf': == Found
Connected to Asterisk 10.7.0 currently running on Asterisk
.......................
C’est que votre serveur Asterisk est démarré et fonctionnel.
Configuration d’Asterisk
Pour configurer notre serveur Asterisk, nous allons modifier les fichiers suivants:
Le fichier sip.conf : pour la configuration générale d’Asterisk.
Le fichier extensions.conf : pour la configuration du Dialplan.
4
Nous allons commencer par éditer le fichier sip.conf qui va nous permettre pour l’instant de
mettre les sons par défauts en Français.
Recherchez la ligne
;language=en
Et remplacez la par
language=fr
A chaque fois que vous modifiez un fichier de configuration il faut recharger ce fichier de
configuration dans Asterisk.
Dans la console d’Asterisk il vous suffit de taper la commande : reload ; cette commande
permet de recharger les fichiers de configurations d’Asterik sans redémarrer le serveur.
[1001]
type=friend
context=default
username=1001
secret=1001
host=dynamic
Configuration du Dialplan
[default]
exten => 1000,1,Dial(SIP/1000)
exten => 1001,1,Dial(SIP/1001)
;exten => 297,n, Hangup
Configuration de Voicemail
1. Au début il faut vérifier que le fichier /etc/asterisk/voicemail.conf contient les lignes
suivantes :
[general]
format=wav49|gsm|wav ; Formats for writing Voicemail
serveremail=asterisk ; Who the e-mail notification should appear to come from
attach=yes ; Should the email contain the voicemail as an attachment
skipms=3000 ; How many milliseconds to skip forward/back when rew/ff in message
playback
maxsilence=10 ; How many seconds of silence before we end the recording
silencethreshold=128 ; Silence threshold
maxlogins=3 ; Max number of failed login attempts
pagerdateformat=%A, %B %d, %Y at %r ; Default for pager use
sendvoicemail=yes ; Allow the user to compose and send a voicemail
maxsecs=120
; Corps du mail
emaildateformat=%A, %d %B %Y a %H:%M:%S
emailsubject=[asterisk] Nouveau message dans la boite ${VM_MAILBOX}
emailbody=Bonjour ${VM_NAME},nntLe numero ${VM_CALLERID} a tente de vous
joindre sans succes le ${VM_DATE}.nCette personne vous a laisse un message de
${VM_DUR} secondes. Vous pouvez le consulter en appelant votre boite vocale.nntBonne
journee !nntttt–Asterixn
6
pagerfromstring=[Asteriks]
pagersubject=Nouveau message vocal
pagerbody=Nouveau message de ${VM_DUR} secondes dans la boite ${VM_MAILBOX}
laisse le ${VM_DATE} par ${VM_CALLERID}.
[zonemessages]
[VoiceMail]
1000 => 1000,1000,@email
1001 => 1001,1001,@email
[general]
port=5060
context=default ; Default context for incoming calls
bindaddr=192.168.2.200
context=default
;allowguest=no ; Allow or reject guest calls (default is yes)
; If your Asterisk is connected to the Internet
;register => trunk_A_vers_B:azerty@192.168.2.202
[1000]
type=friend
context=default
username=1000
secret=1000
host=dynamic
mailbox=1000@VoiceMail
[1001]
type=friend
context=default
7
username=1001
secret=1001
host=dynamic
mailbox=1001@VoiceMail
[default]
exten => 1000,1,Dial(SIP/1000)
exten => 1000,2,VoiceMail(1000@VoiceMail)
exten => 1000,3,Hangup()
;exten => 2000,1, Log(NOTICE, Dialing out from ${CALLERID(all)} to VoiceMail (2000))
:exten => 2000,n, VoiceMailMain(${CALLERID(num)}@default,s)
exten => 2000,1, VoiceMailMain(${CALLERID(num)}@VoiceMail)
;exten => 297,1, Log(NOTICE, Dialing out from ${CALLERID(all)} to VoiceMail (297))
;exten => 297,n, VoiceMailMain(${CALLERID(num)}@default,s)
;exten => 297,n, Hangup
La ligne avec l’option VoiceMail permet d’envoyer les appels vers la boîte vocale quand vous
n’êtes pas joignable.
Activité
Le but du TP dans cette partie est de mettre en service deux serveurs Asterisk et de les faire
communiquer entre eux grâce à un lien trunk SIP. Ces deux serveurs seront des machines
virtuelles VMware Debian. Le logiciel VMware Player est téléchargeable gratuitement sur le
site officiel de http://www.vmware.com . La machine virtuelle Debian serveur minimal est
téléchargeable sur le site http://vmware.pouf.org/
8
Réalisation
Dans un premier temps, il faut configurer les deux serveurs en local avec deux plans de
numérotation distincts. En effet, il va falloir permettre aux serveurs de différencier les
téléphones de l’agence A de ceux de l’agence B. Dans notre cas, les numéros compris entre
1000 et 1999 seront dans l’agence A et les numéros compris entre 2000 et 2999 seront dans
l’agence B. Le plan de numérotation suivant sera suffisant pour faire tous les tests :
9
Sur le serveur de l’agence A :
- Modifiez le fichier sip.conf et ajouter les extensions de 1000 et 1001.
- Configurez les téléphones pour qu’ils s’enregistrent sur le serveur.
- Modifiez le fichier extensions.conf pour « router » les appels vers les téléphones.
- Vérifiez la configuration en passant des appels de 1000 vers 1001 et vice versa.
Dans un premier temps, il faut ajouter un utilisateur dans le fichier sip.conf sur le serveur A.
Cet utilisateur est de la même forme que les autres utilisateurs.
Pour vérifier la bonne configuration, il faut afficher les utilisateurs enregistrés sur le serveur
avec les commandes suivantes :
sip show peers
Une fois l’utilisateur créé sur le serveur A, il faut que le serveur B s’enregistre. Dans le fichier
sip.conf du serveur B il faut ajouter la ligne suivante.
[general]
…
register => trunk_A_vers_B:motdepasse@ip_de_serveur_A
[User]
Cette ligne permet au serveur B de s’enregistrer sur le serveur A à l’adresse @serveurA avec
le login trunk_A_vers_B et le mot de passe motdepasse.
Pour vérifier la bonne configuration, il faut afficher l’état de la ligne avec les commandes
suivantes :
sip show registry
1/Terminer cette configuration afin que l’utilisateur 1000 peut appeler l’utilisateur 2000.
10