Vous êtes sur la page 1sur 34

COMMENT METTRE EN PLACE UN SYSTEME DE COMMUNICATION

VOIP AVEC ASTERISK

Bonjour,
Aujourd’hui, je vais vous montrez comment installer et
configurer l’outil Asterisk sur un serveur pour pouvoir
rendre possible la communication VoIP entre
périphériques (Ordinateurs portables, Ordinateurs de
bureau, Smartphones, Téléphones IP, …). Mais tout
d’abord,
Qu’est-ce que la VoIP ?
La VoIP (Voice over Internet Protocol, ou Voix sur réseau
IP) est une technique qui permet de communiquer par la
voix ou via des flux multimédias (audio ou vidéo) sur des
réseaux compatibles IP (Internet Protocol) qu’il s’agisse de
réseaux privés ou d’internet.
La VoIP présente de nombreux avantages comme : 
+ La réduction des coûts : des appels, économie de
câblage, de frais de maintenance ;
+ La flexibilité : ajout d’utilisateurs et évolutivité du
réseau plus facile ;
+ L’installation, la configuration et la gestion bien plus
« facile » que celle d’un réseau propriétaire ;
+  Système ouvert et adaptable : possibilité
d’interconnecter des appareils de fabricants et
fournisseurs multiples ;
+ Mobilité et Itinérance des utilisateurs : les appels
peuvent être passés et transférés n’importe où dans le
monde.
Néanmoins, la VoIP peut présenter souvent quelques
inconvénients notamment : la qualité de la communication
(QoS ou qualité du service), et la sécurité. Mais en
définitive, la VoIP s’avère une technologie très populaire et
bénéfique pour les entreprises et les particuliers.
Les principaux protocoles utilisés pour l’établissement des
connexions en VoIP sont : H.323, H.320, SIP, MGCP,
SCCP et IAX (Asterisk). Nous allons nous intéresser à
Asterisk que nous allons mettre en place par la suite, mais
avant,
Qu’est-ce que Asterisk ?
Asterisk est un logiciel libre d’autocommutation de
téléphonie privé (dit PABX, Private Automatic Branch
eXchange)  pour VoIP compatible pour les systèmes
d’exploitation GNU/Linux. Asterisk permet des services
tels que : la messagerie vocale, les files d’attente, les
agents d’appels, les musiques d’attente, les transferts
d’appels, conférences, … Asterisk implémente les
protocoles H.320, H.323, SIP (Session Initiation Protocol)
et un protocole spécifique nommé IAX (Inter-Asterisk
eXchange) qui permet la communication entre des clients
(ordinateurs, téléphones IP,…) et un serveur Asterisk.
D’autres logiciels libres d’autocommutateur téléphonique
privé sont basés sur Asterisk comme Elastix, Trixbox et
XiVO.
Maintenant que vous en savez un peu plus sur la VoIP et
Asterisk, nous allons maintenant entrer dans le vif du sujet.
Configuration du serveur Asterisk  
Notre topologie ressemble à celle-ci :

(Ps : nous allons implémenter notre serveur Asterisk sur


une distribution GNU/Linux en occurrence ici Ubuntu)
Nous débutons notre configuration par l’adressage IP de
notre futur serveur Asterisk
Une fois que nous avons attribué une adresse IP à notre
serveur, nous installons à présent le paquet du logiciel
Asterisk avec la commande « apt-get install asterisk » :

Après l’installation du paquet Asterisk, nous devons à


présent obtenir dans le répertoire nouvellement créé
« /etc/asterisk » les fichiers suivants :

La configuration de notre serveur Asterisk s’articule autour


des fichiers de configurations « /etc/asterisk/sip.conf »
où est enregistré la configuration globale de notre serveur
Asterisk ainsi que (dans notre cas ici) la configuration des
utilisateurs (on pouvait également mettre la configuration
des utilisateurs dans le fichier users.conf par exemple) ,  
« /etc/asterisk/extensions.conf » qui contient la
configuration du plan de numérotation qui sera utilisé par
le serveur pour savoir quelles actions il doit entreprendre
lorsqu’un numéro est composé, on parle également de
DialPlan et enfin le fichier
« /etc/asterisk/voicemail.conf » qui quant à lui est
réservé à la configuration de la messagerie vocale des
utilisateurs, ainsi ce fichier permet que l’on puisse laisser
des messages aux utilisateurs lorsqu’ils sont indisponibles.
(Ps : on peut également pour d’autres besoins avoir à
modifier les fichiers « /etc/asterisk/meetme.conf » si l’on
souhaite faire des salles de conférences, ou encore le
fichier « /etc/asterisk/moh.conf » pour la configuration
des musiques d’attente)
Avant de modifier les fichiers de configurations qui nous
intéressent, nous créons des sauvegardes de leur état
d’origine (par simple précaution 😉) 

Ensuite, nous configurons le fichier sip.conf avec la


