Maniatux's Blog

Welcome to the internet

Asterisk: envoi de mails

Rédigé par Xavier - -

Petit tutoriel pour améliorer notre serveur Asterisk.

casque

Objectif: Lorsque quelqu'un laisse un message sur une boite vocale, le serveur doit envoyer un mail au propriétaire pour le prévenir.

Programme

  • Adresses des propriétaires de boites vocales
  • Contenu du mail
  • Serveur mail

Adresses

Vérifiez dans votre voicemail.conf que les adresses mail des clients sont correctes. Par exemple (adresses fictives dans l'exemple):

1212 => 1212, client1, loulou@hotmail.fr
1213 => 1213, client2, machin@gmail.com

Lorsque quelqu'un laissera un message vocal au client1, le serveur Asterisk devra envoyer un mail à "loulou@hotmail.fr" avec le fichier sonore en pièce jointe.

Contenu du mail

Par défaut ce mail sera écrit en anglais. Si vous voulez le mettre en français, ouvrez le fichier voicemail.conf et cherchez les lignes emailsubject et emailbody. Juste à côté vous avez les phrases (en anglais) qui sont utilisées. Vous pouvez les adapter en fraçais. Juste au dessus vous avez la liste des variables. Par exemple:

  • ${VM_DATE} est remplacé par la date du message
  • ${VM_NAME} est remplacé par le nom du destinataire

Avec ceci vous pouvez personnaliser le mail qui sera envoyé. Dans ce fichier de config il y a aussi une ligne attach=yes. Elle signifie que le mail envoyé contiendra le message vocal en pièce jointe. Vous pouvez désactiver cette fonctionnalité.

Serveur mail

La deuxième partie du problème concerne le serveur mail. En effet, si on veut envoyer des mails, il faut un logiciel capable de faire ça. Debian fournit exim4, qui est configuré pour fonctionner en local uniquement. Les mails envoyés atterrissent dans /var/spool/mail/asterisk mais dans l'état on ne peut pas en envoyer à l'extérieur. Il faut donc le configurer. Mais pour cela vous devez disposer d'un serveur smtp, celui de votre FAI par exemple. Si votre entreprise intègre déjà un service mail, il va de soit qu'il est plus judicieux de l'utiliser.

Exemple de serveurs smtp de FAI:

  • Free: smtp.free.fr
  • Orange: smtp.orange.fr
  • SFR: smtp.sfr.fr

Note: Certains serveurs SMTP ne fonctionnent que si le client utilise une adresse IP du FAI. Concrètement, si vous voulez utiliser smtp.free.fr, vous devez être client Free (et vous connecter depuis une ligne Free). Donc de préférence utilisez le serveur SMTP correspondant à votre FAI.

Pour ceux qui n'ont jamais touché à un serveur mail, voici ce que nous allons faire:

schema serveur

1. L'utilisateur se connecte au serveur.
2. Il laisse un message sur la boite vocale d'un correspondant.
3. Asterisk écrit un mail pour le propriétaire de la boite mail et demande à exim de l'envoyer.
4. Pour ne pas se heurter aux protections anti-spam et se perdre dans les DNS, il demande à un serveur externe.
5. Le serveur (ex: smtp.free.fr) traite la demande.
6. Il envoie un courrier à l'adresse demandée.

Si vous êtes sur Ubuntu, commencez par installer exim. Si vous êtes sur debian, c'est probablement déjà fait.

$ sudo apt-get install exim4

Par défaut, exim ne gère l'envoi de mail qu'en interne. Il faut le configurer pour fonctionner en externe et utiliser un autre serveur smtp en relais:

# dpkg-reconfigure exim4-config

Vous arrivez ensuite sur une interface en ncurses dans laquelle il va falloir répondre correctement aux questions!

exim4 config
  • Type de configuration: Envoi via relais - pas de courrier local
  • Nom de courriel du système: myhost.org (c'est un exemple, normalement mettez votre nom de domaine si vous en avez un)
  • Adresses IP entrantes: 127.0.0.1 ; ::1 (par défaut)
  • Autres destinations dont le courrier doit être accepté: rien
  • Nom de domaine visible pour utilisateurs locaux: myhost.org (ou autre)
  • Adresse système smarthost: smtp.free.fr (ou autre smtp)
  • Minimiser les requêtes DNS: Non
  • Séparer la configuration en plusieurs fichiers: Non

Test du serveur mail

Essayez de vous envoyer un mail. Par exemple, si votre adresse est moi@hotmail.fr:

$ mail -s test moi@hotmail.fr

Ensuite, il semble ne rien se passer, mais en fait il faut entrer le message. Puis faites entrée puis ajoutez un "point" et faites entrée. Vérifiez ensuite votre boite mail (regardez dans la boite à spam).

Tests finaux

Enregistrez un message sur une boite vocale, et regardez si son propriétaire reçoit un mail.

Classé dans : Sysadmin - Mots clés : aucun