Hallo!
Alle meinen internen Anrufe kommen im Kontext "internal" an, also sowohl die SIP Telephone als auch zwei die per HFC Karte angeschlossen sind.
Immediate ist "no", für was auch auf "yes"?
Die zapata.conf sieht so aus:
Meine internen Anrufe werden so gehandled:
Wenn ich eine ungültige Nebenstelle rufe, soll also Playtones(info) für 5 Sekunden abgespielt werden und dann *aufgelegt* werden.
Rufe ich jetzt eine ungültige Nummer an, wird PlayTones zwar abgespielt ABER gleich danach NOCHEINMAL!!! Asterisk scheint beinhart das Hangup() zu ignorieren?!
Als Beispiel rufe ich hier "13" an:
Wie man sieht wird *nach* dem Hangup noch ein Goto() zu unknown ausgeführt und demnach die ganze G'schicht zweimal gemacht!
Kann mir jemand erklären wieso und gibts eine Lösung?
Besten Dank im Vorraus!
divB
Alle meinen internen Anrufe kommen im Kontext "internal" an, also sowohl die SIP Telephone als auch zwei die per HFC Karte angeschlossen sind.
Immediate ist "no", für was auch auf "yes"?
Die zapata.conf sieht so aus:
Code:
[channels]
language=de
switchtype = euroisdn
signalling = bri_net_ptmp
pridialplan = dynamic
prilocaldialplan = local
nationalprefix = 0
internationalprefix = 00
echocancel=yes
echotraining = 100
echocancelwhenbridged=yes
immediate=no
overlapdial=no
group = 1
context = internal
channel => 1-2
Meine internen Anrufe werden so gehandled:
Code:
[internal]
; Für S0-Telephone abheben und Freizeichen geben (immediate=no)
exten => s,1,Progress()
; Für kaputte subventionierte Post-Telephone Vorwahl wegschneiden
exten => _1001.,1,Goto(internal,${EXTEN:4},1)
; alle externen Anrufe
include => outbound-local
include => outbound-mobile
include => outbound-national
include => outbound-international
include => outbound-emergency
include => kurzwahl
; Asterisk selbst
exten => 10,1,Answer()
exten => 10,2,Goto(zentrale,s,1)
; interne Nebenstellen
exten => _2X,1,Answer()
exten => _2X,2,Set(DEST=${DB(internal_extensions/${EXTEN})})
exten => _2X,3,Dial(${DEST},${DELAY_DFLT},r)
exten => _2X,4,Hangup()
; Ungültige Nummer
exten => unknown,1,Answer()
exten => unknown,2,Playtones(info)
exten => unknown,3,Wait(5)
exten => unknown,4,StopPlaytones()
exten => unknown,5,Hangup()
exten => _.,1,Goto(internal,unknown,1)
exten => i,1,Goto(internal,unknown,1)
Wenn ich eine ungültige Nebenstelle rufe, soll also Playtones(info) für 5 Sekunden abgespielt werden und dann *aufgelegt* werden.
Rufe ich jetzt eine ungültige Nummer an, wird PlayTones zwar abgespielt ABER gleich danach NOCHEINMAL!!! Asterisk scheint beinhart das Hangup() zu ignorieren?!
Als Beispiel rufe ich hier "13" an:
Code:
== Primary D-Channel on span 1 up for TEI 64
-- Accepting voice call from '22' to '13' on channel 0/2, span 1
-- Executing Goto("Zap/2-1", "internal|unknown|1") in new stack
-- Goto (internal,unknown,1)
-- Executing Answer("Zap/2-1", "") in new stack
-- Executing PlayTones("Zap/2-1", "info") in new stack
-- Executing Wait("Zap/2-1", "5") in new stack
-- Executing StopPlayTones("Zap/2-1", "") in new stack
-- Executing Hangup("Zap/2-1", "") in new stack
== Spawn extension (internal, unknown, 5) exited non-zero on 'Zap/2-1'
-- Executing Goto("Zap/2-1", "internal|unknown|1") in new stack
-- Goto (internal,unknown,1)
-- Executing Answer("Zap/2-1", "") in new stack
-- Executing PlayTones("Zap/2-1", "info") in new stack
-- Executing Wait("Zap/2-1", "5") in new stack
-- Executing StopPlayTones("Zap/2-1", "") in new stack
-- Executing Hangup("Zap/2-1", "") in new stack
== Spawn extension (internal, unknown, 5) exited non-zero on 'Zap/2-1'
-- Hungup 'Zap/2-1'
== Primary D-Channel on span 1 down for TEI 64
Wie man sieht wird *nach* dem Hangup noch ein Goto() zu unknown ausgeführt und demnach die ganze G'schicht zweimal gemacht!
Kann mir jemand erklären wieso und gibts eine Lösung?
Besten Dank im Vorraus!
divB