commande « nano  /etc/asterisk/sip.conf » :
Dans la rubrique [general], nous définissons tout d’abord
le context, qui représente le nom du groupe constitué des
comptes utilisateurs pouvant effectuer des appels et en
recevoir ;  l’option allowguest est pour la prise en compte
de n’importe quel appel entrant SIP sans authentification
ou autre restriction pour des raisons de sécurité la valeur
donnée à cette option doit être « non » ; l’option
allowoverlap permet la modification dynamique des
paramètres ; bindport représente le port d’écoute dans
notre cas 5060 qui est le port UDP (User Datagram
Protocol) du protocole SIP (Session Initiation Protocol) ;
l’option bindaddr représente l’adresse IP de l’interface sur
laquelle le serveur Asterisk va « écouter » le trafic, la
valeur 0.0.0.0 indique que le Serveur va écouter sur toutes
les interfaces ; srvlookup permet le support des
enregistrements SRV (Service Ressource Records) pour
les appels sortants ; l’option disallow  avec la valeur all
permet d’interdire tous les codecs ; l’option allow avec la
valeur ulaw permet quant à elle d’autoriser le codec ulaw ;
alwaysauthreject doit être activé avec la valeur « oui »
pour permettre de rejeter toutes les requêtes
d’authentification de type « Brute-force » sur des comptes
utilisateurs existants ; l’option canreinvite sert a indiquer à
notre serveur Asterisk si il doit permettre le routage de flux
RTP (Real-time Transport Protocol) directement entre les
postes lorsque la valeur de cette option est à « non », tous
les flux multimédias passent par le serveur Asterisk ; nat
permet d’indiquer si l’utilisateur se trouve derrière un
réseau NAT (Network Address Translation) ; l’option
session-timers définit le mode de fonctionnement et de
prise en compte des sessions temporaires lors d’appels
SIP entrants ou sortants ; enfin l’option localnet permet 
d’indiquer l’adresse réseau ainsi que le masque de sous
réseau dans lequel se trouvent les utilisateurs.
Intéressons nous à présent à la seconde partie du fichier
« etc/asterisk/sip.conf », il s’agit en fait de la
configuration des comptes utilisateurs. Nous avons dans
notre cas défini deux comptes utilisateurs : [5001] et [5002]
qui représente respectivement le numéro SIP 5001 et le
numéro SIP 5002. L’option type avec la valeur friend
représente un utilisateur pouvant effectuer des appels
entrants et sortants.
(Ps : l’option type avec la valeur peer ne permet que les
appels entrants et avec la valeur user ne permet que les
appels sortants) 
L’option host permet d’indiquer le type de configuration
réseau de l’hôte : « dynamic » pour signifier qu’il dispose
d’une adresse IP dynamique, ou alors une adresse IP fixe
représentant l’adresse IP de l’utilisateur ; l’option secret
permet d’indiquer le mot de passe du compte utilisateur et
enfin l’option context désigne le groupe contenant les
utilisateurs pouvant communiquer entre eux. 
(Ps : on pouvait également rajouter les options fullname et
username pour désigner le nom complet et le nom
utilisateur du compte)
Après avoir configuré le fichier « /etc/asterisk/sip.conf »,
intéressons nous à présent au fichier
« /etc/asterisk/extensions.conf » :
Ce fichier regroupe le DialPlan, il est utilisé pour router les
appels vers un utilisateur ou vers sa messagerie par
exemple, les entrées dans ce fichier sont appelées des
extensions et se composent comme suit : {exten =>
numéro,priorité,application()} où le mot-clé exten
marque le début d’une extension, le numéro correspond
au numéro de téléphone pris en compte par l’extension, la
priorité définie l’ordre des actions de l’extension et enfin
l’application définit ce que le serveur doit faire. Ainsi pour
configurer notre fichier « /etc/asterisk/extensions.conf »
nous aurons tout en haut du fichier le context définit
précédemment (dans notre cas, il s’agit de
[jacquesgoueth]), ensuite, nous allons décrire un
ensemble d’actions à entreprendre par le serveur Asterisk
à la réception d’un appel provenant d’un numéro donné.
Nous aurons donc dans notre cas, pour chaque compte
utilisateur : en priorité (1)=Answer(), pour demander au
serveur de décrocher l’appel ; en priorité (2)=
Dial(type/identifiant,timeout), pour permettre de
composer un numéro, avec un délai d’attente en cas de
non réponse pour arrêter l’appel ;  en priorité
(3)=Playback(sound-file) qui permet de jouer un son
donné ; en priorité (4)=VoiceMail(user@mailcontext)
pour permettre de joindre la messagerie de l’utilisateur
spécifié et enfin en priorité (5)=HangUp() pour  permettre
de raccrocher un appel.
(Ps : on aurait également pu ajouter les options
SetMusicOnHold(class) pour permettre de jouer une
musique d’attente, l’option
Goto(contexte,extension,priorité) pour permettre de se
rendre à un contexte précis, à une certaine extension, à
une certaine priorité... il faut noter également qu’il existe
encore d’autres options.)
Poursuivons la configuration de notre fichier
« /etc/asterisk/extensions.conf » en définissant à
présent grâce à l’option
VoiceMailMain(user@mailcontext) : les numéros
spéciaux 8001 et 8002 qui seront utilisés respectivement
par le compte 5001 et le compte 5002 pour pouvoir
consulter leur messagerie vocale.
Maintenant que notre fichier
« /etc/asterisk/extensions.conf » est configuré, il ne
nous reste plus qu’a modifier le fichier
« /etc/asterisk/voicemail.conf » :
Dans ce fichier, nous  définissons les mots de passe des
utilisateurs (en fonction de leur numéro de téléphone) qui
leur donneront accès à leur messagerie vocale. 
Une fois que les fichiers sip.conf, extensions.conf et
voicemail.conf sont configurés, nous devons à présent
démarrer (ou redémarrer) le serveur Asterisk pour ce faire,
nous lançons tout d’abord la console Asterisk avec à la
commande « asterisk –r », 

