You are on page 1of 18

Voix sur IP : serveur de tlphonie Asterisk UNI...

http://www.unixgarden.com/index.php/administrati...

Accueil A propos Nuage de Tags Contribuer Whos who Rcoltez lactu UNIX et cultivez vos connaissances de lOpen Source 27 nov 2008

Voix sur IP : serveur de tlphonie Asterisk


Catgorie : Administration systme Tags : lm

Retrouvez cet article dans : Linux Magazine 90 Le monde des Logiciels libres dispose de direntes solutions VoIP axes sur des protocoles standards (H323, SIP...). Voyons comment raliser une architecture simple de VoIP laide dun serveur Asterisk et de clients Ekiga. Puis, comment congurer direntes fonctionnalits de ce serveur Asterisk.

1. Mise en situation
L objet de cet article est dinitier le lecteur la mise en uvre dune petite architecture VoIP base sur des Logiciels libres. Cette architecture est typiquement celle que lon pourrait trouver dans une petite entreprise ou ventuellement chez un particulier. Elle sarticule autour dun rseau local, avec un serveur de tlphonie Asterisk et plusieurs postes clients Ekiga. En sappuyant sur cette architecture, quelques fonctionnalits courantes du serveur Asterisk sont illustres. Ct serveur, le logiciel Asterisk dispose de nombreuses fonctionnalits dignes des meilleures solutions VoIP commerciales. De plus, il supporte pratiquement tous les protocoles VoIP standards (H323, SIP, MGCP...). Ct client, le tlphone logiciel Ekiga (successeur de Gnomemeeting) propose une interface graphique conviviale et instinctive. Il supporte les protocoles H323 et SIP. Les versions des logiciels utilises sont Asterisk 1.2.10 et Ekiga 2.0.2. L architecture VoIP propose utilise exclusivement le protocole VoIP de signalisation SIP (Session Initiation Protocol) et les codecs audio G.711 loi . Les problmatiques rseau de qualit de service ne sont pas abordes.

2. Conguration du serveur Asterisk


1 sur 18 07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...

http://www.unixgarden.com/index.php/administrati...

Aprs installation du serveur de tlphonie Asterisk sur votre distribution favorite, il est possible de tester rapidement le fonctionnement en lanant simultanment le processus serveur en mode verbeux (option -v) avec un processus client CLI attach (option -c).
asterisk -vvvvc

Une invite de commande doit apparatre la fin si tout se droule correctement :


Asterisk Ready. *CLI>

On peut alors rapidement voir lensemble des commandes disponibles via linterface CLI (Command Line Interface).
Asterisk Ready. *CLI>help

Pour arrter le serveur depuis linterface CLI, on peut utiliser la commande stop now :
Asterisk Ready. *CLI>stop now

Par la suite, il est prfrable dautomatiser le lancement du processus serveur laide de la variable RUNASTERISK du chier /etc/default/asterisk.
RUNASTERISK=yes

Dans ce cas, on connecte des clients CLI laide de loption r :


asterisk -r

La configuration du serveur est ralise travers plusieurs fichiers textes qui se situent dans le rpertoire /etc/asterisk. Parmi eux, le fichier sip.conf permet la dclaration des tlphones. Pour dclarer trois tlphones logiciels Ekiga, il faut simplement ajouter les lignes suivantes la fin de ce fichier :
[ekiga1] ; nom du tlphone type=friend ; type de tlphone host=dynamic ; enregistrement dynamique de ladresse IP du tlphone username=ekiga1 ; nom dutilisateur associ secret=toto ; mot de passe disallow=all ; interdit tous les codecs allow=ulaw ; autorise uniquement le codec G711 loi [ekiga2] ; nom du tlphone type=friend ; type de tlphone

2 sur 18

07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...


host=dynamic username=ekiga2 secret=toto disallow=all allow=ulaw [ekiga3] type=friend host=dynamic username=ekiga3 secret=toto disallow=all allow=ulaw

http://www.unixgarden.com/index.php/administrati...

; enregistrement dynamique de ladresse IP du tlphone ; nom dutilisateur associ ; mot de passe ; interdit tous les codecs ; autorise uniquement le codec G711 loi ; nom du tlphone ; type de tlphone ; enregistrement dynamique de ladresse IP du tlphone ; nom dutilisateur associ ; mot de passe ; interdit tous les codecs ; autorise uniquement le codec G711 loi

Il sut maintenant dattribuer un numro de tlphone chacun de nos trois tlphones. Le chier extensions.conf permet dassocier chaque numro de tlphone une suite de commandes. Pour ce faire, il sut dajouter les trois lignes suivantes la n de ce chier (plus exactement la n du contexte [default]) :
exten => 555,1,Dial(SIP/ekiga1) ; 555 appelle le tlphone ekiga1 exten => 556,1,Dial(SIP/ekiga2) ; 556 appelle le tlphone ekiga2 exten => 557,1,Dial(SIP/ekiga3) ; 557 appelle le tlphone ekiga3

