Agence web et solutions IT, Experts Symfony contact@avanim-prod.com

Asterisk pour centraliser vos lignes téléphoniques

11 octobre 2010 jravouna Actualités Étiquettes : , , , , , , , 0 Comments

Ce que nous allons faire

Le but de ce tutoriel est de mettre en place une boite vocale unique pour l’ensemble de vos lignes téléphoniques. Nous allons imaginer le cas suivant :

Nous avons à notre disposition les éléments suivants :

  • Une ligne mobile
  • Une ligne fixe (en VOIP de préférence, vous pouvez avoir un 01, 02, 03, 04 et 05 facilement)
  • Plusieurs téléphones en VOIP (dans notre cas ce sont des PC qui vont jouer ce rôle)

Voilà le scénario que nous allons mettre en place :

  1. Vous recevez un appel vers votre mobile (vous ne répondez pas)
  2. L’appel est dérivé vers un premier téléphone à votre domicile (vous ne répondez pas)
  3. L’appel est dérivé  vers un second téléphone à votre bureau (vous ne répondez pas)
  4. La messagerie vocal réceptionne votre appel
  5. Vous recevez un mail avec le contenu du message, ainsi qu’une notification d’une tentative d’appel via GTalk

Les avantages

  • Vous n’avez plus besoin de rester proche de votre téléphone mobile
  • Vous pouvez allonger le temps de réponse (nombre de sonneries côté appelant)
  • Votre téléphone sonne toujours même lorsque vous êtes dans le métro
  • Vous pouvez passer des appels via la 3G et ainsi ne plus payer (attention pas toujours autorisé en France)
  • Appeler vers de nombreuses destinations (pays) et les fixes en France gratuitement (40 en moyenne)
  • Appeler vos postes en interne sans dépenser un euro, l’intérêt pour un domicile est plutôt faible

Combien ça coute ?

Il faut compter environ 11€ pour les frais d’installation et 1€18 par mois chez OVH. Autant dire que c’est rapidement rentabilisé. Il faut aussi rajouter le prix des téléphones VOIP mais ils ne sont pas obligatoires dans un premier temps. En effet, un simple PC est suffisant, il est aussi conseillé d’avoir un serveur dédié (si possible en date-center), mais encore une fois ce n’est pas obligatoire si vous ne voulez pas réaliser de scénarios. Il existe évidement d’autres opérateurs pour la VOIP, Free par exemple. Le choix d’OVH est simple : un bon rapport qualité/prix.

Ouverture de la ligne

Elle se réalise en quelques étapes :

  1. Allez sur le site d’OVH est choisir son indicatif (01, 02, 03, 04 ou 05)
  2. Vous payez les frais d’installation et vous recevez une autorisation de prélèvement à renvoyer à votre banque et à OVH
  3. La ligne est ouverte

Il faut compter une petite semaine le temps d’envoyer les documents, l’ouverture chez OVH est rapide (quelques heures).

Installation du serveur Asterisk et scénario

Dans notre cas nous allons supposer que nous disposons d’un serveur dédié sous Linux (Asterisk existe aussi pour Windows). Asterisk est ce que nous appelons un IPBX(commutateur téléphonique sur IP).

#apt-get install asterisk asterisk-mp3

Le paquet “asterisk-mp3″ va servir lors de la traduction des fichiers sonores dans notre langue et sont plus simple à manipuler que les fichier .gsm, je vous conseille vivement de l’installer car tôt ou tard vous allez jouer un mp3 (musique de fond pour une attente par exemple).

Connecter Asterisk avec votre fournisseur (exemple d’OVH) :

Cette partie est la plus importante, elle permet de vous connecter au réseau téléphonique “analogique”, c’est grâce à ce lien que vous allez pouvoir recevoir un appel de votre grand mère qui de son côté va décrocher son téléphone. C’est aussi ce lien qui va permettre d’appeler vers le réseau téléphonique.

Il faut éditer le fichier /etc/asterisk/sip.conf et remplacer le contenu par celui-ci :

  1. [general]
  2. context=forfait-ovh-0033366xxxx
  3. bindport=5060
  4. bindaddr=0.0.0.0
  5. srvlookup=yes
  6. register => 00333667xxxx:password@sip.ovh.net
  7. [forfait-ovh-00333667xxxx]
  8. type=peer
  9. host=sip.ovh.net
  10. context=forfait-ovh-entrant-00333667xxxx
  11. language=fr
  12. insecure=port
  13. username=00333667xxxx
  14. secret=password
  15. nat=yes
  16. canreinvite=no
  17. dtmfmode=auto
  18. video=no
  19. restrictcid=no
  20. amaflags=default

