[gelöst] mISDN - Probleme Verfügbarkeit und Sprachqualität nach Übernahme ...

dischneider

Neuer User
Mitglied seit
11 Mrz 2006
Beiträge
175
Punkte für Reaktionen
0
Punkte
0
Hallo,

Nachdem das Asterisk-System bei mir im Testbetrieb sauber und problemlos lief ergeben sich nun im Echtbetrieb leider doch ein paar (kleinere?) Probleme.

1) misdnportinfo gibt merkwürdigen Status aus:
Code:
Port  1: TE-mode BRI S/T interface line (for phone lines)
 -> Interface is Poin-To-Point.
 -> Protocol: DSS1 (Euro ISDN)
 -> Layer 4 protocol 0x04000001 is detected, but not allowed for TE lib.
 -> childcnt: 2
 * Port NOT useable for PBX
--------
Port  2: TE-mode BRI S/T interface line (for phone lines)
 -> Interface is Poin-To-Point.
 -> Protocol: DSS1 (Euro ISDN)
 -> Layer 4 protocol 0x04000001 is detected, but not allowed for TE lib.
 -> childcnt: 2
 * Port NOT useable for PBX
--------

mISDN_close: fid(3) isize(131072) inbuf(0x804c060) irp(0x804c060) iend(0x804c060)

ISDN ist jedoch ein- und ausgehend verfügbar!!

2) Anscheinend ist teilweise, wenn ein Gespräch über ISDN nach aussen geführt wird, kein weiteres möglich. Ich kann und will auch keinen Konfigurationsfehler ausschließen, bisher habe ich es so verstanden, dass ein Port halt ein ISDN-Port mit 2 nutzbaren Kanälen ist!?
Es kommt dann regelmäßig zu Meldungen:

Code:
Jun 19 18:26:55 WARNING[11216] chan_misdn.c:  --> ! No free channel chan ext:XXXXX even after Group Call
Jun 19 18:26:55 WARNING[11216] chan_misdn.c:  --> SEND: State Down
Jun 19 18:26:55 NOTICE[11216] app_dial.c: Unable to create channel of type 'mISDN' (cause 0 - Unknown)

Die /etc/misdn-init.conf sieht so aus:

Code:
card=1,0x2
te_ptp=1,2
option=1,master_clock
poll=128
dsp_options=0
debug=0

Und dann noch die /etc/asterisk/misdn.conf

Code:
[general]
debug=1
stop_tone_after_first_digit=no
append_digits2exten=yes
bridging=yes
misdn_init=/etc/misdn-init.conf

[default]
language=de
nationalprefix=0
internationalprefix=00
rxgain=0
txgain=0
te_choose_channel=no
dialplan=0
echocancelwhenbridged=yes
echotraining=yes

[dialout-isdn-1]
ports=1
context=isdn-in-1
msns=*
callgroup=1
pickupgroup=1

[dialout-isdn-2]
ports=2
context=isdn-in-2
msns=*
callgroup=1
pickupgroup=1

Die Karte hängt an zwei externen PTP-Anschlüssen mit verschiedenen Rufnummern, die auch (ein- und ausgehend) verschieden im Dialplan behandelt werden müssen.

Die ISDN-Kanäle werden im Dialplan über

Code:
exten => _0.,n,Dial(mISDN/g:dialout-isdn-1/${EXTEN:1},,rtw)

angesprochen (für den zweiten natürlich mit g:dialout-isdn-2).

Nach einem Neustart der mISDN-Treiber (misd-init start && sleep 2 && misdn-init start)
gibt misdnportinfo meistens noch die selben Meldungen aus, manchmal sieht es dann aber auch besser aus.

Teilweise brechen die Gespräche ab, manchmal versteht auch der externe Teilnehmer (egal ab Anrufer oder Angerufener) kaum etwas, der Effekt ist wie starkes verbrummtes Rauschen, die Sprache kommt dann nur noch sehr dünn und wie völlig übersteuert an.

mISDN ist mittels beroNets install-misdn-mqueue installiert, Version ist 0.3.1-rc10.

Für jede Idee und Anregung offen, das System wird benötigt!!

Danke Euch

Dirk

