Envoi de notification par e-mail de messages vocaux sous Asterisk

Lors d’un appel avec Asterisk, il arrive que votre correspondant ne puisse vous répondre et vous laissez un message vocal sur le serveur Asterisk.
Si votre interlocuteur n’est pas devant son téléphone IP ou son écran d’ordinateur, il ne peut savoir qu’un message l’attend.
Nous allons donc configurer l’envoi de notification par e-mail de messages vocaux sous Asterisk.
Nous poursuivons avec le serveur Asterisk des tutoriaux précédents et ses fichiers.

Nous éditerons les fichiers voicemail.conf et extensions.conf dans le répertoire /etc/asterisk/ .

Préparation des boites vocal d’Asterisk

Éditez voicemail.conf

 $ vi/etc/asterisk/voicemail.conf

puis modifiez le fichier pour qu’il ressemble à :

[general]
format=wav49|gsm|wav
;serveremail=server@VoIP.ASF
;attach=yes
maxsilence=10
silencethreshold=128
maxlogins=3
sendvoicemail=yes

[admin] ; contexte de l'utilisateur
1001 => 1234, Thomas S ; numero de l'utilisateur, son mot de passe de voicemail, son prenom et nom
1002 => 1234, Hervé T

[gestion]
2001 => 1234,Gauvain H

Retournez sur le fichier extensions.conf et modifiez le :

[admin]
include => gestion
include => formation
include => from-internal
include => accueil
exten => _100X,1,Dial(SIP/${EXTEN},40)
exten => _100X,n,agi(googletts.agi,"Votre correspondant n'est pas joignable pour le moment. Laisser un message.",fr,any,1.3)
exten => _100X,n,VoiceMail(${EXTEN}@admin)
exten => 600,1,VoiceMailMain($CALLERID(num)}@admin)

Vous avez donc remplacé

exten => _100X,n,Hangup()

par la ligne

exten => _100X,n,VoiceMail(${EXTEN}@admin)

 
Cette ligne fait basculer l’appelant sur la boite vocale de l’appelé si celui-ci ne répond pas dans les 40 secondes.
Explications :
exten => : déclaration de l’extension.
_100X : tous les numéros de 1000 à 1009.
n : priorité n, ici 2.
VoiceMail : Lancement de l’application VoiceMail (répondeur)
${EXTEN}@admin : Récupération du numéro de l’appelé mis en variable et connexion à la boite vocal liée au contexte ‘admin’ comme annoncé dans voicemail.conf
 
La ligne suivante :

exten => 600,1,VoiceMailMain($CALLERID(num)}@admin)

Mets en place l’extension 600 pour lancer l’application VoiceMailMain en priorité 1 sur la boite de l’utilisateur ${CALLERID(num)} du contexte @admin.

Connectez vous à Asterisk en mode console pour recharger les fichiers.

$ asterisk -rvvvvv
CLI> reload
CLI> exit
$

 
Désormais le répondeur est actif pour les utilisateur de [admin] et ils peuvent consulter leurs messages en appellant le 600 puis en entrant leur mot de passe quand le serveur le requerra.

Eviter de taper les mots de passe de la boite vocale.

 
Lors de l’appel de la boite vocale sur le 600, le serveur vous demandera le mot de passe spécifié dans le fichier voicemail.conf (1234), si vous ne voulez pas que vos utilisateurs aient à composer ce mot de passe vous avez deux solutions :

  • Ne pas mettre de mot de passe dans le fichier voicemail.conf
    exemple :

    [admmin]
    1001 => ,Thomas
    1002 => ,Hervé
    
  • soit rajoutez l’option « s »(Skip checking the passcode for the mailbox) dans la déclaration du numéro de la boite vocale:

    exten => 600,1,VoiceMailMain($CALLERID(num)}@admin,s)
    

Configuration de l’envoi d’e-mail avec le message vocal en pièce jointe.

Installation de Postfix et sa configuration

Normalement en suivant les tutoriaux sur Asterisk de ce blog, Postfix devrait être installé. Sinon référez vous à cet article .

Configuration d’Asterisk pour l’envoi des e-mails.

Cette configuration se fait dans le fichier voicemail.conf, il suffit de l’éditer de la façon suivante :

[general]
format=wav49|gsm|wav
serveremail=server@VoIP.ASF
attach=yes
maxsilence=10
silencethreshold=128
maxlogins=3
sendvoicemail=yes
 
;Corps du mail
emaildateformat=%A, %d %B %Y a %H:%M:%S
emailsubject=[ASTERIX] Nouveau message dans la boite ${VM_MAILBOX}
emailbody=Bonjour ${VM_NAME},\n\n\tLe numero ${VM_CALLERID} a tente de vous joindre sans succes en date du ${VM_DATE}.\nCette personne vous a laisse un message de ${VM_DUR} secondes. Pour le consulter appelez votre boite vocale (600 sur votre telephone IP).\n\n\tBonne journee !\n\n\t\t\t\t--Le serveur Asterix\n
pagerfromstring=[Asterix]
pagersubject=Nouveau message vocal
pagerbody=Nouveau message de ${VM_DUR} secondes dans la boite ${VM_MAILBOX} laisse le ${VM_DATE} par ${VM_CALLERID}.

[admin]
1001 => 1234, Thomas S, thomass@VoIP.ASF
1002 => 1234, Hervé T, hervet@VoIP.ASF

[gestion]
2001 => 1234,Gauvain H, gauvainH@VoIP.ASF

Constatez que vous avez décommenté les lignes suivantes :

serveremail=server@VoIP.ASF
attach=yes

Et vous avez rajouté le corps du mail que l’utilisateur recevra.
Enfin vous avez rajouté les adresses e-mails des utilisateurs dans le contexte admin.