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 !!!
Merci pour le tuto Admin.... Je l'utilise et ça marche parfaitement. J'aimerais savoir s'il y a un serveur comme asterisk qui permet de faire la VoIP et Messagerie en même temps; car j'utilise asterisk pour la VoIP et OpenFire pour la messagerie, ce qui me fait deux serveurs. J'aimerais pouvoir configurer les deux sur même serveur. Aidez moi SVP
RépondreSupprimerBonjour Cyrille, tu peux utiliser Elastix qui permet de faire de la VoIP, de la messagerie électronique et de la messagerie instantanée en même temps. Et en plus OpenFire est intégré dans Elastix qui l'utilise pour faire de la messagerie instantanée.
RépondreSupprimerThanks Admin....
RépondreSupprimerBonjour et grang Merci encor pour ces Tuto.
RépondreSupprimerBonjour je veux mettre en place un réseaux pour la voIP entre 3 machines
RépondreSupprimer- Machine virtuelle qui sert comme serveur sur laquelle j'ai installé et configuré asterisk
- 2 Machines physiques connectées entre elles à travers un câble réseaux qui servent comme deux client sur les quelles j'ai installé x-lite
SVP y-a-t-il quelqu'un qui peut m'aider a mettre en place ce réseaux
Bonjour
RépondreSupprimerJ’aimerais savoir comment avoir le domain du server ici : 192.168.43.210
Bonjour Dg,
SupprimerLe domain du serveur : 192.168.43.210, c'est l'adresse IP du serveur sur lequel le service Asterisk est installé ou configuré. Raison pour laquelle, dans notre cas, c'est tout simplement 192.168.43.210.
Monjour et merci pour le tuto il fonctionne bien
RépondreSupprimersvp comment configurer mon serveur pour qu'il prenne en compte les appelles diffusifs (mode conférence)??
Merci
Bonjour,
SupprimerPour cela, il faudra un tout petit peut changer la configuration des fichiers meetme.conf et extensions.conf comme suit :
par exemple, dans meetme.conf on va ajouter : conf => room1 et enfin dans extensions.conf on va également ajouter
exten => 300,1,Meetme,room1 sur tous les utilisateurs qui doivent faire partie de la conférence.
bonjour si votre problème n'a pas encore été résolu vous pouvez procéder comme suite:
RépondreSupprimerConfigurez votre serveur comme Monsieur jacques l'a spécifier plus haut (création des comptes d'users configurations de la boite vocal)
Une fois que cela est fait interconnecter vos trois machines (serveur et les deux clients) installez x-lite dans vos client et configurez le tout en spécifiant l'adresse du serveur astérisk au niveau du domaine une fois que c'est fait si vous n'avez pas commis d'erreur x-lite signalera qu'il est connecter au serveur et le tout sera joué.
merci beaucoup je me demandai s i l est possible de faire aussi de la messagerie a l interieur
RépondreSupprimerBonjour
RépondreSupprimerMerci beaucoup pour votre tuto.
J'aimerai savoir si cela est possible d'installer des communications entre deux boites qui ne sont pas dans le même pays ??
Bonjour, avec ce tuto pouvons nous passer des appels depuis un autre pays ou ce tuto ne sert que pour les réseaux locaux ?
RépondreSupprimerBonjour, un grand merci d'avoir posté ce tuto sur ce site. Cependant, j'aimerais savoir comment on fait pour :
RépondreSupprimer- un appel de groupe,
- une vidéo de conférence
- et mettre certains utilisateurs en attente.
Alors, quelqu'un pourrait-il m'orienter svp? J'ai un projet de mémoire à travailler dessus. Cordialement.