Aides Experts

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).

 

  1.      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
  2. MISE EN ŒUVRE DU SVI
 

 

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

Quelques fonctions utiles:

   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.

 
 
 
 code SVI
[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

 
 
 
 
 


25/01/2013
1 Poster un commentaire

A découvrir aussi


Inscrivez-vous au blog

Soyez prévenu par email des prochaines mises à jour

Rejoignez les 7 autres membres