.titleBar { margin-bottom: 5px!important; }

[gelöst] D-Channel Problem mit Asterisk + Sirrix PCI4S0

Dieses Thema im Forum "Asterisk ISDN mit Sirrix-Karten" wurde erstellt von Szony, 11 Aug. 2005.

  1. Szony

    Szony Neuer User

    Registriert seit:
    11 Aug. 2005
    Beiträge:
    20
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hallo Forengemeinde,

    bevor ich mit irgend etwas anfangen werde möchte ich mich bei uch für die vielen hilfreichen Tipps und Antworten bedanken, die dazu begetragen haben, dass mein Asterisk läuft.
    Der Asterisk mit einer Sirrix-PCI4S0 hängt am internen S0 einer Alcatel 4400 - Telefonanlage und soll hauptsächlich als Voicemail-Maschine eingesetzt werden. Testweise sind auch ein paar SIP-Teilnehmer eingereichtet um innerhalb des Hausnetztes telefonieren zu können.
    Die Voicemail mit allen Funktionen und auch die SIP-Gespräche laufen problemfrei.

    Aber nun das Problem - der Asterisk läuft nicht stabil.

    Nach unterschiedlich langer Laufzeit (im Schnitt etwa zwei Stunden) bekomme ich einen der beiden folgenen Fehler in den Logfiles "/var/log/messages" und "/var/log/warn":
    • sirrix ipac (0): D-channel received empty frame, discarding frame
    • sirrix ipac (0): D-channel receive data overflow, discarding frame (RSTAD=0xc)
    Danach läuft alles noch im Schnitt eine Stunde weiter und der Fehler tritt erneut auf, woraufhin der Asterisk nicht mehr funktionstüchtig ist. Am Telefon bekomme ich die Meldung "Link ausser Betrieb" beim Versuch die Voicemail zu anzurufen.

    Ein Neustart des Asterisk und auch das entladen und neuladen der Sirrix-Treiber bringt keine Abhilfe. Es hilft nur ein Server-Neustart, was im produktiven Betrieb natürlich absolut unpraktikabel ist.

    Das >> hier << beschrieben D-Channel-Dump bricht genau an der Stelle ab, wenn ein leeres Frame oder der data overflow reinkommt.

    Hat jemand schon mal ein ähnliches Problem gehabt?
    Oder eine Idee warum diese D-Channel Fehler auftauchen?
    Kann es sein, dass der Fehler von der Telefonanlage kommt?
    Oder hab ich einen Fehler in meiner sirrix.conf, die diesen Fehler verursacht?

    sirrix.conf
    Code:
    [Global]
    internationalprefix = 00
    nationalprefix = 0
    
    ;Eingehende Anrufe
    [Incomming]
    ports = 0000		; 1. Karte, 1. Port
    mode = TE	       ; TE Mode da die Karte an einem S0 Bus
    ptp = yes		  ; Anlagenanschluss
    master = yes		; Port arbeitet als Master
    number = +		 ; Angerufene Nummer
    extension = +		; Anzurufenden Extension
    callerid = <+>		; CallerID von eingehenden Anrufen
    show_cidname = yes		; Anrufernamen zeigen
    country = de		; Land
    language = de		; Sprache
    
    ;Abgehende Anrufe
    [Outgoing]
    ports = 0000		; 1. Karte, 1. Port
    mode = TE		; TE Mode da die Karte an einem S0 Bus
    ptp = yes		; Anlagenanschluss
    master = yes		; Port arbeitet als Master
    number = +		; Angerufene Nummer
    extension = 		; Anzurufenden Extension
    callerid = +		; CallerID von ausgehenden Anrufen
    cfnotify = no
    cfu = no
    cfnr = no
    cfb = no
    aocd = no
    colp = no
    redir = no
    notify = yes
    echocancel = yes
    providetones = yes
    Ich bin für jede Hilfe extrem dankbar.

    Mfg Szony
     
  2. sirrix

    sirrix Neuer User

    Registriert seit:
    4 Jan. 2005
    Beiträge:
    42
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Re: D-Channel Problem mit Asterisk + Sirrix PCI4S0

    Hallo!

    Hmmm ... bei einem Entladen und Laden der Kernel-Module werden die Ports komplett resettet, sind also im gleichen Zustand wie nach einem Reboot. Mit "rmmod sirrix_pfic" und "modprobe sirrix_pfic" sollte es eigentlich gehen, wenn es ein Port-(SW-)Fehler wäre.

    Die sirrix.conf ist ok. Ich würde folgendes mal machen um den Fehler eingrenzen zu können:
    • einen anderen Port benutzen
    • Verkablung prüfen
    • andere Kabel benutzen

    Viele Grüße,
    Oskar.
     
  3. Szony

    Szony Neuer User

    Registriert seit:
    11 Aug. 2005
    Beiträge:
    20
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Danke für die Hinweise.

    Ohne das ich gestern noch etwas verändert habe ist der Asterisk diese Nacht seltsamerweise durchgelaufen (und immer noch funktionstüchtig), trotz dass wieder zwei mal die Meldung "sirrix ipac (0): D-channel received empty frame, discarding frame" aufgetreten ist.
    Ich kann ihn immer noch anrufen und SIP-Gespräche werden Hausintern weitervermittelt.

    Heute morgen habe ich die Verkabelung nochmals überprüft und alles war noch in bester Ordnung.
    Danach habe ich testweise den Port gewechseln und nutze nun den zweiten statt den ersten Port.
    Mal sehen ob der Asterisk Montag immer noch erreichbar ist. :?

    Mfg Szony
     
  4. Szony

    Szony Neuer User

    Registriert seit:
    11 Aug. 2005
    Beiträge:
    20
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Das wochenende ist um und es konnten wieder neue Erkenntnoisse gewonnen werden. Der Asterisk ist nicht mehr zu verwenden, aber ich glaube ein Muster erkannt zu haben, zu welchen Zeitpunkten der Abstutz kommt.
    Ich vermute es hat nicht direkt etwas mit dem D-Channel zu tun, sondern eher mit dem Multi-Prozessor, der in dem Server hängt.

    Hier ein Auszug aus "/var/log/messages"
    Code:
    Aug 12 13:17:18 laura kernel: Unable to handle kernel NULL pointer dereference at virtual address 00000000
    Aug 12 13:17:18 laura kernel:  printing eip:
    Aug 12 13:17:18 laura syslog-ng[1490]: STATS: dropped 0
    Aug 12 13:17:18 laura kernel: f8a8faf0
    Aug 12 13:17:18 laura kernel: *pde = 00000000
    Aug 12 13:17:18 laura kernel: Oops: 0000 [#1]
    Aug 12 13:17:18 laura kernel: PREEMPT SMP 
    Aug 12 13:17:18 laura kernel: Modules linked in: sirrix_bch sirrix_pfic sirrix_base
    Aug 12 13:17:18 laura kernel: CPU:    1
    Aug 12 13:17:18 laura kernel: EIP:    0060:[<f8a8faf0>]    Not tainted VLI
    Aug 12 13:17:18 laura kernel: EFLAGS: 00010206   (2.6.12.3) 
    Aug 12 13:17:18 laura kernel: EIP is at ipac_handle_interrupt_icd+0x580/0x7e0 [sirrix_base]
    Aug 12 13:17:18 laura kernel: eax: 000000c0   ebx: 00000000   ecx: c1836090   edx: c1ba4b40
    Aug 12 13:17:18 laura kernel: esi: f66ae1d8   edi: f66ae1e0   ebp: f66ae1d8   esp: c18dbf10
    Aug 12 13:17:18 laura kernel: ds: 007b   es: 007b   ss: 0068
    Aug 12 13:17:18 laura kernel: Process events/1 (pid: 7, threadinfo=c18da000 task=c18baa40)
    Aug 12 13:17:18 laura kernel: Stack: 000007c0 6dae52d2 0000533d c183a530 f606fa40 00000202 c18dbf8c c18dbf1f 
    Aug 12 13:17:18 laura kernel:        f66ae228 c1836080 f66ae22c f66ae1d8 c012cba9 f66ae1d8 c18dbf6c 00000000 
    Aug 12 13:17:18 laura kernel:        c18360a8 f8a8f570 00000202 c18da000 c1836090 ffffffff ffffffff 00000001 
    Aug 12 13:17:18 laura kernel: Call Trace:
    Aug 12 13:17:18 laura kernel:  [<c012cba9>] worker_thread+0x1c9/0x260
    Aug 12 13:17:18 laura kernel:  [<f8a8f570>] ipac_handle_interrupt_icd+0x0/0x7e0 [sirrix_base]
    Aug 12 13:17:18 laura kernel:  [<c0116bf0>] default_wake_function+0x0/0x20
    Aug 12 13:17:18 laura kernel:  [<c0116bf0>] default_wake_function+0x0/0x20
    Aug 12 13:17:18 laura kernel:  [<c012c9e0>] worker_thread+0x0/0x260
    Aug 12 13:17:18 laura kernel:  [<c013147d>] kthread+0xbd/0x100
    Aug 12 13:17:18 laura kernel:  [<c01313c0>] kthread+0x0/0x100
    Aug 12 13:17:18 laura kernel:  [<c0101075>] kernel_thread_helper+0x5/0x10
    Aug 12 13:17:18 laura kernel: Code: 30 a9 f8 89 44 24 04 e8 1f bf 68 c7 ff 86 20 01 00 00 e9 c4 fb ff ff 8b 5e 34 c6 44 24 1c 1f 8d b6 00 00 00 00 8d bf 00 00 00 00 <0f> b6 03 43 8b 16 89 44 24 0c 31 c0 89 44 24 08 0f b6 46 04 89 
    Diese Meldung bekomme ich, wenn ich jetzt versuche den Sirrix-Treiber zu entladen.
    Code:
    laura:~ # rmmod sirrix_pfic
    ERROR: Removing 'sirrix_pfic': Device or resource busy
    Ich bin da leider überfragt und sowohl die Suche hier im Forum als auch google konnten mir da noch nicht weiterhelfen.
    Hat jemand von euch evtl eine Idee wo ich hier bei der Fehlersuche ansetzen kann?
     
  5. stevie

    stevie Neuer User

    Registriert seit:
    3 Aug. 2005
    Beiträge:
    76
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Könnte tatsächlich ein SMP-Problem sein! Schon mal Sirrix kontaktet?
    Ansonsten vielleicht noch eine andere Möglichkeit:
    Du schreibst, der * hinge am internen S0 der TK-Anlage!
    Kann es sein, daß Deine TK-Anlage einen Bug hat und ab und zu tatsächlich diese "korrupten Frames" schickt?? Könntest ja mal versuchen, (wenn der Aufwand für's umkonfigurieren nicht zu hoch ist), den * mal direkt an ein T-Com-Amt zu hängen und prüfen, ob der Fehler dann immer noch auftaucht!
    Sind nur so meine spontanen Gedanken...bin ja selber noch *-Neuling!
    Grüße
    Stevie
     
  6. Szony

    Szony Neuer User

    Registriert seit:
    11 Aug. 2005
    Beiträge:
    20
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Den Asterisk direkt an ein T-Com-Amt zu hängen ist kein Problem, das müssten wir nur umstecken. Das hat mir ein Kollege aus dem Telefonbereich schon eingerichtet. :)

    Derzeit probieren wir allerdings erst noch einen 2.4er Kernel, evtl hängt es ja auch dadran.
     
  7. stevie

    stevie Neuer User

    Registriert seit:
    3 Aug. 2005
    Beiträge:
    76
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Welche Kernel-Version setzt Du denn z.Zt. genau ein??
    ........nur mal so für die Allgemeinbildung! :)
    Grüße
    Stevie
     
  8. Szony

    Szony Neuer User

    Registriert seit:
    11 Aug. 2005
    Beiträge:
    20
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Die "funktionierende" 2.6er Version ist meiner Signatur zu entnehmen. Das ist leider die bei der der oben genannt Systemcrash immer auftritt.

    Aktuelle versuche ich mich an der Kernel-Version 2.4.31.
     
  9. Szony

    Szony Neuer User

    Registriert seit:
    11 Aug. 2005
    Beiträge:
    20
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Der Kernel 2.4.31 hat leider auch nicht geholfen. Werden wir also mal den Astertisk direkt am T-Com-Amt testen um andere Fehler auszuschließen.
     
  10. stevie

    stevie Neuer User

    Registriert seit:
    3 Aug. 2005
    Beiträge:
    76
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Hast Du den Kernel wieder mit SMP-Support compiliert?
    Ich würde mal nur Single-Proz-Support versuchen! Das Verhalten bez. des Interrupt-Handlings eines Linux-Systems ist stark unterschiedlich zwischen Single- und Multi-Proz-Systemen! Einfach mal mit beiden Kernel-Versionen testen!
     
  11. Szony

    Szony Neuer User

    Registriert seit:
    11 Aug. 2005
    Beiträge:
    20
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Vielen Dank Stevie, dass war der entscheidende Tipp. Nachdem der Kernel ohne Multi-Prozessor-Unterstützung kompiliert wurde läuft der Asterisk fehlerfrei.

    Es scheint, dass die Sirrix-Karte sich nicht mit unserem Multi-Prozessoren-System verträgt, aber evtl kann Oskar von Sirrix dazu ja meghr sagen.

    Unser Problem ist jedenfalls gelöst.

    Mfg,
    Szony
     
  12. stevie

    stevie Neuer User

    Registriert seit:
    3 Aug. 2005
    Beiträge:
    76
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Prima!! Freut mich, wenn es geholfen hat! Jetzt stellt sich die Frage: Verträgt sich die Karte/der Treiber z.Zt. grundsätzlich nicht mit SMP-Systemen oder gibt es "nur" ein Problem mit bestimmten Chipsätzen? Wäre natürlich schon toll, wenn SMP funktionieren würde, da das komplette codieren und decodieren beim * in SW (also auf der CPU) gemacht wird. Da wäre "die Kraft der zwei Herzen" :-D bei größeren Installationen natürlich eine große Hilfe!
    Welchen Chipsatz verwendest Du denn?
    Grüße
    Stevie
     
  13. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    AFAIK ist es ein Treiber-Problem. Da gibt es wohl immer noch irgendwo ne race condition.

    Wieviele Kanaele bedient denn dein Server und in welchen codec codierst du denn? Bisher bin ich noch immer gut mit Single-Prozessor Systemen ausgekommen (trotz S2M-Leitung).
     
  14. stevie

    stevie Neuer User

    Registriert seit:
    3 Aug. 2005
    Beiträge:
    76
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Es ging nicht konkret um meinen Anwendungsfall! Sondern einfach darum, daß es schade wäre, wenn man dies Option eines SMP-Systems nicht nutzen könnte!
    Will ja jetzt hier keine theoretische Diskussion lostreten, aber wieviele gleichzeitige Verbindungen muss Dein * denn auf Deiner S2M-Leitungen so bedienen? Und von "wo" nach "wo" muss er dabei de/codieren? Ich finde die Frage in so fern spannend, weil die Aussagen, was der * so an CPU-Leistung benötigt, ja teilweise sogar widersprüchlich sind.
    Grüße
    Stevie
     
  15. Maik

    Maik Gesperrt

    Registriert seit:
    1 Apr. 2004
    Beiträge:
    1,778
    Zustimmungen:
    0
    Punkte für Erfolge:
    0
    Konkrete Zahlen kann ich dir hier nicht nennen. Ich kann nur sagen, dass die meisten Leute den Bedarf an Rechenleistugn einfach ueberschaetzen. Oft werden die meisten Kanaele nur im LAN genutzt und daher ist auch keine Komprimierung notwendig (sogar eher stoerend). Fuer die paar Kanaele die dann noch uebrig bleiben reicht ein P4 locker aus.