Installation Astérisk & Configuration SVI
Introduction
La VoIP (Voice over IP) est une technique qui permet de communiquer par la voix sur des réseaux compatibles IP. Cette technologie s’est développée très rapidement et présente de nombreux avantages entres autres la réduction des coûts de communication et le développement d’applications sophistiquées. C’est ainsi que des systèmes de ToIP (Telephony over IP) open source ont été développée comme « asterik ».
Le logiciel « asterisk » est un PBX d’un genre nouveau appelé IPBX, il remplit les mêmes fonctions qu’un PBX professionnel de haut niveau, il suffit simplement de l’installer sur un ordinateur, librement et gratuitement. Parmi ses nombreuses fonctionnalités « asterisk » offre la possibilité de configurer un serveur vocal interactif (SVI) sur une machine (PC ou serveur) que nous allons exposer avant de terminer se post.
1. INSTALLATION ASTERISK
Cette manipulation peut se faire sur plusieurs versions de Linux mais nous le faisons sous Ubuntu 11.10 pour le besoin de ce projet.
On dispose deux modes d’installation d’Astérisk : mode paquet (fichier avec extension .tar.gz et mode commande).
- Installation en mode Paquet
Cette méthode d’installation demande une bonne maîtrise de l’interpréteur de command.
Tout d’abords pour cette technique il faut télécharger les fichiers suivants:
Astérisk : asterisk 1x.xx.tar.gz et Libpri : libpri-1.x.xx.tar.gz .
Voici un lien permettant d’obtenir ces sources : http://www.asterisk.org/downloads .
Une fois que le téléchargement est fait alors on peut passer à l’installation des paquets.
Dans un premier temps il faut installer les dépendances (installation des pré-requis). Ce sont par exemple l’installation d’un serveur de temps NTP les packages comme
gcc, bison, zlibc,openssl, ncurses* et make.
a) Copie des sources dans /usr/src/asterisk-rep
b) Installation « libpri »
# cd /usr/src/asterisk-rep
#tar zxvf libpri-1.x.xx.tar.gz
#cd libpri-1.x.xx
#make clean
#make
#make install
c) Installation asterisk
# cd ..
# tar zxvf asterisk-1.4.21.2.tar.gz
# cd asterisk-1.4.21.2.
# make clean
# ./configure
# make menuselect
# make
#make install
# make samples
d) Démarrage du serveur asterisk
#asterisk –c
B. Installation en mode Commande
- Sur une distribution de type RedHat : # yum install asterisk
- Sur une distribution de type Debian : #apt-get install asterisk
Un peu de lecture c'est pas méchant
DEFINITION SERVEUR VOCAL INTERACTIF (SVI ou SVR)
Un serveur vocal interactif ou SVI est un système informatique qui prend en charge les appels entrants à l’aide de messages vocaux enregistrés ou de synthèse vocale.
Le système est interactif, car l’appelant doit interagir avec le serveur par la voix ou par l’utilisation des touches de son téléphone.
Le serveur vocal interactif peut orienter l’utilisateur vers un opérateur humain ou traiter entièrement la demande (demande de solde bancaire par exemple).
Il existe deux modes de mise en œuvre d’un serveur vocal interactive :
- SVI EN UTILISANT LES TOUCHES DTMF DU TELEPHONE
Ce système moderne a été développé par la firme américaine Bell. Le but recherché était de définir un système de numérotation rapide pouvant être utilisé par les appareils numériques (ordinateurs, centraux numériques). La signalisation DTMF est employée pour permettre à l’utilisateur de transmettre des ordres au SVI. Avec cette technique, les touches du clavier téléphonique sont identifiées par leur fréquence en mode DTMF : Dual-Tone Multi Frequency, qui permet l’émission de tonalités multi-Fréquences destinées à la signalisation sur le réseau analogique.
- SVI EN MODE RECONNAISSANCE VOCAL
Commander un automate en parlant au lieu d’appuyer sur des touches : c’est l’objectif de la reconnaissance vocale. Cette fonction permet de rendre les applications plus interactives. La reconnaissance automatique de la parole en langage naturel s'effectue par repérage des mots clés. Cette technologie permet de remplacer les interfaces DTMF.
Avec la reconnaissance vocale, c’est l’utilisateur qui impose ses choix de navigation au système. La reconnaissance vocale permet une plus grande souplesse pour l’utilisateur mais implique un coût plus élevé pour la Configuration du serveur vocal : mémoire, applications, espaces disques, processeurs, etc.… .
Configuration SVI avec DTMF
Dans la configuration d’un SVI(serveur vocal interactif) on ne touche que deux fichiers qui sont dans le répertoire /etc/asterisk : les fichiers sip.conf et extensions.conf.
- Ø /etc/asterisk/sip.conf
Le fichier sip.conf est utilisé pour configurer les login 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 « contexte ».
- Contexte général
Le contexte général définit le contexte par défaut des comptes créés, les paramètres TCP/IP du serveur, le langage des messages vocaux.
Voici un exemple opérationnel :
[general]
context=local ; context par défaut pour les utilisateurs
bindport=5060 ; port UDP du protocole SIP
bindaddr=0.0.0.0; adresse IP de l’interface sur lequel le serveur va écouter le
; trafic 0.0.0.0 pour toutes les interfaces
language=fr ; messages vocaux en français
- Contexte utilisateur
D’autres contextes sont utilisés pour créer des comptes utilisateur. Les paramètres des comptes peuvent être: le login, le mot de passe contexte, ce paramètre permet de gagner de la souplesse dans le routage des appels mailbox, ce paramètre est utile pour la messagerie vocale.
C’est avec les paramètres nat et cannreinvite que l’on peut contrer le problème du routage NAT.
secret=azerty ; obligatoire ; mot de passe SIP
callerid="200" <200> ; facultatif ; nom affiche et numéro affiche sur le telephone de l'appeler
context=local ; obligatoire les appels que fait l'utilisateur seront gérés dans le context "local" du fichier ; extension.conf
mailbox=200@default ; facultatif ; compte de messagerie vocal, voir ; voicemail.conf
type=friend ; obligatoire ; autorise les appels entrant et sortant
host=dynamic ; obligatoire adresse IP du client
nat=yes ;facultatif résoud le problème de l'enregistrement SIP ; quand le téléphone est derrière un NAT
canreinvite=yes ; facultatif résoud le problème du flux RTP quand le ; telephone est derrière NAT
- Contexte pour les passerelles
Il existe différentes passerelles. Ces passerelles permettent les communications vers le réseau France Télécom analogique ou numérique mais aussi GSM. Pour pouvoir fonctionner, ces passerelles doivent avoir des comptes. Ces comptes se configurent de la même façon que les comptes utilisateurs,
exemple :
[SPA-3102-PSTN]
secret=azerty
context=local
type=friend
- Ø /etc/asterisk/extensions.conf
Le fichier extensions.conf est utilisé pour router les appels vers un utilisateur ou vers sa messagerie. Par exemple, les appels provenant de comptes SIP dont le contexte est « local » seront traités dans l’extension « local » du fichier extensions.conf.
Enregistrement des Comptes SIP : résultat au niveau du serveur
Pour la construction d’un serveur vocal interactif on a besoin d’utiliser un certains nombres de fonctions voici une liste non exhaustive.
Answer: pour répondre à un appel.
Read: pour lire une variable.
PlayBack: pour la lecture d’un fichier son.
BackGround: pour la lecture de son en tâche de fond dans l’attente de la saisie d’une touche du téléphone.
Goto() : se rendre à une priorité d’extension précise d’un contexte suivant la condition posé.
Record() : permet d’enregistrer un son au format .wav ou .gsm.
La commande de conversion des fichiers (.wav en .gsm) est : sox
Hangup() : permet de raccrocher le canal en cour .
Echo() : permet d’émettre un écho à l’interlocuteur.
Dial() : application fondamentale qui fait sonner l’extension passé en paramètre.
Congestion() : permet de signaler qu’un canal est encombré, jusqu'au raccrochage. Cette fonction ne diffuse pas la tonalité d’encombrement. Pour cela il faut utiliser l’application Playtones (congestion) où congestion est un fichier son joué.
La fonction Busy() joue le même rôle.
CONCLUSION
Le SVI est devenu un outil indispensable pour la visibilité et l’accès d’informations sur les possibilités, services offerts par les entreprises. Le document explique la configuration d’un serveur vocal interactif. Elles ne révèlent que très partiellement les possibilités du serveur Astérisk qui sont en permanentes évolution.
[ouverture]
exten=>210,1,Goto(serveurvocal,s,1); on se cale sur le menu serveurvocal
[serveurvocal]
exten => s,1, Background(bienvenu) ; Lecture en arrière plan(Message de bienvenu)
exten => s,2, Background(choix) ; Lecture du Menu du serveur vocal pour le choix de la langue
exten => s,3, WaitExten
exten => 1,1, Goto(Orange,s,1) ; service client Orange
exten => 2,1, Goto(Tigo,s,1) ; service client tigo
exten => *,1, Goto(serveurvocal,s,1) ; Retour au Menu du serveur vocal
exten => i,1, Goto(serveurvocal,s,1) ; s'il tape une touche invalide
exten => t,1, Goto(serveurvocal,s,1) ; Si ResponseTimeout dépassé
[Orange]
exten => s,1, Background(Orange) ; Lecture du Menu du serveur vocal message d'orange
exten => s,2, WaitExten
exten => *,1, Goto(Orange,s,1) ; Retour au Menu du serveur vocal
exten => t,1, Goto(Orange,s,1) ; Si ResponseTimeout dépassé retour
[Tigo]
exten => s,1, Background(Tigo) ; Lecture du Menu du serveur vocal message TIGO
exten => s,2, WaitExten
exten => *,1, Goto(Tigo,s,1) ; Retour au Menu du serveur vocal
exten => t,1, Goto(Tigo,s,1) ; Si ResponseTimeout dépassé retour
A découvrir aussi
Inscrivez-vous au blog
Soyez prévenu par email des prochaines mises à jour
Rejoignez les 7 autres membres