Puis nous entrons la commande « reload » pour effectuer


le redémarrage du serveur Asterisk et la prise en compte
de toutes les modifications apportées :
 
Notre serveur Asterisk est à présent démarré et prêt à
accueillir des communications en VoIP entre clients. Nous
allons tester le bon fonctionnement de notre serveur en
effectuant un appel entre deux clients : un ordinateur de
bureau muni d’un Softphone et un Smartphone. Mais
avant de pouvoir effectuer le moindre appel, les futurs
clients doivent également être configurés et disposés d’un
compte SIP.
Configuration du Softphone
Un Softphone est un logiciel utilisé pour faire de la
téléphonie via VoIP depuis un ordinateur, dans notre cas,
le Softphone utilisé par notre client est X-Lite. 
Pour configurer notre Softphone X-Lite, nous nous y
prenons comme suit :
Se rendre dans le Softphone X-Lite au niveau de l’option
« Softphone »,
 
Puis, aller dans la rubrique « Account Settings » :
Une fois dans l’option « Account Settings », plus
précisément dans l’onglet « Account », nous devons
entrer le nom du compte (dans notre cas 5001), ainsi que
l’identifiant du compte utilisateur, l’adresse IP du serveur
Asterisk (192.168.43.210) et le mot de passe. Il faut
ensuite, cliquer sur le bouton « OK » pour terminer la
configuration.
Une fois le Softphone configuré et après un court laps de
temps, si les paramètres ont été correctement renseignés
et si l’adresse IP du serveur Asterisk est valide, nous
recevons une notification du logiciel X-Lite qui nous
indique que le statut de notre Softphone est « actif » donc
nous pouvons à présent émettre et recevoir des appels.   

A présent, nous allons configurer de même notre client


Smartphone.
Configuration du Smartphone
Pour configurer notre Smartphone pour qu’il puisse
émettre des appels VoIP, on peut avoir recours à certaines
applications comme CSipSimple ou Zoiper, mais dans
notre cas ici, nous n’en aurons pas besoin, ainsi, nous
débutons la configuration en nous rendant dans les
paramètres d’appel ; pour ce faire, on appuie sur l’icône du
« téléphone »,
Puis, nous nous rendons dans l’option « Paramètres » :
Ensuite, dans l’onglet « Appel Internet » :
Puis, il nous faut ajouter un compte SIP, donc, nous nous
rendons dans l’option « Comptes »,
Par la suite, nous appuyons sur le bouton « AJOUTER
UN COMPTE » :
Puis, il nous faut remplir un ensemble de champs dans
lesquels nous devons renseigner entre autres l’adresse IP
du serveur Asterisk, notre nom d’utilisateur (ou numéro de
téléphone) et notre mot de passe.
Nous remplissons donc, un à un chacun des champs :
Une fois tous les champs remplis, il ne nous reste plus
qu’a appuyer sur le bouton « ENREGISTRER », pour
finaliser l’opération de création du compte SIP de notre
Smartphone.
Maintenant que notre Smartphone est configuré pour
pouvoir effectuer de la VoIP ainsi que notre Softphone X-
Lite, nous pouvons à présent, effectuer un appel.   
  
Par exemple, si le client Smartphone (dont le numéro de
téléphone est le 5002) désire émettre un appel vers le
client Softphone (dont le numéro de téléphone est le
5001), il suffit au client Smartphone de composer le
numéro de son destinataire :
Après un court laps de temps, au niveau du Softphone,
nous nous rendons compte que l’appel du client
Smartphone (5002) est bien reçu, comme le montre la
capture suivante.  

  
Ensuite, après que le client Softphone a décroché l’appel
du client Smartphone, la communication est bien établie
entre les deux correspondants qui peuvent à présent
effectuer leur échange en toute tranquillité. 

(Ps : on peut au niveau de la console, lister toutes les


entités (Softphone, Téléphone IP, Smartphone, …) SIP
connectées au serveur Asterisk grâce à la commande
« sip show peers ».)
A présent, vous savez comment configurer un serveur
Asterisk pour pouvoir permettre de la communication
téléphonique de type VoIP sur un réseau IP donné à partir
de périphériques (Softphone, Smartphone, Téléphone IP,
…) configurés à cet effet.
Merci d’avoir suivi le tutoriel jusqu’à la fin.
A très bientôt !!!  

Vous aimerez peut-être aussi