Segmentation Fault bei Transfer

moshman

Neuer User
Mitglied seit
28 Mai 2009
Beiträge
72
Punkte für Reaktionen
0
Punkte
6
Hi,

ich habe ein seltsames Problem beim Weiterverbinden eingehender ISDN-Anrufe.

Bei mir läuft Asterisk 1.6.2 mit chan_capi 1.1.4, AVM B1-Karte und 4 Snom 370 Telefonen.

Da ich mit Asterisk 1.6.2 nach wie vor das Problem habe, die Nummer externer Anrufe bei Pickup vorher zu sehen, habe ich versucht, das Problem mit je 2 Identitäten zu umgehen.

Bei den 4 Snom-Telefonen sind also jeweils 2 Identitäten eingerichtet (z.B. 11 und 91, 12 und 92, 13 u. 93, 14 u. 94). Die Identitäten 9x sind stumm, ohne Klingelton eingerichtet. Die Identitäten 1x sind mit Klingelton eingerichtet.

exten => 123,n,Dial(SIP/11&SIP/92&SIP/93&SIP/94)

Es läuft auch alles wie gewünscht. Allerdings passiert von Zeit zu Zeit folgendes:
-Eingehender externer Anruf wird angenommen (z.B. von Identität 92)
-Beim versuchten Transfer auf ein anderes Telefon (Identität 1X) erfolgt ein Crash von Asterisk.
Das Problem ist nicht eindeutig reproduzierbar. Externe Anrufe von ein und der selben CALLER-ID crashen mal und mal nicht.

Der entsprechende Auszug aus /var/log/kern.log
Jan 7 11:11:44 telefon kernel: [70347.233249] asterisk[2471]: segfault at 0 ip b7c923b3 sp b78f3d0c error 4 in libc-2.7.so[b7c1c000+155000]

Ein Backtrace ergab:
(gdb) bt
#0 0xb7c923b3 in strlen () from /lib/i686/cmov/libc.so.6
#1 0xb6fc385e in transmit_state_notify (p=0x92bb018, state=<value optimized out>, full=1, timeout=0) at chan_sip.c:11202
#2 0xb6fc3d51 in cb_extensionstate (context=0x92e1398 "default", exten=0x92e448c "14", state=8, data=0x92bb018 ) at chan_sip.c:12769
#3 0x08106ec7 in handle_statechange (datap=0x8f47c78 ) at pbx.c:3881
#4 0x0814982b in tps_processing_function (data=0x8db0210) at taskprocessor.c:310
#5 0x08155e6b in dummy_start (data=0x8db7960) at utils.c:968
#6 0xb7acc4c0 in start_thread () from /lib/i686/cmov/libpthread.so.0
#7 0xb7cfc6de in clone () from /lib/i686/cmov/libc.so.6

Kann mir eventuell jemand einen Tipp geben, was das Problem sein könnte?

Grüsse
Thomas
 
Wenn der backtrace stimmt, ist das ein Bug in Asterisk. Offensichtlich in chan_sip.

Armin
 
Hi Armin
Danke mal für die Antwort. Ich denke schon, dass der Backtrace stimmt...;-)

Wenn der backtrace stimmt, ist das ein Bug in Asterisk. Offensichtlich in chan_sip.

Armin
Ich werde jetzt mal beobachten, ob sich irgendwie ein Muster feststellen läßt, wann ein Absturz eintritt.

Grüsse
Thomas
 
Hi,

die Ursache konnte ich jetzt finden, eine Erklärung habe ich nicht dafür. Der Fehler lässt sich mittlerweile reproduzieren.

Es scheint die Belegung der Funktionstasten der Snom-Telefone zwecks Pickup in Verbindung mit der AVM zu sein. Die Tasten sind alle mit BLF + jeweilige ID|*8 belegt.

Wenn ich den Asterisk nach dem Absturz neu gestartet habe, ging bei neu eingehenden externen Anrufen das Weiterverbinden. Die BLF-Anzeige ging da noch nicht, da die Telefone noch nicht neu registriert waren.

Wenn ich jetzt die Telefone alle reregistriert habe (entweder manuell oder per sip notify snom-reboot), habe ich bei einem Weiterverbinden eines externen Anrufs sofort den beschriebenen Crash.

Bei internen Telefonaten ist der Transfer von SIP zu SIP kein Problem und funktioniert reibungslos.

Grüsse
Thomas
 
[Ursache geklärt] Segmentation Fault bei Transfer

Hi,

ich konnte jetzt die Sache noch weiter eingrenzen.
Das Problem ist notifycid in der sip.conf.

notifycid = ignore-context und notifycid = yes führen zu einem Crash.

Wird notifycid aus der sip.conf genommen, gibt es beim Transfer keinen Crash.

Also geht der Pickup in der Version 1.6.2 mit AVM B1 und chan_capi zumindest bei mir nicht wie gewünscht. BLF funktioniert jetzt reibungslos.

Grüsse
Thomas
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

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.