Update (20.06.2006, 12:30):
Habe auf beroNets 0.3.1-rc13 aktualisiert, nach einem Laden der Treiber sah das so aus:

Code:
Port  1: TE-mode BRI S/T interface line (for phone lines)
 -> Interface is Poin-To-Point.
 -> Protocol: DSS1 (Euro ISDN)
 -> childcnt: 2
--------
Port  2: TE-mode BRI S/T interface line (for phone lines)
 -> Interface is Poin-To-Point.
 -> Protocol: DSS1 (Euro ISDN)
 -> childcnt: 2
--------

nach dem Start von Asterisk (1.2.9.1) dann allerdings wieder:

Code:
Port  1: TE-mode BRI S/T interface line (for phone lines)
 -> Interface is Poin-To-Point.
 -> Protocol: DSS1 (Euro ISDN)
 -> Layer 4 protocol 0x04000001 is detected, but not allowed for TE lib.
 -> childcnt: 2
 * Port NOT useable for PBX
--------
Port  2: TE-mode BRI S/T interface line (for phone lines)
 -> Interface is Poin-To-Point.
 -> Protocol: DSS1 (Euro ISDN)
 -> Layer 4 protocol 0x04000001 is detected, but not allowed for TE lib.
 -> childcnt: 2
 * Port NOT useable for PBX
--------

Trotzdem geht es, bis irgendwann mISDN wieder zusammenbricht, ein restart der misdn-init benötigt dann auch eine restart Asterisk, dann geht es wieder, bis mISDN wieder zusammenbricht ....

Dirk
 
Zuletzt bearbeitet:
Hallo, du bist mit rc13 leider an einen recht schlechten RC geraten. Zu dem Problem mit dem Rauschen:

Ich wette wenn der Externe Teilnehmer das Rauschen hört, siehst du in der ausgabe des Programms: "dmesg" Meldungen wie "Next Frame Exists dropping 128 bytes" oder so ähnlich.

Ich habe dazu einen Fix für das mISDN_dsp gemacht der seit heute im cvs von isdn4linux verfügbar ist.

Die Gesprächsabbrüche sind auch durch die rc13 verstärkt, gestern habe ich den ganzen Tag/Nacht daran gearbeitet das B-Kanal Handling von chan_misdn komplett zu überarbeiten. Damit denke ich, dass wir einen enormen Stabilitätsgewinn gemacht haben.

Du kannst einfach das allerneueste install-misdn-mqueue package von unserer Webside laden, dann bekommst du die neuen Versionen mit den Fixes.

Wir testen das ganze hier bei uns und bei ein paar "friendly customern" wenn sich diese Fixes jetzt als dauerhaft stabil erweisen, bin ich geneigt eine 0.3.1 Version zu releasen und damit dann eine Finale stabile 0.3 version zu haben.


Bitte teste das bei dir aus, ich denke viele probleme sollten dann weg sein.
 
OK, das habe ich erst mal getan.
Danke für die Hilfe.

Jetzt schon mal die erste Frage:

Ist es normal, dass, sobald * gestartet ist, die Meldung:
Code:
* Port NOT useable for PBX
kommt?
Und: Da die Anlage inzwischen im Echtbetrieb läuft, kann ich mir kaum noch Ausfälle leisten. Soll ich bei 0.3.1-rc14 bleiben oder gibt es eine definitiv stabil funktionierende Version?
Deine Arbeit ist gut und wichtig, gerne helfe ich Dir auch, habe ja schließlich noch ein Testsystem mit einer einfachen Karte drin, aber das System mit der BN2S0 war ja auch nicht preiswert und der Bezahler erwartet einfach eine stabile Lösung ...

Dirk

Update:

Das war wohl nix, jetzt geht gar nichts mehr.

Die mISDN-Meldungen eines Anrufs von aussen auf den ISDN-Port, der dann via ISDN an eine anderen externe Rufnummer gehen soll (zu mir nach Hause) sieht dann so aus (Nummern entfernt, 111 ist meine anrufende Nummer, 222 die angerufene MSN, 333 die Nummer, die angerufen werden soll):
Code:
P[ 1] I IND :SETUP oad:111 dad:222 pid:1
P[ 1] EXPORT_PID: pid:1
P[ 1] I SEND:PROCEEDING oad:111 dad:222 pid:1
P[ 1]  --> bc_state:BCHAN_CLEANED
    -- Executing NoOp("mISDN/1-1", ""ISDN-Test"") in new stack
    -- Executing Dial("mISDN/1-1", "mISDN/g:dialout-isdn-1/333|15|rtw") in new stack
