ISDNLOG - Version 2.30 -  				31-Mar-96  11:20


ACHTUNG!
========

  Gegenueber den Vorversionen haben sich einige Dinge geaendert, die
  vor dem ersten Start dieser neuen Version unbedingt angepasst werden
  muessen!

    - Die "isdnlog.conf" gehoert nun in das Verzeichnis
      "/etc/isdnlog" ... anstelle von "/etc"

    - Die "isdnlog.conf" hat neue Spalten erhalten, die _unbedingt_
      in bestehende Dateien einzutragen sind

    - Alle Telefonnummern in der "isdnlog.conf" muessen nun -
      ausser den eigenen MSN's - mit der korrekten Anzahl vorlaufender
      Nullen eingetragen werden

    - Diverse Command-Line-Argumente von isdnlog haben erweiterte
      oder geaenderte Funktionen erhalten.



Inhalt:
=======

 1.     Was kann/ist/macht isdnlog?
 2.     Was kann isdnlog nicht?
 3.     Installation
 4.     Die Konfigurationsdatei "isdnlog.conf"
 4.1    Grundeinstellungen
 4.2    Telefonnummern
 4.2.1  1. Spalte: Telefonnummer
 4.2.2  2. Spalte: Alias
 4.2.3  3. Spalte: Tarifzone
 4.2.4  4. Spalte: Flags
 4.2.5  5. Spalte: Time
 4.2.6  6. Spalte: Info-Arg
 5.     Das AVON-Verzeichnis
 6.     Betriebsmodi
 7.     Start von isdnlog
 8.     Die Protokoll-Datei "/var/adm/isdn.log"
 9.     Das Report-Modul "isdnrep"
10. 	Probleme?
11.     Verwendete Dateien
12.     Verwendete Abkuerzungen
13.     Danksagung



1. Was kann/ist/macht isdnlog?
------------------------------

isdnlog ist eine Erweiterung zu isdn4linux, das staendig an "/dev/isdnctrl0"
sowie "/dev/isdninfo" lauscht, und saemtliche Vorgaenge auf dem eigenen
ISDN-Anschluss anzeigt.

Dazu liest es aus "/dev/isdnctrl0" (resp. "/dev/isdnctrl2", falls eine
2. Teles-Karte im Rechner steckt) das gesamte Q.931 Protokoll, sowie aus
"/dev/isdninfo" alle internen Meldungen von isdn4linux.

isdnlog sammelt all diese Informationen, und gestattet damit folgendes:

 - der gesamte Verkehr kann auf einer Linux-Console, oder einem xterm
   angezeigt werden. Dies sieht etwa so aus:

   Beispiel #1 : Ein Raus-Ruf mit der Teles-Karte:
    Mar 13 21:16:31 * tei 104 calling EUnet with Phone  Digital
    Mar 13 21:16:33 tei 104 calling EUnet with ISDN  Time:Wed Mar 13 21:17:00 1996
    Mar 13 21:16:33 tei 104 calling EUnet with ISDN  CONNECTED
    Mar 13 21:16:33 tei 104 calling EUnet with ISDN  0,12 DM (0 s)
    Mar 13 21:16:40 tei 104 calling EUnet with ISDN        5,63 kB /   823,43 bps
    Mar 13 21:16:51 tei 104 calling EUnet with ISDN  HANGUP (0,12 DM = 18 s)

   Der gesamte Ablauf der Verbindung wird also mit allen verfuegbaren
   Details (wann passierte das, wer hat wen angerufen, was hat's gekostet,
   wieviel Byte wurden uebertragen, wie lange hat's gedauert ...) angezeigt.

   Beispiel #2 : Ein Fax kam rein (da der "Gegner" noch keinen
   	       	 ISDN-Anschluss hat, d.h. aus der Analogen Welt kommt,
   	       	 fehlt hier dessen Telefonnummer)

    Mar 13 21:29:37 * Call from ? on FAX  Analog
    Mar 13 21:29:42 Call to tei 94 from ? on FAX  CONNECTED
    Mar 13 21:30:47 Call to tei 94 from ? on FAX  HANGUP (65 s)

   Gesteuert ueber eine Config-Datei zeigt isdnlog anstelle der Telefonnummern
   frei waehlbare Alias-Bezeichnungen fuer die Telefonnummern an.


 - isdnlog decodiert (im Gegensatz zum aktuellen Teles-Treiber) die
   von der VSt uebermittelten Gebuehreninformationen, und zeigt diese
   sowohl am Ende einer Verbinung (== Gesamtkosten fuer diese Verbindung)
   als auch waehrend der Verbindung staendig an.


 - mit einem (beigefuegten) Patch fuer isdn4linux kann isdnlog pro aktivem
   B-Kanal staendig die aktuelle Durchsatz-Rate (in Byte/s), sowie die
   bislang komplett durchgerauschten Byte anzeigen.
   Zur Zeit werden aber nur die ankommenden Bytes angezeigt.


 - Alle Verbindungen (sowohl die zustande gekommenen, als auch die nicht
   zustande gekommenen (Besetzt, Gegner nimmt nicht ab, Fehler im ISDN-Netz)
   schreibt isdnlog komprimiert in ein Logbuch ("/var/adm/isdn.log").
   Dieses Logbuch kann jederzeit mit dem Programm "isdnrep" ausgewertet
   resp. eine Verbindungsstatistik ausgedruckt werden.

   Hat man selbst keine Gebuehreninfo fuer seinen Anschluss beantragt
   (-> keine Gebuehreninfo A, kein Komfort-Anschluss), berechnet isdnrep
   die angefallenen Gebuehren aufgrund Uhrzeit/Datum sowie Ortsnetz/Zone
   des Gegners selbst, und gibt also auch in diesem Fall die aufgelaufenen
   Gebuehren aus.


 - Pro Gegner kann ein externes Programm definiert werden, das isdnlog
   startet, sobald dieser Gegner anruft, oder dieser angerufen wird.
   Damit kann zum einen pro Verbindung ein Audio-Signal ueber die Sound-Karte
   erzeugt werden (-> Telefonklingeln abhaengig vom Gegner), oder aber
   eine Waschmaschine angesteuert werden. Der Phantasie sind hier keine
   Grenzen gesetzt.


 - isdnlog kann den gesamten Output von "/dev/isdnctrl0" sowie "/dev/isdninfo"
   (ergaenzt um Datum/Uhrzeit) fuer eine spaetere Analyse mitprotokollieren
   (in "/tmp/isdnctrl0").


 - isdnlog erzeugt auf Wunsch syslog-Eintraege mit selektierbaren
   Informationen


 - isdnlog erkennt selbststaendig 1TR6 oder E-DSS1 Frames, und decodiert
   entsprechend korrekt.

 - isdnlog steuert einen X11-Client an, der neben einer Anzeige aller
   Verbindungen auch die On-Line Definition von bislang unbekannten
   Gegnern u.ae. ermoeglicht. Dieser X11-Client ("xisdn") wird in der
   naechsten isdnlog-Version beiliegen.


2. Was kann isdnlog nicht?
--------------------------

Z.Zt. arbeitet isdnlog _nur_ mir dem Teles-Treiber (und damit mit einer
Teles-ISDN-Karte od. compatiblen Karten) zusammen, die ICN-Karte wird
leider nicht unterstuetzt.

Weiterhin kann isdnlog bei allen rausgehenden Verbindungen, die nicht
mit der Teles-Karte entstanden sind (ISDN-Telefon, Modem/Fax etc. am
a/b Adapter oder einer Telefonanlage) die entsprechenden Telefonnummern
leider nicht anzeigen. Dazu Gernot Zander:

: Rausgehende Gespraeche von fremden Geraeten (Teflon, Modem) koennen
: nicht richtig protokolliert werden, weil die Nummer nur ans's Amt
: geschickt, aber nicht _zurueckgeschickt_ wird. Bei eigenen Anrufen weiss der
: Treiber die Nummer zwangslaeufig:-), bei ankommenden wird sie _vom_ Amt
: mitgeteilt.
: Die Karte (und damit teles0.4d) kann nur das mitschreiben, was _vom_
: Amt kommt oder was sie selber _zum_ Amt schickt. Nicht aber, was Fremd-
: geraete _zum_ Amt senden.


