• Tuto: Utilisation des customs trunks avec freepbx

      Vous utilisez Elastix, trixbox, piaf, asterisk gui, asterisk now, alors vous utilisez en fait probablement freepbx.
      Freepbx est un gui qui permet te couvrir une bonne partie des besoins standards. Mais Freepbx permet aussi pas mal de personnalisation, en fait il est pratiquement possible d'inserer tout dialplan comme avec une installation sans gui.

      Ici, c'est l'usage des customs trunks que je vais decrire ou du moins un exemple. Il est nécessaire de connaitre un peu le dialplan d'asterisk et le principe des contextes pour que ce petit tuto vous soit utile.
      Freepbx utilise les "outbounds routes", le principe est qu'on détermine si le numero composé "matche" un pattern, si c'est le cas, on compose le numéro par le ou les trunks successivement ( en cas d'erreur ) affectés à ce pattern.

      Cela permets d'envoyer par exemple les numéros fixes vers un trunk ou les tarifs sont plus avantageux et les mobiles vers un autre.

      Reste que cela n'est pas toujours suffisant pour faire du vrai LCR ( least cost routing ) par exemple. Un véritable AGI programmé dans le langage de cotre choix ( perl, php...) ou un bout de dialplan Asterisk sera plus efficace pour les cas complexes.

      Prenons le cas ou vous avez 2 fournisseurs sip qui vous offrent les communications nationales dans le cadre d'un abonnement, on desire partager l’émission dans ces 2 trunks alternativement pour repartir la charge sur les 2 trunks. Ca n'est pas possible uniquement avec le gui. Un agi serait plus puissant mais je vais indiquer ici la méthode avec un petit dialplan.


      Etapes pour réaliser cette répartition:

      1- Créer vos trunks normalement.
      Cela peut etre un trunk sip ou zap ( dahdi avec le mode compatibilité )
      Par contre, on va noter le numéro d'identifiant interne à freepbx du trunk.
      Lorsque vous editez le trunk, vous aurez une url du type :
      Code:
      http://mypbx/admin/config.php?display=trunks&extdisplay=OUT_2
      Ici le numero de trunk est le numero 2. On pourrais vérifier cela dans /etc/asterisk/extensions_additionnal.conf
      Pour l'exercice, on va supposer que les numéros de trunks sont 1 et 2.

      2- On va créer un trunk mais ici de type custom
      Plutot que d'envoyer directement vers un trunk sip ou zap ou dahdi ou... , on va envoyer le numéro à composer vers notre propre bout de dialplan.
      On va compléter les champs de la manière suivante.

      Trunk description: ce que vous voulez
      Dial Rules: 0X. ( par exemple pour les numeros nationaux )
      Custom Dial String: local/$OUTNUM$@distribution-trunks

      Valider et appliquer les changements.

      3- Création du dialplan répartissant les appels entre le trunk 1 et 2 alternativement.

      Dans extensions_custom.conf, ajouter le bout de dialplan suivant.

      Code:
      [distribution-trunks]
      ;trunks are number 1 and 2
      exten => _0X..,1,Set(COUNT=${DB(test/count)})
      ;increment
      exten => _0X.,n,SetVar(COUNT=$[${COUNT} + 1])
      exten => _0X.,n,SetVar(COUNT=${IF($[ ${COUNT} = 3]?1:${COUNT})})
      exten => _0X.,n,Set(DB(test/count)=${COUNT})
      exten => _0X.,n,NoOp(Number dialed is ${EXTEN} by trunk pstn ${COUNT})
      exten => _0X.,n,Macro(dialout-trunk,${COUNT},${EXTEN},,)
      exten => _0X.,n,Macro(outisbusy,)
      Explication, on utilise un compteur sauvegardé à chaque appel pour récupérer la valeur précédente.
      A la fin de ce bout de code, $COUNT contient 1 ou 2 alternativement. Il suffit ensuite d'appeler la macro dialout-trunk avec en paramètre le numéro trunk à utiliser en paramètre.

      4- Création outbound routes
      On crée une outbound route avec le pattern des numéros nationaux, le trunk choisi sera notre nouveau custom trunk.
      Ainsi, en composant 2 fois de suite 0102030405, le trunk 1 sera utilisé la première fois et le trunk 2 lors du 2eme appel.
      On peut en fait utiliser ce principe pour appliquer des règles plus contraignantes mais ce n'est pas le but de l'article ici. Je laisse cette possibilité au lecteur...

      Fastm3.
      Cet article a été publié à l'origine dans la discussion du forum : Tuto: Utilisation des customs trunks avec freepbx commencé(e) par fastm3 Afficher le message original
    • A propos d'Asterisk

      Asterisk

      Asterisk est un IPBX open source (logiciel libre) pour Linux originellement créé en 1999 par Mark Spencer, fondateur de la société Digium.

      logo asterisk
    • Downloads populaires

    • Articles récents

    • Utilisateurs actuellement connectésUtilisateurs actuellement connectés

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

      Le record de connectés est de 2 678, 22/07/2022 à 11h34.

    • 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