Je ne vais pas entrer dans les détails au niveau des options, en effet c’est un bon moyen de se déstabiliser. Asterisk est un serveur très complet je vous invite à vous documenter pour plus de détails.

Le bloc général va permettre de s’enregistrer vers l’IPBX de votre fournisseur, le context sert à référencer le bloc en dessous et est obligatoire pour pouvoir appeler. Le bloc register doit respecter cette syntaxe :

  • numéro de téléphone donné par le fournisseur : mot de passe donné par le fournisseur @ machine cible chez votre fournisseur

Le bloc [forfait] doit lui aussi contenir les informations pour la connexion vers votre fournisseur, username est le numéro de téléphone donné par votre fournisseur (exemple d’OVH il est possible que ce soit une suite de caractères) et secret le mot de passe de votre fournisseur (nous verrons plus tard comment mettre en place un hash md5 afin de sécuriser un peu plus ce fichier). Je vous laisse le plaisir de découvrir les autres options.

Ajouter des appareils VOIP (téléphone, softphone, etc…)

Toujours dans notre fichier sip.conf nous allons ajouter nos appareils :

  1. [210]
  2. type=friend
  3. auth=md5
  4. username=210
  5. md5secret=xxxxxxxxxx
  6. callerid=« Corentin Desktop » <003336672xxxx>
  7. host=dynamic
  8. context=appel-sortant
  9. language=fr
  10. insecure=port
  11. nat=yes
  12. canreinvite=no
  13. dtmfmode=auto
  14. video=no
  15. restrictcid=no
  16. amaflags=default
  17. mailbox=truc@machin.com
  18. [211]
  19. type=friend
  20. auth=md5
  21. username=211
  22. md5secret=xxxxxxxxxx
  23. callerid=« Corentin Laptop » <003336672xxxx>
  24. host=dynamic
  25. context=appel-sortant
  26. language=fr
  27. insecure=port
  28. nat=yes
  29. canreinvite=no
  30. dtmfmode=auto
  31. video=no
  32. restrictcid=no
  33. amaflags=default
  34. mailbox=truc@machin.com

Les blocs 210 et 211 sont deux appareils, l’option auth permet d’indiquer que le mot de passe sera en md5, username sera l’identifiant pour la connexion. Le callerid est important il permet lors d’appels internes d’avoir un indicatif sur l’appelant. Certains téléphones sur le réseau “analogique” supportent cette norme. La boite mail, elle va permettre d’envoyer par mail les messages vocaux par exemple.

Pour générer votre mot de passe en md5, vous pouvez entrer la commande suivante :

echo -n « 1234:asterisk:abcd » | md5sum

1234 est votre nom d’utilisateur et abcd votre mot de passe, vous allez optenir un hash à remplacer à l’option password.

Créer son scénario :

je vais expliquer un peu à l’ancienne, il est à la mode d’utiliser le XML de nos jours.Asterisk dispose d’un module pour interpréter les fichiers VXML (un mix de Voice et XML).

Le fichier à éditer est /etc/asterisk/extensions.conf

  1. [general]
  2. static=yes
  3. writeprotect=no
  4. autofallthrough=yes
  5. clearglobalvars=no
  6. priorityjumping=no
  7. [globals]
  8. CONSOLE=Console/dsp
  9. IAXINFO=guest
  10. TRUNK=Zap/g2
  11. TRUNKMSD=1
  12. [forfait-ovh-entrant-00333667xxxxx] ; nom du plan
  13. exten => s,1,Answer
  14. exten => s,2,JABBERSend(gtalk_account,truc@machin.com, Nouvel appel en cours depuis le numero ${CALLERID(num)})
  15. exten => s,3,Playback(/home/xxxx/voip/voix_recherche_telephone)
  16. exten => s,4,Ringing(4)
  17. exten => s,5,Dial(SIP/210,10,tm)
  18. exten => s,6,Ringing(4)
  19. exten => s,7,Dial(SIP/211,10,tm)
  20. exten => s,8,VoiceMail(1001)
  21. exten => s,9,Hangup(16)
  22. [appel-sortant]
  23. ; Cette partie gere les appels sortants
  24. exten => 210,1,Dial(SIP/210)
  25. exten => 211,1,Dial(SIP/211)
  26. exten => 1,1,VoiceMailMain(1001)
  27. exten => _X.,1,Dial(SIP/${EXTEN}@forfait-ovh-00333667xxxxx)

Voilà notre premier scénario, nous allons décrire étapes par étapes :

