1. Partie I : Définition d’un Serveur Vocal Interactif
Installation d’asterisk
Mode paquet (tar.gz)
Mode commande
Partie II : Mise en œuvre
Création des comptes SIP
Plan de numérotation
Les applications
Enregistrement des sons avec la fonction " Record()"
Dialplan
Conclusion
Dimitri, Martial, Charwel 1
2. I. Définition Serveur Vocal Interactif (SVI ou IVR)
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 est appelé à 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).
1. Installer Asterisk
Nous allons marcher à travers l'installation d'Asterisk à partir du code source. Beaucoup de gens
répugnent à cette méthode, affirmant qu'il est trop difficile et de longue haleine. Notre objectif ici
est de démontrer que l'installation d'Asterisk à partir des sources n'est pas réellement si difficile à
faire. Plus important encore, nous voulons vous offrir la meilleure plate-forme Asterisk sur lequel
d'apprendre.
Installez les dépendances logicielles:
# yum install gcc gcc-c++ libxml2-devel ncurses-devel
Mode paquet
Téléchargement des paquets (tar.gz)
http://www.asterisk.org/downloads
Asterisk
asterisk 1.x.xx.tar.gz
Libpri
libpri-1.x.xx.tar.gz
DAHDI Linux / DAHDI Tools
dahdi-linux-complete-2.6.0+2.6.0.tar.gz
Dimitri, Martial, Charwel 2
3. Asterisk Add-Ons
asterisk-addons-1.x.x.tar.gz
Créer votre structure de répertoire:
mkdir -p ~/src/asterisk-complete/asterisk
cd ~/src/asterisk-complete/asterisk
Idem pour Libpri et Dahdi et asterisk add-ons
Outre l’installation à partir des paquets tar.gz, on peut aussi installer asterisk par commande.
Mode commandes
Sur une distribution de type RedHat
#yum install asterisk
Sur une distribution de type Debian
#apt-get install asterisk
Manuellement:
# cd ../libpri-1.4.x
# make; make install
#cd …/asterisk-1.4.x
#tar -xvzf <nom_du_paquet>
#./configure
#make menuselect
#make
#make install &&make samples
Dimitri, Martial, Charwel 3
4. Présentation de l’installation d’asterisk add-ons
# cd …/asterisk-addons-1.4.x
#. /configure
#make
#make install
II. Mise en œuvre
Création des comptes
Pour notre, nous avons créé trois (3) comptes : (Dimitri, Charwel et Martial)
La création de comptes se fait dans le fichier /etc/asterisk/sip.conf
Dimitri, Martial, Charwel 4
6. Plan de numérotation
Les applications
Answer: Répondre à un appel
Read: Lit une variable
Playback: Lire un fichier son
Background: Lire un fichier son en tâche de fond dans l'attente de la saisie une
touche
GotoIf: Se rendre à une priorité d’extension précise d’un contexte suivant la
condition posée
Record: Permet d'enregistrer un son en format wav ou gsm
Enregistrement des sons avec la fonction "Record()"
On enregistre les sons qui vont guider l'utilisateur lors d'une requête avec l'application Record de
asterisk dans le fichier extensions.conf
Dimitri, Martial, Charwel 6
7. Dialplan
Editez le fichier extensions.conf pour créer le plan de numérotation.
;############################ SVI ou IVR ######################
[CMD]
;....... enregistrement .........................
;son de bienvenu
exten => 3000,1,Answer()
exten => 3000,2,Record(Bienvenu.gsm)
;son du choix de la personne à joinder
exten => 4000,1,Answer()
exten => 4000,2,Record(Choix.gsm)
;son au cas où rien n’est saisie
exten => 5000,1,Answer()
exten => 5000,2,Record(ErreurNum.gsm)
Dimitri, Martial, Charwel 7
8. ;........... Instruction à effectuer .............
exten => 7000,1,Playback(Bienvenu)
exten => 7000,2,Read(Var,Choix,1) ; La fonction Read permet de lire les infos saisies par
l’appelant, dans notre cas on va lire le digit saisie jusqu’au 1 digit vu que la Var contiens 1
chiffre. Var est la variable et Choix le son enregistré.
exten => 7000,3,GotoIf($[${Var}=1]?1000,1:7000,4)
exten => 7000,4,GotoIf($[${Var}=2]?1003,1:7000,5)
exten => 7000,5,Background(ErreurNum)
exten => 7000,6,Goto(2)
exten => 1000,1,Dial(SIP/Martial,10,tr)
exten => 1000,2,Hangup()
exten => 1001,1,Dial(SIP/Charwel,10,tr)
exten => 1001,2,Hangup()
exten => 1003,1,Dial(SIP/Dimitri,10,tr)
exten => 1003,2,Hangup()
Dimitri, Martial, Charwel 8