Le serveur Asterisk est maintenant prt enregistrer les trois clients Ekiga qui disposent respectivement des numros de ligne 555, 556 et 557.

3. Conguration des tlphones logiciels Ekiga


Pour utiliser le tlphone logiciel Ekiga, il est prfrable de se procurer un micro/casque. Il faut galement sassurer que le greon ALSA (Advanced Linux Sound Architecture) est correctement congur. Le rglage convenable des niveaux sonores se fait empiriquement en relanant plusieurs fois alsamixer . Lors du premier lancement dEkiga, une fentre, l Assistant de premire conguration apparat. Quittez cette fentre en cliquant Annuler . La fentre principale dEkiga doit apparatre. Il sut alors denregistrer le tlphone sur le serveur Asterisk. Dans le menu droulant Edition, slectionnez Compte. Cliquez alors sur le bouton Ajouter . Compltez les diffrents champs comme ci-dessous :
NomDuCompte : MonAsterisk Protocole : SIP Registrar : Adresse IP de votre serveur Asterisk Utilisateur : ekiga 1 Mot de Passe : toto

Puis, conrmez avec le bouton Validez . Ensuite, on coche la case de la colonne A de gauche. L tat Inscrit doit apparatre dans la colonne Etat ( condition que le logiciel Asterisk soit dmarr sur le serveur). Maintenant le premier client Ekiga est congur correctement. Il est possible dappeler un numro daccueil sur le serveur Asterisk en composant le 3. Un message de bienvenue est alors annonc ( Welcome to the Asterisk Open Source PBX... ). Pour la configuration des autres clients Ekiga, la procdure est identique en changeant simplement le compte ekiga1 par ekiga2 ou ekiga3.

3 sur 18

07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...

http://www.unixgarden.com/index.php/administrati...

Ds que ces trois premiers clients sont correctement congurs, il est possible deectuer des appels internes. Le client ekiga1 peut, par exemple, appeler le client ekiga2 en composant le 556.

4. Enregistrement chez un fournisseur SIP


SIP pour Session Initiation Protocol est un protocole normalis et standardis par lIETF (RFC 3261 + RFC 3265). Il se charge de lauthentication et de la localisation des multiples participants dune session multimdia. SIP remplace progressivement H323. L architecture mise en place jusqu prsent permet uniquement deectuer des appels internes. Pour pouvoir accder au rseau tlphonique commut, qui est toujours le standard de fait, une solution lgante est lutilisation dun fournisseur SIP. Ce dernier constitue une passerelle entre la tlphonie IP (base sur le protocole SIP) et le rseau de loprateur historique. La plupart des fournisseurs SIP fonctionnent suivant le principe du crdit temps : vous crditez un compte chez le fournisseur qui est dbit en fonction des communications. Les tarifs de la minute dpendent de la destination de lappel. Les appels nationaux vers des xes sont souvent gratuits. Tous les fournisseurs SIP permettent les appels sortants vers le Rseau Tlphonique Commut. Par contre, pour les appels entrants, seulement certains proposent lattribution dun numro. Le fournisseur daccs internet Free propose un service de tlphonie SIP appel freephonie.net pour les appels sortants et entrants. La conguration donne pour ce fournisseur SIP peut facilement sadapter dautres (voir les liens donns plus bas). Sur la page daccueil de votre fournisseur daccs Free , dans lencadr Gestion de mes services de tlphonie , slectionnez Gestion de mon compte SIP.

Il sagit ensuite de congurer le service SIP. Pour ce faire, il faut saisir un mot de passe, puis valider les options Rediriger les appels entrants vers le SIP et Activer le service .

4 sur 18

07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...

http://www.unixgarden.com/index.php/administrati...

Cliquez alors ENVOYER , ce moment le tlphone de la Freebox est dsactiv et tous les appels transitent travers la passerelle SIP. Ensuite, on paramtre le serveur Asterisk pour quil senregistre auprs de son fournisseur SIP. Cela se fait en ajoutant la ligne suivante dans le fichier /etc/asterisk/sip.conf la fin du contexte [general] juste avant le contexte [authentication]. Il faut prsent dclarer le faisceau correspondant au fournisseur. Pour cela, il faut ajouter les lignes suivantes la fin du fichier sip.conf :
[fournisseursip] type=friend ; insecure=very ; host=freephonie.net ; username=0807060504 ; secret=MotDePasse ; fromuser=087060504 fromdomain=freephonie.net context=fournisseursip-entrant type de lien correspondant indispensable le fournisseur SIP le nom dutilisateur chez le fournisseur SIP le mot de passe chez le fournisseur SIP

; le contexte ou diriger les appels entrants

