Nom du trunk sortant dans le téléphone

Discussion in 'Elastix 2.x' started by hb22, Nov 21, 2008.

  1. hb22

    Joined:
    Nov 18, 2008
    Messages:
    38
    Likes Received:
    0
    Bonjour,

    Je veux envoyer un son avec le nom du trunk qui est utilisé pour sortir, dans le téléphone de l'appelant.
    J'expérimente plusieurs trunk et cela me permet de juger de la qualité audio.

    J'ai regardé un peu le déroulement du dialplan de FreePBX dans la CLI.
    J'ai remarqué la ligne suivante :
    Executing [s@macro-dialout-trunk:14] Set("SIP/51-b7120650", "custom=SIP/Keyyo1-2") in new stack
    SIP/Keyyo1-2 est le nom du trunk sortant
    Cette ligne correspond à la ligne suivante dans [macro-dialout-trunk] de extensions_additional.conf :
    exten => s,n,Set(custom=${CUT(OUT_${DIAL_TRUNK},:,1)})

    J'ai ajouté ce code dans extensions_custom.conf pour faire un petit test :
    [macro-dialout-trunk-custom]
    exten => s,1,Set(nom_trunk=${CUT(OUT_${DIAL_TRUNK},:,1)})
    exten => s,2,Noop(Nom trunk : ${nom_trunk})

    un reload dans la CLI, une communication sortante pour tester, et ...
    Le déroulement du dialplan ne passe pas dans [macro-dialout-trunk-custom]

    La raison ?
     
  2. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    Je pense que cette macro n'est tout simplement pas appelée!

    Celle qui est appelée est [macro-dialout-trunk] et non [macro-dialout-trunk-custom]

    Modifies [macro-dialout-trunk] plutôt!

    Mais....Noop() ne fera qu'afficher un résultat, ou quelque chose dans la console d'Asterisk!
     
  3. hb22

    Joined:
    Nov 18, 2008
    Messages:
    38
    Likes Received:
    0
    FreePBX indique ne ne pas modifier extensions_additional.conf
    C'est normal car il est réécrit à chaque modification dans l'interface graphique de FreePBX.
    Par contre chaque macro est liée à une macro custom qui permet théoriquement de personnaliser.

    C'est juste un test. Après je vais écrire le code pour lire un fichier audio différent en fonction du trunk sortant.
     
  4. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    Tant que tu ne valides rien sur freepbx, ce que tu modifies dans ce fichier ne sera pas écrasé!
    Evidemment, si tu appliques les modif freepbx, le fichier sera écrasé et la conf perdue.

    Ce qu'il faut chercher (et je ne sais pas ou, peut être dans une définition de contexte), c'est l'appel vers cette macro.
     
  5. hb22

    Joined:
    Nov 18, 2008
    Messages:
    38
    Likes Received:
    0
    Je ne veux pas perdre le bénéfice de FreePBX.
    J'ai déjà fait d'autres personnalisations dans les extensions_custom.conf et cela fonctionne.
    Je vais chercher...
     
  6. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    ok ...
    Tiens nous au courant. ;)
     
  7. hb22

    Joined:
    Nov 18, 2008
    Messages:
    38
    Likes Received:
    0
    Je reviens sur ce problème.
    Pour tester plusieurs fournisseurs VOIP, je veux jouer une message audio avec le nom du trunk avant l'appel sortant.
    Je sais écrire le code mais je ne sais pas ou le placer pour qu'il ne soit pas écrasé par les modifications générés par FreePBX.

    Dans extensions_additional au début de chaque macro il y a un "include".
    Exemple ici "macro-dialout-trunk-custom"


    [macro-dialout-trunk]
    include => macro-dialout-trunk-custom
    exten => s,1,Set(DIAL_TRUNK=${ARG1})
    exten => s,n,GosubIf($[$["${ARG3}" != ""] & $["${DB(AMPUSER/${AMPUSER}/pinless)}" != "NOPASSWD"]]?sub-pincheck,s,1)
    exten => s,n,GotoIf($["x${OUTDISABLE_${DIAL_TRUNK}}" = "xon"]?disabletrunk,1)
    exten => s,n,Set(DIAL_NUMBER=${ARG2})
    exten => s,n,Set(DIAL_TRUNK_OPTIONS=${DIAL_OPTIONS})


    Dans quel fichier, il faut mettre la macro "macro-dialout-trunk-custom" pour qu'elle soit exécutée ?
    J'ai essayé dans extensions_custom.conf mais cela ne fonctionne pas.

    Une idée ?
     
  8. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    Pourtant je l'aurais bien mis là.
    Essayes de faire un grpp sur les fichiers comme par exemple :
    # more extension_additionnal.conf | grep "macro-dialout-trunk-custom"

    Tu retrouveras normalement la balise [macro-dialout-trunk-custom].

    Comme je suis pas chez moi aujourd'hui, je ne peux me connecter à mon serveur.
     
  9. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    non, pas de balise.
    J'ai essayé comme toi de faire mettre dans extension_custom.conf la macro en question, mais rien effectivement!
    J'ai mis un Noop pour la tracer, mais elle n'apparait pas.
    Curieux :dry:
     
  10. Patrick_elx

    Joined:
    Dec 14, 2008
    Messages:
    1,120
    Likes Received:
    0
    Un include ne fait que rendre la macro accessible dans le dial plan, il ne l'execute pas.
    Fait un essais avec la [macro-dialout_trunk-predial-hook] qui est effectivement appelée par [macro-dialout-trunk].

    Code:
    ; Customizations to this dialplan should be made in extensions_custom.conf
    ; See extensions_custom.conf.sample for an example.
    ; If you need to use [macro-dialout-trunk-predial-hook] place these in this file or they will get overwritten.
    ;
    
     
  11. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    Mais pourquoi mettre un include dans une macro se cet include n'a pas de but d'exécution?
    Attend l'enlever alors.
    Je ne vois pas très bien le positionnement de cet include. :blink:
     
  12. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    Dans extension-custom.conf:
    Code:
    [macro-dialout-trunk-predial-hook]
    exten => s,1,Noop(Annoncer le faisceau)
    exten => s,n,playback(thank-you-for-calling)
    ça fonctionne. :)

    Merci Patrick ;)
    Toujours intéressent ce genre de petit truc.
     
  13. Patrick_elx

    Joined:
    Dec 14, 2008
    Messages:
    1,120
    Likes Received:
    0
    on en apprends tous les jours...
    Ca reste encore dans la porté des petits trucs que j'arrive à faire.

    Mais je bloque toujours sur ce foutu cisco 7960:
    - pas moyen de remplacer la sonnerie par le clignotement de la led par un alert_info
    - je n'arrive pas à me connecter via telnet au travers un routeur/firewall cisco pix (je peux faire du telnet sur d'autres machines/harware, mais je ne sais pas pourquoi les trames de retour du 7960 sont bloquées par le firewall. j'ai passé des heures avec wireshark pour essayer de comprendre pourquoi le 7960 agit differement d'autres machines telnetable sans succès)


    Dans mes prochains projets, je voudrai essayer de porter
    http://www.freeauth.org/site
    en un cgi/php pour asterisk pour authentifier l'accès au DISA.

    Avec l'appli client qui génère le one time code toujours sur moi (sur mon nokia), je pourrai ainsi ouvrir le DISA sans trop d'arrière pensée.. Et ca ouvre aussi la porte pour d'autres appli avec sécurisation d'accès.
     
  14. hb22

    Joined:
    Nov 18, 2008
    Messages:
    38
    Likes Received:
    0
    C'est ok aussi pour moi. Cela fonctionne.
    Je finis mon code et je vais le poster ici.

    Merci.
     
  15. hb22

    Joined:
    Nov 18, 2008
    Messages:
    38
    Likes Received:
    0
    Voilà

    Code:
    [macro-dialout-trunk-predial-hook]
    exten => s,1,Noop(OUT_${DIAL_TRUNK})
    exten => s,n,Set(NOM_TRUNK=${CUT(OUT_${DIAL_TRUNK},/,2)})
    exten => s,n,GotoIf($["${NOM_TRUNK}"="ovh"]?ovh)
    exten => s,n,GotoIf($["${NOM_TRUNK}"="Keyyo1-2"]?keyyo)
    exten => s,n,GotoIf($["${NOM_TRUNK}"="Keyyo2-2"]?keyyo)
    exten => s,n,GotoIf($["${NOM_TRUNK}"="FreeGGP-5"]?free)
    exten => s,n,GotoIf($["${NOM_TRUNK}"="FreeSB-5"]?free)
    exten => s,n,GotoIf($["${NOM_TRUNK}"="1"]?orange)
    exten => s,n,GotoIf($["${NOM_TRUNK}"="2"]?orange)
    exten => s,n,GotoIf($["${NOM_TRUNK}"="4"]?orange)
    exten => s,n,GotoIf($["${NOM_TRUNK}"="5"]?orange)
    exten => s,n(ovh),Playback(ovh)
    exten => s,n,Goto(fin)
    exten => s,n(keyyo),Playback(keyyo)
    exten => s,n,Goto(fin)
    exten => s,n(free),Playback(free)
    exten => s,n,Goto(fin)
    exten => s,n(orange),Playback(orange)
    exten => s,n,Goto(fin)
    exten => s,n(fin),Noop(Nom du trunk : ${NOM_TRUNK})
     
  16. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    Cool. :)

    Comme c'est du Cisco... ça peut réagir différemment!

    Si l'accès est bloqué par le FireWall, alors il doit y avoir des log de ce côté.
    Qu'est-ce qu'ils disent ces log?

    ça peut-être intéressant. :huh:
     
  17. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    Pas mal du tout.
    ça permet effectivement de savoir directement sur quel opérateur l'appel est dirigé.

    allez, une image pour toi ;)
     
  18. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    Patrick.

    En y regardant sur Voip-Info, j'ai trouvé çà:

    Je ne sais pas s'il y a quelque chose la dedans qui jouerait uniquement sur l'icône de la ligne.
     
  19. Patrick_elx

    Joined:
    Dec 14, 2008
    Messages:
    1,120
    Likes Received:
    0
    Je connais bien cette page et j'ai un peu tout essayé.

    Après mes essais il semble que:
    - seuls les sonneries par defaut peuvent être séléctionnées par un alert-info
    - les sonneries additionnelles ajoutée dans Ringlist ne peuvent pas être sélectionnées


    maintenant il reste encore une possibilité de faire un telnet juste avant une sonnerie pour baisser le volume au minimum puis de remonter le volume après...

    Sur pas mal d'autre téléphone il y a l'option alert-info(no-ring) ou similaire qui permet de couper la sonnerie pour certains appels.


    Concernant le telnet rebèle j'ai finalement trouvé le problème la nuit dernière. Cela provenait d'un conflit dans la config des routeurs par défaut/ lan netmask sur le 7960. Comme je me connectais depuis un autre LAN sans NAT, les paquets de retour partaient vers le mauvais routeur, malgré les bon headers IP. Bizarrement, pour les accès http/xml depuis le 7960, ce problème n'apparaissait pas...
     
  20. amir124

    Joined:
    Jul 23, 2017
    Messages:
    11
    Likes Received:
    1
     

Share This Page