Early B3 und Durchwahlen einsammeln

Emaleth

Neuer User
Mitglied seit
12 Sep 2008
Beiträge
37
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

ich habe ein weiteres Problem, ich möchte mit Early-B3 eine kostenlose Tarifansage abspielen und danach weiterverbinden. Angewählt wird eine Stammnummer zu der optional auch noch bis zu 5-stellige Durchwahlen angewählt werden können.

Wir konnten das Problem dank der Hilfe von einem freundlichen User hier nur angehen, in dem wir die Durchwahlen vor der Ansage abfangen. Da die Ansage auch nicht unterbrochen werden darf ging das ganze mit Blackground und dem n-Flag nicht. Also mache ich das ganze nun mit Playback und noanswer, in dem ich die Ziffern davor einsammele. Nun haben wir aber das Problem, dass bei einer längeren Ansage (Die Tarifansage ist im Vergleich zu hello-world länger- aber auch "nur" 14sec) ein Abbruch kommt und wir den Anruf nicht weiter zum Application-Server verbinden kann. Der Asterisk spielt zwar die Ansage komplett ab, aber wirft uns mit Hangup Cause 102 raus, ohne uns wie im Dialplan vorgesehen an den Application-Server zu verbinden. Aber wie gesagt nur, wenn die Ansage etwas länger ist, mit hello-world funktioniert es.

Hier ein Auszug aus extensions.conf

-----------------------
extensions.conf
-----------------------

Code:
[default]
exten => _X.,1,Playback(hello-world)

[zuappserver]
exten => _11951.,1,NoOP(ANR:${CALLERID(num)} - BNR: ${CALLERID(dnid)})
exten => _11951.,n,Set(TIMEOUT(digit)=3)
exten => _11951.,n,Set(TIMEOUT(response)=10)
exten => _11951.,n,SetCallerPres(allowed)                                       ; A-NR anzeigen/weitergeben
exten => _11951.,n,Set(STAMM=${EXTEN:0:15})                                     ; STAMMNUMMER setzen
exten => _11951.,n,Set(DDI=${EXTEN:15})                                         ; DDI setzen
exten => _11951.,n,Set(DDI=${DDI:0:5})                                          ; DDI bis zu 5 Stellig kuerzen
exten => _11951.,n,GotoIf($[${LEN(${DDI})}=0]?DDInichtgewaehlt,1:DDIgewaehlt,1)


exten => DDIgewaehlt,1,Goto(,outcall,1)
exten => DDInichtgewaehlt,1,Goto(DigitWait,1)                                   ; Eingabeaufforderung-Schleife


exten => _X,1,Set(DDI=${DDI}${EXTEN})
exten => _X,n,Goto(DigitWait,1)
exten => _XX,1,Set(DDI=${DDI}${EXTEN})
exten => _XX,n,Goto(DigitWait,1)
exten => _XXX,1,Set(DDI=${DDI}${EXTEN})
exten => _XXX,n,Goto(DigitWait,1)
exten => _XXXX,1,Set(DDI=${DDI}${EXTEN})
exten => _XXXX,n,Goto(DigitWait,1)
exten => _XXXXX,1,Set(DDI=${DDI}${EXTEN})
exten => _XXXXX,n,Goto(DigitWait,1)


exten => DigitWait,1,GotoIf($[${LEN(${DDI})}=5]?DDIgewaehlt,1:DigitWait,2)      ; Appserver anwaehlen sobald die DDI 5 stellig ist
exten => DigitWait,n,Set(TIMEOUT(digit)=3)                                      ; Increase the 'finished dialing' timeout to 3 seconds
exten => DigitWait,n,Set(TIMEOUT(response)=10)
exten => DigitWait,n,WaitExten(3)                                               ; Warte 3 Sek. auf eine Eingabe


exten => t,1,Goto(,outcall,1)


exten => outcall,1,Progress()
exten => outcall,n,NoOP(ANR:${CALLERID(num)} - BNR: ${CALLERID(dnid)})
exten => outcall,n,Playback(lange-ansage,noanswer)
exten => outcall,n,Set(DDI=${DDI:0:5})                                          ; DDI bis zu 5 Stellig kuerzen
exten => outcall,n,Dial(SIP/${STAMM}${DDI}@appserver)                           ; DDI von Anfang an gewaehlt
Wenn man statt lange-ansage (14sec) hello-world abspielt, dann wird man brav verbunden.

In dem Beispiel hier bekommt man diesen Fehler:

-----------------------
Asterisk-CLI
-----------------------
HTML:
    -- Executing [[email protected]:1] Goto("Zap/96-1", "appserver|11951xxxxxxx|1") in new stack
    -- Goto (appserver,11951xxxxxxx,1)
    -- Executing [[email protected]:1] NoOp("Zap/96-1", "ANR:0610xxxxxx - BNR: 11951xxxxxxx") in new stack
    -- Executing [[email protected]:2] Set("Zap/96-1", "TIMEOUT(digit)=3") in new stack
    -- Digit timeout set to 3
    -- Executing [[email protected]:3] Set("Zap/96-1", "TIMEOUT(response)=10") in new stack
    -- Response timeout set to 10
    -- Executing [[email protected]:4] SetCallerPres("Zap/96-1", "allowed") in new stack
    -- Executing [[email protected]:5] Set("Zap/96-1", "STAMM=11951xxxxxxx") in new stack
    -- Executing [[email protected]:6] Set("Zap/96-1", "DDI=") in new stack
    -- Executing [[email protected]:7] Set("Zap/96-1", "DDI=") in new stack
    -- Executing [[email protected]:8] GotoIf("Zap/96-1", "1?DDInichtgewaehlt|1:DDIgewaehlt|1") in new stack
    -- Goto (appserver,DDInichtgewaehlt,1)
    -- Executing [[email protected]:1] Goto("Zap/96-1", "DigitWait|1") in new stack
    -- Goto (appserver,DigitWait,1)
    -- Executing [[email protected]:1] GotoIf("Zap/96-1", "0?DDIgewaehlt|1:DigitWait|2") in new stack
    -- Goto (appserver,DigitWait,2)
    -- Executing [[email protected]:2] Set("Zap/96-1", "TIMEOUT(digit)=3") in new stack
    -- Digit timeout set to 3
    -- Executing [[email protected]:3] Set("Zap/96-1", "TIMEOUT(response)=10") in new stack
    -- Response timeout set to 10
    -- Executing [[email protected]:4] WaitExten("Zap/96-1", "3") in new stack
asterisk-gw*CLI>
asterisk-gw*CLI>
asterisk-gw*CLI>
  == CDR updated on Zap/96-1
    -- Executing [[email protected]:1] Set("Zap/96-1", "DDI=567") in new stack
    -- Executing [[email protected]:2] Goto("Zap/96-1", "DigitWait|1") in new stack
    -- Goto (appserver,DigitWait,1)
    -- Executing [[email protected]:1] GotoIf("Zap/96-1", "0?DDIgewaehlt|1:DigitWait|2") in new stack
    -- Goto (appserver,DigitWait,2)
    -- Executing [[email protected]:2] Set("Zap/96-1", "TIMEOUT(digit)=3") in new stack
    -- Digit timeout set to 3
    -- Executing [[email protected]:3] Set("Zap/96-1", "TIMEOUT(response)=10") in new stack
    -- Response timeout set to 10
    -- Executing [[email protected]:4] WaitExten("Zap/96-1", "3") in new stack
    -- Timeout on Zap/96-1, going to 't'
    -- Executing [[email protected]:1] Goto("Zap/96-1", "|outcall|1") in new stack
    -- Goto (appserver,outcall,1)
    -- Executing [[email protected]:1] Progress("Zap/96-1", "") in new stack
    -- Executing [[email protected]:2] NoOp("Zap/96-1", "ANR:06102xxxxxx - BNR: 11951xxxxxxx") in new stack
    -- Executing [[email protected]:3] Playback("Zap/96-1", "lange-ansage|noanswer") in new stack
    -- <Zap/96-1> Playing 'lange-ansage' (language 'en')
    -- Channel 0/3, span 4 got hangup request, cause 102
  == Spawn extension (appserver, outcall, 3) exited non-zero on 'Zap/96-1'
    -- Hungup 'Zap/96-1'

Ein Tip wäre super. Vielen Dank.

Sabine
 
Zuletzt bearbeitet:
F

foschi

Guest
Hallo Sabine,

mein erster Tipp wäre: code-Tag für bessere Lesbarkeit nutzen! Danke!
 

Emaleth

Neuer User
Mitglied seit
12 Sep 2008
Beiträge
37
Punkte für Reaktionen
0
Punkte
0
Hallo Foschi,

ist das nun besser so? Und hast Du vielleicht jetzt auch einen 2. Tipp für mich?

LG, Sabine
 

Zurzeit aktive Besucher

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,901
Beiträge
2,027,916
Mitglieder
351,032
Neuestes Mitglied
Hendrik1234