Enfin, il reste affecter un prfixe qui permet de slectionner le faisceau du fournisseur SIP. On peut, par exemple, dfinir le prfixe 0. Ainsi, tous les numros dbutant par 0 sont envoys vers le rseau tlphonique commut. Cette rgle est dfinir en ajoutant la ligne suivante la fin du fichier extensions.conf :
exten=>_0.,1,Dial(SIP/${EXTEN:1}@fournisseursip)

Pour tester, il sut de composer le 0 suivi dun numro de tlphone quelconque, soit 11 chires. Dans lautre sens, si vous appelez votre numro freephonie depuis le rseau commut, vous entendez le message daccueil dAsterisk. On peut diriger les appels entrant sur les trois postes clients ekiga en ajoutant les lignes suivantes la n du chier extensions.conf :

5. Fonctions utilisateurs
Comme tout serveur de tlphonie, Asterisk dispose des fonctions utilisateurs de base sur les appels : transfert, mise en attente, interception, enregistrement... Ces fonctions sont actives par lenvoi de tonalits DTMF (Dual-Tone Multi-Frequency). Ces tonalits seront envoyes en cours de communication laide de longlet numroteur du

5 sur 18

07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...

http://www.unixgarden.com/index.php/administrati...

tlphone logiciel Ekiga . La conguration de ces fonctions est ralise travers le chier features.conf.

5.1 Paramtrage des tonalits DTMF


Le serveur de tlphonie Asterisk et le tlphone logiciel Ekiga doivent utiliser le mme mode de fonctionnement DTMF. En principe, Asterisk et Ekiga utilisent le format DTMF RFC2833 par dfaut. Mais, pour tre rigoureux, il est prfrable de forcer ce mode pour nos deux logiciels. Ct Asterisk, il suffit de dcommenter la ligne suivante dans le fichier sip.conf (en supprimant le ; en dbut de ligne) :
;dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833

Ct Ekiga, dans le menu Edition, slectionnez Prfrences, puis Paramtres SIP. Vrifiez alors, que mode DTMF est RFC2833 .