P[ 1] * CALL: g:dialout-isdn-1/333
P[ 1]  --> * dad:111 tech:mISDN/1-u0 ctx:isdn-1
P[ 1] update_config: Getting Config
P[ 1] IMPORT_PID: importing pid:1
P[ 1] I SEND:SETUP oad:111 dad:333 pid:0
P[ 1]  --> bc_state:BCHAN_CLEANED
P[ 1]  -->  found channel: 1
P[ 1]  --> * SEND: State Dialing pid:2
    -- Called g:dialout-isdn-1/333
P[ 1] * IND : Indication [3] from 222
P[ 1]  --> * IND :      ringing pid:1
P[ 1] I SEND:ALERTING oad:111 dad:222 pid:1
P[ 1]  --> bc_state:BCHAN_ACTIVATED
P[ 1]  --> other End is mISDN TE so it has inband info for sure (?)
P[ 1] I IND :RELEASE_COMPLETE oad: dad: pid:2
P[ 1] release_chan: bc with l3id: 50001
P[ 1] * RELEASING CHANNEL pid:2 ctx:isdn-1 dad:333 oad:222 state: CALLING
P[ 1] I IND :CLEAN_UP oad: dad: pid:2
  == No one is available to answer at this time (1:0/0/0)
P[ 1] * IND : Indication [-1] from 222
P[ 1]  --> * IND :      -1! (stop indication) pid:1
    -- Executing Hangup("mISDN/1-1", "") in new stack
  == Spawn extension (isdn-1, 222, 3) exited non-zero on 'mISDN/1-1'
P[ 1] * IND : HANGUP    pid:1 ctx:isdn-1 dad:222 oad:111 State:ALERTING
P[ 1]  --> cause:16
P[ 1]  --> out_cause:16
P[ 1]  --> state:ALERTING
P[ 1] I SEND:DISCONNECT oad:111 dad:222 pid:1
P[ 1]  --> bc_state:BCHAN_ACTIVATED
P[ 1] Channel: mISDN/1-1 hanguped
P[ 1] I IND :RELEASE oad: dad: pid:1
P[ 1] release_chan: bc with l3id: 2000d
P[ 1] I SEND:RELEASE_COMPLETE oad: dad: pid:1
P[ 1]  --> bc_state:BCHAN_CLEANED
    coding=0 location=2 progress=3
P[ 1] I IND :SETUP oad:111 dad:222 pid:3
P[ 1] EXPORT_PID: pid:3
P[ 1] I SEND:PROCEEDING oad:111 dad:222 pid:3
P[ 1]  --> bc_state:BCHAN_CLEANED
    -- Executing NoOp("mISDN/1-1", ""ISDN-Test"") in new stack
    -- Executing Dial("mISDN/1-1", "mISDN/g:dialout-isdn-1/333|15|rtw") in new stack
P[ 1] * CALL: g:dialout-isdn-1/333
P[ 1]  --> * dad:333 tech:mISDN/1-u1 ctx:isdn-1
P[ 1] update_config: Getting Config
P[ 1] IMPORT_PID: importing pid:3
P[ 1] I SEND:SETUP oad:111 dad:333 pid:2
P[ 1]  --> bc_state:BCHAN_CLEANED
P[ 1]  -->  found channel: 1
P[ 1]  --> * SEND: State Dialing pid:4
    -- Called g:dialout-isdn-1/333
P[ 1] * IND : Indication [3] from 222
P[ 1]  --> * IND :      ringing pid:3
P[ 1] I SEND:ALERTING oad:111 dad:222 pid:3
P[ 1]  --> bc_state:BCHAN_ACTIVATED
P[ 1]  --> other End is mISDN TE so it has inband info for sure (?)
P[ 1] I IND :RELEASE_COMPLETE oad: dad: pid:4
P[ 1] release_chan: bc with l3id: 50002
P[ 1] * RELEASING CHANNEL pid:4 ctx:isdn-1 dad:333 oad:222 state: CALLING
P[ 1] I IND :CLEAN_UP oad: dad: pid:4
  == No one is available to answer at this time (1:0/0/0)
