VoIP? Asterisk ? Qu’est ce que c’est ?
Le VoIP pour Voice over IP, est une technique qui permet de communiquer par la voix sur des réseaux compatibles IP, qu’il s’agisse de réseaux privés ou d’Internet, filaire (cable/ADSL/optique) ou non (satellite, wifi, GSM) . Cette technologie est notamment utilisée pour prendre en charge le service de téléphonie sur IP (« ToIP » pour Telephony over Internet Protocol).
Asterisk permet, entre autres, la messagerie vocale, les files d’attente, les musiques, …
Il est possible également d’ajouter l’utilisation des conférences par le biais de l’installation de modules supplémentaires .
Passons maintenant dans le vif du sujet:
Après avoir installé notre distribution Linux (ici Debian 6.0.3) dans les règles de l’art, nous allons maintenant nous attaqué à la première partie de tutoriel.
Avant toute chose, il faut installer Asterisk sur notre Debian :
# apt-get install asterisk
Si l’on souhaite avoir en plus d’asterisk, l’installation de la langue française:
# apt-get install asterisk-prompt-fr-proformatique
Nous devons maintenant autoriser le démarrage du service et ainsi terminer l’installation.
Modifions ce dernier à l’aide d’un éditeur de texte :
# nano /etc/default/asterisk
Modifions le champ : RUNASTERISK=yes
Occupons-nous à présent de la configuration des différents fichiers qui se trouvent dans /etc/asterisk (configuration de base, nous pouvons faire beaucoup plus). Il va falloir modifier 3 fichiers : sip.conf, extension.conf et voicemail.conf.
sip.conf va servir pour configurer les logins et mots de passe de tous les périphériques.
Ce fichier est organisé en différentes zones appelées « context ».
On supprime l’entièreté du fichier et on ajoute:

bindport=5060 correspond au port UDP du protocole SIP
bindaddr correspond à l’adresse IP de l’interface sur lequel le serveur va écouter le trafic (0.0.0.0 pour toutes les interfaces)
language=fr pour avoir les messages vocaux en français
Imaginons maintenant que nous ayons un utilisateur John, à la suite du fichier, nous allonsq ajouter:
[John]
secret=motdepasse ; le mot de passe est obligatoire
context=local ; obligatoire, l'extension local gère les appels de l'utilisateur
[email protected] ; numéro de la messagerie
type= friend ; obligatoire, autorise les appels entrants et sortants
host=dynamic ; obligatoire
disallow=all ; Il s'agit des codecs, toujours mettre le disallow avant
allow=gsm
allow=ulaw
allow=alaw
On peut alors faire de la même manière pour un utilisateur qu’on appellera par exemple Laurent.
Ce fichier est utilisé pour router les appels vers un utilisateur ou vers sa messagerie.
Dans la partie [local], on va rajouter:
exten => 200, 1, Dial(SIP/John, 10)
Les appels arrivants sur le serveur à destination du numéro 200 sont envoyés vers le téléphone de John pendant 10 secondes (même raisonnement pour Laurent).
exten => 200, 2, VoiceMail([email protected])
Puis sont envoyés sur la messagerie de John, le @default n’est pas obligatoire ici.
exten => 200,3,PlayBack(Vm-Goodbye) ;goodbye
exten => 200,4,Wait(2)
exten => 200,5,HangUp()
exten => 500, 1, VoiceMailMain
Le numéro 500 permet de vérifier sa messagerie vocale.
On procède de la même manière pour Laurent.
Dans la partie [default]:
200 => password, John
201 => tototata, Laurent
Le fichier voicemail.conf permet de configurer la messagerie vocale d’Asterisk.

Il ne faut pas oublier de redémarrer le service afin de prendre en compte les changements:
# /etc/init.d/asterisk restart
Pour vérifier la configuration et l’état des téléphones, nous utiliserons la commande suivante :
# asterisk –r (ou alors, rasterisk)
*CLI> sip show peers
Un trunk SIP est une connexion SIP faite entre 2 serveurs SIP pour faire passer des appels entre les téléphones liés à ces serveurs.
Sur le premier serveur, nous allons rajouter un utilisateur dans le fichier sip.conf comme nous l’avons fait pour John et Laurent :
[trunk_1_vers_2]
type=friend
secret=test
context=local
host=dynamic
disallow=all
allow=ulaw
insecure=port,invite
On redémarre:
# /etc/init.d/asterisk restart
Pour vérifier que la configuration est bonne, nous allons afficher les différents utilisateurs enregistrés à l’aide de cette commande :
# rasterisk
*CLI> sip show peers
On doit normalement voir cette ligne:
Name/username Host Dyn Nat ACL Port Status
trunk_1_vers_2 IpDuServeur1 D 5060 Unmonitored
Sur le 2ème serveur, nous allons faire en sorte que ce serveur s’enregistre. On ajoute la ligne suivante dans le fichier sip.conf du 2ème serveur (dans local) :
register => trunk_1_vers_2:[email protected]IpDuServeur2
Avec cette ligne, le serveur 2 va s’enregistrer sur le serveur 1 avec le login trunk_1_vers_2 et le mot de passe test.
On va également rajouter une ligne dans le fichier extensions.conf du serveur 1:
exten => _2XXX,1,Dial(SIP/trunk_1_vers_2/${EXTEN})
Ainsi grâce à cette ligne supplémentaire, les utilisateurs enregistrés sur le premier serveur pourront passer des appels à destinations des utilisateurs du 2ème serveur (mais pas l’inverse, pour que ça soit possible, il va falloir faire pareil sur le 2ème serveur).
On redémarre:
# /etc/init.d/asterisk restart
Nous testons également que la configuration est correcte en affichant l’état de la ligne :
# rasterisk
*CLI> sip show peers
X-Lite est un softphone comme il en existe beaucoup. Il est gratuit et gère les appels vidéo.
Téléchargeable ici : http://www.counterpath.com/x-lite.html
On crée d’abord un compte avec comme IP dans Domain celle du notre serveur.
L’user ID ainsi que le Password correspondent à ceux choisis dans la configuration du fichier sip.conf.