3. Installation
---------------

Wer noch eine isdn4linux-Version _vor_ 0.7.3beta betreibt, muss zuerst
den Patch "PATCHES/isdn4linux-0.7.2" auf isdn4linux anwenden, und dies
neu installieren. Damit wird isdn4linux isdnlog-faehig gemacht. Ab
isdn4linux0.7.3beta ist dieser Patch _nicht_ mehr erforderlich!
Der Einsatz von isdn4linux _vor_ der Version 0.4d ist nicht moeglich!

  cd /usr/src/isdn
  patch < ../isdnlog-<Version>/PATCHES/isdn4linux-0.7.2
  make install

Wer die Durchsatz-Raten-Ermittlung von isdnlog nutzen moechte, muss
zuerst isdn4linux mit einem der folgenden Patches erweitern, und neu
installieren (wird fuer xisdnload benoetigt, fuer isdnlog optional):

Fuer isdn4linux0.7.3beta:

  cd /usr/src
  patch < ../isdnlog-<Version>/PATCHES/isdn4linux-0.7.3
  cd isdn
  make install

Fuer die (ab Linux-1.3.69) bereits im Linux-Kernel enthaltene Version

  cd /usr/src/linux
  patch < ../isdnlog-<Version>/PATCHES/isdn4kernel-1.3.70
  make modules


Nun kann isdnlog ausgepackt (wohl bereits geschehen ;-) und erstellt
sowie installiert werden:

  cd /usr/src
  tar xzf isdnlog.tar.gz
  cd isdnlog-<Version>
  make install

Vor dem "make" koennen folgende Eintraege im "Makefile" den eigenen
Gegebenheiten angepasst werden:

  COPTS
    Compiler-Optionen fuer den gcc
    ACHTUNG: Die Voreinstellung "-O3" sollte bei gcc-Versionen _vor_ 2.7.2
    	     entfernt werden, da diese Compiler-Versionen noch Probleme mit
    	     dem Optimizer haben!


  CONFDIR  (/etc/isdnlog)
    Wo liegen die "isdnlog.conf" sowie die "avon"

  CONFFILE (isdnlog.conf)
    Wie soll die Konfigurations-Datei heissen

  LOGFILE  (/var/adm/isdn.log)
    Wie soll das Logbuch heissen

  PIDFILE  (/var/run/isdnlog.pid)
    Wie soll das File mit isdnlog's PID heissen

  ETCDIR   (/sbin)
    Wohin soll "isdnlog" installiert werden

  BINDIR   (/usr/sbin)
    Wohin soll "isdnrep" installiert werden

  TMPDIR   (/tmp)
    Wo soll das "isdnctrl0" hingeschrieben werden

  X11BIN   (/usr/X11R6/bin)
    Wohin soll "xisdn" installiert werden

  APPDEF   (/usr/X11R6/lib/X11/app-defaults)
    Wohin soll das Resource-File von "xisdn" installiert werden


Folgende Programme und Dateien werden durch den "make install" erstellt:

  /sbin/isdnlog
  /usr/sbin/isdnrep
  /etc/isdnlog/avon


Wer sowohl das Motif-Development-Kit als auch die Motif-Tools besitzt, und
dazu nicht vor Software im Alpha-Stadium zurueckschreckt, kann sich mit

  make xinstall

den X11-Client "xisdn" erstellen. In diesem Fall muss in der Datei
"/etc/services" der folgende neue Eintrag vorgenommen werden:

isdnlog		20011/tcp	isdnlog

Nun muss dem X11-Client noch mitgeteilt werden, wo sich sein Resourcen-File
befindet: "export XENVIRONMENT=./Isdn"


Im Verzeichnis "xisdnload" befindet sich ein weiterer X11-Client von
Frank Strauss (strauss@escape.de), der die Durchsatz-Rate pro B-Kanal
auch grafisch darstellen kann. Dieser kann mittels

  xmkmf
  make

erstellt werden.


4. Die Konfigurationsdatei "isdnlog.conf"
-----------------------------------------

Die Konfigurationsdatei wird im Verzeichnis "/etc/isdnlog" erwartet, und
enthaelt alle fuer isdnlog relevanten Steuerungsparameter.

Leere Zeilen, sowie Zeilen, die mit einem "#" beginnen, werden als Kommentar
ignoriert.

Daneben koennen/muessen zwei verschiedene Arten von Eintraegen vorgenommen
werden.


4.1 Grundeinstellungen
----------------------

MYMSNS=n

Die Anzahl eigener MSN's (Telefonnummern)
Falls dieser Eintrag fehlt, werden 3 angenommen.


MYPREFIX=sssss

Die eigene Vorwahl (mit vorlaufender "0"). Dieser Eintrag ist zwingend.
Wird isdnlog im 1TR6 eingesetzt, muss hier die _gesamte_ Telefonnummer
exclusive der EAZ eingetragen werden.


HANGUP=sssss

Ein Argument (z.b. Sound-File), das die Info-Funktion bei jedem
Verbindungsabbau verwendet. Optional.


AOCD=sssss

Ein Argument (z.b. Sound-File), das die Info-Funktion bei jedem
Gebuehrenimpuls verwendet. Optional.


