Asterisk stürzt bei Capi Zugriff ab

stoner

Neuer User
Mitglied seit
15 Jul 2005
Beiträge
35
Punkte für Reaktionen
0
Punkte
0
Hallo zusammen,

ich bin gerade dabei eine Testinstallation des Asterisk VoIP Servers zu machen.
Zum Einsatz kommen SIP Endgeräte und eine Anbindung an die bestehende TK Anlage per AVM C4.

Die SIP Endgeräte sind soweit funktionsfähig, lediglich bei Zugriff auf die Capi, egal ob ankommen oder abgehend (das gerufene ferne Telefon klingelt hierbei einmal kurz) stürzt Asterisk sofort mit folgender Meldung ab:

*** glibc detected *** double free or corruption: 0x081085b0 ***
*** glibc detected *** double free or corruption: 0x081085b0 ***
Segmentation Default

Hard und Software:
Linux Suse 9.2 mit chan_capi.0.3.5, Asterisk 1.09
PIII 450 mit 512 MB RAM und 8GB HDD, AVM C4

Zur Zeit ist lediglich am Port 1 der C4 ein TK Mehrgeräteanschluss gestöpselt.
Über diesen Server sollen bei uns bis zu 50 Baustellentelefone per DSL angeschalten werden, und ich wäre für jeden Hinweis dankbar.

Ciao, Frank
 
Hast Du Asterisk selbst kompiliert und chan_capi aus dem Suse-Paket genommen?
 
Hi,

beide selbst kompiliert, lediglich die capi-devil war ne rpm.
 
Und chan_capi konnte man einfach mit Asterisk 1.0.9 kompilieren? Dachte immer, dass das nicht geht. Hast Du es mal mit der neuen chan_capi (0.5.3) probiert? Gibbet bei SourceForge.
 
oki, thx.

werd ich am Montag gleich mal antesten, bis dahin schönes WE und besten dank für die Hilfe!
 
@hupe

Bei mir läuft Asterisk 1.0.9 mit chan_capi 0.3.5 und 0.5.3 problemlos. Version 0.3.5 musste ich patchen, das war aber wegen Kernel 2.6.12.2 und nicht Asterisk 1.0.9. Sonst gab es keine Probleme.
 
jkon schrieb:
@hupe

Bei mir läuft Asterisk 1.0.9 mit chan_capi 0.3.5 und 0.5.3 problemlos.


Hier auch keine Probleme.
 
Naja, man lernt nie aus! Habe bisher ja nur Head-Versionen benutzt. Ich musste chan_capi schon vorher patchen (auch ohne Kernel 2.6.12) Daher vermutete ich da die Fehlerquelle. Tut mir Leid, wenn ich da Verwirrung gestiftet habe! Wenn es das nicht ist, dann muss es wohl was anderes sein. Wobei ich solch eine Fehlermeldung bei Asterisk bisher noch nie gesehen habe...
 
@hupe
Zumindestens kann man jetzt in der Suche finden das diese Kombination funktioniert.

@stoner
Eine gute Idee wäre es mal mit dem Debugger an asterisk zu gehen um den Fehler besser lokalisieren zu können.
Also folgendes eingeben:

gdb asterisk
set args -cvvvv
run

und dann nocheinmal anrufen. Wenn asterisk segfaults

bt

eingeben, und das Ergebnis posten.
Oder natürlich, wie hupe schon geschrieben hat, chan-capi 0.5.3 ausprobienen.
 
@hupe:

besten dank, der erste fehler ist bereits behoben mit der neuen chan_capi, leider gibts aber einen ähnlichen Fehler

@jkon:

danke für den Tip, hierzu einmal die Ausgaben der Fehler:

1.
Anruf über ISDN extern abgehend von SIP Nebenstelle 423, nach einmal läuten bricht asterisk zusammen :


*CLI> [New Thread 1112226736 (LWP 15354)]
-- Executing Dial("SIP/423-f237", "CAPI/contr1/b393423|30") in new stack
-- Called contr1/b393423
-- CAPI/contr1/b393423-0 is ringing

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1083243440 (LWP 15337)]
0x401545fc in memcpy () from /lib/tls/libc.so.6
(gdb) bt
#0 0x401545fc in memcpy () from /lib/tls/libc.so.6
#1 0x40504cdb in capi_handle_msg (CMSG=0x4090f8f0) at chan_capi.c:1953
#2 0x40506253 in do_monitor (data=0x0) at chan_capi.c:2657
#3 0x400347f3 in start_thread () from /lib/tls/libpthread.so.0
#4 0x401a462a in clone () from /lib/tls/libc.so.6
(gdb)

2.
Anruf ankommen über ISDN an SIP Nebenstelle 423, Telefon läutet, bei abheben crashed Asterisk:

*CLI> [New Thread 1110264752 (LWP 15375)]
-- started pbx on channel (callgroup=0)!
-- Executing Dial("CAPI/contr1/861187-0", "SIP/423") in new stack
-- Called 423
-- SIP/423-827f is ringing
-- SIP/423-827f answered CAPI/contr1/861187-0
-- CAPI Answering for MSN 861187

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1083243440 (LWP 15358)]
0x401545fc in memcpy () from /lib/tls/libc.so.6
(gdb)

vieleicht sagt jemanden das ganze etwas, bin für jede Hilfe dankbar.

Frank
 
@stoner

Das Problem entsteht durch early B3. Als erstes kannst Du versuchen early B3 abzuschalten, also das "b" aus dem Dialstring zu entfernen.

Das eigentliche Problem würde ich nicht in chan_capi, sondern in den darunten liegen capi Schichten vermuten.
Woher hast Du denn die Treiber für die ISDN Karte? und hast Du sie selber kompiliert?
Für meine AVM Karte gab es spezielle capi Treiber von AVM direkt. Hast Du da vergleichbares im einsatz?
 
@jkon

thx, mit dem early B3 kam tatsächlich das Problem bei ausgehenden Anrufen und absturz beim ersten klingeln.
jetzt steht nur noch das Problem mit dem crash sobald er die Verbindung durchschalten soll, abgehend und ankommend gleich.
installiert habe ich die capi-libs und capi-devil 040111-4 als rpm, in der Grundinstallation installierte Suse die i4l.
Ich denke mal dass ich das System neu aufsetzen werde.
am liebsten wäre mir FC4, aber da bin ich mir mit der Unterstützung bzw Treiberinstallation der C4 nicht sicher, werd mal suse 9.3 draufspielen und bei der capiinstalltion besser aufpassen.

auf jeden Fall besten Dank für die Hilfe!

Ciao Frank
 
Dein Problem hatte anscheinend mit early B3 nicht wirklich etwas zu tun. Asterisk ist bei dir bei dem ersten capi (nicht chan_capi) Zugriff abgestürzt.
Dann hoffen wir mal das, wenn Du das System neu aufgesetzt hast, das Problem nicht mehr existiert.
 
So,

Rechner neu aufgesetzt mit Suse 9.3, dann über Yast Asterisk 1.0.6 und asterisk capi installiert, danach die aktuelle asterisk kompiliert und installiert, ebenso die chan_capi 5.4 und alles läuft ohne Probleme :)

besten dank nochmal!

Ciao stoner
 
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.