Asterisk + menu interactif d’administration + GoogleTTS

Parfois il est nécessaire d’exécuter à distance les commandes qui gèrent Asterisk ou les autres serveurs dans votre réseau (backup, reload, wakeonlan et etc). On peut le faire en utilisant un simple appel téléphonique.

Pour ce but on va utiliser l’application System et GoogleTTS :

System( ) : exécution d’une commande du système d’exploitation.

Elle lance la commande donnée au niveau du système

Syntaxe: System(command)

Pour faire parler Asterisk, nous allons installer un moteur de synthèse vocale (Text To Speech) de Google appelé GoogleTTS.

Installation de GoogleTTS

Tout d’abord on va installer quelques dépendances:

# 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 synthèse vocale.

cd /var/lib/asterisk/agi-bin/

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

chmod +x googletts.agi

Et voilà googletts est installé, maintenant voyons comment le faire parler.

On va créer le nouveau plan de numérotation qui répond à nos exigences.

# nano /etc/asterisk/extensions.conf

[local]exten => 7777,1,Goto (admin-menu,s,1)

[admin-menu]

;Asterisk repond
exten => s,1,Answer()
; on demande l’autorisation
exten => s,n,Authenticate(1234) ; on demande l’autorisation Authenticate(1234)

;On met un timeout de 10 secondes pour le choix du destinatire
exten => s,n,Set(TIMEOUT(response)=10)
;On annonce les differents choix
exten => s,n,agi(googletts.agi,’Choisissez le commande à exécuter’,fr,any)
exten => s,n,agi(googletts.agi,’pour relir les fichiers de configuration d’Asterisk tapez 1′,fr,any)
exten => s,n,agi(googletts.agi,’Pour faire le backup des fichiers asterisk tapez 2′,fr,any)
exten => s,n,agi(googletts.agi,’pour démarrer votre serveur distant tapez 3′,fr,any)
exten => s,n,agi(googletts.agi,’pour démarrer votre serveur VPN tapez 4′,fr,any)
exten => s,n,agi(googletts.agi,’pour redémarrer votre configuration du réseau tapez 5′,fr,any)
exten => s,n,agi(googletts.agi,’pour la rotation forcé des fichiers de log tapez 6′,fr,any)
exten => s,n,agi(googletts.agi,’Appuyez sur dièse si vous souhaitez ree couter ce message’,fr,any)
;On attend que l’utilisateur appuis sur une touche
exten => s,n,WaitExten()

exten => 1,1,System(service asterisk reload) ;on redémarre Asterisk
exten => 1,n,Hangup()
exten => 2,1,System(cp -rpv /etc/asterisk/ /etc/asterisk_`date ‘+%d%m%y_%H.%M.%S’`.bak) ; on fais le backup des fichiers asterisk
exten => 2,n,Hangup()
exten => 3,1,System(wakeonlan 00:11:85:f1:f9:a3) ; paquet Magique pour démarrer une machine avec Windows, wakeonlan doit être installé sur serveur Linux avec Asterisk
exten => 3,n,Hangup()
exten => 4,1,System(/etc/init.d/openvpn start) ; on démarre service VPN , il doit être préconfiguré
exten => 4,n,Hangup()
exten => 5,1,System(/etc/init.d/network restart) ; on redémarre la configuration du réseau
exten => 5,n,Hangup()
exten => 6,1,System(logrotate /etc/logrotate.conf -f) ; on fais la rotation de fichiers de log
exten => 6,n,Hangup()

;Si l’utilisateur tape # il retourne a l’etape 3 de l’IVR
exten => #,1,Goto(s,3)

;Si l’utilisateur tape les numeros entre 7-9 ou 0 on annonce que le choix n’est pas correcte
exten => i,1,agi(googletts.agi,’le numero choisi n’est pas correcte’,fr,any)
exten => i,n,Goto(s,3)

;Si l’utilisateur ne fait pas son choix pendant 20 sec on raccroche en prononcant « au revoir »
exten => t,1,Playback(vm-goodbye)
exten => t,n,Hangup()

Laisser un commentaire