CURRENCY=factor,currency

Angabe der Waehrungsbezeichnung sowie eines Multiplikationsfaktors.
Falls dieser Eintrag fehlt, wird "0.12,DM" angenommen, d.h. jeder
Gebuehrenimpuls wird mit 0.12 multipliziert, und mit der Bezeichnung
"DM" angedruckt.

In einigen europaeischen Laendern werden diese beiden Parameter bereits
von der VSt uebertragen (z.b. Oesterreich), und brauchen daher nicht
angegeben zu werden.
  ACHTUNG: In der vorliegenden Version werden diese beiden Parameter
  noch nicht an isdnrep uebergeben, und muessen daher bei Einsatz des
  "isdnrep" trotz Uebermittlung von der VSt eingetragen werden!


4.2 Telefonnummern
------------------

Hier koennen eine beliebige Anzahl von Telefonnummer nebst einigen
zusaetzlichen Parametern angegeben werden.
Die Angabe _aller_ eigenen Telefonnummern ist zwingend, alle weiteren
Partner-Telefonnummern koennen eingeben werden.

Die eigenen MSN's muessen zuerst eingegeben werden!

Jeder Eintrag (== Zeile) besteht aus 5 oder 6, durch mindestens 1 Blank oder
Tab getrennte Spalten.


Telefonnummer  Alias  Zone  Flags  Time  Info-Argument
---------------------------------------------------------------------
4711           Phone   1    IORA   18-21 /var/isdn/sounds/dingdong.au


4.2.1 1. Spalte: Telefonnummer
-----------------------------

Die eigenen MSN's muessen _ohne_ Vorwahl eingegeben werden (diese wurde
ja bereits via MYPREFIX definiert), alle anderen Telefonnummern immer
mit kompletter Vorwahl. Inlaendische Telefonnummern muessen mit einer
vorlaufenden "0", auslaendische mit zwei vorlaufenden "0" angegeben werden.
(Also genau so, wie man die Telefonnummern waehlen wuerde)

Alle Telefonnummern koennen die ueblichen Wildcard-Symbole enthalten,
also "?" matched genau ein Zeichen, "*" matched beliebig viele
(also auch "keine") Zeichen, und mit "[]" koennen mehrere
moegliche Zeichen angegeben werden (oder auch eine Range [4-7], oder auch
die Verneinung, also [!6])


4.2.2 2. Spalte: Alias
--------------------------

In der zweiten Spalte steht eine beliebige Symbolische Beschreibung fuer
diese Nummer ("Mausi", "EUnet" usw.). Diese darf *kein* Blank enthalten!
Weiterhin darf diese Beschreibung maximal 14 Zeichen lang sein.


4.2.3 3. Spalte: Tarifzone
------------------------------

In der dritten Spalte steht die Tarifzone, in der sich von uns aus gesehen
diese Nummer befindet:

 1 = City (bis 31.12.1995 "Ortszone/Nahzone", bis 20 km)
 2 = Region 50 (bis 31.12.1995 "Regionalzone", bis 50 km)
 3 = Region 200 (bis 31.12.1995 "Weitzone", dann bis 200 km)
 4 = Fernzone (bis 31.12.1995 "Weitzone", dann alles ueber 200 km)
 5 = angrenzende Laender


4.2.4 4. Spalte: Flags
--------------------------

Hier wird angegeben, bei welchem Event das Info-Programm gestartet werden
soll. Es koennen eine beliebige Menge aus folgenden Flags angegeben werden:

 I = Bei INCOMING Programm starten
 O = Bei OUTGOING Programm starten
 C = Bei CONNECT Programm starten
 R = Bei RING Programm starten
 K = Programm bei RELEASE killen
 A = Bei AOCD Programm starten


4.2.5 5. Spalte: Time
--------------------------

In Time kann eine Zeitzone angegeben werden, in der das Info-Programm
gestartet werden darf:
 *          = immer
 8-22 	    = zwischen 8 Uhr morgen's und 22 Uhr abend's
 8-16,18-22 = von 8 .. 16 Uhr, und von 18 .. 22 Uhr

Die Zeitangaben muessen mit ',' oder ';' voneinander getrennt sein.

  Beispiel: 8-12,14,16,18-20
            8;9;10;11-14


4.2.6 6. Spalte: Info-Arg
------------------------------

Hier wird das Info-Argument angegeben. Je nach eingesetztem Info-Modus
wird hier der gesamte zu startende Befehl, oder nur die Argumente fuer
das bereits ueber die Kommando-Zeile definierte Info-Programm angegeben.
Diese Spalte ist optional, d.h. kann entfallen.

Moeglichkeit #1: isdnlog -i <program>

In diesem Modi wird stets das Programm <program> gestartet, dem als Parameter
die gesamte 6. Spalte uebergeben wird.

Das bei der "-i" Option angegebene Programm kann auch einen Platzhalter
enthalten, Ausgabeumlenkungen koennen aber nicht verwendet werden.
Beispielsweise kann mit der Angabe "isdnlog -i '/sbin/aplay $1' der in
isdnlog.conf hinterlegte Sound gespielt werden, wenn man unter
/sbin/aplay das folgende Shellskript anlegt und ausfuehrbar macht.

  #!/bin/sh
  cat $1 >/dev/audio


Die "-i" Option sucht nach folgendem Algorithmus den passenden Sound:

 1. Wenn isdnlog die Telefonnummern beide unbekannt sind (also Anruf aus dem
    Analogen Netz, oder Nummern nicht in der "isdnlog.conf" eingetragen)
    spielt es - falls definiert - den Sound der allerersten Telefonnummer
    in der "isdnlog.conf"

 2. Sonst sucht isdnlog aus allen "fremden" Telefonnummern (also die Eintraege
    nach "MYMSNS") die passende raus - bei einem DIALIN (jemand ruft dich
    an) sucht es die Nummer den Anrufers, bei einem DIALOUT (du rufst
    jemanden an) sucht es die Nummer des Angerufenen.

 3. Wenn isdnlog jetzt immer noch nix gefunden habt, sucht es aus den eigenen
    Nummern (also die Eintraege 1 .. MYMSNS) die Nummer raus, mit der
    rausgerufen wird - oder auf der angerufen wird - und spielt diesen Sound.


Moeglichkeit #2: isdnlog -S

In diesem Modi muss in der 6. Spalte das gesamte, zu startende Programm mit
allen Parametern angegeben werden.


5. Das AVON-Verzeichnis
-----------------------

Ein "make install" installiert im isdnlog-Verzeichnis "/etc/isdnlog"
eine ASCII-Datei "avon". Diese enthaelt ein Verzeichnis aller
Vorwahlnummern fuer Deutschland in der Form <Vorwahl> : <Ortsnetzbezeichnung>

