- 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
-----------------------
Wenn man statt lange-ansage (14sec) hello-world abspielt, dann wird man brav verbunden.
In dem Beispiel hier bekommt man diesen Fehler:
-----------------------
Asterisk-CLI
-----------------------
Ein Tip wäre super. Vielen Dank.
Sabine
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 [11951xxxxxxx@dtms:1] Goto("Zap/96-1", "appserver|11951xxxxxxx|1") in new stack
-- Goto (appserver,11951xxxxxxx,1)
-- Executing [11951xxxxxxx@appserver:1] NoOp("Zap/96-1", "ANR:0610xxxxxx - BNR: 11951xxxxxxx") in new stack
-- Executing [11951xxxxxxx@appserver:2] Set("Zap/96-1", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3
-- Executing [11951xxxxxxx@appserver:3] Set("Zap/96-1", "TIMEOUT(response)=10") in new stack
-- Response timeout set to 10
-- Executing [11951xxxxxxx@appserver:4] SetCallerPres("Zap/96-1", "allowed") in new stack
-- Executing [11951xxxxxxx@appserver:5] Set("Zap/96-1", "STAMM=11951xxxxxxx") in new stack
-- Executing [11951xxxxxxx@appserver:6] Set("Zap/96-1", "DDI=") in new stack
-- Executing [11951xxxxxxx@appserver:7] Set("Zap/96-1", "DDI=") in new stack
-- Executing [11951xxxxxxx@appserver:8] GotoIf("Zap/96-1", "1?DDInichtgewaehlt|1:DDIgewaehlt|1") in new stack
-- Goto (appserver,DDInichtgewaehlt,1)
-- Executing [DDInichtgewaehlt@appserver:1] Goto("Zap/96-1", "DigitWait|1") in new stack
-- Goto (appserver,DigitWait,1)
-- Executing [DigitWait@appserver:1] GotoIf("Zap/96-1", "0?DDIgewaehlt|1:DigitWait|2") in new stack
-- Goto (appserver,DigitWait,2)
-- Executing [DigitWait@appserver:2] Set("Zap/96-1", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3
-- Executing [DigitWait@appserver:3] Set("Zap/96-1", "TIMEOUT(response)=10") in new stack
-- Response timeout set to 10
-- Executing [DigitWait@appserver: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 [567@appserver:1] Set("Zap/96-1", "DDI=567") in new stack
-- Executing [567@appserver:2] Goto("Zap/96-1", "DigitWait|1") in new stack
-- Goto (appserver,DigitWait,1)
-- Executing [DigitWait@appserver:1] GotoIf("Zap/96-1", "0?DDIgewaehlt|1:DigitWait|2") in new stack
-- Goto (appserver,DigitWait,2)
-- Executing [DigitWait@appserver:2] Set("Zap/96-1", "TIMEOUT(digit)=3") in new stack
-- Digit timeout set to 3
-- Executing [DigitWait@appserver:3] Set("Zap/96-1", "TIMEOUT(response)=10") in new stack
-- Response timeout set to 10
-- Executing [DigitWait@appserver:4] WaitExten("Zap/96-1", "3") in new stack
-- Timeout on Zap/96-1, going to 't'
-- Executing [t@appserver:1] Goto("Zap/96-1", "|outcall|1") in new stack
-- Goto (appserver,outcall,1)
-- Executing [outcall@appserver:1] Progress("Zap/96-1", "") in new stack
-- Executing [outcall@appserver:2] NoOp("Zap/96-1", "ANR:06102xxxxxx - BNR: 11951xxxxxxx") in new stack
-- Executing [outcall@appserver: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: