Le monde des Logiciels libres dispose de différentes solutions VoIP axées sur des protocoles standards (H323, SIP…). Voyons comment réaliser une architecture simple de VoIP à l’aide d’un serveur Asterisk et de client téléphonique ( dans mon cas un grandstream et des siemens portable VOIP). Puis, comment configurer différentes fonctionnalités de ce serveur Asterisk.
1. Mise en situation
L’objet de cet article est d’initier à la mise en œuvre d’une petite architecture VoIP basée sur des Logiciels libres. Cette architecture est typiquement celle que l’on pourrait trouver dans une petite entreprise ou éventuellement chez un particulier. Elle s’articule autour d’un réseau local, avec un serveur de téléphonie Asterisk et plusieurs postes clients VOIP. En s’appuyant sur cette architecture, quelques fonctionnalités courantes du serveur Asterisk sont illustrées.
Côté serveur, le logiciel Asterisk dispose de nombreuses fonctionnalités dignes des meilleures solutions VoIP commerciales. De plus, il supporte pratiquement tous les protocoles VoIP standards (H323, SIP, MGCP…). Côté client, les téléphone Utilisés son compatibles avec le standard voip.
La versions des logiciels utilisées sont Asterisk 1.4 . L’architecture VoIP proposée utilise exclusivement le protocole VoIP de signalisation SIP (Session Initiation Protocol) et les codecs audio G.711 loi µ. Les problématiques réseau de qualité de service ne sont pas abordées.
2. Configuration du serveur Asterisk
Installation rapide
Sur la Alixbox (article précédent ) d’une distribution debian par le mode réseau. Installation par default avec le minimum.
Une foi l installe de debian fini
nous allons procéder à l’installation de Asterisk :
sudo apt-get install asterisk
Un fois installé, modifiez ces paramètres pour que Asterisk demarre au démarrage de l’ordinateur :
sudo vim /etc/default/asterisk
RUNASTERISK=yes
RUNASTSAFE=no
Pour installer les paquets français de Asterisk, vous devez lancer cette commande :
sudo apt-get install asterisk-prompt-fr
Après installation du serveur de téléphonie Asterisk sur votre distribution favorite, il est possible de tester rapidement le fonctionnement en lançant simultanément le processus serveur en mode « verbeux » (option -v) avec un processus client CLI attaché (option -c).
asterisk -vvvvc
Une invite de commande doit apparaître à la fin si tout se déroule correctement :
Asterisk Ready.
*CLI>
On peut alors rapidement voir l’ensemble des commandes disponibles via l’interface CLI (Command Line Interface).
Asterisk Ready.
*CLI>help
Pour arrêter le serveur depuis l’interface CLI, on peut utiliser la commande stop now :
Asterisk Ready.
*CLI>stop now