Beim ersten Start liest isdnlog diese ASCII-Datei ein, und erstellt
daraus eine ISAM-Datei ("avon.dir" / "avon.pag").

Sobald die VSt isdnlog eine Telefonnummer meldet, die noch unbekannt ist
(d.h. nicht in der "isdnlog.conf" angegeben ist), sucht isdnlog diese
Telefonnummer im AVON-Verzeichnis, und zeigt die Telefonnummer in der
Form: "<Vorwahl> / Rufnummer, Ortsnetz" an.

Falls das AVON-Verzeichnis korrigiert oder erweitert wird, muessen danach
die Dateien "/etc/isdnlog/avon.dir" sowie "/etc/isdnlog/avon.pag"
von Hand geloescht, und isdnlog neu gestartet werden, damit das
neue Verzeichnis aufgebaut werden kann.

Beim Einlesen der ASCII-Datei kann moeglicherweise die Fehlermeldung

  isdnlog: WARNING: Duplicate Entry ``<Ort2>'' in AVON in Line xx, ignored
  isdnlog: WARNING: Can't be ``<Ort1>'' and ``<Ort2>''!

erscheinen. Dies deutet an, das eine Vorwahl zwei mal eingetragen wurde.


6. Betriebsmodi
---------------

isdnlog kennt folgende grundsaetzliche Betriebsmodi:

  - isdnlog -m1015

   isdnlog zeigt den gesamten Ablauf jeder Verbindung auf stdout an.
   Dieser Output kann mit der Zusatz-Option "-C<file>" z.b. auf andere
   Linux-Consolen umgelenkt werden ("isdnlog -m1015 -Ctty7" -> 7. Console)

  - isdnlog -i auplay

   isdnlog startet bei diversen Event's das angegebene externe Programm
   (also im Beispiel "auplay"), und uebergibt ihm als Argument bestimmte
   Eintraege aus der "isdnlog.conf":

    1. Sobald jemand mit einer dort definierten MSN anruft (oder angerufen
       wird), mit der 6. Spalte

       Wurde bei einer Telefonnummer keine 6. Spalte angegeben, wird
       anstelle die 6. Spalte der eigenen MSN eingesetzt

    2. Pro Gebuehrenimpuls von der VSt wird das externe Programm mit dem
       Eintrag "AOCD=sssss" gestartet

    3. Bei jedem Verbindungsende wird das externe Programm mit dem
       Eintrag "HANGUP=sssss" gestartet


  - isdnlog -S

   isdnlog startet bei diversen Event's die gesamte 6. Spalte der
   "isdnlog.conf" als externes Programm.

   Jedoch wird das angegebene Programm nur dann gestartet, wenn folgende
   Bedingungen erfuellt sind:

     1. Die Telefonnummer entspricht dem Eintrag in der "isdnlog.conf"

     2. Man selbst ruft diese Nummer an, und in der Flags-Spalte ist
     	"O" fuer OUTGOING gesetzt.

        oder

        Man wird von dieser Nummer angerufen, und in der Flags-Spalte
        ist "I" fuer INCOMING gesetzt.

     3. Es "klingelt", d.h. eine Verbindung ist gerade im Entstehen, und
     	in der Flags-Spalte ist "R" fuer RING gesetzt.

        oder

        Die Verbindung kam zustande, und in der Flags-Spalte ist "C" fuer
     	CONNECT gesetzt.

     4. In der "Time" Spalte der "isdnlog.conf" ist die aktuelle Uhrzeit
     	als zulaessig definiert. Steht also z.b. "20-22" in der Time-Spalte,
        wird das Programm _nur_ zwischen 20 Uhr und 22 Uhr gestartet.


Die eigentliche Grund-Aufgabe von isdnlog, das Fortfuehren des Logbuch's
"/var/adm/isdn.log" wird auf jeden Fall durchgefuehrt.

Daneben bietet isdnlog noch folgende interessante Zusatz-Funktion:

  - isdnlog -t 1    oder  isdnlog -t 2

   Bei jeder rausgehenden Verbindung uebertraegt die Vermittlungsstelle
   die aktuelle Uhrzeit/Datum an isdnlog. Mit der Option "-t 1" setzt
   isdnlog _einmalig_ die Systemzeit des Rechners auf diese uebertragene
   Zeit.

   Mit der Option "-t 2" setzt isdnlog bei _jeder_ Uhrzeit-Uebertragung
   die Rechner-Uhr neu.


7. Start von isdnlog
--------------------

Vor dem Start von "isdnlog" muss das D-Channel Q.931 logging des
Teles-Treiber eingeschaltet werden. Bis "isdn4linux0.6.6beta" ist dazu

         telesctrl /dev/isdnctrl0 1 4

einzugeben.

Ab "isdn4linux0.7.0beta" lautet der Befehl

         telesctrl <DriverID> 1 4

wobei "<DriverID>" mit dem String zu ersetzen ist, der beim "insmod teles.o"
als "id=<DriverID>" angegeben wurde.

Die Kernel-Version von isdn4linux benoetigt anstelle von
"id=" ein "teles_id=" !

Wurde keine "id" angegeben, ist beim "telesctrl" stattdessen "line0"
anzugeben.

Beim "telesctrl" koennen auch noch weitere Debug-Flags eingeschaltet werden,
isdnlog benoetigt allerdings auf jeden Fall die "4"

Nun kann isdnlog mittels:

  isdnlog [ -vsi:x:m:l:rt:cC:d:w:SVTRD ] [ /dev/isdnctrl0 | - ]

gestartet werden.

isdnlog besitzt drei Ausgabekanaele:
 - Console (default stderr) (Schalter -mX)
 - syslog  (Schalter -lX)
 - xisdn   (Scahlter -xX)

Beim normalen Start (nicht als Daemon) werden alle Ausgaben (Meldungen)
vom isdnlog auf stderr ausgegeben.

Sobald isdnlog gestartet wird, erzeugt es eine Datei "/var/run/isdnlog.pid",
und schreibt dort seine eigene Process-ID hinein. Somit kann isdnlog
jederzeit mittels "kill `cat /var/run/isdnlog.pid`" terminiert werden.
(Was z.b. zwingend ist, wenn man das teles- oder isdn- Modul entladen will!)

isdnlog kann mittels "kill -HUP `cat /var/run/isdnlog.pid`" dazu aufgefordert
werden, die Konfigurationsdatei "/etc/isdnlog/isdnlog.conf" neu einzulesen
(z.b., nachdem daran Erweiterungen vorgenommen wurden)
Dies darf jedoch _nicht_ waehrend einer laufenden Verbindung gemacht werden!

