Nothing Special   »   [go: up one dir, main page]

Ivr Asterisk

Télécharger au format docx, pdf ou txt
Télécharger au format docx, pdf ou txt
Vous êtes sur la page 1sur 2

Vous avez dja du, en appelant un service administratif ou le SAV dun magasin, tomber sur une voix robotis

qui vous demandais de taper sur des touches de votre clavier tlphonique pour joindre un service spcifique? Vous trouvez a nervant? H bien cest ce que nous allons mettre en place dans ce tuto !

Quest-ce quun IVR?


Un IVR (Interactive Voice Response) permet de guider les utilisateurs vers le service quils souhaitent joindre, on peut sen servir aussi pour simplement annoncer les horraires douvertures etc La mise en place dun IVR va se faire en deux tapes, la premire il faut que nous apprenons Asterisk nous parler, la seconde est la cration de lIVR.

Comment faire parler Asterisk?


Pour faire parler Asterisk, nous allons installer un moteur de synthse vocale (Text To Speech) et nous allons mettre en place celui de Google appelGoogleTTS.

Installation de GoogleTTS
Tout dabord GoogleTTS besoins de quelques dpendances pour fonctionner:

apt-get install perl libwww-perl sox mpg123


Puis nous allons aller dans le dossier /var/lib/asterisk/agi-bin/ et y mettre le fichier googletts.agi qui est le script pour mettre en place la synthse vocale.

cd /var/lib/asterisk/agi-bin wget https://raw.github.com/zaf/asterisk-googletts/master/googletts.agi chmod +x googletts.agi


Et voila googletts est install, maintenant voyons comment le faire parler.

Les premiers mots dAsterisk


La configuration des IVR se fait dans le fichier extensions.conf Ouvrez votre fichier extensions.conf et copiez les lignes suivantes la fin du fichier

;Premier exten => exten => exten =>


Explications:

IVR 8000,1,Answer() 8000,2,agi(googletts.agi,"Par Toutatix je parle !",fr) 8000,3,Hangup()

exten => 8000,1,Answer() : On cre lextensions 8000 pour appeler lIVR et on utilise lapplication Answer() pour que a soit Asterisk qui rponde tant donn que ce nest pas un utilisateur que lon appele. exten => 8000,2,agi(googletts.agi, Par Toutatix je parle ! ,fr) : Aprs avoir rpondu on utilise donc googletts pour dire la phrase suivante : Par Toutatix je parle !, en spcifiant la langue de sortie (fr) exten => 8000,3,Hangup(): A la fin de la phrase Asterisk raccroche Maintenant faites un reload et appelez le 8000 partir de nimporte quel utilisateur pour entendre Asterisk parler.

Mettre en place un vrai IVR


Maintenant nous allons mettre en place un vritable IVR qui va permettre dappeler nos utilisateurs John et Albert.

;Second IVR ;Asterisk rpond exten => 8001,1,Answer() ;On met un timeout de 10 secondes pour le choix du destinatire

exten => 8001,2,Set(TIMEOUT(response)=10) ;On annonce les diffrents choix exten => 8001,3,agi(googletts.agi,"Bienvenues chez test point com!",fr,any) exten => 8001,4,agi(googletts.agi,"Qui souhaitez vous joindre?",fr,any) exten => 8001,5,agi(googletts.agi,"Pour John Doe tapez 1",fr,any) exten => 8001,6,agi(googletts.agi,"Pour Albert Dupont tapez 2",fr,any) exten => 8001,7,agi(googletts.agi,"Appuyez sur dise si vous souhaitez rcouter ce message",fr,any) ;On attend que l'utilisateur appuis sur une touche exten => 8001,8,WaitExten()

;Si l'utilisateur appuis sur 1 on va la priorit 1 du numro 6001 exten => 1,1,Goto(6001,1) ;Si l'utilisateur appuis sur 1 on va la priorit 1 du numro 6002 exten => 2,1,Goto(6002,1) ;Si l'utilisateur tape un numro compris entre 3 et 9 et # il retourne l'tape 3 de l' exten => _[3-9#],1,Goto(8001,3) ;Si l'utilisateur ne fais rien il retourne l'tape 3 de l'IVR au bout de 10 secondes. exten => t,1,Goto(8001,3)
Et voila vous pouvez maintenant faire un reload et tester votre IVR.

Rendre plus clair le fichier extensions.conf avec des Goto


Nous pouvons rendre plus clair et lisible le fichier extensions.conf avec des Goto Voici par exemple la mme dclaration des IVR dans le fichier extensions.conf mais avec des Goto ;extensions des IVR exten => 8000,1,Goto(first-ivr,s,1) exten => 8001,1,Goto(second-ivr,s,1) ;Contexte first-ivr [first-ivr] ;Premier IVR exten => s,1,Answer() exten => s,2,agi(googletts.agi,"Par Toutatix je parle !",fr) exten => s,3,Hangup() ;Contexte second-ivr [second-ivr] ;Second IVR exten => s,1,Answer() exten => s,2,Set(TIMEOUT(response)=10) exten => s,3,agi(googletts.agi,"Bienvenus chez test point com!",fr,any) exten => s,4,agi(googletts.agi,"Qui souhaitez vous joindre?",fr,any) exten => s,5,agi(googletts.agi,"Pour John Doe tapez 1",fr,any) exten => s,6,agi(googletts.agi,"Pour Albert Dupont tapez 2",fr,any) exten => s,7,agi(googletts.agi,"Appuyez sur dise si vous souhaitez rcouter ce exten => s,8,WaitExten() exten exten exten exten => => => => 1,1,Goto(work,6001,1) 2,1,Goto(work,6002,1) _[3-9#],1,Goto(second-ivr,s,3) t,1,Goto(second-ivr,s,3)

message",fr,any)

Je vous laisse dcouvrir les diffrents changements par vous mmes.

Vous aimerez peut-être aussi