isdn4k-utils - HOWTO - Andreas Kool - 31-Mar-97 - 23:53 *************************************************************************** ** Dieses Dokument wendet sich z.Zt. vor allem an all diejenigen, die es ** ** nicht abwarten koennen, und sich die neuen isdn4k-utils ->PRE ALPHA ! ** ** aus dem CVS-Baum ausgecheckt haben. ** ** ** ** Es handelt sich um ein gerade entstehendes Programmpaket - daher ** ** sind alle Fehlerhinweise, Verbesserungsvorschlaege etc. sehr gerne ** ** gesehen, Anfragen bzgl. "ich bekomme das nicht kompiliert" jedoch ** ** koennen in diesem Fruehstadium leider *nicht* beantwortet werden! ** *************************************************************************** Dieses Dokument versucht, jedem den Einstieg in die neuen isdn4k-utils so einfach wie moeglich zu machen. Fuer alte isdnlog-Hasen wirkt die neue Version sicherlich erst einmal wie ein Kulturschock ... soo schlimm wird es aber gar nicht! Um die Benutzung aller Utilities rund um isdn4linux auch fuer Neueinsteiger so einfach wie irgend moeglich zu machen, haben wir versucht, alle Tools ineinander zu verzahnen, und ueber eine einzige, gemeinsame Konfigurationsdatei steuerbar zu machen. Mit folgenden Schritten kommt man in den Genuss von isdnlog-2.99.2: 1. Es sollten als Vorbedingung Linux-2.0.29 nebst isdn4kernel-2.0.29.5 installiert werden. isdnlog-2.99.2 arbeitet zwar auch mit aelteren Versionen von isdn4linux zusammen, jedoch entgehen einem dadurch viele neue Features, und ausserdem wurde isdnlog-2.99.2 primaer in dieser Umgebung getestet - daher koennen Probleme mit frueheren Versionen nicht ausgeschlossen werden. 2. Die isdn4k-utils auspacken: $ cd /usr/src $ tar xzf isdn4k-utils.tar.gz 3. Die grundsaetzlichen Betriebsmodi einstellen: $ cd isdn4k-utils $ make config Es erscheint nun ein interaktives Konfigurationsmenue, in dem die gewuenschten Programme/Optionen angewaehlt werden koennen. Besonderes Augenmerk sollte (neben dem Freischalten von isdnlog ;-) folgenden Einstellungen gelten: #define I4LCONFDIR "/etc/isdn" hier wird angegeben, in welchem Verzeichnis alle Configurations- Dateien untergebracht werden sollen. Wer alles wie frueher belassen will, traegt hier "/etc/isdnlog" ein. Die Developer von isdn4linux haben sich jedoch auf das zukuenftige Verzeichnis "/etc/isdn" geeinigt. # export LIBAREA=1 isdnlog soll mit dem neuen AVON-Verzeichnis von Ullrich von Bassewitz (uz@musoftware.com) arbeiten. Dies sollte _immer_ eingeschaltet werden. # export POSTGRES=1 isdnlog soll alle Verbindungsinformationen auch in eine SQL-Relation eintragen. Dies darf nur eingeschaltet werden, wenn postgres95 einsatzbereit installiert ist! Zur Zeit sind die naechsten beiden Schalter ueberfluessig, da der xisdn voruebergehend aus der Distribution genommen wurde!!!! # export NEED_GDBM=1 Falls man _nicht_ LIBAREA=1 eingeschaltet hat, und zudem keine Datei "/usr/lib/libdbm.a", dafuer aber "/usr/lib/libgdbm.a" besitzt, muss dieser Schalter aktiviert werden. # export NEED_ICE=1 Wer sich das X11-Frontend "xisdn" erstellen moechte, kann hiermit steuern, ob auch die Bibliotheken "libICE.so" sowie "libSM.so" hinzugelinkt werden muessen # export OLD_I4L=1 Wer nicht bereit ist, den aktuellen Stand von isdn4linux einzusetzen, kann hiermit die Unterstuetzung fuer isdn4linux _kleiner_ Rev: 1.31/1.24/1.33 freischalten. Dadurch wird u.a. CHARGEINT unmoeglich! # export ISDN_NL=1 Hiermit wird die gesamte Gebuehrenauswertung auf die Niederlande umgeschaltet. Dieser Schalter muss also in den Niederlanden eingeschaltet werden. # export ISDN_CH=1 Hiermit wird die gesamte Gebuehrenauswertung auf die Schweiz umgeschaltet. Dieser Schalter muss also in der Schweiz eingeschaltet werden. 4. Nun kann alles kompiliert und installiert werden: $ make $ make install Waehrend der Compiler arbeitet bietet sich die Wartezeit geradezu an, um ein wenig im README von isdnlog zu schmoeckern ;-) ACHTUNG: Der Schritt "make install" terminiert einen evtuell gerade aktiven alten isdnlog! Um nicht zu viele Verbindungsinformationen zu verlieren, sollten daher die folgenden Schritte zuegig durchgefuehrt werden! 5. Vorbereiten des ersten Start des neuen isdnlog: Einige wenige Command-Line-Switches von isdnlog wurden erweitert: - Das Argument von "-v" wurde erweitert - Bei "-m", "-l" sowie "-x" wurden marginale Aenderungen durchgefuehrt - Das Argument von "-h" wurde geaendert Wer diese Schalter verwendet, sollte sich daher die entsprechende Beschreibung im "isdnlog/README" durchlesen, und seine Angaben entsprechend korrigieren. Der neue isdnlog arbeitet mit einer vollstaendig anderen Konfigurationsdatei. Diese wird automatisch aus der bestehenden generiert. Es wird das alte Verzeichnis "etc/isdnlog" nach "etc/isdn" umkopiert. isdnlog-2.99.2 versucht daher beim ersten Start, die alte Konfigurationsdatei "isdnlog.conf" in die neue Syntax umzuwandeln. Dieses passiert automatisch mit make install Es werden in dieser Version alle Telefonnummern in der Datei callerid.conf ausgelagert, so dass die isdn.conf sehr klein wird. 6. Erster Start des neuen isdnlog: Nach diesen Vorbereitungen kann isdnlog-2.99.2 nun endlich gestartet werden. Im folgenden unterstelle ich mal, das isdnlog folgendermassen aufgerufen wird (so betreibe ich isdnlog hier): isdnlog -nsS -v13 -t2 -w1 -m0x17f7 -l7 -h5:3 -H5 -22 /dev/isdnctrl0 isdnlog sollte sich - je nach eingestelltem Ausgabekanal - auf der Konsole oder dem syslog in etwa folgendermassen melden: isdnlog Version 2.99.2 loaded (ISDN subsystem with ISDN_MAX_CHANNELS > 16 detected - x active channels (Data versions: iprofd=0x04 net_cfg=0x02 /dev/isdninfo=0x01) Nun sollte als erste Funktionspruefung z.b. der Hoerer des Telefons abgenommen, und wieder aufgelegt werden. Es sollte die Meldung (HiSax driver detected) auftauchen. Ist dies nicht der Fall, muss geprueft werden, ob mittels $ telesctrl ID 1 4 das D-Kanal logging des Hisax-Treibers eingeschaltet wurde. Kurz danach sollten die D-Kanal-Meldungen erscheinen: 22.Feb 12:26:53 * Calling ? with ? BEARER: Speech, CCITT standardized coding 22.Feb 12:26:53 * Calling ? with ? 64 kbit/s, Circuit mode 22.Feb 12:26:53 * Calling ? with ? G.711 A-law 22.Feb 12:26:53 * Calling ? with Phone HLC: CCITT 22.Feb 12:26:53 * Calling ? with Phone HLC: Telefonie 22.Feb 12:26:53 * Calling ? with Phone CHANNEL: BRI, B1 gefordert 22.Feb 12:26:53 * Calling ? with Phone PROGRESS: Location: Local:public net 22.Feb 12:26:53 * Calling ? with Phone PROGRESS: Inband Information available 22.Feb 12:26:56 Calling ? with Phone Normal call clearing 22.Feb 12:26:56 Calling ? with Phone HANGUP Die angezeigten Informationen koennen je nach Telefon, Telefonanlage sowie isdnlog-Konfigurationsdatei von obigem Beispiel abweichen, aber irgend etwas in dieser Art muss auftauchen - sonst stimmt etwas grundlegendes nicht! Neben diesen direkten Meldungen muss isdnlog-2.99.2 sowohl einen Eintrag in der "/var/log/isdn.log" vorgenommen, als auch die Protokolldatei "/tmp/isdnctrl0" fortgeschrieben haben. 7. Nachbearbeitung der neuen Konfigurationsdatei Nachdem isdnlog-2.99.2 nun offensichtlich arbeitet, ist es an der Zeit, die gerade automatisch neu erstellte Konfigurationsdatei zu ueberarbeiten. Die Syntax erschliesst sich einem eigentlich von alleine, eine naehere Beschreibung findet sich im "isdnlog/README" Die Umwandlung von alte auf neue Syntax ist leider ausser Stande, die eingestreuten Kommentare (-> Zeilen mit "#") zu uebernehmen. Daher muessen diese von Hand uebernommen werden. In der Section [GLOBAL] werden automatisch mit make install die beiden Eintraege COUNTRYCODE = +49 AREACODE = xxxx eingefuegt, wenn vorher diese Daten im Menue eingegeben wurden. Nachdem die neue Konfigurationsdatei fuer gut befunden wurde, sollte die alte Konfigurationsdatei "isdnlog.conf" geloescht werden, da isdnlog sonst staendig versuchen wuerde, die alte in die neue Syntax umzustellen (allerdings nur, wenn die alte Datei ein neueres Datum hat, als die neue) Wer bis hier gekommen ist, kann ein lautes "puuuh, geschafft!" ausstossen! Nun ist es endlich an der Zeit, 7.1 Es gibt nun zwei (oder sogar drei!?!) neue Konfigurationsdateien: /etc/isdn/isdn.conf /etc/isdn/callerid.conf ~/.isdn Wobei sich in der "isdn.conf" nur noch die rein auf isdnlog beziehenden Eintraege befinden, und in der "callerid.conf" die von isdnlog und (bald!?!) vbox gemeinsam verwendeten Eintraege! 8. Die neuen Features von isdnlog erkunden - mit dem ersten neuen Feature, der neuen Konfigurationsdatei wurde man ja bereits ausgiebig konfrontiert. Dazu gibt es nun ein neues Programm "isdnconf" zur komfortablen Beauskunftung - siehe dazu "isdnlog/README" - isdnlog arbeitet nun durchgaengig mit "full qualified" Telefonnummern, d.h. alle Telefonnummern werden _nur_noch_ in der Form behandelt. Zum Beispiel wuerde die Nummer "4711" in Frankfurt, Deutschland so "+49 69 4711" dargestellt werden. - isdnlog arbeitet nun mit der neuen Library "areacode-1.01" von Ullrich von Bassewitz (uz@musoftware.com) Eine ausfuehrliche Beschreibung dazu findet sich in "areacode/areacode.doc" Diese Library ersetzt das alte "AVON" Verzeichnis der frueheren isdnlog-Versionen. Sie bietet folgende Vorteile: - sehr aktuelle Ortsnetz-Daten - Daten fuer Deutschland, Schweiz, Oesterreich, Funknetze, 0180- 0190- usw. enthalten - wesentlich schneller - eine einzige, UNIX-weit gemeinsame Bibliothek fuer Vorwahlen. Per heute unterstuetzen - isdnlog - vbox - ESTIC diese Library, weitere Applikationen werden sicherlich folgen! Wer unbedingt auf seine AVON besteht, kann diese natuerlich weiterverwenden. Dieses muss dann allerdings im Menu angegeben werden. - chargeint (auflegen kurz vor dem naechsten Gebuehrenimpuls) ist mittlerweile offizieller Bestandteil von isdn4linux, und damit aus dem "Patch" Stadium heraus. Die Steuerung durch isdnlog wurde verfeinert - siehe dazu den "-h" Schalter - isdnlog-2.99.2 bietet 4 verschiedene Moeglichkeiten, die Kosten gegenueber der .T... sowie dem jeweiligen Internet-Provider zu begrenzen: - Watchdog: isdnlog-2.99.2 erkennt Fehlverhalten von isdn4linux, und terminiert es rechtzeitig. (Neuer Schalter "-Hx" -> wenn seit mehr als "x" Gebuehreneinheiten kein Datentransfer mehr feststellbar ist, wird isdn4linux abgewuergt - wenn es sein muss, mit einem Reboot der ganzen Maschine) - CHARGEMAX: Hiermit kann definiert werden, wieviel Geld (in DM) man maximal gewillt ist, pro Tag zu vertelefonieren. Wird diese Grenze ueberschritten, wird isdn4linux abgewuergt (neuer Eintrag CHARGEMAX in der "isdn.conf") - CONNECTMAX: Hiermit kann definiert werden, welche maximale Verbindungszeit man pro Monat haben moechte (ich habe dort die Freistunden meines Provider's eingetragen) Wird diese Grenze ueberschritten, wird isdn4linux abgewuergt (neuer Eintrag CONNECTMAX in der "isdn.conf") - BYTEMAX: Hiermit kann definiert werden, wieviel Byte man pro Monat maximal saugen will (fuer Provider, die ein maximales Kontingent in Byte definieren). Wird diese Grenze ueberschritten, wird isdn4linux abgewuergt (neuer Eintrag BYTEMAX in der "isdn.conf") - isdnlog-2.99.2 besitzt eine Anbindung an die SQL-Datenbank postgres95. Wird diese freigeschaltet, traegt isdnlog-2.99.2 jede Verbindung nicht nur in die "/var/log/isdn.log", sondern auch in eine SQL-Relation ein. Beschreibung dazu siehe "isdnlog/README" - isdnlog-2.99.2 unterstuetzt nun den neuen "City Weekend Tarif" Wer das bei der .T... beantragt hat, muss isdnlog mit der neuen Option "-F" starten ACHTUNG: Im "City Weekend Tarif" sind die AOC-D / AOC-E Meldungen (Gebuehreninfos) der VSt *definitiv* falsch! (Siehe Kleingedrucktes auf dem Antrag ...) Daher sind die Aussagen von "isdnrep" hierzu natuerlich auch "falsch" ! Die Steuerung des "CHARGEINT" von seiten isdnlog ist jedoch richtig! - isdnlog kann nun (incl. "ChargeInt" Feature) in den Niederlanden eingesetzt werden, da Ad Aerts (ad@aasup.nl) isdnlog _vollstaendig_ an die Niederlande angepasst hat. - isdnlog-2.99.2 versteht eine Menge neuer D-Kanal-Frames, von denen einige in den vergangenen Monaten Bestandteil manchmal heftiger Diskussionen waren: - COLP - CLIP - Rufumleitung Wie mir leider erst in den letzten Tagen bekannt wurde, kann isdnlog-2.99.2 mit dem neuen Feature "Rueckruf bei besetzt" noch _nicht_ umgehen. Hierzu werde ich einen Patch nachliefern, sofern mir die VSt Giessen dieses Feature *endlich* freischaltet! Entgegen frueheren Versionen verbucht isdnlog-2.99.2 jedoch ihm unbekannte FACILITY-Frames nicht mehr mit teilweise astronomischen Gebuehren. Daneben dekodiert isdnlog-2.99.2 nun vollstaendig die Elemente - Bearer capability - Channel identification - Progress indicator - Notification indicator - High layer compatibility aus, und kann die zahlreichen neuen Informationen bei Bedarf anzeigen. - isdnlog-2.99.2 zeigt nun die exakte Dauer (in Sekunden) bis zum naechsten berechneten (also genauen - fuer chargeint verwendeten) Gebuehrenimpuls an: Calling EUnet with HDLC I=883,1Kb 5,8Kb/s O= 40,5Kb 272,6 b/s H#7= 12s ------------------------------------------------------------------^^^^^^^^ Bedeutet: Wir befinden uns gerade in dem 7. Gebuehrentakt, noch exakt 12 Sekunden bis zum faellig werden der naechsten DM 0,12 - isdnlog-2.99.2 bietet nun den neuen Schalter "-Axxx" an. Hiermit kann angegeben werden, welche Ziffern oder Zahlen man an einer Telefonanlage vorwaehlen muss, um "ein Amt" zu bekommen. Dadurch wird isdnlog in die Lage versetzt, diese wieder herauszurechnen, womit die Falschmeldungen bzgl. den Vorwahlen vermieden werden koennen. - Unterstuetzung einer zweiten, falsch angeschlossenen Teles-Karte Wie mittlerweile allgemein bekannt, konnte isdnlog bislang die Informationen von anderen Geraeten am S0-Bus (Telefon, Fax, Modem) nicht mitbekommen. Dagegen wurde mittlerweile eine Loesung erarbeitet: Falls man sich eine zweite Teles-Karte entsprechend dem Schaltbild in "isdnlog/README" einbaut, und isdnlog mit dem neuen Schalter "-2x" startet, bekommt isdnlog nun alle D-Kanal-Frames mit, und kann daher auch alle Informationen lueckenlos anzeigen. Wird fuer "x" 2 eingesetzt, also "isdnlog -22", zeigt isdnlog sogar direkt jede Ziffer an, die man z.b. an einem Telefon eintippt. Um Missverstaendnissen vorzubeugen: - diese zweite Karte kann *nicht* zur Kommunikation eingesetzt werden - sie spielt *nur* noch Monitor - die "-2" Option bedeutet nicht, das isdnlog nun mit mehr als 2 B-Kanaelen umgehen kann! isdnlog arbeitet nach wie vor nur mit einem Basis-Anschluss (BRI) zusammen. Gleichwohl koennen nun mehrere isdnlog's parallel betrieben werden (pro Basis-Anschluss einer), da sich die einzelnen isdnlog's nun nicht mehr gegenseitig in's Gehege kommen. - isdnlog-2.99.2 haelt die Log-Datei "/var/log/isdn.log" nun nicht mehr staendig offen. Daher kann diese nun zu einem beliebigen Zeitpunkt verschoben oder geloescht werden. Danach _muss_ diese Datei jedoch wieder leer angelegt werden (cp /dev/null /var/log/isdn.log) ! So, nun wuensche ich allen viel Spass mit dem neuen isdnlog-2.99.2 - nicht ohne mich bei den Leuten zu bedanken, die viele freie Stunden in die Weiterentwicklung von isdnlog gesteckt haben: Stefan Luethje (luethje@sl-gw.lake.de) Karsten Keil (isdn4@temic-ech.spacenet.de) Fritz Elfert (fritz@wuemaus.franken.de) Ullrich von Bassewitz (uz@musoftware.com) Hardy Buchholz (hardy@Kool.f.EUnet.de) Ad Aerts (ad@aasup.nl) Markus Leist (markus@hal.dirnet.com) und ganz besonders bei Dr.-Ing. Joachim Goeller, der mich beim Verstehen des ISDN-D-Kanal's unzaehlige Male beraten hat! Abschliessend nochmals die Bitte: Wer Probleme mit isdnlog-2.99.2 hat, sollte zu allererst dieses HOWTO, das "isdnlog/README" sowie die einschlaegigen FAQ's zu isdn4linux studieren. Nur wer so nicht weiterkommt, schreibe uns eine email an isdnlog@Kool.f.EUnet.de Diese sollte auf jeden Fall als Mindestausstattung: - die "isdn.conf" - die Aufruf-Parameter von isdnlog - die Versionen von Linux, isdn4linux, HiSax-Treiber - einen Ausschnitt der "/tmp/isdnctrl0" enthalten. Bitte bedenkt, das wir auf dieser Mailing-Liste mittlerweile taeglich eine Unzahl von Anfragen erhalten, und auch unser Tag leider nur 24 Stunden hat! Andreas Kool (akool@Kool.f.EUnet.de)