Die Optionen, denen ein "X" folgt, benoetigen einen zusaetzlichen Parameter.
(z.b.  "-pX" -> "-p 20012" oder "-p20012". Nummerische Parameter koennen
in Dezimal (z.b. "64"), hexadezimal (z.b. "0x40"), oder octal (z.b. "0100")
angegeben werden.

 -V  isdnlog zeigt seine eigene Versionsnummer an, und terminiert wieder

 -v  isdnlog schreibt den gesamten Output von "/dev/isdnctrl0" sowie
     "/dev/isdninfo", ergaenzt um Uhrzeit/Datum nach "/tmp/isdnctrl0"
     zur spaeteren Kontrolle

 -s  isdnlog fuehrt nach jedem Schreibzugriff auf die "/tmp/isdnctrl0"
     (-> siehe "-v") einen flush() darauf aus

 -iX Angabe des externen Programmes, das bei diversen Event's von
     isdnlog gestartet werden soll

 -c  Das externe Programm (-> siehe "-i") wird erst beim zustandekommen
     einer Verbindung gestartet - sonst bereits beim "klingeln"

 -pX Angabe der TCP/IP Port-Nummer, ueber die isdnlog mit dem X11-Client
     kommunizieren soll
     ACHTUNG: Andere Bedeutung als in frueheren Versionen!

 -mX Angabe der gewuenschten Meldungen, die angezeigt werden sollen.
     Normalerweise ist das stderr. Es kann aber mit -CX ein anderes
     Device sein.
     ACHTUNG: Andere Bedeutung als in frueheren Versionen!

 -lX Angabe der gewuenschten Meldungen, die in's syslog eingetragen
     werden sollen

 -xX Angabe der gewuenschten Meldungen, die dem X11-Client gemeldet
     werden sollen. Gleichzeit mit -xX wird es erlaubt, dass ein X11-Client
     sich beim isdnlog anmelden darf.

 -r  isdnlog spielt die angegebene Datei (eine "/tmp/isdnctrl0") nochmals
     trocken durch (Zwecks debugging etc.)

 -R  wie "-R", jedoch wird dabei eine Datei erwartet, die nicht von isdnlog
     um Datum/Uhrzeit erweitert wurde, also z.b. der Output eines
     "cat /dev/isdnctrl0"

 -tX isdnlog soll bei einer Uhrzeit-Uebertragung durch die VSt die
     Rechneruhr entsprechend stellen (-t 1 = ein mal, -t 2 = immer)
     ACHTUNG: Erweiterte Syntax gegenueber frueheren Versionen!

 -CX Angabe des Device, an das isdnlog die Meldungen von stderr ausgeben soll.
     Es werden nach Angabe dieses Schalters keine Meldungen mehr auf stderr
     ausgegeben, sondern nur noch an das angegebene Device.
     (-C7 -> /dev/tty7, -Cp5 -> /dev/ttyp5)
     ACHTUNG: Erweiterte Syntax gegenueber frueheren Versionen!

 -S  isdnlog soll bei diversen Event's die in der 6. Spalte der isdnlog.conf
     angegebenen externen Programme starten

 -wX in welchen Abstaenden soll isdnlog die Uebertragungsrate neu
     berechnen und anzeigen (Angabe in Sekunden)

 -D  isdnlog wird als Daemon gestartet. Wenn -mX nicht verwendet wurde, wird
     die gesamte Ausgabe (normal stderr) auf den syslog geschrieben. Der
     isdnlog wird automatisch im Hintergrund gestartet.

 -T  Trace-Modus ... isdnlog laeuft im Single-Step-Modus, und wartet
     pro verarbeiteter Zeile aus "/dev/isdnctrl0" auf einen Tastendruck.
     An dem Prompt ">>>>>>> TRACE (CR=next, q=quit, d=dump, g=go):" kann
     mit "d" ein Dump aller relevanten internen Variablen erzeugt,
     sowie mit "g" der Trace-Modus beendet werden.

 -P  Pipe-Modus ... isdnlog reicht den gesamten Output von "/dev/isdnctrl0"
     an stdout weiter. Somit kann isdnlog als Quelle einer Pipe laufen:

        isdnlog -P /dev/isdnctrl0 | prog2  ...

 -e  Die "-m" Ausgabe enthaelt _nicht_ die jeweilige tei des angesprochenen
     Geraetes


Bei den Optionen -mX, -lX -xX sind folgende Flags moeglich:

   1  Errors
      Fehlermeldungen vom isdnlog. Diese ist eine Defaultausgabe, die auf
      stderr bzw. an syslog (bei -D) gemeldet wird.

   2  Warnings
      Warnungen vom isdnlog. Diese ist eine Defaultausgabe, die auf stderr
      bzw. an syslog (bei -D) gemeldet wird.

   4  Meldungen
      Fehlermeldungen vom isdnlog. Diese ist eine Defaultausgabe, die auf
      stderr bzw. an syslog (bei -D) gemeldet wird.

   8  Log-Ausgabe
      Die Meldungen, die der isdnlog in die Datei "/tmp/isdnctrl0" schreibt.

  16  Show Numbers
      Sofort, wenn Telefonnummern auf dem S0-Bus auftauchen,
      werden diese angezeigt:

       Feb 17 19:10:11 * tei 123 calling EUnet with ISDN  Digital

      ACHTUNG: fruehere Versionen: -m1

  32  Show AOCD
      Bei jedem Gebuehrenimpuls wird die Anzahl der bislang
      aufgelaufenen Gebuehreneinheiten fuer die aktuelle Verbindung
      angezeigt:

       Feb 17 19:09:29 tei 123 calling EUnet with ISDN  2.EH = DM 0,24 (20 s)

      ## Dies funktioniert natuerlich nur, wenn auf der aktiven
      ## ISDN-Leitung Gebuehreninfo "A" (Charging-Info's during call's -
      ## AOC-D) bestellt wurde!

      Es wird die Anzahl der aufgelaufenen Einheiten sowie diese
      Einheiten umgerechnet in Geld (EH * DM 0,12) angezeigt.
      In Klammern wird angegeben, nach wieviel Sekunden (seit dem
      Verbindungsaufbau) dieser Gebuehrentakt erschien - eigentlich
      mehr, um aufzuzeigen, wie _ungenau_ die Uhr der VSt eigentlich
      laeuft!

      ACHTUNG: fruehere Versionen: -m2

  64  Show Connect
      Kommt eine Verbindung zustande (Telefon wird abgenommen,
      ISDN-Karte akzeptiert den Call etc.) wird dies angezeigt:

       Feb 17 19:11:11 tei 123 calling EUnet with ISDN  CONNECTED

      ACHTUNG: fruehere Versionen: -m4


 128  Show Hangup
      Sobald diese Verbindung beendet wurde, wird dies angezeigt
      (Wie bei -m2 mit Anzahl Einheiten, diese in Geld sowie
      Gesamtdauer der Verbindung. Die Anzahl Einheiten stammt hier
      jedoch aus der AOC-E Meldung der VSt)

       Feb 17 19:14:13 tei 123 calling EUnet with ISDN  HANGUP (15 EH = DM 1,80 = 148 s)

      ACHTUNG: fruehere Versionen: -m8

 256  Show Cause
      Der Grund fuer einen Verbindungsabbau/das nicht zustande
      kommen einer Verbindung wird angezeigt

       Feb 17 19:14:24 tei 123 calling bun with Phone  No user responding

      ACHTUNG: fruehere Versionen: -m16

 512  Show Time
      Die von der VSt uebermittelte Uhrzeit wird angezeigt

       Feb 17 19:11:11 tei 123 calling EUnet with ISDN  Time:Sat Feb 17 19:09:00 1996

      ACHTUNG: fruehere Versionen: -m32

1024  Show Byte
      Der Durchsatz in Byte/s wird im Rythmus von "-w x" Sekunden angezeigt


Alle weiteren Flags (2048 .. 524288) sind Debug-Flags

Werden mehrere Optionen gewuenscht, muss bei -mX bzw -lX, -xX  die Summe der
Optionen angegeben werden, d.h. falls alle obigen Optionen auf stderr
gewuenscht werden, muss "isdnlog" nun mit "-m1015" gestartet werden.

Das in aelteren Version verwendete "-m63" entspricht jetzt also "-m1015",
da die ersten drei Flags auch gesetzt sein sollten.
Alle z.Zt. moeglichen Informationen von isdnlog koennen mit "-m2039"
angefordert werden.

Wenn man die Schalter -mX, -lX oder -xX verwendet, sollte man darauf achten,
dass die Meldungen (1: Errors, 2: Warnings und 4: Meldungen) auf jeden Fall
irgendwo ausgegeben werden, da dies grundlegende Meldungen vom isdnlog sind.


8. Die Protokoll-Datei "/var/adm/isdn.log"
------------------------------------------

Fuer jede (zustande gekommene, oder auch nicht zustande gekommene)
Verbindung erzeugt isdnlog einen Eintrag in der Datei "/var/adm/isdn.log":

Sep 30 15:24:10 1995|xxxxx|xxxxxx|    3| 344| 812471050|    1|I|0|     0|   0|
      (1)             (2)   (3)    (4)   (5)   (6)       (7) (8)(9)  (10) (11)

Wobei in den einzelnen Spalten folgendes steht:

 (1) Zeitpunkt des Verbindungsaufbaues (in Local-Time)
 (2) Telefonnummer des Anrufers (oder Blank, falls z.b. Analog-Anschluss)
     (d.h. natuerlich auch die eigene MSN, wenn man selber raus-ruft!)
 (3) Telefonnummer des Gegners (d.h. die eigene MSN, wenn man angerufen
     wird)
 (4) Dauer der Verbindung in Sekunden
 (5) Dauer der Verbindung in 1/100 Sekunden
     (im obigen Beispiel: 912 / 100 = 9,12 Sekunden)
 (6) Zeitpunkt des Verbindungsaufbaues in UTC
 (7) Anzahl zu zahlender Gebuehreneinheiten (AOC-D)
     (oder -1, falls keine Gebuehreneinheiten von der VSt gemeldet wurden)
 (8) "I" fuer incoming call, "O" fuer outgoing call
 (9) Kam eine Verbindung nicht zustande (d.h. z.b. man wird angerufen, nimmt
     aber nicht ab) taucht hier der Grund fuer das nicht Zustandekommen auf
     ("Cause")
(10) Summe der uebertragenen Byte _von_ draussen (incoming)
(11) Summe der uebertragenen Byte _nach_ draussen (outgoing)


9. Das Report-Modul isdnrep
---------------------------

Gestartet wird isdnrep mittels:

         isdnrep [ -anvt:f:d: ]

Die Optionen von isdnrep haben im einzelnen folgende Funktion:

  -a        "all"     isdnrep druckt alle Verbindungen an, die sich in der
                      "/var/adm/isdn.log" angesammelt haben (sonst nur "heute")

  -n        "numbers" isdnrep druckt anstelle der Symbolischen Namen die
                      Telefonnummern an

  -c        "compute" isdnrep berechnet die Gebuehren selbst - falls man auch
                      kein AOC-E (Gebuehreninfo am Ende einer Verbindung)
                      bestellt hat

  -f file   "file"    Es kann ein anderes Logfile anstelle von /var/adm/isdn.log
	              angegeben werden.

  -t Zeitabschnitt
            "time"    Mit dieser Option kann ein bestimmter Zeitabschnitt vom
                      Logfile angezeigt werden. Z. B. alle Gespraeche vom
                      Monat November '95 oder vom 3.Januar'96 von 3.00 Uhr
                      bis 9.45 Uhr.

	Zeitabschnitt hat folgende Syntax:
		Zeit-Zeit  Es wird der Beginn-Zeitpunkt und der End-Zeitpunkt
			   bestimmt.
		Zeit-      Von 'Zeit' bis jetzt
		-Zeit 	   Von Beginn des Logfiles bis 'Zeit'
		Zeit       Zeigt den aktuellen Monat, Tag, Stunde... an

	Die 'Zeit' kann folgendes Format beinhalten:

		[DD/][M]M/[[YY]YY]	Gibt den Monat oder Tag an

			Beispiele: 7/95   (Juli '95)
				   7/	  (Juli des aktuellen Jahres)
				   8/1996 (August '96)
				   6/6/95 (6. Juni 95)
				   6/6/   (FALSCH: ist NICHT 6.Juni des
					   aktuellen Jahres, sondern
					   Juni 1906)

		[D]D			Gibt den Tag im aktuellen Monat an.

			Beispiele: 5  (5. des aktuellen Monats),
				   15 (15. des aktuellen Monats)

		MMDD[hhmm[[CC]YY][.ss]]
			Gibt einen genauen Zeitpunkt an. Wenn Stunden, Minuten
			und Sekunden nicht gesetzt sind, dann werden sie
			automatisch auf 0 beim Anfangszeitpunkt und
			auf 23 bzw. 59 beim Endzeitpunkt gesetzt.
			Standardgemaess werden mit diesem Format auf den
			Tag Einstellungen vorgenommen. Wenn das Jahr mit
			angegeben werden soll, so MUESSEN auch die Stunden
			und Minuten mitangegeben werden.
			Das Format ist vom date-Befehl uebernommen worden.

			Beispiele: 0107          (7.Januar des akt. Jahres)
				   0107173196.25 (7.Januar'96 17:31:25 Uhr)
				   010717311996  (7.Januar'96 17:31:00 Uhr)
				   12141995	 (FALSCH: Ist NICHT
						  12.Dezember'95, sondern
						  12.Dezember das akt. Jahres
						  19:95 Uhr -> Muell)

	Beispiele fuer die Zeitabschnitte und deren Bedeutung:
		6/95-081214381996.25 (Alle Eintraege zwischen
				      1.Juni'95 0:00:00 Uhr und
				      12.August'96 14:38:25 Uhr)
		0912030495.20-12/95  (Alle Eintraege zwischen
				      12.September'95 3:04:20 Uhr und
				      31.Dezember'95 23:59:59 Uhr)
		7/95		     (Alle Eintraege zwischen
				      1.Juli'95 0:00:00 Uhr und
				      31.Juli'95 23:59:59 Uhr)
		0908		     (Alle Eintraege zwischen
				      8.September des akt. Jahres 0:00:00 Uhr u.
				      8.September des akt. Jahres 23:59:59 Uhr)


-d -Zeit    "delete" Loescht in der Logdatei alle Eintraege ausschliesslich
                     der angegebenen Zeit. Das Zeitformat ist gleich, wie
                     bei Option -t. Das Minus vor der "Zeit" MUSS immer
                     angegeben werden! Es kann auch KEIN von-bis-Zeitraum
                     angegeben werden. Es koennen nur von Anfang des Logfiles
                     bis zu dem angegebenen Zeitpunkt Eintraege geloescht
                     werden.

	Beispiele:
		-7/95    	Loescht alle Calls bis 30.Juni'1995 23:59:59 Uhr
		-0107173196.25	Loescht alle Calls bis 7.Januar'96 17:31:24 Uhr
				ACHTUNG:---------------------------------------------^^
				Der angegebene Zeitpunkt wird immer
				ausgeschlossen!

	ACHTUNG: Mit dieser Option werden Eintraege aus der Logdatei
		 geloescht. Bei unsachgemaesser Verwendung, kann
		 die gesamte Logdatei geloescht werden!
		 z.B. "isdnrep -d -" loescht ALLE Eintraege.


-v          "verbose" Zeigt alle Verbindungen und Verbindungsversuche auf.
	              Sonst werden nur die "wahren" Gespraeche angezeigt, die
	              ohne Fehler zustande gekommen sind.

-p [n][m]'Nummer'[,[m]'Nummer'...] "phonenumber"
                     Hiermit koennen nur ausgewaehlte Telefonnummer angezeigt
                     werden.
                     'Nummer' ist eine Zahl im Format der Konfigurationsdatei
                     ("/etc/isdnlog.conf"). Es koennen auch Wildcards verwendet
                     werden.
                     Wenn ein 'm' vor der Nummer steht, beschreibt es die
                     entsprechende MSN. Z.B. 'm2' (entspricht MSN#2).
                     Wenn 'MSN' == 0 ist, dann bedeutet das, alle uebrigen
                     Nummern werden (nicht) angezeigt.

                     Wird das Flag n gesetzt, bedeutet dieses, dass die
                     angegebenen Nummer nicht angezeigt werden. Dieses Flag
                     gilt immer fuer alle Nummern.

-i          "incoming"
                     Mit dieser Option werden nur einkommende Gespraeche
                     angezeigt.

-o          "outgoing"
                     Mit dieser Option werden nur rausgehende Gespraeche
                     angezeigt.

Es wird nun auf stdout eine Abrechnung mit folgender Optik generiert:

$ isdnrep -v -t 6/1/96
I S D N  Connection Report  -  Sun Jan  7 22:21:19 1996


Sat Jan  6 1996
  00:54:19                 UNKNOWN -> UNKNOWN        No user responding      (4)
[...]
  16:33:24  0:03:23        UNKNOWN -> UNKNOWN           7 EH      0,84 DM
  17:33:47                 UNKNOWN -> UNKNOWN        Unallocated (unassigned)(5)
                                                     number
  20:02:28  0:02:37     Phone/HDLC <- UNKNOWN                                (1)
  20:09:53  0:07:01     Modem/X.75 -> T-Online          3 EH      0,36 DM    (2)
  21:27:56                 UNKNOWN -> UNKNOWN        User busy               (3)
  22:09:41  0:29:36        UNKNOWN -> UNKNOWN          43 EH      9,89 DM *
=========================================================================
  1 IN= 0:02:37,  13 OUT= 3:40:14,   3 failed         210 EH     25,20 DM
(6)^^^^^^^^^^^^  (7)^^^^^^^^^^^^^  (8)^^^^^^^      (9)^^^^^^ (10)^^^^^^^^


DIALOUT Summary for Sat Jan  6 1996                                         (11)
-----------------------------------------------------------
T-Online         1 call(s)  0:07:01     3 EH    0,36 DM
UNKNOWN         11 call(s)  0:17:00    20 EH    2,40 DM


DIALIN Summary for Sat Jan  6 1996                                          (12)
-----------------------------------------------------------
UNKNOWN          1 call(s)  0:02:37


Zone 1 : City              2 call(s)  2:23:13     50 EH    6,00 DM          (13)
Zone x : UNKNOWN          11 call(s)  0:17:00     20 EH    2,40 DM

Fussnoten:
  (1)  "xxx <- xxx" war ein eingehender Anruf, kostet also nix
  (2)  "xxx -> xxx" ist ein rausgehender Ruf, macht also bei 203 sec,
       Cityzone, Freizeittarif (da Samstag) 3 Gebuehreneinheiten = DM 0,36 ;-)
  (3)  Das Telefonat kam nicht zustande, da der angewaehlte Teilnehmer
       besetzt war.
  (4)  Der angwaehlte Teilnehmer hat den Hoerer nicht abgenommen.
  (5)  "Kein Anschluss unter dieser Nummer..."
  (6)  Gesamte Zeit von eingehender Anrufen
  (7)  Gesamte Zeit von rausgehender Anrufen
  (8)  3 Anrufe sind gescheitert (hier: einmal besetzt(3),
       einmal keine Antwort(4) und einmal verwaehlt (5))
  (9)  Die gesamten Einheiten fuer einen Tag
  (10) Das Geld, was man selbst fuer diesen Tag zu zahlen hat
  (11) Aufschluesselung der rausgehenden Rufe nach Nummern
  (12) Aufschluesselung der eingehenden Rufe nach Nummern
  (13) Aufschluesselung der raus- und eingehenden Anrufe nach Bereichszonen

Wurden die Einheiten mit einem "*" markiert, wurden vom "Amt" keine
Einheiten gemeldet (Charging-Info fehlte)
Daher steht dann hier die von isdnrep errechnete Anzahl Einheiten.


10. Probleme?
-------------

Sollte isdnlog nicht wie beschrieben arbeiten, muessen folgende Punkte
geprueft werden:

 - Funktioniert isdn4linux ? D.h. kann eine ISDN-Verbindung zu einer
   Gegenstelle aufgebaut werden?

 - Wurde mittels "telesctrl <DriverID> 1 4" das D-Channel-Logging
   eingeschaltet?

Als kostenlose Testmoeglichkeit fuer isdnlog bietet es sich an, den Hoerer
eines ISDN-Telefon's abzunehmen, und gleich wieder aufzulegen. Dies muss
isdnlog als "HANGUP" melden.

Daneben kann man sich natuerlich auch selbst anrufen, wobei man am besten
die MSN anruft, auf der isdn4linux nur die Dienstkennung DATA zulaesst.
Also wird dieser Testanruf von isdn4linux abgelehnt, was isdn4linux auch
dementsprechend melden sollte.

Falls der begruendete Verdacht auf ein Fehlverhalten von isdnlog besteht,
bitte ich darum, mir ein mit "isdnlog -v" erstelltes Protokoll nebst
einer aussagekraeftigen Fehlerbeschreibung zuzuschicken.

Das Protokoll sollte nur noch die
  "Q.931 frame ..."
sowie
  "hex: ..."
Zeilen enthalten, der Rest wird von isdnlog nicht benoetigt!

Diese Fehlermeldung sollte bitte an "isdnlog@Kool.f.EUnet.de" geschickt
werden.


 - Bei jeder Anwahl von draussen an meine Teles-Karte meldet mir isdnlog
   2 HANGUP's?

   Bei einem eingehenden Ruf melden alle Geraete, die sich zustaendig
   fuehlen, an die Vermittlungsstelle, dass sie "klingeln".
   (Die Klingel-Wiederholungen machen bei ISDN die Geraete selbst.)

   Das Geraet, an dem der Ruf angenommen wird, bekommt den CONNECT,
   alle anderen, die geklingelt haben, ein HANGUP, damit sie mit
   dem Klingeln wieder aufhoeren. Dasselbe passiert natuerlich auch,
   wenn der Anrufer vor dem Abnehmen schon auflegt.

   D.h. der erste HANGUP stammt vom 2. B-Kanal der Teles-Karte, der den
   Anruf ablehnt!

   Die Teles-Karte spielt die Rolle von zwei Geraeten, wohl weil ein
   Geraet zu einer Zeit immer nur eine Dienstkennung haben kann,
   die Teles koennte aber gleichzeitig eine Voice- und eine Data-
   Verbindung fahren (nur (noch?) nicht unter i4l).
   Fehlt also nach dem CONNECT der Teles der HANGUP des zweiten
   Kanals, ist das ein Indiz dafuer, da dieser haengt.


11. Verwendete Dateien
----------------------

Folgende Files werden von diesem System verwendet:

  /sbin/isdnlog             - Das Protokoll-Programm
  /usr/sbin/isdnrep         - Das Report-Programm
  /etc/isdnlog/isdnlog.conf - Die Config-Datei
  /etc/isdnlog/avon 	    - Das Vorwahl-Verzeichnis (ASCII)
  /etc/isdnlog/avon.pag	    - Das Vorwahl-Verzeichnis (ISAM-Version)
  /etc/isdnlog/avon.dir	    - Das Vorwahl-Verzeichnis (Index)
  /var/adm/isdn.log	    - Das Logbuch
  /var/run/isdnlog.pid	    - Enthaelt die PID des laufenden isdnlog
  /dev/isdnctrl0	    - Gibt das Q.931 Protokoll des Teles-Treibers aus
  /dev/isdninfo		    - Interne Meldungen von isdn4linux
  /tmp/isdnctrl0	    - Protokoll obiger Devices als ASCII-Datei


12. Verwendete Abkuerzungen
---------------------------

  VSt     = Vermittlungsstelle (das Amt)

  AOCD	  = Advice of Charge during call
  	    (Gebuehreninfo waehrend der Verbindung == Gebuehreninfo A)

  AOCE	  = Advice of Charge at end of call
  	    (Gebuehreninfo am Ende der Verbindung)

  Q.931   = Das von der ITU genormte Protokoll auf dem D-Kanal

  D-Kanal = Der Steuerungskanal im ISDN

  B-Kanal = Der Datenkanal im ISDN

  tei     = Terminal Endpoint Identifier

  Gegner  = Eine Gegenstelle

  MSN	  = Multiple subscriber number (Telefonnummer)

  E-DSS1  = Das Euro-ISDN-Protokoll

  1TR6	  = Das nationale ISDN-Protokoll


13. Danksagung
--------------

Bedanken moechte ich mich vor allem bei
  Fritz Elfert (fritz@wuemaus.franken.de)
fuer isdn4linux, sowie
  Jan den Ouden (denouden@groovin.xs4all.nl)
fuer den Teles-Treiber.

Bei
  Beat Doebeli (doebeli@vptt.ch)
fuer den Einbau jeglicher D-Channel Messages, sowie
  Michael Bongartz (micha@mubo.saar.de)
fuer die Ermittlung der AOC-D sowie AOC-E Bytes im D-Channel-Protokoll

Bei
  Kai Voelcker (kai@fantaghiro.deceiver.org)
sowie
  Martin Stover (mstover@freeway.de)
und vielen anderen aus der isdn4linux Mailing-Liste fuer ihre Muehen
beim Testen von isdnlog, staendigen neuen Ideen dafuer sowie
fuer die unzaehligen Testdaten.

Bei
  Karsten Keil (isdn4@temic-ech.spacenet.de)
fuer die 1TR6 Unterstuetzung von isdnlog.

Aber ganz besonders natuerlich dem isdnlog-Development-Team, bestehend aus
  Stefan Luethje (luethje@konstanz.netsurf.de)
  Gernot Zander (hifi@scorpio.in-berlin.de)
  Bernhard Kruepl (b.kruepl@ieee.org)
  Michael 'Ghandi' Herold (michael@abadonna.franken.de)
  Frank Strauss (strauss@escape.de)
  Friedemann Baitinger (baiti@herrenberg.netsurf.de)
  Oleg von Styp Rekowski (oleg.styp@t-online.de)
  Wim Bonis (bonis@kiss.de)

das die vorliegende Version ueberhaupt erst moeglich gemacht hat!


Viel Spass mit isdnlog wuenscht

Andreas Kool (akool@Kool.f.EUnet.de)