P[ 1] * IND : Indication [-1] from 222
P[ 1]  --> * IND :      -1! (stop indication) pid:3
    -- Executing Hangup("mISDN/1-1", "") in new stack
  == Spawn extension (isdn-1, 222, 3) exited non-zero on 'mISDN/1-1'
P[ 1] * IND : HANGUP    pid:3 ctx:isdn-1 dad:222 oad:111 State:ALERTING
P[ 1]  --> cause:16
P[ 1]  --> out_cause:16
P[ 1]  --> state:ALERTING
P[ 1] I SEND:DISCONNECT oad:111 dad:222 pid:3
P[ 1]  --> bc_state:BCHAN_ACTIVATED
P[ 1] Channel: mISDN/1-1 hanguped
P[ 1] I IND :RELEASE oad: dad: pid:3
P[ 1] release_chan: bc with l3id: 2000e
P[ 1] I SEND:RELEASE_COMPLETE oad: dad: pid:3
P[ 1]  --> bc_state:BCHAN_CLEANED

Die Registrierung des chan_misdn sieht so aus:
Code:
 [chan_misdn.so] => (Channel driver for mISDN Support (Bri/Pri))
mISDN_close: fid(21) isize(131072) inbuf(0xb73f0008) irp(0xb73f0008) iend(0xb73f0008)
  == Parsing '/etc/asterisk/misdn.conf': Found
P[ 0] Got: 1,2 from get_ports
P[ 0] stack_init: port:1 lowerId:40000103  upperId:40000104
P[ 0] stack_init: port:2 lowerId:40000203  upperId:40000204
  == Registered channel type 'mISDN' (Channel driver for mISDN Support (Bri/Pri))
  == Registered application 'misdn_set_opt'
  == Registered application 'misdn_facility'
P[ 0] -- mISDN Channel Driver Registred -- (BE AWARE THIS DRIVER IS EXPERIMENTAL!)


So, was nun? Hat noch jemand eine brauchbare Idee?

Dirk
 
Zuletzt bearbeitet:
Hallo Dirk,

die Meldung ist normal wenn asterisk läuft. das misdnportinfo tool ist dazu gedacht den Porstatus zu überblicken wenn noch kein Userprogramm läuft.

Sobald asterisk an ist, kannst du ja mit "misdn show stacks" die wichtigsten Randinfos sehen.

Bezüglich Stabilität:

Seit der mqueue Umstellung (ca. 1/2 Jahr her) gibt es teilweise stabilere und instabilere Versionen von 0.3.x

Ich bin sehr zuversichtlich, dass wir in den nächsten Tagen endlich die 0.3.1 rausbringen können, und somit eine finale stabile Lösung haben, auf die man stets zurückgreifen kann.

Mit deiner Karte hast du bei beroNet auch Support gekauft, da kannst du einfach anrufen/mailen.
 
warte mal 5 Minuten und probiers nochmal. Ich glaub der B-Kanal ist in der Vermittlungsstelle geblockt.
 
Also, das Problem mit der Verfügbarkeit nur eines Kanals pro Port besteht schon länger, siehe auch meinen ersten Eintrag in diesem Thread.
Wenn ich den Test über beide Ports mache: 111 ruft 222, Asterisk führt für diesen Anruf dann Dial(mISDN/g:444/333) aus, dann geht es.
111 und 333 sind lokale ISDN bei mir, 222 Port1 und 444 Port2 im Asterisk.

Jetzt habe ich dann jedoch als Anrufer in Gesprächspausen (Gegenüber spricht nicht mehr) ein kurzes Rauschen (1/2 Sekunde?), das im Gespräch dann lästig wirkt.

Dirk

Nachtrag:

Sollte man die Ports in der /etc/asterisk/misdn.conf mit port=1ptp statt port=1 einbinden?
Sonst steht bei misdn show config "ptp no"?
Ports laufen beide im TE-Modus.
 