Bloc forfait-ovh-entrant :

  1. Nous décrochons lors de la réception d’un appel
  2. Si le module pour GTalk est installé nous envoyons un message à truc@machin.com
  3. Nous jouons un fichier audio (pas besoin de mettre l’extension, ici le fichier est un mp3)
  4. Nous simulons une sonnerie (permet de ne pas avoir un blanc)
  5. On tente d’appeler le poste 210 pendant 10 secondes (poste du domicile par exemple)
  6. Si pas de réponse du poste 210 nous faisons toujours sonner
  7. On tente d’appeler le poste 211 pendant 10 secondes (poste du bureau par exemple)
  8. Nous envoyons l’appelant vers la boite vocale avec l’identifiant 1001
  9. Nous raccrochons

Bloc appel-sortant

  1. Lorsque l’on compose depuis un poste interne le numéro 210 nous appelons le poste 210
  2. Lorsque l’on compose depuis un poste interne le numéro 211 nous appelons le poste 211
  3. Lorsque l’on compose depuis un poste interne le numéro 1 nous appelons la boite vocale avec l’identifiant 1001
  4. Lorsque nous avons un numéro de téléphone nous tentons de sortir pour appeler (attention à votre forfait, il est possible sur cette ligne d’ajouter des règles, interdire les 06 par exemple)

Créer une boite vocale :

La boite vocale sous Asterisk est configurable depuis le fichier /etc/asterisk/voicemail.xml

  1. [general]
  2. format=wav49|gsm|wav
  3. serveremail=asterisk
  4. attach=yes
  5. skipms=3000
  6. maxsilence=10
  7. silencethreshold=128
  8. maxlogins=3
  9. language=fr
  10. emaildateformat=%A, %d %B %Y a %H:%M:%S
  11. emailsubject=[ASTERISK] Nouveau message dans la boite ${VM_MAILBOX}
  12. emailbody=Bonjour ${VM_NAME},nntLe numero ${VM_CALLERID} a tente de vous joindre sans succes le ${VM_DATE}.nCette personne vous a laisse un message de $$
  13. pagerfromstring=[PBX Asterisk]
  14. pagersubject=Nouveau message vocal
  15. pagerbody=Nouveau message de ${VM_DUR} secondes dans la boite ${VM_MAILBOX} laisse le ${VM_DATE} par ${VM_CALLERID}.
  16. [default]
  17. 1001 => xxxx,Poste 210, truc@machin.com

e bloc général permet d’établir comme son nom l’indique les paramètres généraux, l’attribut attach permet d’attacher un fichier son au mail envoyé lors de la reception d’un nouveau message vocal, maxlogins raccroche lorsqu’un utilisateur se trompe trois fois de mot de passe. Le reste semble logique, la ligne importante est celle du bloc default :

  • 1001 : identifiant de la boite vocale
  • Poste 210 : un nom plus propre
  • truc@machin.com : adresse où envoyer la notification d’un appel

Lancer Asterisk :

C’est plutôt classique :

  • /etc/init.d/asterisk start (démarrage)
  • /etc/init.d/asterisk stop (arrêt)
  • /etc/init.d/asterisk reload (recherche le fichier de configuration)

Configurer votre mobile :

En principe les mobiles disposent d’une option pour router l’appel lorsque vous n’êtes hors couverture, occupé ou sans réponse. Par défaut les fournisseurs français (Orange, SFR, Bouygues) vont envoyer vos appels vers votre répondeur mobile. Sur les téléphones de type Android vous devez lancer l’application paramètres puis naviguer vers paramètres d’appels, transfert d’appels et placer votre numéro VOIP dans les champs.

Configurer un Soft-Phone

J’utilise X-Lite 4, mais il existe d’autres logiciels, dans le menu “Accounts”, vous indiquez les champs suivants :

  • User : 210 (pour le poste 210)
  • Password : xxxxxx (mot de passe md5)
  • Serveur : l’IP ou le domaine de votre serveur

Pour aller plus loin

Voilà, Asterisk est un IPBX très puissant et vous pouvez aller plus loin comme la mise en place de menus (tapez 1 pour parler à Corentin, tapez 2 pour parler à Michelle), de boites vocales pour votre entreprise ou domicile. Il y aussi les hot-lines avec la gestion des listes, la mise en production d’un serveur SMS (La Star’Ac).

Source : http://corentin.azelart.fr/blog/tutoriaux/tuto-2-mettre-en-place-un-serveur-asterisk-pour-centraliser-vos-lignes-telephoniques-mobile-et-fixe/

Submit a comment