Ein Rundumschlag über die wichtigsten Begriffe und Konzepte, die man wissen muß, um ISDN unter Linux richtig zu nutzen.
ISDN
steht für Integrated Services Digital Network.
Fangen wir von hinten an: Es handelt sich um ein Netzwerk. Über die beiden Kupferdrähte wird also z.B. nicht nur eine Point-To-Point Verbindung aufgebaut, sondern es können mehrere Verbindungen gleichzeitig bestehen,
Die Daten werden alle digital ausgetauscht. Analogdienste wie z.B: Fax sind hierüber daher potentiell schwieriger zu handeln. Normalerweise werden Analogdienste über Spezialgeräte wie a/b-Wandler oder TK-Anlagen gefahren.
Integrated Services deutet an, daß verschiedene Dienste über dieses Netzwerk behandelt werden können. Typische Services sind Analog-Sprache (SI=0) oder ISDN-Daten (SI=7) was uns hier interessiert.
Der Endpunkt der Telekom-Leitung ist der NTBA (kurz auch NT), der Network Terminator Basis-Anschluß. Das ist der kleine graue Kasten, an dem für die Telekom das Netzwerk aufhört.
An einem NTBA können (normalerweise) 2 Kabel herausgeführt werden, diese bilden gemeinsam ein Bus-System, den sogenannten S0-Bus
An den S0-Bus können 8 Endgeräte angeschlossen werden. Typische Endgeräte sind ISDN-Telefone, TK-Anlagen G4-Fax-Geräte, ISDN-Terminaladapter und ISDN-Karten.
Der S0-Bus bietet 3 Kanäle: ein Steuerkanal, genannt D-Kanal (warum der D-Kanal genannt wird, ist mir unbekannt, die Eselsbrücke D=Daten klappt zumindest nicht). Weiterhin stehen zwei Datenkanäle, genannt Nutzkanal oder B-Kanal (da können wir unsere Bytes rüberschicken) mit jeweils 64 kbit/s zur Verfügung, die jeweils zu unterschiedliche Partner und mit unterschiedlichen Diensten genutzt werden können.
Auf dem D-Kanal können verschiedene Protokolle gefahren werden. Üblich sind 1TR6 (altes nationales ISDN), DSS1 (Euro-ISDN, der Quasi-Standard in 24 Ländern) und N1 in den USA. Der D-Kanal dient u.a. zur Übermittlung des Wunsches eines Verbindungsauf- und abbaus, der Übermittlung der Telefonnummern und der Gebühren. Bei einem falsch eingestellten Protokoll klappt also sehr wenig...
Die Art und Weise, wie die Telefonnummer gemeldet und genannt wird, hängt vom D-Kanal-Protokoll ab:
Die Bezeichnungen EAZ und MSN sind bei I4L ansonsten
synonym zu benutzen (wenn das richtige Protokoll angegeben
wurde).
Bei einem einkommenden Call wird (hoffentlich) die
Zielrufnummer übertragen, genannt CPN (called party
number). Ist sie nicht bekannt, setzt sie I4L auf 0
.
Bekanntlich können für einen Anschluß mehrere Telefonnummern vergeben werden. Diese signalisiert die Vermittlungsstelle (kurz VSt) auf dem D-Kanal (CPN) zusammen mit dem Service-Indikator (SI). Mehr passiert bei einem ankommenden Call erst mal nicht! Es ist danach Aufgabe der Endgeräte sich entsprechend zu verhalten: ignorieren, abweisen, oder den Call annehmen.
Da der SI zusammen mit der Nummer auf dem D-Kanal übermittelt wird, kann dieselbe Telefonnummer mehrfach genutzt werden. Beispiel: das Telefon reagiert nur auf SI=0, der PC reagiert nur auf SI=7.
Bei einem ausgehenden Call muß das Endgeräte die MSN angeben; diese wird dann auch dem Partner übermittelt. Wird keine MSN gesetzt (was I4L nicht zuläßt), setzt die VSt die Nummer ein, wird eine falsche MSN gesetzt, bekommt man keine Verbindung (Erfahrungswerte).
Mehr zu ISDN-Grundlagen findet sich auf
http://www.dtag.de/angebot/isdn/lexikon/right.htm
Worum geht es: Wer die Wahl hat zwischen einem direkten Anschluß am NTBA und einem internen S0-Bus an einer TK-Anlage, sollte sich für den direkten Anschluß entscheiden! Der Betrieb über TK-Anlagen birgt immer gewisse Überraschungen.
Worum geht es nicht: Wenn man eine TK-Anlage am selben NTBA (S0 Bus) wie die ISDN-Karte angeschlossen hat, gibt es keine Probleme. Die TK-Anlage ist hier nur ein normales ISDN-Endgerät, was dieses hinten macht (Anschluß von Analog-Geräten) spielt hier keine Rolle.
Das Verhalten der TK-Anlage hängt unter anderem vom Typ, von der installierten Software und vor allem von deren Konfiguration (und damit vom entsprechenden Service-Techniker) ab.
Bei älteren Anlagen wird oft entgegen allen Aussagen 1TR6 anstatt DSS1 gefahren. Die Verbindungstypen können abhängig vom Service-Indikator konfiguriert werden, wobei oft nur Voice-Calls konfiguriert sind. Weiterhin besteht die Schwierigkeit herauszufinden, welche MSN/EAZ man zu benutzen hat.
Bevor man sich auf andere verläßt, sollte man den Praxistest Selbstanruf machen, siehe: Hardware testen
Ein wesentlicher Unterschied ist der, daß man nicht mit allen anderen lokalen Teilnehmern an einem Bus angeschlossen ist, sondern die TK-Anlage für jeden einzelnen Anschluß einen eigenen S0-Bus nach außen führt, an den meist nur ein Endgerät angeschlossen wird. Dieser Anschluß bekommt eine eigene Durchwahl zugewiesen, oft 2-stellig.
Die beste Veranschaulichung ist die, daß man sich seine TK-Anlage als eine eigene Vst vorstellt.
Beispiel: In Ortsnetz 321 ist eine TK-Anlage mit der Rufnummer 654 an einem Primärmultiplex-Anlagenanschluß installiert (es gibt also mehr als 2 Amtsleitungen, alternativ könnte dies auch ein Bündelanschluß sein - spielt aus dieser Sicht keine Rolle). Es sind 20 interne Leitungen vorhanden, wobei die ersten 10 für Telefone und die zweiten 10 für ISDN-Karten vorgesehen sind. Die Durchwahlnummern seien 10-19 für die Telefon und 20-29 für die ISDN-Karten. Die S0-Busse für die ISDN-Karten seien auf DSS1 konfiguriert.
Dann ist als MSN jeweils 20 bis 29 zu benutzen, denn das sind
die MSN's im Ortsnetz Firma (=321654).
Weiterhin ist zu beachten, daß man zusätzlich eine
0
wählen muß, um aus dem Ortsnetz Firma erstmal
herauszukommen. Um z.B. die Nummer 987 im Ortsnetz
654 anzurufen, muß man 0987
wählen, wobei der
Gegenstelle als Rufnummer 65420
angezeigt wird.
Will man in Berlin anrufen, wählt man selbst die
0030....
an und dort wird 32165420
übermittelt.
Will man selber User-Authentication beim Dial-In über die
Telefonnummer machen, gibt es nur eine sinnvolle
herangehensweise: anrufen lassen. Die in /var/log/messages
angezeigte Nummer dann mittels Cut&Paste in die
entsprechende Konfigurationsdatei übernehmen.
Wie oben erwähnt, muß man bei I4L immer die MSN setzen, um wählen zu können, die Angabe der MSN ist wichtig, da ansonsten meist nichts funktioniert.
Die erste Frage ist dabei immer, ob man direkt am NTBA oder an einer TK-Anlage angeschlossen ist.
Man kann sich eine der 3 oder mehr zugewiesenen MSN's aussuchen. Diese MSN wird der Gegenstelle übermittelt. Wird die MSN zur Überprüfung des Partners benutzt (z.B. bei rawip), muß man sich mit der Gegenstelle natürlich fest auf eine einigen. Ansonsten hat man die freie Wahl, man kann durchaus seine normale Voice-Nummer benutzen.
Man ist auf die Konfiguration der TK-Anlage angewiesen. Die einfachste Methode ist der Selbsttest, siehe Hardware testen
Das Protokoll auf dem D-Kanal erlaubt es Meldungen zu verschicken, die über den Grund bei einem Verbindungsabbruch und nicht erfolgreichem Verbindungsaufbau informieren.
Die Meldungen werden in /var/log/messages
vom
i4l-Subsystem als sogenannte cause
-Meldungen weitergegeben.
Die Art der Meldung hängt vom verwendeten Protokoll
ab (1TR6 oder DSS1), bei DSS1 wird ein E
(für Euro-ISDN)
vorangestellt, dahinter folgen vier (Hex-)Ziffern.
Die ersten beiden geben Auskunft darüber, wo diese
Meldung generiert wurde (bei welcher VSt); die letzten
beiden Ziffern geben den eigentlichen Grund an.
Der isdnlog übersetzt uns freundlicherweise die Meldungen
in Klartext; wenn der nicht läuft (z.B. bei aktiven ISDN-Karten),
kann man die Meldungen mittels man isdn_cause
auflösen.
Nicht alle Meldungen müssen dramatisch sein und müssen auf einen Fehler hinweisen.
Beispiele:
kernel: isdn: hisax1,ch0 cause: E0010
kernel: ippp0: remote hangup
Ursache: der Gegner hat normal aufgelegt, vermutlich wegen Timeout.
kernel: isdn: hisax1,ch0 cause: E0511
isdnlog: Mar 19 20:00:32 tei 70 calling Leibnitz with
Kfr User busy (Private network serving remote user)
Ursache: die VSt beim Gegner teilt uns mit, daß dort der
Anschluß besetzt ist.
kernel: isdn: hisax1,ch0 cause: E0022
isdnlog: Mar 19 21:37:16 tei 70 calling Klein with +49 911/
333, N|rnberg No circuit/channel available (User)
Ursache: alle Kanäle sind belegt.
kernel: isdn0: dialing 1 1111111111...
isdnlog: Apr 13 15:05:18 * tei 84 calling +49 911/111111111,
N|rnberg with Kfr RING (Data)
kernel: isdn: hisax1,ch0 cause: E0201
isdnlog: Apr 13 15:05:19 * tei 127 calling ? with ? Unallocated
(unassigned) number (Public network serving local user)
Ursache: die Zielrufnummer ist nicht zugewiesen.