Dans ce cas, on connecte des clients CLI à l’aide de l’option :
asterisk -r
La configuration du serveur est réalisée à travers plusieurs fichiers textes qui se situent dans le répertoire /etc/asterisk. Parmi eux, le fichier sip.conf permet la déclaration des téléphones. Pour déclarer trois téléphones logiciels Ekiga, il faut simplement ajouter les lignes suivantes à la fin de ce fichier :
[grandstream] ; nom du téléphone
type=friend ; type de téléphone
host=dynamic ; enregistrement dynamique de l’adresse IP du téléphone
username=ekiga1 ; nom d’utilisateur associé
secret=toto ; mot de passe
disallow=all ; interdit tous les codecs
allow=ulaw ; autorise uniquement le codec G711 loi µ
[tel2] ; nom du téléphone
type=friend ; type de téléphone
host=dynamic ; enregistrement dynamique de l’adresse IP du téléphone
username=ekiga2 ; nom d’utilisateur associé
secret=toto ; mot de passe
disallow=all ; interdit tous les codecs
allow=ulaw ; autorise uniquement le codec G711 loi µ
[tel3] ; nom du téléphone
type=friend ; type de téléphone
host=dynamic ; enregistrement dynamique de l’adresse IP du téléphone
username=ekiga3 ; nom d’utilisateur associé
secret=toto ; mot de passe
disallow=all ; interdit tous les codecs
allow=ulaw ; autorise uniquement le codec G711 loi µ
Il suffit maintenant d’attribuer un numéro de téléphone à chacun de nos trois téléphones. Le fichier extensions.conf permet d’associer à chaque numéro de téléphone une suite de commandes. Pour ce faire, il suffit d’ajouter les trois lignes suivantes à la fin de ce fichier (plus exactement à la fin du contexte [default]) :
exten => 555,1,Dial(SIP/grandstream) ; 555 appelle le téléphone grandsream
exten => 556,1,Dial(SIP/tel2) ; 556 appelle le téléphone tel2
exten => 557,1,Dial(SIP/tel3) ; 557 appelle le téléphone tel3
Le serveur Asterisk est maintenant prêt à enregistrer les trois clients Ekiga qui disposent respectivement des numéros de ligne 555, 556 et 557.
3. Configuration des téléphones
Pour utiliser le téléphone LIRE LA DOC !!!
Et compléter comme ce si les différents champs comme ci-dessous :
NomDuCompte : MonAsterisk
Protocole : SIP
Registrar : Adresse IP de votre serveur Asterisk
Utilisateur : VOIR PLUS HAUT le nom du téléphone
Mot de Passe : toto plus haut aussi
Puis, confirmez ou appliquer suivant model de telephone
Dès que ces trois premiers “clients” sont correctement configurés, il est possible d’effectuer des appels internes. Le client tel2 peut, par exemple, appeler le client grandstream en composant le 555.
4. Enregistrement chez un fournisseur SIP
SIP pour Session Initiation Protocol est un protocole normalisé et standardisé par l’IETF (RFC 3261 + RFC 3265). Il se charge de l’authentification et de la localisation des multiples participants d’une session multimédia. SIP remplace progressivement H323.
L’architecture mise en place jusqu’à présent permet uniquement d’effectuer des appels internes. Pour pouvoir accéder au réseau téléphonique commuté, qui est toujours le standard de fait, une solution élégante est l’utilisation d’un fournisseur SIP. Ce dernier constitue une passerelle entre la téléphonie IP (basée sur le protocole SIP) et le réseau de l’opérateur historique. La plupart des fournisseurs SIP fonctionnent suivant le principe du crédit temps : vous créditez un compte chez le fournisseur qui est débité en fonction des communications. Les tarifs de la minute dépendent de la destination de l’appel. Les appels nationaux vers des fixes sont souvent gratuits.
Tous les fournisseurs SIP permettent les appels sortants vers le Réseau Téléphonique Commuté. Par contre, pour les appels entrants, seulement certains proposent l’attribution d’un numéro.
Le fournisseur d’accès internet « Free » propose un service de téléphonie SIP appelé « freephonie.net » pour les appels sortants et entrants. La configuration donnée pour ce fournisseur SIP peut facilement s’adapter à d’autres (voir les liens donnés plus bas).
Sur la page d’accueil de votre fournisseur d’accès « Free », dans l’encadré « Gestion de mes services de téléphonie », sélectionnez Gestion de mon compte SIP.

Il s’agit ensuite de configurer 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 ».

