ASTERISK – Configuration d’un menu téléphonique

Bon maintenant passons aux choses sérieuses, nous allons configurer un menu interactif digne des plus grandes entreprises. Pour se faire il va nous falloir quelque prérequis avant de commencer. Vous connaissez la voix de Google traduction ? C’est cette voix-là qui va nous permettre de créer notre menu interactif.

Maintenant nous allons installer les librairies tierces qui nous manquent avant de pouvoir faire notre menu. Pour commencer télécharger les librairies suivantes :

Apt-get install perl libwww-perl mpg123

Attention : si vous n’avez pas installé la librairie sox dans la partie d’avant merci de l’installer sinon votre menu ne parlera jamais.

Après avoir fait ça rendez-vous à l’emplacement suivant :

cd /var/lib/asterisk/agi-bin

Enfin il ne vous reste plus qu’à télécharger le paquet googletts comme suit et de lui donner les droits exécutables :

wget https://raw.github.com/zaf/asterisk-googletts/master/googletts.agi

chmod +x googletts.agi

Voilà maintenant il est temps de s’amuser un peu. Dites-vous qu’il est possible de faire dire à cette gente dame tout ce que l’on souhaite et dans plusieurs langues différentes. Pour commencer nous allons retourner dans le dossier /etc/asterisk/ pour pouvoir éditer notre fichier extension.conf. Voici la commande pour faire parler notre très cher menu :

Exten => […],n,agi(googletts.agi, « Votre texte que vous voulez dire »,fr,any,1.0)

En gros, rentrez le texte que vous voulez dire, la langue et enfin la vitesse de diction. Ci-dessous voici un exemple de menu interactif que j’ai mis en place :

[IVR_FR]

exten => 8001,1,Answer()

exten => 8001,2,Set(TIMEOUT(response)=15)

exten => 8001,3,agi(googletts.agi,"Bienvenues chez exemple.",fr,any,1.2)

exten => 8001,4,agi(googletts.agi,"Pour joindre le service commercial.",fr,any,1.3)

exten => 8001,5,agi(googletts.agi,"Appuyez sur un.",fr,any,1.2)

exten => 8001,6,agi(googletts.agi,"Pour joindre le service technique.",fr,any,1.3)

exten => 8001,7,agi(googletts.agi,"Appuyez sur deux.",fr,any,1.2)

exten => 8001,8,agi(googletts.agi,"Pour toutes autres demandes.",fr,any,1.3)

exten => 8001,9,agi(googletts.agi,"Appuyez sur trois.",fr,any,1.2)

exten => 8001,10,agi(googletts.agi,"Appuyez sur dièse si vous souhaitez entendre ce message à nouveau.",fr,any,1.3)

exten => 8001,11,Playback(beep)

exten => 8001,12,WaitExten()

En gros là pour le moment voici ce que mon menu fait :

Si on appel le 8001, on répond, on met le temps de réponse de l’utilisateur après le waitexten a 15 secondes, et on commence à énoncer tout le texte. Lorsqu’on a fini l’énonciation, on émet un Beep pour avertir que c’est à l’utilisateur de choisir sur quelle touche il appuit.

Sachez que je joue sur la vitesse de diction et la séparation des phrases pour que la voix soit la plus vraie que possible et moins robotique. Voilà sauf que c’est bien beau mais pour le moment bah lorsque la personne appui ça ne fait rien. Nous allons remédier à ça avec ces lignes à ajouter sous notre menu :

;Si l'utilisateur appuis sur 1 on va à la priorité 1 du numéro 105 (Martine) dans le context Bureau_Interne

exten => 1,1,Goto(Bureau_Interne,105,1)

;Si l'utilisateur appuis sur 2 on va à la priorité 1 du numéro 103 (Julien) dans le context Bureau_Interne

exten => 2,1,Goto(Bureau_Interne,103,1)

;Si l'utilisateur appuis sur 3 on va a la priorité 1 du numéro 102 (Henri) dans le context Bureau_Interne

exten => 3,1,Goto(Bureau_Interne,102,1)

;Si l'utilisateur tape un numéro compris entre 3 et 9 et # il retourne à l'étape 3 de l'IVR

exten => _[4-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)

Voilà à la fin votre fichier de configuration devrait ressembler à ça :

Il manque une dernière chose. Comme vous avez pu le remarquer j’ai créé un nouveau contexte appelé [IVR_FR]. Donc pour pouvoir accéder à ce contexte, il vous faut faire un lien entre le contexte Bureau_Interne et le contexte [IVR_FR]. Pour ce faire rajoutez la ligne à la suite de l’extension 301 pour contacter la salle de conférence numéro deux :

Exten => 8001,1,Goto(IVR_FR,${EXTEN},1)

Concrètement cette ligne signifie que si on appelle le 8001 depuis le contexte Bureau_Interne alors on va dans le contexte IVR_FR, au numéro appelé donc 8001 à la phase numéro 1. Maintenant passons à la phase de test. Pour ce faire retournez dans la console d’Asterisk, faites un reload et enfin appelé le 8001. Si tout se passe bien vous entendrez une voix féminine dire tout ce que vous avez écrit. Et si vous appuyer sur 1,2,3 vous contacterez les utilisateur définis. Maintenant vous avez un standard téléphonique opérationnel que vous pouvez manier comme vous voulez. Vous pouvez faire appel à des menu dans des menus dans des menu ect. Les possibilités sont infinies.

Leave a Reply

Your email address will not be published. Required fields are marked *