.titleBar { margin-bottom: 5px!important; }

Dialstatus auswerten klappt nicht

Dieses Thema im Forum "Asterisk Rufnummernplan" wurde erstellt von ploieel, 11 Feb. 2007.

  1. ploieel

    ploieel Aktives Mitglied

    Registriert seit:
    13 März 2005
    Beiträge:
    1,727
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Vogtland
    Hallo, ich habe folgendes Problem:

    ich möchte den Dialstatus wir folgt auswerten lassen:

    Code:
    [external-ISDN_ausgehend]
    exten => _0X.,1,Set(CALLERID(number)=3312) ; abgehende MSN 
    exten => _0X.,2,Dial(Capi/contr1/0${EXTEN:1}/Bo,,Ttr)
    exten => _0X.,3,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?5:4)
    exten => _0X.,4,GotoIf($["${DIALSTATUS}" = "BUSY"]?6:7)
    exten => _0X.,5,Congestion
    exten => _0X.,6,Busy
    exten => _0X.,7,Hangup
    ...
    ...
    [DIALSTATUS]
    exten => NOANSWER,1,Set(LANGUAGE()=de)
    exten => NOANSWER,2,Playback(vm-nobodyavail)
    exten => NOANSWER,3,Congestion()
    exten => NOANSWER,4,Wait(10)
    exten => NOANSWER,5,Hangup()
    
    exten => BUSY,1,Set(LANGUAGE()=de)
    exten => BUSY,2,Playback(tt-allbusy)
    exten => BUSY,3,Congestion()
    exten => BUSY,4,Wait(10)
    exten => BUSY,5,Hangup()
    
    exten => CHANUNAVAIL,1,Set(LANGUAGE()=de)
    exten => CHANUNAVAIL,2,Playback(tt-somethingwrong)
    exten => CHANUNAVAIL,3,Congestion()
    exten => CHANUNAVAIL,4,Wait(10)
    exten => CHANUNAVAIL,5,Hangup()
    
    exten => CONGESTION,1,Set(LANGUAGE()=de)
    exten => CONGESTION,2,Playback(vm-nobodyavail)
    exten => CONGESTION,3,Congestion()
    exten => CONGESTION,4,Wait(10)
    exten => CONGESTION,5,Hangup()
    ...
    ...
    [ausgehend]
    include => external-ISDN_ausgehend
    ...
    ...
    include => DIALSTATUS
    
    Nur funktioniert das nicht. Er springt in einen default-context, und bringt damit auch keine Ansagen.

    Code:
     -- Got SIP response 486 "Busy here" back from 85.214.61.130
        -- SIP/voipstation-08161b38 is busy
      == Everyone is busy/congested at this time (1:1/0/0)
        -- Executing GotoIf("Zap/2-1", "0?4:3") in new stack
        -- Goto (default,93xxxxxxxxx,3)
        -- Executing GotoIf("Zap/2-1", "1?5:6") in new stack
        -- Goto (default,93xxxxxxxxx,5)
        -- Executing Busy("Zap/2-1", "") in new stack
        -- Channel 0/2, span 1 got hangup request
      == Spawn extension (default, 93xxxxxxxxx, 5) exited non-zero on 'Zap/2-1'
        -- Hungup 'Zap/2-1'
    
    Es gibt einen default-context, aber da ist kein DIALSTATUS-context includiert...

    Was kann man tun?

    Viele Grüße
    Günter
     
  2. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    Hast Du auch die richtigen contexte gepostet?
    Bei external-ISDN_ausgehend steht was von CAPI

    in deiner Ausgabe erscheint aber:

    Got SIP response 486 "Busy here" back from 85.214.61.130
    -- SIP/voipstation-08161b38 is busy


    Wie wäre es mit

    Code:
    [external-ISDN_ausgehend]
    exten => _0X.,1,Set(CALLERID(number)=3312) ; abgehende MSN 
    exten => _0X.,2,Dial(Capi/contr1/0${EXTEN:1}/Bo,,Ttr)
    exten => _0X.,3,Goto(DIALSTATUS, ${DIALSTATUS}, 1)
    
     
  3. ploieel

    ploieel Aktives Mitglied

    Registriert seit:
    13 März 2005
    Beiträge:
    1,727
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Vogtland
    #3 ploieel, 11 Feb. 2007
    Zuletzt bearbeitet: 11 Feb. 2007
    OK, war falscher Auszug aus extensions.conf. Hatte ja mit voipstation raustelefonieren wollen, also SIP, sorry.
    Aber das Prinzip habe ich wenigstens verstanden, hoffe ich.

    Hier nochmals ein Auszug und die Bitte, mal kurz drüber zu schauen.
    Es wäre also falsch:

    Code:
    [external-voipstation_ausgehend]
    exten => _9X.,1,Dial(SIP/0049${EXTEN:1}@voipstation,60,Ttr)
    exten => _9X.,2,GotoIf($["${DIALSTATUS}" = "CONGESTION"]?4:3)
    exten => _9X.,3,GotoIf($["${DIALSTATUS}" = "BUSY"]?5:6)
    exten => _9X.,4,Congestion
    exten => _9X.,5,Busy
    exten => _9X.,6,Hangup
    
    richtig wäre dann hoffentlich:

    Code:
    [external-voipstation_ausgehend]
    exten => _9X.,1,Dial(SIP/0049${EXTEN:1}@voipstation,60,Ttr)
    exten => _9X.,2,Goto(DIALSTATUS, ${DIALSTATUS}, 1)
    
    Danke für den Hinweis, und bitte nochmals melden.

    Viele Grüße
    Günter

    Edit:

    habe es wohl doch nicht richtig verstanden, es klappt so auch nicht:

    Code:
     == Everyone is busy/congested at this time (1:1/0/0)
        -- Executing Goto("Zap/2-1", "DIALSTATUS| BUSY| 1") in new stack
        -- Goto (DIALSTATUS, BUSY,1)
    Feb 11 21:33:40 WARNING[24541]: pbx.c:2358 __ast_pbx_run: Channel 'Zap/2-1' sent into invalid extension ' BUSY' in context 'DIALSTATUS', but no invalid handler
        -- Hungup 'Zap/2-1'
    fli4l*CLI>
    
    Was mache ich falsch?
     
  4. chaos2000

    chaos2000 Aktives Mitglied

    Registriert seit:
    22 Aug. 2004
    Beiträge:
    2,028
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    LE
    ok, probiers mal so:

    Code:
    [external-voipstation_ausgehend]
    exten => _9X.,1,Dial(SIP/0049${EXTEN:1}@voipstation,60,Ttr)
    exten => _9X.,2,Goto(DIALSTATUS,${DIALSTATUS},1)
    
    wusste nicht das Asterist so eigen ist
     
  5. ploieel

    ploieel Aktives Mitglied

    Registriert seit:
    13 März 2005
    Beiträge:
    1,727
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Vogtland
    #5 ploieel, 11 Feb. 2007
    Zuletzt bearbeitet: 11 Feb. 2007
    OK, das wars! Vielen Dank für die Mühe!! :D :D
    Grüße
    Günter

    "ich kann jetzt die Ansagen der freundlichen Dame hören!!"

    Edit:
    ich finde für BUSY das File "tt-allbusy.gsm" ein wenig unpassend. Gibt es was anderes, etwa:

    "Der Teilnehmer ist besetzt, bitte versuchen Sie es später noch einmal."
     
  6. Thomas007

    Thomas007 Aktives Mitglied

    Registriert seit:
    18 Sep. 2005
    Beiträge:
    1,455
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Du hast einen GoTo Befehl zur BUSY.
    BUSY gibt es aber nicht, also sucht Asterisk eine Extension i (invalid).

    Hier ein Beispiel wie man es machen sollte.
    mit exten => _s-. fängst Du auch evtl. vergessene Dialstati ab.


    exten => s,n,Goto(s-${DIALSTATUS},1)
    exten => s-CHANUNAVAIL,1,NoOp(Status CHANUNAVAIL)
    exten => s-CHANUNAVAIL,n,Macro(callforward_local_fetchstring,callfor_ext_unr,${ARG1})
    ; exten => s-CHANUNAVAIL,n,Macro(AB_umleitung,ext_AB_u,${ARG1},u)
    exten => s-CHANUNAVAIL,n,PlayTones(congestion)
    exten => s-CHANUNAVAIL,n,Congestion(10)
    exten => s-CHANUNAVAIL,n,HangUp()
    exten => s-CANCEL,1,NoOp(Status CANCEL)
    exten => s-CANCEL,n,Macro(callforward_local_fetchstring,callfor_ext_una,${ARG1})
    ; exten => s-CANCEL,n,Macro(AB_umleitung,ext_AB_b,${ARG1},b)
    exten => s-CANCEL,n,PlayTones(congestion)
    exten => s-CANCEL,n,Congestion(10)
    exten => s-CANCEL,n,HangUp()
    exten => s-BUSY,1,NoOp(Status BUSY)
    exten => s-BUSY,n,Macro(callforward_local_fetchstring,callfor_ext_busy,${ARG1})
    ; exten => s-BUSY,n,Macro(AB_umleitung,ext_AB_b,${ARG2},b)
    exten => s-BUSY,n,PlayTones(busy)
    exten => s-BUSY,n,Busy(10)
    exten => s-BUSY,n,HangUp()
    exten => s-CONGESTION,1,NoOp(Status CONGESTION)
    exten => s-CONGESTION,n,Macro(callforward_local_fetchstring,callfor_ext_una,${ARG1})
    ; exten => s-CONGESTION,n,Macro(AB_umleitung,ext_AB_u,${ARG1},u)
    exten => s-CONGESTION,n,PlayTones(congestion)
    exten => s-CONGESTION,n,Congestion(10)
    exten => s-CONGESTION,n,HangUp()
    exten => s-NOANSWER,1,NoOp(Status NOANSWER)
    exten => s-NOANSWER,n,Macro(callforward_local_fetchstring,callfor_ext_una,${ARG1})
    ; exten => s-NOANSWER,n,Macro(AB_umleitung,ext_AB_u,${ARG1},u)
    exten => s-NOANSWER,n,PlayTones(congestion)
    exten => s-NOANSWER,n,Congestion(10)
    exten => s-NOANSWER,n,HangUp()
    exten => _s-.,1,NoOp(WARNING: Nicht erfasster Status: ${DIALSTATUS})
    exten => _s-.,n,Goto(s-CHANUNAVAIL,1)
     
  7. ploieel

    ploieel Aktives Mitglied

    Registriert seit:
    13 März 2005
    Beiträge:
    1,727
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Vogtland
    Um Gotteswillen, willst Du mich erschlagen? :D
    Ich habe hier werder Macros noch Argumente implementiert, soweit will ich meine Home-Anwendung auch garnicht treiben! :)

    Jetzt brauche ich lediglich noch ein gsm-prompt für etwa so: " Der Teilnehmer ist zur Zeit leider besetzt. Bitte versuchen Sie es später noch einmal."

    Das wars dann. Ich habe in den Pforzheimer prompts ein wenig herum gesucht, aber auf die Schnelle nichts gefunden.
    Vielleicht hast Du ja dazu noch einen Tipp; trotzdem vielen Dank für Deine Mühe. Anderen Usern hast Du damit vielleicht sehr geholfen. :)

    Viele Grüße
    Günter
     
  8. Thomas007

    Thomas007 Aktives Mitglied

    Registriert seit:
    18 Sep. 2005
    Beiträge:
    1,455
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Nimm Dir halt raus was Du brauchst.



    http://actor.loquendo.com/actordemo/default.asp?voice=Katrin

    Hier gibt es was in hoher Qualität, Lizenzbedingungen beachten.
     
  9. ploieel

    ploieel Aktives Mitglied

    Registriert seit:
    13 März 2005
    Beiträge:
    1,727
    Zustimmungen:
    0
    Punkte für Erfolge:
    36
    Ort:
    Vogtland
    Hallo Thomas007,

    jetzt, mit etwas Abstand, habe ich Deinen Code nochmals angsehen. Je mehr ich mich damit beschäftige, umso interessanter wird es. Aber bis ich das von Dir Geschriebene anwenden kann, muss ich noch ganz gewaltig üben. ;-)

    Vielleicht kannst Du mir aber trotzdem noch etwas auf die Sprünge helfen (oder auch ein anderer, der hier mitliest):

    Ich würde mir die von mir gewünschte Ansage wie folgt zusammenbasteln wollen, wobei mir aber etwas fehlt, nämlich das Einfügen der gewählten Nummer...

    Es soll bei busy abgespielt werden
    1. das File vm-theperson.gsm (Der Teilnehmer mit der Nummer...)
    2. die gewählte Nummer soll angesagt werden
    3. das File vm-isonphone.gsm (...ist gerade im Gespräch.)

    Falls jemand dazu eine Idee hat, bitte heraus damit! :D

    Viele Grüße
    Günter