Zuletzt bearbeitet:
ptp musst du in der misdn.conf nicht mehr setzen, das liest chan_misdn inzwischen aus der /etc/misdn-init.conf, kannst du aber wahlweise trotzdem machen, wird nicht stören.

"misdn show config" zeigt nur an was in der misdn.conf steht mehr nicht, d.h. es hat keine Ahnung über den "wahren" Portstatus.

Das Rauschen hörst nur du, oder auch dein Gesprächspartner?

Du kannst ja mal versuchen, alle 4 Kanäle ausgehend aufzubauen, ruf dazu einfach die Telekom support hotline an, ist kostenlos und man hängt meist für 30 Sekunden oder so in ner Warteschlange :)
 
Das Rauschen hört im wesentlichen nur der externe Teilnehmer, intern (SIP-Phones) ist davon nichts zu hören.

OK, das mit dem ptp war mir nur aufgefallen, dann lasse ich es einfach, wie es ist.

Sobald auf einem ISDN-Kanal ein Gespräch läuft, ist der andere nicht verfügbar.
Kommt doof, da eigentlich 6 Nutzkanäle (bisher 4) gebraucht werden (hab gerade eine Billion nachgeordert).

Also, bei einem belegtem Kanal kommt dann immer der Hinweis, das er einen Kanal des Typs mISDN/1 nicht öffnen könne.

Kann es an den Einstellungen liegen?
Oder doch Hardware oder Treiberproblem?

Dirk
 
Kannst du mal bitte in die datei /var/log/syslog schauen ob du dort *sehr* viele Meldungen der From "Next Frame exists" siehst.

Hast du nur chan_misdn upgedated oder hast du auch mISDN upgedated?
 
crich schrieb:
Hast du nur chan_misdn upgedated oder hast du auch mISDN upgedated?


Beides, hoffe ich.
Ich habe zumindest in einem blanken Verzeichnis das Makefile aus der install-misdn-mqueue genommen und ein "make install" gemacht. Er hat zumindest einige CVS-Daten gezogen, sollte dann wohl aktuell sein!?
Kann ich die Versionsinformation irgendwo abrufen?

Also, das System zeigt mir folgendes, ohne Wertung, ob es relevant ist, das müsstest du mir sagen:

dmesg und auch /var/log/kern.log & /var/log/messages & /var/log/syslog:

Code:
l2 D-channel frame wrong EA0/EA1

Ansonsten keine Meldungen in der Richtung "Next Frame exists" oder ähnlichem.

Dirk
 
Das passiert manchmal, ist unkritisch. Sende mal ne mail an support at beronet dot com, dann können wir mal ne ssh session machen wenn du willst.
 
eMail ist versandt, wie sind die zeitlichen Möglichkeiten eines ggf. SSH-Zugriffes?
System läuft halt bereits produktiv, ich kann die Anlage tagsüber nur schwer ausser Betrieb nehmen ...

Dirk
 
:) :) :)

Problem ist gelöst!

Also, nach diverser Korrepondenz mit beroNet, speziell mit crich ( :!: großes Dankeschön für Deine Bemühungen :!: ) sind die Probleme jetzt beseitigt.
Das Problem lag im chan_misdn, mit 0.3.1-rc15 ist das jetzt erledigt.
Die Stabilität ist seit rc14 gegeben, mit rc15 werden jetzt auch die B-Kanäle wie gewollt benutzt.

Danke!

@crich Ich fände es gut, wenn Du im Bereich Asterisk/Asterisk mit mISDN einen Thread aufmachen könntest, in dem Du die aktuellen Versionen mal kurz mit den wichtigsten Änderungen (welche Probleme gelöst) dokumentieren könntest und die aktuell als stabil laufenden Versionen irgendwie kenntlich machst.
So habe ich z.B. einen Beitrag von Dir gefunden, in dem Du auf die 0.3.0-rc27 verweist, allerdings steht dann immer die Frage, wie aktuell ist dies noch?

Dirk
 
wir arbeiten dran eine mailinliste für misdn/chan_misdn zu machen, dort anouncen wir dann auch neue releases usw., wird dann aber auf englisch sein, damit auch jeder was davon hat.
 
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.