5.2 Transfert dappel (#)


La fonctionnalit de transfert dappel est souvent implmente directement au niveau des terminaux tlphoniques SIP, quils soient logiciels ou matriels. Cest le cas du tlphone logiciel Ekiga o lon peut accder cette fonction par le menu droulant Appel, suivi de Transfrer lappel (raccourci [Ctrl]+[T]). Cette fonction SIP est galement disponible au niveau du serveur de tlphonie. Cela permet dutiliser le transfert quil soit disponible ou non partir du terminal, et de la mme manire quel que soit ce tlphone. Le serveur de tlphonie Asterisk dispose de cette possibilit de transfert au cours dune communication au travers de commandes DTMF. Il ne reste plus qu autoriser le transfert dappel au niveau des commandes Dial() associes aux trois numros de tlphone (555, 556, et 557) du chier extensions.conf. Pour ce faire, modiez la n du chier extensions.conf comme suit :
exten => 555,1,Dial(SIP/ekiga1,,tT) exten => 556,1,Dial(SIP/ekiga2,,tT) exten => 557,1,Dial(SIP/ekiga3,,tT)

Les options t et T autorisent respectivement lappel et lappelant transfrer lappel. Pour tester le transfert, il faut alors tablir une communication. Puis, durant la conversation, tapez # sur le poste. A ce moment, le serveur rpond en prononant transfer . Saisissez alors le numro du tlphone de destination.

5.3 Mise en attente (#700)


La fonction de mise en attente dappel consiste mettre une communication en pause. Cela permet de librer temporairement la ligne ou de rcuprer une communication sur un autre tlphone. Une musique dattente peut tre diuse pour faire patienter le correspondant. Pour activer le parc dattente, il faut ajouter la ligne suivante dans le contexte [default] la n du chier extensions.conf :
include=>parkedcalls

Pour tester la mise en attente, il sut dtablir une communication, puis de taper # pour activer le transfert et 700 pour transfrer vers le parc dattente. Le serveur prononce alors un numro dans le parc. On peut ensuite raccrocher le poste courant, se dplacer sur un

6 sur 18

07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...

http://www.unixgarden.com/index.php/administrati...

autre poste et reprendre la communication en composant simplement le numro attribu dans le parc. L utilisateur dont lappel est mis en attente ne dispose alors daucune indication sonore et risque de penser que la communication est perdue. Pour viter cela, il est judicieux dactiver la musique dattente sur le serveur Asterisk. Le serveur Asterisk peut diffuser des musiques dattente au format MP3 travers diffrents logiciels de lecture. La mthode la plus simple consiste utiliser le lecteur madplay . On paramtre ensuite Asterisk de manire ce quil utilise ce lecteur MP3 pour diffuser la musique dattente. Pour cela, il faut modifier la section [default] du chier musiconhold.conf comme suit : Il ne reste plus qu copier votre chier MP3 dans le rpertoire usr/share/asterisk/mohmp3 dont il est question ci-dessus. Maintenant, lutilisateur mis dans le parc entend la musique dattente.

5.4 Interception dappel (*8)


L interception dappel intervient lorsquun tlphone sonne. Elle autorise la rcupration de lappel destin au poste qui sonne partir dun autre poste. Pour cela, il faut que lintercept appartienne au groupe dappel qui correspond au groupe dinterception de linterceptant. Pour illustrer cela, on peut par exemple autoriser linterception du tlphone ekiga2 par ekiga1. Dans ce cas, il sut dassocier ekiga1 au groupe dinterception qui correspond au groupe dappel de ekiga2. Pour cela modiez, le chier sip.conf, comme suit :
[ekiga1] type=friend host=dynamic username=ekiga1 secret=toto pickupgroup=1 [ekiga2] type=friend host=dynamic username=ekiga2 secret=toto callgroup=1

Pour tester, il faut dabord lancer un appel du tlphone ekiga3 vers ekiga2. Puis, au moment o le tlphone ekiga2 sonne, il sut de composer *8 sur le terminal ekiga1 pour prendre la communication.

5.5 Enregistrement dappel (*)


Le serveur Asterisk offre la possibilit denregistrer un appel sur demande dun utilisateur. Pour activer cette fonction, il faut lui associer une touche travers le chier features.conf, et lautoriser dans le contexte [globals] et au niveau des trois commandes Dial() du chier extensions.conf. Modiez dabord la touche associe la fonction One Touch Record dans le chier features.conf (*1 semble ne pas fonctionner avec Ekiga au moment o jcris ces lignes) en remplaant la ligne :
;automon => *1 ; One Touch Record

par (pensez dcommenter en enlevant le ; du dbut de ligne) :


7 sur 18 07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...


[globals] DYNAMIC_FEATURES=>automon

http://www.unixgarden.com/index.php/administrati...

Ensuite, ajoutez la ligne suivante au dbut du contexte [globals] dans le fichier extensions.conf comme suit :
exten => 555,1,Dial(SIP/ekiga1,60,wW) exten => 556,1,Dial(SIP/ekiga2,60,wW) exten => 557,1,Dial(SIP/ekiga3,60,wW)

Puis, modifiez les trois commandes Dial() correspondant aux trois numros de tlphone (555, 556, 557) comme cela : L option w indique que lenregistrement peut tre initi par lappel et W indique quil peut tre demand par lappelant. Pour tester, il sut dtablir une communication et de presser la touche * sur un des tlphones. La conversation a t enregistre sur le serveur Asterisk dans le rpertoire /var/spool /asterisk/monitor. Pour lcouter, on peut utiliser la commande aplay sur le serveur Asterisk comme ci-dessous :
aplay /var/spool/asterisk/monitor/auto*.wav

On peut envisager de dvelopper direntes interfaces de consultation. Par exemple, des pages web pour tlcharger ces enregistrements sur nimporte quel ordinateur ou un menu vocal interactif pour les couter partir dun tlphone quelconque. Asterisk est un PABX (Private Automatic Branch eXchange) ou PBX, un commutateur tlphonique priv.

6. Botes vocales
6.1 Utilisation de la bote vocale dexemple
Par dfaut, le serveur de tlphonie Asterisk dispose dun utilisateur 1234 avec une bote configure accessible avec le mot de passe 4242. Dans un premier temps, on peut installer les messages vocaux en francais :
apt-get install asterisk-prompt-fr

Ensuite, indiquez la langue prfre pour les tlphones SIP dans le fichier sip.conf en remplaant la ligne :
;language=en ; Default language setting for all users/peers

par (pensez dcommenter en enlevant le ; du dbut de ligne) :


language=fr ; Default language setting for all users/peers

Pour tester la messagerie vocale dexemple, il sut alors dappeler le 1235 (pas le 1234 qui correspond la Console) et de laisser directement un message lutilisateur 1234. Aprs cela, appelez le 8500 et authentiez-vous en tant quutilisateur 1234 et mot de passe 4242. Puis tapez 1 pour couter le message que vous venez de laisser.

8 sur 18

07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...

http://www.unixgarden.com/index.php/administrati...

6.2 Cration dune boite vocale


Pour crer une boite vocale associe un numro de tlphone, il faut dabord la dclarer dans la partie [default] du chier voicemail.conf comme suit : 555 est le numro de tlphone auquel la boite vocale est associe, et 0000 est le mot de passe correspondant. ekiga1 dsigne lutilisateur associ et root@localhost est son adresse mail. Les lignes exten du chier extensions.conf permettent de dcrire un algorithme de programmation linaire (comme en BASIC). En eet, elles disposent dun champ dtiquette qui indique lordre dexcution des commandes. La commande Dial() accepte un argument timeout qui correspond la dure de la tentative dappel avant de passer la commande suivante. Aprs ce dlai, linstruction suivante (tiquette 2) est excute. Elle renvoie sur la messagerie. Finalement, la dernire instruction (tiquette 3) est lance. Elle provoque le raccrochage de la ligne.
exten => 555,1,Dial(SIP/ekiga1, 10) exten => 555,2,Voicemail(b555) exten => 555,3,Hangup

Pour essayer votre messagerie vocale, appelez ekiga1 au 555 partir du poste ekiga2, et ne dcrochez pas le poste ekiga1.

7. Messagerie unie
La messagerie unifie permet, plutt que de consulter la boite vocale laide du tlphone, de recevoir les messages vocaux en fichiers .wav joints dans le courriel. Cette fonctionnalit peut tre implmente de direntes manires : en installant un logiciel de MTA qui transfre ces courriels sur un serveur SMTP externe. en transformant la machine qui hberge le serveur de tlphonie Asterisk pour quelle devienne aussi serveur de mail. Nous illustrons ici la seconde solution. Pour cela, nous allons ajouter deux logiciels la machine qui hberge le serveur Asterisk : un logiciel de MTA (Mail Transfer Agent) pour permettre lenvoi de mail par Asterisk, et un serveur POP pour transformer la machine en serveur de courriel. Dans ce cas, il y a un compte mail par compte utilisateur.

7.1 Installation et configuration du Mail Transfer Agent exim4


Pour transmettre les courriels avec les messages vocaux rattachs, le serveur tlphonie Asterisk fait appel un programme de MTA tel que exim4 (commande sendmail). Ce dernier doit tre paramtr comme suit (cas dune distribution Debian) :
Faut-il sparer la configuration dans plusieurs fichier ? NON Type de configuration : Distribution locale seulement (pas de rseau) Nom du courriel du systme : localhost Liste dadresses IP o Exim sera en attente de connexions SMTP : 127.0.0.1 Autres destinations dont le courriel doit tre accept : (vide) Faut-il minimiser les requtes DNS (connexions la demande) ? NON

9 sur 18

07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...

http://www.unixgarden.com/index.php/administrati...

A ce stade, Asterisk rattache les messages vocaux destins ekiga1 dans un courriel qui est envoy toto@localhost (sur le port 25 de la boucle locale 127.0.0.1). Ce courriel est accessible sur la machine qui hberge le serveur Asterisk par lutilisateur toto via la commande mail.

7.2 Installation et configuration du serveur POP ipopd


An de pouvoir consulter les courriels partir dun logiciel de messagerie quelconque et depuis nimporte quelle machine, il sut dinstaller un serveur POP ipopd sur la machine qui hberge le serveur Asterisk. Il est alors possible de paramtrer un logiciel de messagerie pour relever les courriels du serveur Asterisk en utilisant le protocole POP avec chirement SSL (port 995 du serveur Asterisk). Aprs avoir correctement paramtr votre client de courriel, vous rcuprez les courriers envoys par le serveur Asterisk avec les messages vocaux joints au format *.wav.
Dear ekiga1: Just wanted to let you know you were just left a 0:18 long message (number 2) in mailbox 555 from ph, on Wednesday, September 20, 2006 at 03:40:08 PM so you might want to check it when you get a chance. Thanks! --Asterisk

Le gabarit du mail, ici en anglais, peut tre facilement adapt en modifiant la variable emailbody dans le fichier voicemail.conf.

8. Menu Vocal Interactif


Une des fonctionnalits fortes du serveur de tlphonie Asterisk est lIVR (Interactive Voice Response). En franais, cela peut se traduire par menu vocal interactif . Pour illustrer cette fonctionnalit, nous pouvons imaginer le menu suivant :

La navigation travers les diffrents Messages Vocaux est assure par la pression des touches [1], [2], [3] du tlphone comme indiqu sur le schma. La touche [*] permettant de quitter tout moment. La premire tape consiste enregistrer les fichiers audio qui contiennent les diffrents Messages Vocaux. A titre dexemple, on peut enregistrer les messages suivants :

10 sur 18

07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...

http://www.unixgarden.com/index.php/administrati...

L enregistrement peut se faire avec la commande arecord que lon termine avec [Ctrl-C] :
arecord > MessageVocalBienvenue.wav

Il est conseill de vrifier chaque enregistrement avec la commande aplay


aplay MessageVocalBienvenue.wav

La conversion des fichiers enregistrs au format GSM se fait avec lutilitaire sox :
apt-get install sox sox MessageVocalMenu0.wav r8000 c1 MessageVocalMenu0.gsm resample ql ... cp *.gsm /usr/share/asterisk/sounds/MessagesVocaux

Enfin, il sut de dcrire le Menu Vocal laide dun algorithme de programmation linaire. En eet, comme cela a t expliqu prcdemment : les lignes exten du chier extensions.conf permettent de dcrire un algorithme de programmation linaire (comme en BASIC). Comme dans toute programmation linaire, il est possible de raliser un saut conditionnel. La condition est la pression dune touche sur le tlphone. Voil le code qui doit tre ajout la n du chier extensions.conf :
exten => 559,1, Set(TIMEOUT(digit)=3) ; Dure max dun chiffre DTMF 3 sec exten => 559,2, Set(TIMEOUT(response)=10)ResponseTimeout,10; Attente dune tonalit DTMF durant 10 sec exten => 559,3, Answer ; Decrochage exten => 559,4, Background(MessagesVocaux/MessageVocalBienvenue) ; Lecture en arrire plan exten => 559,5, Goto(MenuVocal0,s,1) [MenuVocal0] exten => s,1, Background(MessagesVocaux/MessageVocalMenu0) ; Lecture en arrire plan exten => s,2, WaitExten exten => 1,1, Goto(MenuVocal1,s,1) ; Aller au contexte MenuVocal1 exten => 2,1, Goto(MenuVocal2,s,1) ; Aller au contexte MenuVocal2 exten => 3,1, Goto(MenuVocal3,s,1) ; Aller au contexte MenuVocal3 exten => *,1, Hangup ; Raccrochage exten => i,1, Playback(MessagesVocaux/MessageVocalToucheInvalide) ; Lecture exten => t,1, Goto(MenuVocal0,s,1) ; Si ResponseTimeout dpass retour [MenuVocal1] exten => s,1, Background(MessagesVocaux/MessageVocalMenu1) ; Lecture en arrire plan exten => s,2, WaitExten exten => 1,1, Goto(MenuVocal11,s,1) ; Aller au contexte MenuVocal11 exten => 2,1, Goto(MenuVocal12,s,1) ; Aller au contexte MenuVocal12 exten => *,1, Hangup ; Raccrochage exten => i,1, Playback(MessagesVocaux/MessageVocalToucheInvalide) ; Lecture exten => t,1, Goto(MenuVocal1,s,1) ; Si ResponseTimeout dpass retour [MenuVocal2] exten => s,1, BackGround(MessagesVocaux/MessageVocalMenu2) ; Lecture en arrire plan exten => s,2, WaitExten exten => *,1, Hangup ; Raccrochage

11 sur 18

07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...


exten => i,1, exten => t,1, [MenuVocal3] exten => s,1, exten => s,2, exten => *,1, exten => i,1, exten => t,1, [MenuVocal11] exten => s,1, exten => s,2, exten => *,1, exten => i,1, [MenuVocal12] exten => s,1, exten => s,2, exten => *,1, exten => i,1,

http://www.unixgarden.com/index.php/administrati...

Playback(MessagesVocaux/MessageVocalToucheInvalide) ; Lecture Goto(MenuVocal2,s,1) ; Si ResponseTimeout dpass retour BackGround(MessagesVocaux/MessageVocalMenu3) ; Lecture en arrire plan WaitExten Hangup ; Raccrochage Playback(MessagesVocaux/MessageVocalToucheInvalide) ; Lecture Goto(MenuVocal3,s,1) ; Si ResponseTimeout dpass retour BackGround(MessagesVocaux/MessageVocalMenu11) ; Lecture en arrire plan WaitExten Hangup ; Raccrochage Playback(MessagesVocaux/MessageVocalToucheInvalide) ; Lecture BackGround(MessagesVocaux/MessageVocalMenu12) ; Lecture en arrire plan WaitExten Hangup ; Raccrochage Playback(MessagesVocaux/MessageVocalToucheInvalide) ; Lecture

9. Fonctionnalit Realtime MySQL


Le serveur Asterisk permet de remplacer les fichiers de conguration du rpertoire/etc /asterisk par des tables de base de donnes. A titre dexemple, nous ne dcrivons que la migration des fichiers sip.conf et extensions.conf vers des tables (le principe est identique pour les autres fichiers). La base de donnes utilise est MySQL. La fonctionnalit Realtime ntant pas disponible de manire standard dans Asterisk, elle ncessite linstallation du paquet asterisk-addons disponible sur le site dAsterisk.

9.1 Configuration initiale de MySQL


Aprs avoir install le serveur MySQL, il faut crer un utilisateur ayant les droits appropris. Pour simplifier, nous utilisons le compte root avec un mot de passe toto.
mysqladmin password toto

On peut ensuite connecter un client CLI au serveur MySQL en administrateur :


mysql -u root -p

La premire tape consiste crer une base asterisk dans MySQL :


mysql>create database asterisk;

La cration peut tre vrifie ainsi :


mysql>show databases;

9.2 Installation de asterisk-addons


Aprs avoir tlcharg et compil asterisk-addons, il suffit de copier les fichiers suivants aux emplacements convenables.
cp res_config_mysql.so /usr/lib/asterisk/modules/ cp configs/res_mysql.conf.sample /etc/asterisk/res_mysql.conf

La connexion dAsterisk MySQL est dnie dans le chier res_mysql.conf. Il convient

12 sur 18

07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...

http://www.unixgarden.com/index.php/administrati...

dajouter les lignes suivantes la n de ce chier :


[general] dbhost = 127.0.0.1 dbname = asterisk dbuser = root dbpass = toto dbport = 3306

9.3 Migration du fichier sip.conf


Pour indiquer Asterisk que les informations sipusers et sippeers sont dans la base MySQL, il est ncessaire dajouter les deux lignes suivantes la n du chier extconfig.conf :
sipusers => mysql,asterisk,sip sippeers => mysql,asterisk,sip

Maintenant, il ne reste plus qu crer la table sip dans la base asterisk de MySQL :
mysql>CREATE TABLE `sip` ( `id` int(11) NOT NULL auto_increment, `name` varchar(80) NOT NULL default , `accountcode` varchar(20) default NULL, `amaflags` varchar(13) default NULL, `callgroup` varchar(10) default NULL, `callerid` varchar(80) default NULL, `canreinvite` char(3) default yes, `context` varchar(80) default NULL, `defaultip` varchar(15) default NULL, `dtmfmode` varchar(7) default NULL, `fromuser` varchar(80) default NULL, `fromdomain` varchar(80) default NULL, `fullcontact` varchar(80) default NULL, `host` varchar(31) NOT NULL default , `insecure` varchar(4) default NULL, `language` char(2) default NULL, `mailbox` varchar(50) default NULL, `md5secret` varchar(80) default NULL, `nat` varchar(5) NOT NULL default no, `deny` varchar(95) default NULL, `permit` varchar(95) default NULL, `mask` varchar(95) default NULL, `pickupgroup` varchar(10) default NULL, `port` varchar(5) NOT NULL default , `qualify` char(3) default NULL, `restrictcid` char(1) default NULL, `rtptimeout` char(3) default NULL, `rtpholdtimeout` char(3) default NULL, `secret` varchar(80) default NULL, `type` varchar(6) NOT NULL default friend, `username` varchar(80) NOT NULL default , `disallow` varchar(100) default all, `allow` varchar(100) default g729;ilbc;gsm;ulaw;alaw, `musiconhold` varchar(100) default NULL, `regseconds` int(11) NOT NULL default 0, `ipaddr` varchar(15) NOT NULL default , `regexten` varchar(80) NOT NULL default , `cancallforward` char(3) default yes, `setvar` varchar(100) NOT NULL default , PRIMARY KEY (`id`), UNIQUE KEY `name` (`name`), KEY `name_2` (`name`)

13 sur 18

07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...


) TYPE=MyISAM ROW_FORMAT=DYNAMIC;

http://www.unixgarden.com/index.php/administrati...

Puis de la renseigner avec un poste :


mysql>insert into sip (name,type,host,username,secret) values (ekiga1,friend,dynamic,ekiga1,toto);

On peut vrifier avec :


mysql>select name,type,host,username,secret from sip; +-----------+--------+---------+----------+--------+ | name | type | host | username | secret | +-----------+--------+---------+----------+--------+ | ekiga1 | friend | dynamic | ekiga1 | toto | +-----------+--------+---------+----------+--------+ 1 rows in set (0.01 sec)

Au redmarrage dAsterisk, les informations qui taient auparavant recherches dans le chier sip.conf sont maintenant prises dans la table sip de la base asterisk .

9.4 Migration du fichier extensions.conf


Comme prcdemment, pour indiquer Asterisk que les informations extensions sont dans la base MySQL, il faut ajouter la ligne suivante la fin du fichier extconfig.conf : Cette fois, il faut galement ajouter la ligne suivante la fin du fichier extensions.conf pour indiquer que la suite des informations prendre en compte se trouve dans la base :
switch => Realtime/@

Il ne reste plus qu crer la table :


mysql>CREATE TABLE `extensions` ( `id` int(11) NOT NULL auto_increment, `context` varchar(20) NOT NULL default , `exten` varchar(20) NOT NULL default , `priority` tinyint(4) NOT NULL default 0, `app` varchar(20) NOT NULL default , `appdata` varchar(128) NOT NULL default , PRIMARY KEY (`context`,`exten`,`priority`), KEY `id` (`id`) ) TYPE=MyISAM;

Et la renseigner avec un numro de tlphone associ au poste dcrit dans la table sip :
mysql> insert into extensions (context,exten,priority,app,appdata) values (default,555,1,Dial,SIP/ekiga1);

Au redmarrage dAsterisk, les informations qui taient auparavant cherches dans le chier extensions.conf sont maintenant recherches dans la table extensions de la base asterisk .

Conclusion
Le dbut de cet article a dmontr comment mettre en place simplement une architecture VoIP autour dun serveur Asterisk. La suite du document a expliqu la conguration de quelques fonctionnalits couramment utilises. Elles ne rvlent que trs partiellement les possibilits du serveur Asterisk qui sont en permanente volution. Liens:

14 sur 18

07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...

http://www.unixgarden.com/index.php/administrati...

Asterisk : http://www.asterisk.org Ekiga : http://www.ekiga.org Quelques fournisseurs SIP : http://www.sipdiscount.com http://www.voipbuster.com http://www.freecall.com Retrouvez cet article dans : Linux Magazine 90 Post par (La rdaction) | Signature : Philippe Hensel | Article paru dans

Laissez une rponse


Vous devez avoir ouvert une session pour crire un commentaire. Prcdent Aller au contenu Identifiez-vous Inscription S'abonner UNIX Garden

Articles de 1re page


Technologie rootkit sous Linux/Unix CMake: la relve dans la construction de projets Des petits sondages pour amliorer nos magazines Linux Embarqu pour tous! Problmatique de consolidation et atteinte des objectifs de niveau de service (SLO) avec Xen GNU/Linux Magazine N113 - Fvrier 2009 - Chez votre marchand de journaux Linux Pratique Essentiel N6 - Fvrier/Mars 2009 - Chez votre marchand de journaux Le pavage faon Aqua Un peu plus loin avec Linux vserver A la dcouverte du protocole de routage OSPF

15 sur 18

07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...

http://www.unixgarden.com/index.php/administrati...

Actuellement en kiosque :

Catgories
Administration rseau Administration systme Agenda-Interview Audio-vido Bureautique Comprendre Distribution Embarqu Environnement de bureau Graphisme Jeux Matriel News Programmation Rflchir Scurit Utilitaires Web

Articles secondaires

16 sur 18

07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...

http://www.unixgarden.com/index.php/administrati...

30/10/2008 Google Gears : les services de Google offline Lanc loccasion du Google Developer Day 2007 (le 31 mai dernier), Google Gears est une extension open source pour Firefox et Internet Explorer permettant de continuer accder des services et applications Google, mme si lon est dconnect.... Voir l'article... 7/8/2008 Trois questions ... Alexis Nikichine, dveloppeur chez IDM, la socit qui a conu linterface et le moteur de recherche de lEHM.... Voir l'article... 11/7/2008 Protger une page avec un mot de passe En gnral, le problme nest pas de protger une page, mais de protger le rpertoire qui la contient. Avec Apache, vous pouvez mettre un chier .htaccess dans le rpertoire protger.... Voir l'article... 6/7/2008 hypermail : Conversion mbox vers HTML Comment conserver tous vos changes de mails, ou du moins, tous vos mails reus depuis des annes ? mbox, maildir, texte les formats ne manquent pas. ... Voir l'article... 6/7/2008 iozone3 : Benchmark de disque En fonction de lutilisation de votre systme, et dans bien des cas, les performances des disques et des systmes de fichiers sont trs importantes.... Voir l'article... 1/7/2008 Augmentez le trafic sur votre blog ! Google Blog Search (http://blogsearch.google.fr/) est un moteur de recherche consacr aux blogs, lun des nombreux services proposs par la clbre rme californienne.... Voir l'article...

GNU/Linux Magazine
GNU/Linux Magazine N113 - Fvrier 2009 - Chez votre marchand de journaux dito : GNU/Linux Magazine 113 Un petit sondage pour amliorer nos magazines GNU/Linux Magazine HS N40 - Janvier/Fvrier 2009 - Chez votre marchand de journaux Edito : GNU/Linux Magazine HS 40

17 sur 18

07.02.2009 06:57

Voix sur IP : serveur de tlphonie Asterisk UNI...

http://www.unixgarden.com/index.php/administrati...

GNU/Linux Pratique
Linux Pratique Essentiel N6 - Fvrier/Mars 2009 - Chez votre marchand de journaux dito : Linux Pratique Essentiel N6 Linux Pratique Essentiel 6 - Communiqu de presse Un petit sondage pour amliorer nos magazines Linux Pratique N51 - Janvier/Fvrier 2009 - Chez votre marchand de journaux

MISC Magazine
Un petit sondage pour amliorer nos magazines MISC N41 : La cybercriminalit ou quand le net se met au crime organis Janvier/Fvrier 2009 - Chez votre marchand de journaux dito : Misc 41 MISC 41 - Communiqu de presse Les ditions Diamond adhrent lAPRIL !

2007 - 2009 UNIX Garden. Tous droits rservs .

18 sur 18

07.02.2009 06:57

You might also like