Asterisk Timeout

c.jungwirth

Neuer User
Mitglied seit
10 Okt 2019
Beiträge
1
Punkte für Reaktionen
0
Punkte
1
Hallo Leute,

wir haben bei uns eine Askozia Telefonanlage installiert, im Hintergrund läuft ja der Asterisk.

Das Problem was wir haben ist, das nach 15 Minuten das Telefonat abgebrochen wird. Da dachte ich mir ich schau einfach mal auf der Askozia nach ob es da irgendwo eine Konfig dazu geben könnte, aber leider nein. Nach langem suchen bin ich dann mal über die extensions.conf gestolpert und da fand ich auch eine Zeile mit Timeout, da dachte ich mir das es ausreichen würde wenn ich diese Timeoutzeite einfach auskommentiere. Aber dem war leider nicht so.



Code:
[macro-main];
exten => _[0-9*#+]!,1,NoOp(Translate context to ${EXTEN})
exten => _[0-9*#+]!,n,Set(_TRANSLATE_CONTEXT=0)
exten => _[0-9*#+]!,n,Dial(Local/${CALLED}@internal-caller-transfer/n,${TIMEOUT},${ARG4})
exten => s,1,GotoIf($["${TRANSLATE_CONTEXT}" = "1"]?${ARG2},1)
exten => s,n,ExecIf($["${CALLERID(rdnis)}" != ""]?NoOp(Transfered call from ${CALLERID(rdnis)} to ${ARG1}))
exten => s,n,GotoIf($[$["${BLOCKED}" = "yes"] & $["${BUSYFORWARDING}" != ""]]?busyforwarding-noanswer,1)
exten => s,n,GotoIf($[$["${BLOCKED}" = "yes"] & $["${NOANSWERFORWARDING}" != ""]]?noanswerforwarding-noanswer,1)
exten => s,n,GotoIf($[$["${BLOCKED}" = "yes"] & $["${HASVOICEMAIL}" = ""]]?blacklist,1)
exten => s,n,GotoIf($[$["${BLOCKED}" = "yes"] & $["${HASVOICEMAIL}" != ""]]?vm-busy,1)
exten => s,n,Set(TIMEOUT=${ARG5})
exten => s,n,Dial(${ARG1},${TIMEOUT},${ARG4})
exten => s,n,GotoIf($["${IGNORE_DIAL_LOGIC}" = "1"]?endofdial)
exten => s,n,GotoIf($[$["${DIALSTATUS}" != "ANSWER"] & $[${LEN(${BLINDTRANSFER})} > 0]]?failed-blindtransfer,1)
exten => s,n,NoOp(DIALSTATUS: ${DIALSTATUS})
exten => s,n,Goto(s-${DIALSTATUS},1)
exten => s,n(endofdial),NoOp(End of main dial macro)

exten => failed-blindtransfer,1,Wait(2)
exten => failed-blindtransfer,n,Dial(${CUT(BLINDTRANSFER,,1)},${ARG5},to) ; blind transfer fallback
exten => failed-blindtransfer,n,GotoIf($[$[${DIALSTATUS} != "ANSWER"] & $[${LEN(${BLINDTRANSFER})} > 0]]?failed-blindtransfer,1)
exten => failed-blindtransfer,n,Goto(s-${DIALSTATUS},1)

exten => blacklist,1,Busy(10)
exten => blacklist,n,Hangup()

;exten => s-ANSWER
;exten => s-CANCEL
;exten => s-CHANUNAVAIL
;exten => s-CONGESTION
;exten => s-DONTCALL
;exten => s-TORTURE
;exten => s-INVALIDARGS
exten => s-BUSY,1,Set(MISSEDCAUSE=busy)
exten => s-BUSY,2,Goto(busy,1)
exten => s-NOANSWER,1,Set(MISSEDCAUSE=no-answer)
exten => s-NOANSWER,2,Goto(noanswer,1)
exten => _s-.,1,Goto(noanswer,1)

Habt Ihr eine Vermutung was ich ändern müsste damit die Telefonate nicht automatisch nach 15 Minuten abgeborchen werden?


Mit freundlichen Grüßen
c.jungwirth
 

ubsyathEe

Neuer User
Mitglied seit
21 Mai 2019
Beiträge
53
Punkte für Reaktionen
1
Punkte
8
Immer exakt nach 15 Minuten? Wenn ja, dann würde ich auf die "Session Timer" tippen. Die richtigen Einstellungen hängen vom Service Provider ab.

Das kann man mit pcap-Traces verifizieren.
 

sonyKatze

Mitglied
Mitglied seit
6 Aug 2009
Beiträge
439
Punkte für Reaktionen
17
Punkte
18
Vermute ich ebenfalls. 15 Minuten sind 900 Sekunden. Das sind 50% von 1800 Sekunden. Beides sind Standard-Werte für Session-Timers (dort in der angehängten PDF-Datei steht noch mehr Hintergrundwissen).

Normalerweise sind Session-Timer in Asterisk aktiv und werden auch richtig ausgehandelt. Die kannst Du testweise ausschalten, indem Du in der sip.conf session-timers=refuse hinzufügst und Asterisk neu startest (oder sip reload auf der CLI). Aber wie ubsyathEe schon schrieb, solltest Du über Protokoll-Mitschnitte analysieren, warum das passiert – könnte nur ein Symptom für ein ganz anderes Problem sein.

Oder es könnte ein viel größeres Problem sein: Der alte SIP-Channel-Driver chan_sip unterstützt kein SIP-UPDATE. Wenn Dein VoIP-Anbieter trotzdem SIP-UPDATE schickt, dann müsstest Du auf den neuen SIP-Channel-Driver chan_pjsip wechseln. Begründung: Unabhängig von Session-Timers kann die Gegenstelle jederzeit Session-Refreshes schicken, auch dann wenn keine Session-Timers ausgehandelt werden. Nutzt Dein Anbieter dafür nicht Re-INVITE sondern (fälschlicherweise) SIP-UPDATE, können Telefonate an ganz anderen Stellen kaputt gehen.

Du weißt wie Du so einen Protokoll-Mitschnitt erstelltst? Entweder über set sip debug on im Command-Line-Interface (CLI) vom Asterisk. Oder über Port-Mirroring eines Ethernet-Switch. Oder falls Du eine FRITZ!Box nutzt, deren capture.html…
 
Zuletzt bearbeitet:

ubsyathEe

Neuer User
Mitglied seit
21 Mai 2019
Beiträge
53
Punkte für Reaktionen
1
Punkte
8
Jetzt wäre interessant zu wissen, welcher Telefonanbieter und welches Produkt verwendet wird. Wenn ich mich richtig erinnere (April diesen Jahres), schickt die Telekom tatsächlich "UPDATE" requests nach einer gewissen Zeit. Warum aber erst später die UPDATEs kommen, blieb mir schleierhaft. Ggfs. kann ich die Details nochmal raussuchen, aber ich glaube, dass es der SIP-Trunk war.
 

Zurzeit aktive Besucher

3CX PBX - GRATIS
Linux / Win / Cloud

Statistik des Forums

Themen
232,827
Beiträge
2,027,135
Mitglieder
350,902
Neuestes Mitglied
ichwillnurwasdownloaden