• Tuto: Custom destination et freepbx

      Les customs destinations et freepbx.

      Détail d'une application pratique pour renvoyer un numero d’appelant par sms.

      Freepbx , c'est des fonctionalités standards de téléphonie à travers une interface graphique relativement accessible. Cela couvre generalement 99.99% des besoins des tpe. Mais Freepbx permet aussi de personnaliser l'usage de votre systeme téléphonique en insérant des petits ( ou gros ) bouts de dialplan permettant de réaliser n'importe quel fonctionnalités sur mesure.
      On peut pour cela soit écrire un module freepbx, soit dans certains cas, plus simplement on peut utiliser les customs destinations.

      Plutot que détailler un cas non réel, je vais prendre l'exemple d'un besoin exprimé sur asterisk-france.org.
      Il sera plus complet et détaillera l'intégration complète.

      Le besoin exprimé est relativement courant. Le cas d'une TPE qui redirige les appels du fixe vers un portable. Pour des raisons de cout, la tpe utilise souvent la ligne de sa box "gratuite" pour les appels mobiles. On n'a pas la flexibilité des trunks pros et on ne peut malheureusement pas présenter le numéro de l'appelant sur le mobile.

      L'idée est donc de créer un dialplan qui communique les numéros des appels entrants sur le portable en meme temps. Ca peut etre fait par email ou par sms. Je cherchais justement à tester les notifications sms de free mobile...On peut pester sur les defauts de free ( ils en ont ), ils offrent tout de même des services en bonus très sympas comme celui-ci et en plus gratuits.


      Le scénario est le suivant :
      • Appel entrant du callerid x.
      • Interception du workflow de freepbx pour rediriger vers un petit bout de dialplan.
      • Le dialplan custom envoie des la reception de l’appelant les infos au mobile par sms ou email.
      • On renvoie ensuite vers le poste concerné dans le workflow normal de freepbx pour permettre de garder la gestion par l'interface graphique.


      Etape 1 :

      Ecrire des petits scripts permettant d’envoyer email ou sms.
      On les appellera sendsms.sh et sendmail.sh. On les placera dans /var/lib/asterisk/bin/
      On veille à ce que l’utilisateur est bien asterisk et on donne les droits d’execution.

      Code:
      telisk:/var/lib/asterisk/bin# ls -la send*
      -rwxrwxr-x 1 asterisk asterisk  492 Jul 12  2012 sendmail.sh
      -rwxrwxr-x 1 asterisk asterisk 2864 Jun 12 09:32 sendsms.sh
      Voila le script à reprendre pour sendmail.sh:
      Code:
      #!/bin/sh
      #$1 email address
      #$2 time
      #$3 CallerID
      #$4 CallLine
      #$5 EPOCH
      TMPFILE=/var/spool/asterisk/tmp/$5
      echo "FROM: asterisk@telisk.org" >> $TMPFILE
      echo "TO: "$1 >> $TMPFILE
      echo "Subject: Nouvel appel pour  "$4" recu " >> $TMPFILE
      echo ""
      echo "Pour info, vous venez de recevoir un appel sur la ligne "$4" à  "$2", de "$3"." >> $TMPFILE
      echo "" >> $TMPFILE
      echo "Votre serveur Asterisk..." >> $TMPFILE
      echo "" >> $TMPFILE
      echo "." >> $TMPFILE
      /usr/sbin/sendmail $1 < $TMPFILE
      rm $TMPFILE
      Il faut bien sur que sendmail soit correctement configure.

      Pour le script d’envoi de sms avec le service de free mobile, sendsms.sh, d’autres en ont déjà écrit.
      J’en reprends donc un ici que j’ai trouvé sur la toile. J’ai repris le contenu de celui-ci :
      https://github.com/C-Duv/freemobile-...otification.sh
      Il faut bien sur modifier l'identifiant et clé free mobile de l'espace client.

      Etape 2 :
      Création du petit bout de dialplan qui , avant de faire le dial d’une extension locale ( avec follow me sur mobile ), envoie les infos par email et par sms de l’appelant. On peut bien sur n’envoyer que par email ou que par sms en supprimant la ligne correspondante.

      Pour freepbx, voila les 3 lignes à mettre dans /etc/asterisk/extensions_custom.conf

      Code:
      [email-and-dial-100]
      exten => _.,1,System(${ASTVARLIBDIR}/bin/sendmail.sh fcouque@gmail.com "${STRFTIME(,,%c)}" "${CALLERID(name)} ${CALLERID(num)}" "${EXTEN}" "${EPOCH}")
      exten => _.,n,System(${ASTVARLIBDIR}/bin/sendsms.sh  "Nouvel appel de ${CALLERID(name)} <${CALLERID(num)}> sur la ligne ${EXTEN}" )
      exten => _.,n,Goto(from-internal,100,1)
      Notez bien le nom donné au context: email-and-dial-100
      Facile à comprendre : La premiere ligne execute le script d’envoi d’email en passant les parametres. La deuxieme , c’est l’envoi d’un sms qui a l’avantage de passer meme sans data sur le mobile.
      La troixième ligne rebranche vers le dialplan standard de freepbx , ici en appelant le poste 100.

      Etape 3 : Création d’une "custom destination" sous freepbx.

      Aller sur le gui de freepbx et sur la page custom destination.




      Dans custom Destination, saisissez : email-and-dial-100,${EXTEN},1
      Mettez ce que vous voulez dans le champs description et notes.

      Etape 4 : Insertion de la custom destination dans le workflow d’un appel entrant :

      On crée ou on modifie une « inbound route « en mettant comme destination :
      Le choix « custom destinations » , email and dial 100 ( nom donné par vous )



      Et voila, lors d’un appel entrant, si vous utilisez l’envoi sms, vous recevrez en meme temps le sms vous indiquant le numero de l’appelant pour permettre un rappel plus tard ou une identification avant de décrocher.
      Les « custom destinations » abolissent toutes les limites. Ca permet de faire des choses « hors standard » vraiment sur mesure très simplement et facilement.
      Bon tests !!

      Francois.
      Cet article a été publié à l'origine dans la discussion du forum : Tuto: Custom destination et freepbx commencé(e) par fastm3 Afficher le message original
      Commentaires 1 Commentaire
      1. Avatar de tikismoke
        tikismoke -
        Super merci Fastm3, je venais de me poser la question de comment faire. Et hop le tuto qui va bien.

        M'en vais vite tester les notifications pas sms de free pour les appels rediriger.
    • Evénements

    • Utilisateurs actuellement connectésUtilisateurs actuellement connectés

      0 membre(s) et 62 invité(s)

      Le record de connectés est de 252, 15/07/2013 à 14h46.

    • Ils nous soutiennent

      logo digium
      logo alter-it
      logo avencall
      logo beronet
      logo celya
      logo cnsi
      logo dolmen
      logo easypyro
      logo eyepea
      logo keyyo
      logo opcom
      logo openip
      logo ovh
      logo qualigaz
      qualistream
      logo voip-asterisk
      logo voxity
      logo yealink