Cliquez alors « ENVOYER », à ce moment le téléphone de la Freebox est désactivé et tous les appels transitent à travers la passerelle SIP.
Ensuite, on paramètre le serveur Asterisk pour qu’il s’enregistre auprès 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 à présent déclarer le faisceau correspondant au fournisseur. Pour cela, il faut ajouter les lignes suivantes à la fin du fichier sip.conf :
[fournisseursip]
type=friend ; type de lien correspondant
insecure=very ; indispensable
host=freephonie.net ; le fournisseur SIP
username=0807060504 ; le nom d’utilisateur chez le fournisseur SIP
secret=MotDePasse ; le mot de passe chez le fournisseur SIP
fromuser=087060504
fromdomain=freephonie.net
context=fournisseursip-entrant ; le contexte ou diriger les appels entrants
Enfin, il reste à affecter un préfixe qui permet de sélectionner le faisceau du fournisseur SIP. On peut, par exemple, définir le préfixe 0. Ainsi, tous les numéros débutant par 0 sont envoyés vers le réseau téléphonique commuté. Cette règle est à définir en ajoutant la ligne suivante à la fin du fichier extensions.conf :
exten=>_0.,1,Dial(SIP/${EXTEN:1}@fournisseursip)
Pour tester, il suffit de composer le 0 suivi d’un numéro de téléphone quelconque, soit 11 chiffres. Dans l’autre sens, si vous appelez votre numéro freephonie depuis le réseau commuté, vous entendez le message d’accueil d’Asterisk. On peut diriger les appels entrant sur les trois postes clients ekiga en ajoutant les lignes suivantes à la fin du fichier extensions.conf :
5. Fonctions utilisateurs
Comme tout serveur de téléphonie, Asterisk dispose des fonctions utilisateurs de base sur les appels : transfert, mise en attente, interception, enregistrement…
Ces fonctions sont activées par l’envoi de tonalités DTMF (Dual-Tone Multi-Frequency). Ces tonalités seront envoyées en cours de communication à l’aide de l’onglet « numéroteur » du téléphone logiciel « Ekiga ». La configuration de ces fonctions est réalisée à travers le fichier features.conf.
5.1 Paramétrage des tonalités DTMF
Le serveur de téléphonie Asterisk et le téléphone logiciel Ekiga doivent utiliser le même mode de fonctionnement DTMF. En principe, Asterisk et Ekiga utilisent le format DTMF « RFC2833 » par défaut. Mais, pour être rigoureux, il est préférable de forcer ce mode pour nos deux logiciels. Côté Asterisk, il suffit de décommenter la ligne suivante dans le fichier sip.conf (en supprimant le ; en début de ligne) :
;dtmfmode = rfc2833 ; Set default dtmfmode for sending DTMF. Default: rfc2833
Côté Ekiga, dans le menu Edition, sélectionnez Préférences, puis Paramètres SIP. Vérifiez alors, que « mode DTMF » est à « RFC2833 ».
5.2 Transfert d’appel (#)
La fonctionnalité de transfert d’appel est souvent implémentée directement au niveau des terminaux téléphoniques SIP, qu’ils soient logiciels ou matériels. C’est le cas du téléphone logiciel Ekiga où l’on peut accéder cette fonction par le menu déroulant Appel, suivi de Transférer l’appel (raccourci [Ctrl]+[T]).
Cette fonction SIP est également disponible au niveau du serveur de téléphonie. Cela permet d’utiliser le transfert qu’il soit disponible ou non à partir du terminal, et de la même manière quel que soit ce téléphone. Le serveur de téléphonie Asterisk dispose de cette possibilité de transfert au cours d’une communication au travers de commandes DTMF.
Il ne reste plus qu’à autoriser le transfert d’appel au niveau des commandes Dial() associées aux trois numéros de téléphone (555, 556, et 557) du fichier extensions.conf. Pour ce faire, modifiez la fin du fichier 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 l’appelé et l’appelant à transférer l’appel.
Pour tester le transfert, il faut alors établir une communication. Puis, durant la conversation, tapez # sur le poste. A ce moment, le serveur répond en prononçant « transfer ». Saisissez alors le numéro du téléphone de destination.
5.3 Interception d’appel (*8)
L’interception d’appel intervient lorsqu’un téléphone sonne. Elle autorise la récupération de l’appel destiné au poste qui sonne à partir d’un autre poste. Pour cela, il faut que l’intercepté appartienne au groupe d’appel qui correspond au groupe d’interception de l’interceptant.
Pour illustrer cela, on peut par exemple autoriser l’interception du téléphone
[gradsream]
type=friend
host=dynamic
username=ekiga1
secret=toto
pickupgroup=1
[tel2]
type=friend
host=dynamic
username=ekiga2
secret=toto
callgroup=1
Conclusion
Le début de cet article a démontré comment mettre en place simplement une architecture VoIP autour d’un serveur Asterisk. La suite du document a expliqué la configuration de quelques fonctionnalités couramment utilisées. Elles ne révèlent que très partiellement les possibilités du serveur Asterisk qui sont en permanente évolution.
Liens:
- 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
ARTICLE de linux magazine copier en partie sur l’excelent articles D unixgarden,
Quelque petite photos de mon installations.( SUR MES MEUBLES EN carton oreka )


La suite de l’instalation dans un prochain article.