«

»

Nov 11 2012

[Tuto] Asterisk: Mise en place d’un utilitaire de création d’annonces d’accueils

Bonjour à tous,

Je vais vous présenter dans ce tuto un utilitaire de ma création pour que vos utilisateurs puissent se créer des messages d’accueils pour leurs boîtes vocales.

Cet utilitaire nécéssite un serveur Asterisk fonctionnel avec googleTTS d’installer.

La mise en place de cet utilitaire se fait dans le fichier extensions.conf de votre serveur Asterisk.

Mise en place de l’utilitaire

Pour vous montrer comment cet utilitaire fonctionne, nous allons partir du principe que vous avez suivis mes précédents tutoriel sur Asterisk.

Voici donc un morceau du fichier extensions.conf à partir duquel nous allons travailler:

[work]
exten => _6XXX,1,Dial(SIP/${EXTEN},20)
exten => _6XXX,2,VoiceMail(${EXTEN}@work)

;Numéro de la boite vocale
exten => 600,1,VoiceMailMain(${CALLERID(num)}@work)

Nous avons donc deux extensions, la première permet d’appeller les numéros de 6000 à 6999 et si personne ne répond au bout de 20 secondes l’appellant est basculé sur la boîte vocale de l’utilisateur appelé.

La seconde extension permet à un utilisateur de consulter sa boîte vocale en appellant le 600.

Voici donc la nouvelle configuration

[work]
exten => _6XXX,1,Dial(SIP/${EXTEN},20)
exten => _6XXX,2,Playback(MSG-${EXTEN})
exten => _6XXX,3,VoiceMail(${EXTEN}@work)

;Numéro de la boite vocale
exten => 600,1,VoiceMailMain(${CALLERID(num)}@work,s)

;Outils de création des messages d'accueils
exten => 601,1,Goto(voicemail-msg,s,1)

[voicemail-msg]
exten => s,1,Answer
exten => s,2,agi(googletts.agi,"Bienvenus dans l'utilitaire de création de messages d'accueil.",fr,any)
exten => s,3,agi(googletts.agi,"Veuillez après le bipe, annoncer votre message d'accueil, et validez avec dièse.",fr,any)
exten => s,4,Record(MSG-${CALLERID(num)}:ulaw)
exten => s,5,agi(googletts.agi,"Voici votre message d'accueil: ",fr,any)
exten => s,6,Playback(MSG-${CALLERID(num)})
exten => s,7,agi(googletts.agi,"Si vous souhaitez le ré enregistrer appuyez sur 1",fr,any)
exten => s,8,agi(googletts.agi,"Si vous souhaitez garder ce message vous pouvez raccrocher",fr,any)
exten => s,9,Set(TIMEOUT(response)=10)
exten => s,10,WaitExten()

exten => 1,1,Goto(voicemail-msg,s,3)
exten => _[2-9#],1,Goto(voicemail-msg,s,7)
exten => t,1,Goto(voicemail-msg,s,7)

Explications

J’ai donc rajouté dans l’extension _6XXX la ligne:

exten => _6XXX,2,Playback(MSG-${EXTEN})

Cette ligne permet lire le message d’acceuil de la boîte vocale de l’utilisateur.

L’application Playback permet donc de jouer un son, celui-ci dans notre cas s’appelle MSG-${EXTEN}, on utilise donc la variable ${EXTEN} comme nom de fichier.

Par exemple si on appelle l’utilisateur 6001 l’application Playback va jouer le fichier son MSG-6001, ce fichier sera donc le message d’accueil de cet utilisateur.

J’ai aussi rajouté l’extension 601 qui permet d’appeler l’utilitaire de création de messages d’accueil.

Passons donc à cet utilitaire.

Cet utilitaire se présente comme un IVR (en fait c’est un IVR), et va utiliser la variable ${CALLERID(num)} pour que les noms des fichiers soient de la forme MSG-numéro_de_l’utilisateur.

C’est pour cela que l’utilisateur souhaitant créer son message d’accueil doit impérativement le faire depuis son propre numéro.

Si vous avez suivis mon tuto sur les IVR la compréhension de celui-ci ne devrais pas vous poser de problème.

Si vous avez des questions n’hésitez pas, les commentaires sont fait pour ça !

(7 commentaires)

Passer au formulaire de commentaire

  1. rhili

    Thanks that was helpful
    Keep up the good work

  2. Mamadou NGOM

    Bonjour,

    Je suis en train de développer une messagerie vocale sans utiliser voicemail(). Pour permettre par exemple à l’appelant de laisser un message vocale , j’utilise record(). Mais j’arrive pas à détecter le silence.Je vaux quand l’appelant reste en silence pendant l’enregistrement, lui demande de refaire le message à nouveau.Par quel moyen peut-on détecter le silence ou le son.

    exten =>_X,n,Record(${link_recorded_pseudos_clients}pseudo_${Client_Id}:wav,5,5)
    exten => _X,n,GotoIf($[« ${STAT(e,${RECORDED_FILE} »= »0 »]?erreur_enregistrement_PPX17_1)

    Quand je dis rien , il reviens pas à l’étape « erreur_enregistrement_PPX17_1 »

    Si tu peux m’aider ?

  3. guiguizmo

    Bonjour,

    Je rencontre un problème avec ce tuto. Dans la console Asterisk, lors de l’enregistrement du message j’ai cette erreur :

    [Jun 22 11:15:29] WARNING[28932][C-00000010]: file.c:1314 ast_writefile: Unable to open file /var/lib/asterisk/sounds/MSG-6002.ulaw: Permission denied
    [Jun 22 11:15:29] WARNING[28932][C-00000010]: app_record.c:359 record_exec: Could not create file MSG-6002

    Et lors de sa lecture :

    [Jun 22 11:15:29] WARNING[28932][C-00000010]: file.c:774 ast_openstream_full: File MSG-6002 does not exist in any format
    [Jun 22 11:15:29] WARNING[28932][C-00000010]: file.c:1100 ast_streamfile: Unable to open MSG-6002 (format (ulaw)): No such file or directory
    [Jun 22 11:15:29] WARNING[28932][C-00000010]: app_playback.c:493 playback_exec: Playback failed on SIP/6002-0000000e for MSG-6002

    1. guiguizmo

      Ok, juste un petit problème de droit, c’est résolu :)

  4. cognard

    j’ai trouvé la réponse à mes lenteurs :
    exten => s,3,agi(googletts.agi, »Bonjour et Bienvenue. »,fr,timeratio,1.5,any)

    hope it helps.
    Arnaud

  5. cognard

    bonjour,
    merci pour le tuto. Je recontre une lenteur googletts lors des écoutes de l’annonce d’accueil . Avez vous une idée ? Il n y a pas grand chose sur la toile sur le sujet :(.
    Merci.
    Arnaud

  6. maladho

    tres bon tutu merci mais pouvez vous s’il vous plais nous faire un tutu sur la musique d’attente

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Lire les articles précédents :
smalllogo7nagios
[Tuto] Nagios: Script d’installation automatique

Bonjour à tous, Suite à mon tutoriel précédent sur l'installation de Nagios j'ai crée un script qui permet d'automatiser la...

Fermer