PRESENTATION D ASTERISK Asterisk a été inventé en 1999 par Mark Spencer. Son objectif était alors de fournir à Linux un commutateur téléphonique complet et totalement libre. Aujourd hui Asterisk est un IPBX (Internet Private Branch exchange) d une rare puissance et souplesse, capable de gérer la téléphonie analogique, mais surtout, transiter de la voix sur IP. La VoIP avec Asterisk passe entre autre par la prise en charge d un protocole standard, ouvert et très largement utilisé, le SIP (Session Initiation Protocol). SIP qui est un protocole très proche d HTTP qui n est pas limité à la seule voix mais qui prend aussi en charge la vidéo et la messagerie instantanée. D un point de vue fonctionnalité, Asterisk permet tout ce que l on peut attendre d un PABX moderne: La gestion des postes téléphonique sur IP locaux. Il peut s agir de téléphones physiques mais aussi logiciels (ou SoftPhone) comme Ekiga, Zoiper ou X-lite. Boîtes vocales, transfert d appel, parking d appel, visiophonie, conférence, mise en attente etc Nous allons déjà voir dans ce tutoriel comment installer Asterisk et le configurer pour passer un premier appel entre deux utilisateurs. PRESENTATION DE DAHDI DAHDI pour Digium Asterisk Hardware Device Interface est un composant lié à Asterisk pour gérer la communication entre Asterisk et les différents types de cartes physique que vous pouvez connecter à votre serveur. Et la vous vous posez la question : Quel est donc le rapport entre ce composant et la création de salle de conférence? La raison est la suivante, il est impossible d installer MeetMe si DAHDI n est pas installé sur votre serveur Asterisk! FONCTIONNALITE D ASTERISK INSTALLATION Implémentation d Asterisk Installation d Asterisk et de Dahdi Il y a deux façons d installer Asterisk sur une distribution à base de Debian ou RedHat, la première via le gestionnaire de paquet de Debian ou RedHat, la seconde en compilant directement la dernière version d Asterisk. Nous allons dans ce tutoriel installer Asterisk en compilant ses sources pour pouvoir disposer de la dernière version d Asterisk. 1
Préparation à l installation L installation d IPBX asterisk se fait selon les étapes suivantes : 1. Mise à jour du serveur root@abdelrahim:~# apt-get update && apt-get upgrade NB : Après les mises à jour, il faudrait redémarrer la machine pour que les nouvelles mises à jour soient prises en compte. 2. Installation de dépendance root@abdelrahim:~# apt-get install build-essential libxml2-dev libncurses5-dev linux-headers-`uname -r` libsqlite3-dev libssl-dev root@abdelrahim:~# apt-get install asterisk-prompt-fr-proformatique 3. Installation de DAHDI Téléchargement du paquet Dahdi depuis la source root@abdelrahim:~# wget http://downloads.asterisk.org/pub/telephony/dahdi-linuxcomplete/releases/dahdi-linux-complete-2.6.1+2.6.1.tar.gz Décompression du paquet Dahdi dans /usr/local/ root@abdelrahim:~# tar -xzvf dahdi-linux-complete-2.6.1+2.6.1.tar.gz -C /usr/local/ Compilation Pour la compilation, on doit d abord se placer dans le répertoire dans lequel on a désarchiver Dahdi pour le faire. Cela se fait comme suit : Déplacement dans /usr/local/dahdi-linux-complete-2.6.1+2.6.1/ root@abdelrahim:~# cd /usr/local/dahdi-linux-complete-2.6.1+2.6.1/ Compilation root@abdelrahim:/usr/local/dahdi-linux-complete-2.6.1+2.6.1# make all Installation root@abdelrahim:/usr/local/dahdi-linux-complete-2.6.1+2.6.1# make install 2
Cette image montre que Dahdi s est bien installé. Configuration de Dahdi root@abdelrahim:/usr/local/dahdi-linux-complete-2.6.1+2.6.1# make config Démarrage de Dahdi 3. Téléchargement du paquet Asterisk Téléchargement du paquet Asterisk depuis la source. root@abdelrahim:~# wget http://downloads.asterisk.org/pub/telephony/asterisk/releases/asterisk-10.7.0.tar.gz NB : Cette commande doit être sur la même ligne du terminal. Désarchivage du paquet asterisk dans /usr/local/ root@abdelrahim:~# tar -xzvf asterisk-10.7.0.tar.gz -C /usr/local/ Configuration Pour le reste d installation, il est imperative qu on se positionne dans le dossier asterisk qu on a décompressé dans /usr/local/. Ceci se fait comme suit : o Déplacement dans le dossier asterisk root@abdelrahim:~# cd /usr/local/asterisk-10.7.0/ o Configuration d asterisk root@abdelrahim:/usr/local/asterisk-10.7.0#./configure 3
Cette capture montre qu asterisk s est bien configurer. Choix des menus (Cette étape est optionelle) root@abdelrahim:/usr/local/asterisk-10.7.0# make menuselect 4
On clique sur Application, parce qu on veuille choisir l application qui gère la boite vocale et celle qui gère la conférence. 5
On constate que l application app_voicemail est cochée. Compilation root@abdelrahim:/usr/local/asterisk-10.7.0# make Cette capture montre que la compilation s est bien effectuée. Installation 6
Cette image montre que l installation s est bien déroulée. Installation des exemples de fichiers de configuration d asterisk root@abdelrahim:/usr/local/asterisk-10.7.0# make samples Installation du demon de demurrage d Asterisk Démarrage d Asterisk On constate que le serveur est fonctionnel 7
Accès au console d Asterisk D après cette console on voit que la version d Asterisk est bien celle qu on a installé, ainsi que le nom du créateur Mark Spencer. Configuration d asterisk Création de comptes SIP Le fichier sip.conf est utilisé pour configurer les logins et mots de passe de tous les périphériques. Ces périphériques peuvent être des téléphones, des passerelles analogiques ou encore d autres serveurs. Ce fichier est organisé en différentes zones appelées «context». Les comptes SIP se créent dans le fichier /etc/asterisk/sip.conf Le context general définit : Voici un exemple opérationnel : Contexte Générale ; Contexte par défaut pour les utilisateurs ; Adresse IP de l interface sur lequel le serveur va écouter le trafic ; Port UDP du protocole SIP ; Messages vocaux en français ; Protocole de transport UDP 8
Comptes SIP ; Obligatoire ; login SIP ; obligatoire ; mot de passe SIP ; obligatoire ; autorise les appels entrant et sortant ; obligatoire ; adresse IP du client ; facultatif ; nom affiche et numéro affiche sur le ; telephone de l'appeler ; obligatoire ; les appels que fait l'utilisateur ; seront gérés dans le context "local" du fichier ; extension.conf ; facultatif ; compte de messagerie vocal, voir ; voicemail.conf ; facultatif ; résoud le pb de l'enregistrement SIP ; quand le téléphone est derrière un NAT ; facultatif ; permet de préciser les codecs ; facultatif ; résoud le problème du flux RTP quand le ; telephone est derrière un NAT Extensions de Comptes SIP Le fichier extension.conf est utilisé pour router les appels vers un utilisateur ou vers sa messagerie. Par exemple, les appels provenant de comptes SIP dont le context est «local» seront traités dans l extension «local» du fichier extension.conf. Les instructions exten sont utilisées comme suit : Numéro appelé Ordre d instruction Action effectuée Exten => 2021, 1, Dial(SIP/abdelrahim 10) Temps en seconde avant de passer à l instruction suivante (en fonction de l action) Ainsi, l attribution de numéros aux comptes se fait dans le fichier extensions.conf Cela veut dire que le compte SIP à pour numéro 2021 9
Routage d appel vers un groupe d utilisateurs Dans l exemple suivant, les appels arrivant sur le serveur Asterisk à destination du numéro 2021 sont envoyés vers le téléphone d abdelrahim puis vers le téléphone de halima. Remarque : l instruction Goto() permet de renvoyer l appel où l on veut dans le fichier extension.conf. Dans notre cas, l appel basculera du téléphone de halima au téléphone d abdelrahim jusqu à ce qu un des deux décroche. Routage vers plusieurs téléphones en même temps L exemple suivant montre comment faire sonner deux téléphones en même temps. Quand on compose le 5050, les téléphones d abdelbassit et de moustapha sonnent. Accès à la messagerie vocale Voici deux exemples d accès à la messagerie. Dans le premier cas, l utilisateur doit composer sur son clavier numérique son login et son code pin. Dans le second exemple, le login correspond au numéro de l appelant. L utilisateur doit juste composer son code pin. Parking d appel 10
Pour parquer un appel, on tape l extension 700, puis le serveur nous communiquera un numéro compris dans la plage 701-720, nous permettant de récupérer l appel dans un autre endroit du réseau. Interception d appel Visiophonie 11