ENUM, comment faire ?

Discussion in 'Elastix 2.x' started by pamart, Aug 5, 2009.

  1. pamart

    Joined:
    Aug 5, 2009
    Messages:
    40
    Likes Received:
    0
    Bonjour à tous,

    Voilà deux jours que j'essaye vainement de faire fonctionner ENUM sur mon tout nouveau elastix...

    1. J'ai créé un trunk enum.
    2. Je crée un outbound route avec comme dial pattern "7|."

    ensuite je test un numéro qui fonctionne (testé depui pbxes), je compose dont le 7 (pour être certain d'utiliser enum) puis 437200101011 et j'ai instantanément le message suivant "all circuits are busy now".

    Si quelqu'un peut m'aider, ce serait vraiment super sympa...

    Merci d'avance aux vbonnes âmes charitable.

    Fred
     
  2. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    Bonjour Fred et bienvenue sur notre Forum.

    Pour ton problème, il faudrait savoir la raison de ton "all circuits are busy now".

    Tu inities l'appel depuis une extension sip je suppose!?

    Que donnerait la trace debug sip en mode CLI:
    CLI> sip debug

    Essai

    CLI> sip no debug

    Voies tu un problème qui entrainerait le all circuits ..Etc?
     
  3. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    Hmmm il ne faut pas qu'il y ait un certain format du style : 18004664+411 ?
     
  4. danardf

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

    Joined:
    Dec 14, 2008
    Messages:
    1,120
    Likes Received:
    0
  6. pamart

    Joined:
    Aug 5, 2009
    Messages:
    40
    Likes Received:
    0
    Bonjour et merci pour vos réponses... voici la trace en espérant que celà vous parlera plus qu'à moi


    Code:
    Verbosity is at least 3
    -- Executing [7437200101011@from-internal:1] Macro("SIP/497-c4006a30", "user-callerid|SKIPTTL|" in new stack
    -- Executing [s@macro-user-callerid:1] Set("SIP/497-c4006a30", "AMPUSER=497" in new stack
    -- Executing [s@macro-user-callerid:2] GotoIf("SIP/497-c4006a30", "0?report" in new stack
    -- Executing [s@macro-user-callerid:3] ExecIf("SIP/497-c4006a30", "1|Set|REALCALLERIDNUM=497" in new stack
    -- Executing [s@macro-user-callerid:4] Set("SIP/497-c4006a30", "AMPUSER=497" in new stack
    -- Executing [s@macro-user-callerid:5] Set("SIP/497-c4006a30", "AMPUSERCIDNAME=Fred Home" in new stack
    -- Executing [s@macro-user-callerid:6] GotoIf("SIP/497-c4006a30", "0?report" in new stack
    -- Executing [s@macro-user-callerid:7] Set("SIP/497-c4006a30", "AMPUSERCID=497" in new stack
    -- Executing [s@macro-user-callerid:8] Set("SIP/497-c4006a30", "CALLERID(all)="Fred Home" <497>" in new stack
    -- Executing [s@macro-user-callerid:9] Set("SIP/497-c4006a30", "REALCALLERIDNUM=497" in new stack
    -- Executing [s@macro-user-callerid:10] ExecIf("SIP/497-c4006a30", "0|Set|CHANNEL(language)=" in new stack
    -- Executing [s@macro-user-callerid:11] GotoIf("SIP/497-c4006a30", "1?continue" in new stack
    -- Goto (macro-user-callerid,s,20)
    -- Executing [s@macro-user-callerid:20] NoOp("SIP/497-c4006a30", "Using CallerID "Fred Home" <497>" in new stack
    -- Executing [7437200101011@from-internal:2] Set("SIP/497-c4006a30", "_NODEST=" in new stack
    -- Executing [7437200101011@from-internal:3] Macro("SIP/497-c4006a30", "record-enable|497|OUT|" in new stack
    -- Executing [s@macro-record-enable:1] GotoIf("SIP/497-c4006a30", "1?check" in new stack
    -- Goto (macro-record-enable,s,4)
    -- Executing [s@macro-record-enable:4] AGI("SIP/497-c4006a30", "recordingcheck|20090806-203114|1249583474.63" in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
    recordingcheck|20090806-203114|1249583474.63: Outbound recording not enabled
    -- AGI Script recordingcheck completed, returning 0
    -- Executing [s@macro-record-enable:5] MacroExit("SIP/497-c4006a30", "" in new stack
    -- Executing [7437200101011@from-internal:4] Macro("SIP/497-c4006a30", "dialout-enum|7|437200101011||" in new stack
    -- Executing [s@macro-dialout-enum:1] GosubIf("SIP/497-c4006a30", "0?sub-pincheck|s|1" in new stack
    -- Executing [s@macro-dialout-enum:2] Macro("SIP/497-c4006a30", "outbound-callerid|7" in new stack
    -- Executing [s@macro-outbound-callerid:1] ExecIf("SIP/497-c4006a30", "0|SetCallerPres|" in new stack
    -- Executing [s@macro-outbound-callerid:2] ExecIf("SIP/497-c4006a30", "0|Set|REALCALLERIDNUM=497" in new stack
    -- Executing [s@macro-outbound-callerid:3] GotoIf("SIP/497-c4006a30", "1?normcid" in new stack
    -- Goto (macro-outbound-callerid,s,6)
    -- Executing [s@macro-outbound-callerid:6] Set("SIP/497-c4006a30", "USEROUTCID=" in new stack
    -- Executing [s@macro-outbound-callerid:7] Set("SIP/497-c4006a30", "EMERGENCYCID=" in new stack
    -- Executing [s@macro-outbound-callerid:8] Set("SIP/497-c4006a30", "TRUNKOUTCID=" in new stack
    -- Executing [s@macro-outbound-callerid:9] GotoIf("SIP/497-c4006a30", "1?trunkcid" in new stack
    -- Goto (macro-outbound-callerid,s,12)
    -- Executing [s@macro-outbound-callerid:12] ExecIf("SIP/497-c4006a30", "0|Set|CALLERID(all)=" in new stack
    -- Executing [s@macro-outbound-callerid:13] ExecIf("SIP/497-c4006a30", "0|Set|CALLERID(all)=" in new stack
    -- Executing [s@macro-outbound-callerid:14] ExecIf("SIP/497-c4006a30", "0|SetCallerPres|prohib_passed_screen" in new stack
    -- Executing [s@macro-dialout-enum:3] Set("SIP/497-c4006a30", "OUTBOUND_GROUP=OUT_7" in new stack
    -- Executing [s@macro-dialout-enum:4] GotoIf("SIP/497-c4006a30", "1?nomax" in new stack
    -- Goto (macro-dialout-enum,s,6)
    -- Executing [s@macro-dialout-enum:6] Set("SIP/497-c4006a30", "DIAL_NUMBER=437200101011" in new stack
    -- Executing [s@macro-dialout-enum:7] Set("SIP/497-c4006a30", "DIAL_TRUNK=7" in new stack
    -- Executing [s@macro-dialout-enum:8] ExecIf("SIP/497-c4006a30", "0|AGI|fixlocalprefix" in new stack
    -- Executing [s@macro-dialout-enum:9] AGI("SIP/497-c4006a30", "enumlookup.agi" in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/enumlookup.agi
    -- enumlookup.agi: Looking up 437200101011 on e164.org via dns_get_record
    -- enumlookup.agi: Setting DIALARR to 
    -- AGI Script enumlookup.agi completed, returning 0
    -- Executing [s@macro-dialout-enum:10] GotoIf("SIP/497-c4006a30", "1?end" in new stack
    -- Goto (macro-dialout-enum,s,18)
    -- Executing [s@macro-dialout-enum:18] NoOp("SIP/497-c4006a30", "Exiting macro-dialout-enum" in new stack
    -- Executing [7437200101011@from-internal:5] Macro("SIP/497-c4006a30", "outisbusy|" in new stack
    -- Executing [s@macro-outisbusy:1] Playback("SIP/497-c4006a30", "all-circuits-busy-now|noanswer" in new stack
    -- <SIP/497-c4006a30> Playing 'all-circuits-busy-now' (language 'en'
    -- Executing [s@macro-outisbusy:2] Playback("SIP/497-c4006a30", "pls-try-call-later|noanswer" in new stack
    -- <SIP/497-c4006a30> Playing 'pls-try-call-later' (language 'en'
    == Spawn extension (macro-outisbusy, s, 2) exited non-zero on 'SIP/497-c4006a30' in macro 'outisbusy'
    == Spawn extension (from-internal, 7437200101011, 5) exited non-zero on 'SIP/497-c4006a30'
    -- Executing [h@from-internal:1] Macro("SIP/497-c4006a30", "hangupcall" in new stack
    -- Executing [s@macro-hangupcall:1] ResetCDR("SIP/497-c4006a30", "vw" in new stack
    -- Executing [s@macro-hangupcall:2] NoCDR("SIP/497-c4006a30", ""in new stack
    -- Executing [s@macro-hangupcall:3] GotoIf("SIP/497-c4006a30", "1?skiprg" in new stack
    -- Goto (macro-hangupcall,s,6)
    -- Executing [s@macro-hangupcall:6] GotoIf("SIP/497-c4006a30", "1?skipblkvm" in new stack
    -- Goto (macro-hangupcall,s,9)
    -- Executing [s@macro-hangupcall:9] GotoIf("SIP/497-c4006a30", "1?theend" in new stack
    -- Goto (macro-hangupcall,s,11)
    -- Executing [s@macro-hangupcall:11] Hangup("SIP/497-c4006a30", "" in new stack
    == Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'SIP/497-c4006a30' in macro 'hangupcall'
    == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/497-c4006a30'
    
    Encore merci pour vôtre aide les gars !!
     
  7. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    Pour moi, (je ne connais pas enum), je pense qu'il y a un mauvais formatage de n°

    -- Executing [s@macro-dialout-enum:9] AGI("SIP/497-c4006a30", "enumlookup.agi" in new stack
    -- Launched AGI Script /var/lib/asterisk/agi-bin/enumlookup.agi
    -- enumlookup.agi: Looking up 437200101011 on e164.org via dns_get_record
    -- enumlookup.agi: Setting DIALARR to
    -- AGI Script enumlookup.agi completed, returning 0

    Comme s'il ne connaissait pas le n°!
    A moins que le serveur ait un problème de dns qu'il ne puisse pas joindre le e164.org!

    Attendre peut-être la version de Patrick
     
  8. Patrick_elx

    Joined:
    Dec 14, 2008
    Messages:
    1,120
    Likes Received:
    0
    D'après ces traces il semble bien qu'Elastix fasse son boulot car on voit clairement l'appel à l'agi. Maintenant ce numéro n'est pas dans la base enum de e164.org

    Mais il est présent dans la base arpa.

    Code:
    3 records in e164.arpa (1.1.0.1.0.1.0.0.2.7.3.4.e164.arpa)
    service	address
    web:http 	http://q.nemox.net/
    email:mailto 	mailto:info@nemox.net
    sip 	sip:enum-test@sip.nemox.net

    comme indiqué dans mon mail précedant, il faut changer le fichier enum.conf pour autoriser les autres bases enum que e164.org (surtout pour les pays europeens) ainsi que remplacer l'agi par celui mentionné pour prendre en compte ce fichier conf.
     
  9. Patrick_elx

    Joined:
    Dec 14, 2008
    Messages:
    1,120
    Likes Received:
    0
    Tu devrais t'y mettre Franck. C'est très simple à mettre en oeuvre. Sur mes logs j'ai de temps en temps quelques appels sortants et entrants qui ont été routés par un lien ENUM.

    Mais tous mes appels sortant sont systématiquements passé par un trunc ENUM avant d'être rebasculé vers une autre voie en cas d'échec.

    J'ai aussi un ISN/ITAD mais ca j'y crois moins car à mon avis cela ne fonctionnera que pour les gros groupes ou universités.
     
  10. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    Je connais vaguement le principe.
    enum se réfère à une base de donnée de n° puis quand tu appelles sur ce trunk il te met en relation avec le distant via son trunk enum également; C'est çà?
    Il faut aussi s'inscrire pour donner son n° au format e164 je crois.
     
  11. pamart

    Joined:
    Aug 5, 2009
    Messages:
    40
    Likes Received:
    0
    Re-bonjour, ou plutôt bonsoir...

    Merci pour vos réponses. Si j'ai bien compris le précédent message, j'ai décommenter les autres sources pour le lookup, et j'ai redémarrer le serveur et refais un test, mais rien n'y fait... voici la trace...

    Code:
    -- Executing [7437200101011@from-internal:1] Macro("SIP/497-c40ea790", "user-callerid|SKIPTTL|") in new stack
        -- Executing [s@macro-user-callerid:1] Set("SIP/497-c40ea790", "AMPUSER=497") in new stack
        -- Executing [s@macro-user-callerid:2] GotoIf("SIP/497-c40ea790", "0?report") in new stack
        -- Executing [s@macro-user-callerid:3] ExecIf("SIP/497-c40ea790", "1|Set|REALCALLERIDNUM=497") in new stack
        -- Executing [s@macro-user-callerid:4] Set("SIP/497-c40ea790", "AMPUSER=497") in new stack
        -- Executing [s@macro-user-callerid:5] Set("SIP/497-c40ea790", "AMPUSERCIDNAME=Fred Home") in new stack
        -- Executing [s@macro-user-callerid:6] GotoIf("SIP/497-c40ea790", "0?report") in new stack
        -- Executing [s@macro-user-callerid:7] Set("SIP/497-c40ea790", "AMPUSERCID=497") in new stack
        -- Executing [s@macro-user-callerid:8] Set("SIP/497-c40ea790", "CALLERID(all)="Fred Home" <497>") in new stack
        -- Executing [s@macro-user-callerid:9] Set("SIP/497-c40ea790", "REALCALLERIDNUM=497") in new stack
        -- Executing [s@macro-user-callerid:10] ExecIf("SIP/497-c40ea790", "0|Set|CHANNEL(language)=") in new stack
        -- Executing [s@macro-user-callerid:11] GotoIf("SIP/497-c40ea790", "1?continue") in new stack
        -- Goto (macro-user-callerid,s,20)
        -- Executing [s@macro-user-callerid:20] NoOp("SIP/497-c40ea790", "Using CallerID "Fred Home" <497>") in new stack
        -- Executing [7437200101011@from-internal:2] Set("SIP/497-c40ea790", "_NODEST=") in new stack
        -- Executing [7437200101011@from-internal:3] Macro("SIP/497-c40ea790", "record-enable|497|OUT|") in new stack
        -- Executing [s@macro-record-enable:1] GotoIf("SIP/497-c40ea790", "1?check") in new stack
        -- Goto (macro-record-enable,s,4)
        -- Executing [s@macro-record-enable:4] AGI("SIP/497-c40ea790", "recordingcheck|20090806-213245|1249587165.1") in new stack
        -- Launched AGI Script /var/lib/asterisk/agi-bin/recordingcheck
      recordingcheck|20090806-213245|1249587165.1: Outbound recording not enabled
        -- AGI Script recordingcheck completed, returning 0
        -- Executing [s@macro-record-enable:5] MacroExit("SIP/497-c40ea790", "") in new stack
        -- Executing [7437200101011@from-internal:4] Macro("SIP/497-c40ea790", "dialout-enum|7|437200101011||") in new stack
        -- Executing [s@macro-dialout-enum:1] GosubIf("SIP/497-c40ea790", "0?sub-pincheck|s|1") in new stack
        -- Executing [s@macro-dialout-enum:2] Macro("SIP/497-c40ea790", "outbound-callerid|7") in new stack
        -- Executing [s@macro-outbound-callerid:1] ExecIf("SIP/497-c40ea790", "0|SetCallerPres|") in new stack
        -- Executing [s@macro-outbound-callerid:2] ExecIf("SIP/497-c40ea790", "0|Set|REALCALLERIDNUM=497") in new stack
        -- Executing [s@macro-outbound-callerid:3] GotoIf("SIP/497-c40ea790", "1?normcid") in new stack
        -- Goto (macro-outbound-callerid,s,6)
        -- Executing [s@macro-outbound-callerid:6] Set("SIP/497-c40ea790", "USEROUTCID=") in new stack
        -- Executing [s@macro-outbound-callerid:7] Set("SIP/497-c40ea790", "EMERGENCYCID=") in new stack
        -- Executing [s@macro-outbound-callerid:8] Set("SIP/497-c40ea790", "TRUNKOUTCID=") in new stack
        -- Executing [s@macro-outbound-callerid:9] GotoIf("SIP/497-c40ea790", "1?trunkcid") in new stack
        -- Goto (macro-outbound-callerid,s,12)
        -- Executing [s@macro-outbound-callerid:12] ExecIf("SIP/497-c40ea790", "0|Set|CALLERID(all)=") in new stack
        -- Executing [s@macro-outbound-callerid:13] ExecIf("SIP/497-c40ea790", "0|Set|CALLERID(all)=") in new stack
        -- Executing [s@macro-outbound-callerid:14] ExecIf("SIP/497-c40ea790", "0|SetCallerPres|prohib_passed_screen") in new stack
        -- Executing [s@macro-dialout-enum:3] Set("SIP/497-c40ea790", "OUTBOUND_GROUP=OUT_7") in new stack
        -- Executing [s@macro-dialout-enum:4] GotoIf("SIP/497-c40ea790", "1?nomax") in new stack
        -- Goto (macro-dialout-enum,s,6)
        -- Executing [s@macro-dialout-enum:6] Set("SIP/497-c40ea790", "DIAL_NUMBER=437200101011") in new stack
        -- Executing [s@macro-dialout-enum:7] Set("SIP/497-c40ea790", "DIAL_TRUNK=7") in new stack
        -- Executing [s@macro-dialout-enum:8] ExecIf("SIP/497-c40ea790", "0|AGI|fixlocalprefix") in new stack
        -- Executing [s@macro-dialout-enum:9] AGI("SIP/497-c40ea790", "enumlookup.agi") in new stack
        -- Launched AGI Script /var/lib/asterisk/agi-bin/enumlookup.agi
        -- AGI Script enumlookup.agi completed, returning 0
        -- Executing [s@macro-dialout-enum:10] GotoIf("SIP/497-c40ea790", "1?end") in new stack
        -- Goto (macro-dialout-enum,s,18)
        -- Executing [s@macro-dialout-enum:18] NoOp("SIP/497-c40ea790", "Exiting macro-dialout-enum") in new stack
        -- Executing [7437200101011@from-internal:5] Macro("SIP/497-c40ea790", "outisbusy|") in new stack
        -- Executing [s@macro-outisbusy:1] Playback("SIP/497-c40ea790", "all-circuits-busy-now|noanswer") in new stack
        -- <SIP/497-c40ea790> Playing 'all-circuits-busy-now' (language 'en')
      == Spawn extension (macro-outisbusy, s, 1) exited non-zero on 'SIP/497-c40ea790' in macro 'outisbusy'
      == Spawn extension (from-internal, 7437200101011, 5) exited non-zero on 'SIP/497-c40ea790'
        -- Executing [h@from-internal:1] Macro("SIP/497-c40ea790", "hangupcall") in new stack
        -- Executing [s@macro-hangupcall:1] ResetCDR("SIP/497-c40ea790", "vw") in new stack
        -- Executing [s@macro-hangupcall:2] NoCDR("SIP/497-c40ea790", "") in new stack
        -- Executing [s@macro-hangupcall:3] GotoIf("SIP/497-c40ea790", "1?skiprg") in new stack
        -- Goto (macro-hangupcall,s,6)
        -- Executing [s@macro-hangupcall:6] GotoIf("SIP/497-c40ea790", "1?skipblkvm") in new stack
        -- Goto (macro-hangupcall,s,9)
        -- Executing [s@macro-hangupcall:9] GotoIf("SIP/497-c40ea790", "1?theend") in new stack
        -- Goto (macro-hangupcall,s,11)
        -- Executing [s@macro-hangupcall:11] Hangup("SIP/497-c40ea790", "") in new stack
      == Spawn extension (macro-hangupcall, s, 11) exited non-zero on 'SIP/497-c40ea790' in macro 'hangupcall'
      == Spawn extension (from-internal, h, 1) exited non-zero on 'SIP/497-c40ea790'
     
  12. Patrick_elx

    Joined:
    Dec 14, 2008
    Messages:
    1,120
    Likes Received:
    0
    Presque.
    Enum c'est l'équivalent d'un serveur DNS pour numéro de téléphone.

    Le 'trunk' enum sur Elastix va juste faire la requete pour le numéro que tu as composé. S'il y a une réponse positive, le serveur e164 te renvoi un URI SIP. Ton pbx compose alors directement cette URI SIP.

    Le 'trunk' ENUM dans Elastix n'est que pour les appels sortants. C'est totalement indépendant de savoir si tu veux ou non inscrire ton numéro dans les bases e164 pour recevoir des appels.

    Si tu veux t'inscrire dans les bases ENUM il faut que ton pbx puisse accepter les appels SIP anonymes (voir les modifs que j'ai publiées il y a quelques mois pour ouvrir les appels anonymes tout en protégeant contre les scans et autres attaques). Il y deux bases de données ENUM où tu peux t'inscrire e164.org et enumplus.org (nouveau et moins utilisé). Les autres bases officielles enum (délégations arpa) sont par pays et seul ton opérateur peut t'y inscrire.
     
  13. Patrick_elx

    Joined:
    Dec 14, 2008
    Messages:
    1,120
    Likes Received:
    0
    Il faut aussi changer le enumlookup.agi par celui ci:
    http://pbxinaflash.com/forum/attachment.php?attachmentid=87&d=1229394165

    L'agi enum par défaut ne lit pas le fichier de conf et ne va regarder que la base e164.org, quelque soit ce que l'on a indiqué dans enum.conf
     
  14. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    Ah ok, c'est plus claire.

    Par contre, il vaut mieux que le distant accepte les connexions entrantes anonymes!
     
  15. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    Fred.. Mets tes traces dans une balise CODE car ce n'est pas trop lisible sinon. ;)
     
  16. Patrick_elx

    Joined:
    Dec 14, 2008
    Messages:
    1,120
    Likes Received:
    0
    C'est indispensable puisqu'il s'agit d'accepter un appel direct depuis un autre pbx. Et a priori tu ne peux pas savoir qui va t'appeler à l'avance, donc il faut accepter les appels sip anonymes (ie qui ne viennent pas d'un serveur que tu connais, cela ne veut pas dire qu'ils n'ont pas de CLID ou d'adresse IP).
     
  17. pamart

    Joined:
    Aug 5, 2009
    Messages:
    40
    Likes Received:
    0
    Oui m'sieur... on fait ça comment ??
     
  18. Patrick_elx

    Joined:
    Dec 14, 2008
    Messages:
    1,120
    Likes Received:
    0
    un simple reload dans le CLI devrait suffire...
    Au pire des cas un amportal restart fera l'affaire.
     
  19. danardf

    Joined:
    Dec 3, 2007
    Messages:
    8,069
    Likes Received:
    12
    Tu as des boutons B I u
    Code:
    Code
    Tu sélectionnes ce que tu veux coder et tu cliques sur le bouton.
     
  20. pamart

    Joined:
    Aug 5, 2009
    Messages:
    40
    Likes Received:
    0
    Tu n'aurais pas le fichier sous la souris ?? me suis inscrit mais toujours pas reçu le mail de confirmation... donc pas possible de le downloader....
     

Share This Page