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
 
3CX

Neueste Beiträge

Statistik des Forums

Themen
239,179
Beiträge
2,123,417
Mitglieder
362,369
Neuestes Mitglied
Blacky-Boy

Erhalten Sie 3CX für 1 Jahr kostenlos!

Gehostet, in Ihrer privaten Cloud oder on-Premise! Ganz ohne Haken. Geben Sie Ihren Namen und Ihre E-Mail an und los geht´s:

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.
oder via

IPPF im Überblick

Neueste Beiträge

Website-Sponsoren


Kontaktieren Sie uns bei Interesse