2785 lines
100 KiB
Plaintext
2785 lines
100 KiB
Plaintext
|
ISDNLOG - Version 2.60 - 22-Feb-97 13:44
|
||
|
|
||
|
|
||
|
isdnlog ist ein Tool zur Auswertung der Info's vom ISDN-S0-Bus sowie
|
||
|
isdn4linux. isdn4linux ist seit Version 1.3.69 im Linux-Kernel enthalten.
|
||
|
|
||
|
isdnlog-2.60 wurde ausgiebig mit Linux-2.0.29 / isdn4kernel-2.0.29.2
|
||
|
getestet.
|
||
|
|
||
|
|
||
|
Fuer alle, die es nun ueberhaupt nicht mehr abwarten koennen, hier das
|
||
|
|
||
|
Quick-Installation-Guide
|
||
|
------------------------
|
||
|
|
||
|
1. Linux-2.0.1 (oder besser) nebst dort enthaltenem ISDN-Treiber verwenden:
|
||
|
CONFIG_ISDN=m
|
||
|
CONFIG_ISDN_DRV_TELES=m
|
||
|
|
||
|
2. isdnlog-2.60.tar.gz auspacken, erstellen und installieren:
|
||
|
cd /usr/src
|
||
|
tar xzf isdnlog-2.60.tar.gz
|
||
|
cd isdnlog-2.60
|
||
|
make install
|
||
|
|
||
|
3. Konfigurationsdatei fuer isdnlog fuellen:
|
||
|
vi | emacs | vim | e | nedit | ... | /etc/isdnlog/isdn.conf
|
||
|
|
||
|
-----------------------------------------------------
|
||
|
[ISDNLOG]
|
||
|
MYMSNS=3
|
||
|
MYPREFIX=069
|
||
|
MYAREA=0049
|
||
|
|
||
|
[MSN1]
|
||
|
NUMBER = 4711
|
||
|
SI = 1
|
||
|
ALIAS = Phone
|
||
|
ZONE = 1
|
||
|
|
||
|
[MSN2]
|
||
|
NUMBER = 4712
|
||
|
SI = 1
|
||
|
ALIAS = FAX
|
||
|
ZONE = 1
|
||
|
|
||
|
[MSN3]
|
||
|
NUMBER = 4713
|
||
|
SI = 1
|
||
|
ALIAS = X.75
|
||
|
ZONE = 1
|
||
|
|
||
|
-----------------------------------------------------
|
||
|
mit:
|
||
|
MYMSNS=<Anzahl_eigener_Telefonnummern>
|
||
|
MYPREFIX=<Eigene_Vorwahl>
|
||
|
|
||
|
NUMBER = <eigene_Telefonnumer_ohne_Vorwahl>
|
||
|
SI = <Dienstkennung>
|
||
|
ALIAS = <Alias>
|
||
|
ZONE = 1
|
||
|
-----------------------------------------------------
|
||
|
|
||
|
4. isdn4linux das D-Kanal-Protokoll entlocken:
|
||
|
|
||
|
telesctrl <myTeles> 1 4
|
||
|
|
||
|
mit <myTeles> entsprechend Driver-ID, wie beim "insmod" des Teles-Treibers
|
||
|
angegeben, oder "line0", falls der Teles-Treiber im Kern enthalten ist.
|
||
|
|
||
|
5. isdnlog starten:
|
||
|
|
||
|
/sbin/isdnlog -nsS -v1 w1 -m0x5f7 /dev/isdnctrl
|
||
|
|
||
|
6. Jede Menge rumtelefonieren
|
||
|
|
||
|
7. Sich mittels
|
||
|
|
||
|
/usr/sbin/isdnrep
|
||
|
|
||
|
die Rechnung ueber das unter 6. veranstaltete ausgeben lassen.
|
||
|
|
||
|
|
||
|
Wenn das so nicht klappt, oder wer auch die ganzen anderen Features von
|
||
|
isdnlog verwenden moechte, fuer den folgt nun der
|
||
|
|
||
|
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: IP-Interface
|
||
|
4.2.5 5. Spalte: Info-Args
|
||
|
4.2.6 Konkretes Beispiel fuer die "-S" Option
|
||
|
5. Die Konfigurationsdatei "isdnlog.users"
|
||
|
5.1 Aufbau
|
||
|
6. Das AVON-Verzeichnis
|
||
|
7. Betriebsmodi
|
||
|
8. Start von isdnlog
|
||
|
9. Die Protokoll-Datei "/var/log/isdn.log"
|
||
|
10. Das Report-Modul "isdnrep"
|
||
|
11. Das Konfigurations-Tool isdnconf
|
||
|
12. Der X-Client xisdn
|
||
|
13. ChargeInt
|
||
|
14. Gebuehren-GAU Begrenzer
|
||
|
14.1 Watchdog
|
||
|
14.2 CHARGEMAX
|
||
|
14.3 CONNECTMAX
|
||
|
14.4 BYTEMAX
|
||
|
15. Dual-Mode
|
||
|
16. SQL-Anbindung
|
||
|
17. Probleme?
|
||
|
18. Verwendete Dateien
|
||
|
19. Verwendete Environment-Variablen
|
||
|
20. Verwendete Abkuerzungen
|
||
|
21. Danksagung
|
||
|
|
||
|
|
||
|
Vorwort
|
||
|
-------
|
||
|
|
||
|
Die Logdatei "isdn.log" ist nicht mehr im Verzeichnis "/var/adm/,
|
||
|
sondern im Verzeichnis "/var/log" zu Hause.
|
||
|
|
||
|
Fuer die isdn4linux-Version ("ISDN subsystem Rev: 1.5/1.5/1.5/1.5")
|
||
|
respektive Linux-1.3.93 _muss_ isdnlog mit "-DSELECT_FIX"
|
||
|
erstellt werden. Dadurch wird ein kleiner Bug in dieser Version umgangen.
|
||
|
Dadurch entfaellt leider auch die Durchsatz-Ermittlung!
|
||
|
|
||
|
|
||
|
Es wurden folgende Dinge geaendert, die vor dem ersten Start
|
||
|
dieser neuen Version unbedingt angepasst werden muessen!
|
||
|
|
||
|
Der X11-Version (isdnlog-X11-2.43.tar.gz) liegen einige Sound-Dateien
|
||
|
als Samples bei.
|
||
|
Diese Datei unterliegen _nicht_ dem GPL. Diese sind nur als Beigaben
|
||
|
der Autoren zu Betrachten und stehen in keinem Zusammenhang mit den
|
||
|
Sourcen.
|
||
|
|
||
|
Aenderungen seit Version 2.50:
|
||
|
|
||
|
- Konfigurationsdatei heisst jetzt isdn.conf statt isdnlog.conf
|
||
|
- Neue Syntax der Konfigurationsdatei
|
||
|
- Watchdog-Funktion (isdnlog ueberwacht isdn4linux)
|
||
|
|
||
|
Aenderungen seit Version 2.41:
|
||
|
|
||
|
- Das neue Feature "Rueckruf bei Besetzt" der Telekom wird erkannt,
|
||
|
und ignoriert
|
||
|
|
||
|
Aenderungen seit Version 2.30:
|
||
|
|
||
|
- Die "isdnlog.conf" hat fuer die Flags eine komlett neue
|
||
|
Syntax erhalten.
|
||
|
|
||
|
- Die Optionen -c und -i sind entfallen. Diese wurden durch die
|
||
|
ueberarbeitete Option -S ersetzt.
|
||
|
|
||
|
- Die -C x Option wurde geaendert. Es muss jetzt dort der gesamte
|
||
|
Pfad angegeben werden:
|
||
|
Vorher "-C p7 -> /dev/ttyp7",
|
||
|
jetzt "-C /dev/ttyp7"
|
||
|
|
||
|
Aenderungen seit Version 2.01:
|
||
|
|
||
|
- 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.
|
||
|
|
||
|
|
||
|
Ein Bitte noch:
|
||
|
===============
|
||
|
|
||
|
Alle Anfragen zum isdnlog nicht an meine Email-Adresse senden, sondern an
|
||
|
|
||
|
isdnlog@Kool.f.EUnet.de
|
||
|
|
||
|
So bekommen alle Entwickler die Anfragen direkt mit, und muessen nicht
|
||
|
von mir extra weitergeleitet werden. Dadurch wird die Anfrage mit
|
||
|
Sicherheit durch den jeweiligen Entwickler schneller beantwortet.
|
||
|
|
||
|
Alternativ koennen die Anfragen natuerlich auch an die Mailing-Liste
|
||
|
fuer isdn4linux (isdn4kernel) geleitet werden.
|
||
|
|
||
|
Um dort "Mitglied" zu werden, sollte eine Mail an
|
||
|
|
||
|
Majordomo@hub-wue.franken.de
|
||
|
|
||
|
gesendet werden. Im Body (_nicht_ im Subject) sollte
|
||
|
|
||
|
subscribe "emailadresse"
|
||
|
|
||
|
stehen.
|
||
|
|
||
|
|
||
|
|
||
|
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:
|
||
|
13 21:16:31 * tei 104 calling EUnet with Phone Digital
|
||
|
13 21:16:33 tei 104 calling EUnet with ISDN Time:Wed Mar 13 21:17:00 1996
|
||
|
13 21:16:33 tei 104 calling EUnet with ISDN CONNECT
|
||
|
13 21:16:33 tei 104 calling EUnet with ISDN 0,12 DM (0 s)
|
||
|
13 21:16:40 tei 104 calling EUnet with ISDN 5,63 kB / 823,43 bps
|
||
|
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 CONNECT
|
||
|
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/log/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.
|
||
|
|
||
|
- Es besteht seit neuestem die Moeglichkeit, alle Informationen ueber
|
||
|
den S0-Bus auf der X11-Oberflache mit dem xisdn darstellen zu lassen.
|
||
|
Allerdings befindet sich der xisdn noch im Entwicklungstand, so dass
|
||
|
sich mit Sicherheit noch einige Aenderungen an der Oberflaeche und an
|
||
|
den Funktionalitaeten abzeichnen lassen.
|
||
|
|
||
|
|
||
|
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 noch 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.
|
||
|
|
||
|
: Die Karte bekommt immer nur eine Richtung mit, naemlich Amt->User.
|
||
|
: Sie kann von den User->Amt nur die _eigenen_ Meldungen
|
||
|
: ausgeben (also die der Teles selbst).
|
||
|
: Wenn man mit seiner TK-Anlage rauswaehlt, geht die Zielnummer
|
||
|
: aber User->Amt, und genau das wird von einer Teles
|
||
|
: nicht mitgeschnitten (kann sie nicht!), es passiert auf dem falschen Bus!
|
||
|
: Der S.0 ist ja deshalb 4adrig, weil 2 Adern von den Endgeraeten _zum_
|
||
|
: und zwei _vom_ NT gehen. Und jedes normale Endgeraet sendet auf
|
||
|
: dem einen Paar und empfaengt auf dem anderen.
|
||
|
Dazu siehe jedoch Kapitel 15. Dual-Mode !
|
||
|
|
||
|
|
||
|
3. Installation
|
||
|
---------------
|
||
|
|
||
|
Der X11-Client ist zwar im isdnlog-Paket enthalten, aber es ist _nicht_
|
||
|
zwingend notwendig ihn einzusetzen. Der isdnlog laeuft auch weiter
|
||
|
wie gewohnt, ohne den Client.
|
||
|
|
||
|
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!
|
||
|
|
||
|
Hier koennen folgende grundsaetzliche Verhaltensweisen von isdnlog
|
||
|
voreingestellt werden:
|
||
|
|
||
|
-DISDN_NL - Gebuehrenauswertung Niederlande (anstelle Deutschland)
|
||
|
-DISDN_CH - Gebuehrenauswertung Schweiz (anstelle Deutschland)
|
||
|
|
||
|
I4LCONFDIR (/etc/isdnlog)
|
||
|
Wo liegen die "isdn.conf" sowie die "avon"
|
||
|
|
||
|
Mit der Environment-Variablen "ISDNLOG" kann auch zur Laufzeit das
|
||
|
Verzeichnis festgelegt werden.
|
||
|
Beispiel "export ISDNLOG=/etc/isdnlog"
|
||
|
|
||
|
USERCONFFILE (~/.isdn)
|
||
|
Wie soll die Konfigurations-Datei der einzelnen Benutzer heissen
|
||
|
|
||
|
CONFFILE (isdn.conf)
|
||
|
Wie soll die Konfigurations-Datei heissen
|
||
|
|
||
|
OLDCONFFILE (isdnlog.conf)
|
||
|
Wie hiess die _alte_ Konfigurations-Datei
|
||
|
|
||
|
LOGFILE (/var/log/isdn.log)
|
||
|
Wie soll das Logbuch heissen
|
||
|
|
||
|
RUNDIR (/var/run/)
|
||
|
Wol liegen die pid files (lock-Dateien).
|
||
|
|
||
|
SBINDIR (/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
|
||
|
|
||
|
|
||
|
ACHTUNG: Durch die Syntaxandaerung und den Erweiterungen, muessen folgende
|
||
|
Anderungen _zuerst_ an der bestehenden isdnlog.conf durchgefuehrt
|
||
|
werden:
|
||
|
|
||
|
- MYPREFIX wird durch AREACODE ersetzt.
|
||
|
- Es gibt einen weiteren zwingenden Eintrag COUNTRYCODE.
|
||
|
|
||
|
COUNTRYCODE. beinhaltet die Anwahl an das eigene Land von aussen
|
||
|
her. Die beiden Eintrage sollten also folgende Form aufweisen:
|
||
|
|
||
|
COUNTRYCODE=+49 # fuer Anwender innerhalb Deutschland
|
||
|
AREA=7531 # fuer Anwender im Ortsnetz Konstanz
|
||
|
|
||
|
Wer sowohl das Motif-Development-Kit 2.0 (und hoeher) besitzt, und
|
||
|
dazu nicht vor Software im Alpha-Stadium zurueckschreckt, kann sich mit
|
||
|
|
||
|
make xinstall
|
||
|
|
||
|
den X11-Client "xisdn" erstellen.
|
||
|
|
||
|
In der Datei "/etc/services" wird automatisch der folgende Eintrag gemacht,
|
||
|
falls noch nicht vorhanden:
|
||
|
|
||
|
isdnlog 20011/tcp isdnlog
|
||
|
|
||
|
Der X11-Client benoetigt eine eigene Resource-Datei.
|
||
|
Diese hat den Namen "Isdn".
|
||
|
Waehrend der Installation wird die Datei in das Verzeichnis
|
||
|
"/usr/X11R6/lib/X11/app-defaults" kopiert.
|
||
|
Wenn dieses bei der Installation unterdrueckt wird, muss dem X11-Client
|
||
|
"von Hand" 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 "isdn.conf"
|
||
|
-----------------------------------------
|
||
|
|
||
|
ACHTUNG: Das Zeichen '#' muss gequotet werden, wenn es als Zeichen verwendet
|
||
|
werden soll. Andernfalls wird es als Kommentarzeichen gewertet.
|
||
|
D. h. alles danach wird als Kommentar registriert.
|
||
|
Zum quoten wird das Zeichen '\' verwedet. Beispiel
|
||
|
"Provider \#1"
|
||
|
|
||
|
Die Konfigurationsdatei wird im Verzeichnis "/etc/isdnlog" erwartet (wenn die
|
||
|
Variable I4LCONFDIR im Makefile so gesetzt ist), und enthaelt alle fuer isdnlog
|
||
|
relevanten Steuerungsparameter.
|
||
|
|
||
|
Leere Zeilen werden ignoriert. Wenn in einer Zeile ein "#" enthalten ist,
|
||
|
wird der Rest der Zeile als Kommentar gewertet.
|
||
|
|
||
|
Steht am Ende einer Nicht-Kommentarzeile ein "\", so wird die Zeile mit der
|
||
|
naechste Zeile zu einer "verschmolzen". ACHTUNG: Das Zeichen "\" muss als
|
||
|
letztes Zeichen stehen, und darf nicht von Tab's oder Leerzeichen gefolgt
|
||
|
werden.
|
||
|
|
||
|
Die Datei hat eine aehnliche Syntax wie die smb.conf, win.ini usw.
|
||
|
Es gibt dort Sektionen und darunter Eintraege.
|
||
|
Die Syntax wurde allerdings um Untersektionen erweitert. Ein Eintrag kann
|
||
|
wieder eine Sektion darstellen.
|
||
|
|
||
|
Es wird die Gross/Kleinschreibung bei den Entrags- und Sektionsnamen
|
||
|
ignoriert. Also vor dem Gleichheitszeichen. Danach wird sehr wohl in
|
||
|
Gross und Kleinschreibung unterschieden.
|
||
|
|
||
|
In dem folgenden Beispiel sind Kommentare enthalten, die weitere Regeln
|
||
|
beschreiben, die unbedingt beachtet werden muessen.
|
||
|
|
||
|
Beispiel:
|
||
|
|
||
|
BEGIN-OF-FILE
|
||
|
|
||
|
[SECTION1]
|
||
|
ENTRY1=blabla1
|
||
|
entry2 = blabla2
|
||
|
# ^^^-------- Es duerfen vor und nach dem Gleichheitszeichen beliebig
|
||
|
# Spaces und Tabulatoren verwendet werden.
|
||
|
# werden. Das erste erkannte Zeichen nach dem
|
||
|
# Gleichheitszeichen darf weder ein space noch ein Tabublator
|
||
|
# sein.
|
||
|
Entry3 = {
|
||
|
# ^----- Dieses Zeichen besagt, das dieser Eintrag ein oder mehrere
|
||
|
# Untersectionen beinhaltet.
|
||
|
# ^^^^^^--------- "Entry3", "entry3" und "ENTRY3" sind equivalent!
|
||
|
[SUBSECTION1]
|
||
|
entry1 = bla1
|
||
|
...
|
||
|
|
||
|
[ subsection2 ]
|
||
|
# ^-----------^- Hier koennen wieder beliebige Spaces und Tabulatoren stehen.
|
||
|
# ^^^^^^^^^^--- "subsection2" und "SUBSECTION2" sind equivalent!
|
||
|
...
|
||
|
}
|
||
|
# ^-------------- Hier wird das Ende von Eintrag "ENTRY3" eingeleitet.
|
||
|
|
||
|
[SECTION2]
|
||
|
...
|
||
|
|
||
|
END-OF-FILE
|
||
|
|
||
|
Anders als bei Windows und Samba wird hier das Zeichen ";" NICHT
|
||
|
als Kommentarzeichen erkannt, sondern nur "#".
|
||
|
|
||
|
4.1 Grundeinstellungen
|
||
|
----------------------
|
||
|
MYAREA
|
||
|
RELOADCMD
|
||
|
STOPCMD
|
||
|
RELOADCMD
|
||
|
isdnlog erlaubt es, Umbebungsvariablen zu setzen und zu verwenden.
|
||
|
Es gibt Variablen, die sollten in der insdlog.conf (oder vorher) gesetzt
|
||
|
sein.
|
||
|
|
||
|
"MYPREFIX = 040" wird als Variable zu "MYPREFIX=040". Es fallen also
|
||
|
alle Blanks und Tabulatoren vor und nach dem "=" heraus.
|
||
|
|
||
|
MYMSNS=n
|
||
|
|
||
|
Die Anzahl eigener MSN's (Telefonnummern)
|
||
|
Falls dieser Eintrag fehlt, werden 3 angenommen.
|
||
|
Werden die eigenen MSN's mit verschiedenen Dienstkennungen definiert,
|
||
|
muss hier die Gesamtzahl aller eigenen MSN's angegeben werden!
|
||
|
Besitzt man z.b. 3 MSN's, und traegt jede sowohl mit DATA- als auch
|
||
|
mit Voice-Dienstkennung ein, ist MYMSNS auf 6 zu setzen!
|
||
|
|
||
|
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. Diese Variable ist absolute Pflicht!
|
||
|
|
||
|
|
||
|
CURRENCY=factor,currency
|
||
|
|
||
|
Wenn die Variablen im isdnlog.conf gesetzt werden, dann kann man folgende
|
||
|
Syntax verwenden:
|
||
|
|
||
|
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!
|
||
|
Defaultmaessig steht im isdnrep "0.12,DM". Daher entfaellt diese
|
||
|
Angabe fuer Deutschland.
|
||
|
|
||
|
|
||
|
ILABEL=xxxxx
|
||
|
OLABEL=xxxxx
|
||
|
|
||
|
Hiermit kann definiert werden, wie die Console-Ausgaben aussehen sollen.
|
||
|
Fehlen diese Eintraege, wird
|
||
|
ILABEL=%b %e %T %ICall to tei %t from %N2 on %n2
|
||
|
OLABEL=%b %e %T %ICall to tei %t from %N2 on %n2
|
||
|
angenommen (die bislang bekannte Optik)
|
||
|
|
||
|
Bei reinkommenden Verbindungen wird das "ILABEL", und bei rausgehenden
|
||
|
Verbindungen das "OLABEL" ausgegeben.
|
||
|
|
||
|
Diese Label werden von isdnlog auf jeden Fall um die mit "-m" angeforderten
|
||
|
Statusmeldungen wie RING, TIME, CONNECT, HANGUP etc. ergaenzt.
|
||
|
|
||
|
Neben beliebigen Buchstaben/Zahlen (incl. der ueblichen "\007" Octal-Notation)
|
||
|
koennen folgende Platzhalter angegeben werden:
|
||
|
|
||
|
%t tei
|
||
|
%C Call reference
|
||
|
%Nx MSN (Telefonnummer) des Gegner's (siehe *1)
|
||
|
%nx Eigene MSN (Telefonnummer) (siehe *1)
|
||
|
%I Tabulation (siehe *2)
|
||
|
%a Wochentag (-> "Fri")
|
||
|
%b Monat (-> "Aug")
|
||
|
%e Tag im Monat (-> " 8")
|
||
|
%T Uhrzeit (-> "13:17:11")
|
||
|
%B B-Kanal (0, oder 1)
|
||
|
|
||
|
*1 Bei %N sowie %n muss angegeben werden, wie die Telefonnummer ausgegeben
|
||
|
werden soll:
|
||
|
|
||
|
%N0 - Telefonnummer exakt so, wie von der VSt gemeldet
|
||
|
%N1 - Telefonnummer, von isdnlog um Vorwahl, vorlaufende "0" etc.
|
||
|
ergaenzt
|
||
|
%N2 - Von isdnlog optimal "verschoenerte" Nummer, also Alias
|
||
|
aus "isdnlog.conf", mit Ortsnetz etc.
|
||
|
|
||
|
*2 Dieser Platzhalter wird von isdnlog folgendermassen aufgeloest:
|
||
|
|
||
|
Bezieht sich die Zeile auf den ersten aktiven B-Kanal, wird daraus
|
||
|
ein Leerstring -> ""
|
||
|
Bezieht sich die Zeile auf den zweiten aktiven B-Kanal, werden daraus
|
||
|
zwei Blank's -> " "
|
||
|
Bezieht sich die Zeile auf eine entstehende Verbindung, wird daraus
|
||
|
ein Stern -> "* "
|
||
|
|
||
|
|
||
|
Folgende Optionen werden nur fuer den Schalter -S optional benoetigt:
|
||
|
|
||
|
START=xxx
|
||
|
|
||
|
Es kann ein zu startender Befehl angegeben werden. Wenn eine Verbindung
|
||
|
aufgebaut wird, besteht oder beendet wird und unter den entsprechenden
|
||
|
Nummern kein Befehl steht, dann wird der passende Befehl unter "START"
|
||
|
ausgefuehrt. Das heisst isdnlog schaut zuerst unter der entsprechenden
|
||
|
Telefonnumer nach, ob dort ein Befehl ist.
|
||
|
Wenn "START" verwendet wird bei Verbindungen, die raus gehen und nicht von
|
||
|
der ISDN-Karte kommen (also Nummern unbekannt), dann geht "OR" (Outgoing
|
||
|
Ring) nicht (siehe Info von Gernot Zander), ist also kein Bug vom isdnlog.
|
||
|
|
||
|
Wenn ja, wird dieser ausgefuehrt und der Eintrag "START" ignoriert.
|
||
|
|
||
|
Wenn die Nummer in der Datei "isdnlog.conf" keinen Eintrag hat, oder unter
|
||
|
der Nummer in der Spalte Flags nichts eingetragen ist, dann schaut isdnlog
|
||
|
unter "START" nach.
|
||
|
|
||
|
Diese Zeile kann verwendet werden, wenn man fuer alle Verbindungen
|
||
|
die gleichen Programme starten will, oder fuer alle unbekannten Nummern.
|
||
|
Die Syntax ist unter "Spalte: Info-Args" zu finden.
|
||
|
|
||
|
|
||
|
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 4 oder 5, durch mindestens 1 Blank oder
|
||
|
Tab getrennte Spalten.
|
||
|
|
||
|
Jede MSN kann - durch ein Komma getrennt - um die Dienstkennung erweitert
|
||
|
werden:
|
||
|
|
||
|
isdnlog unterscheidet rein- und rausgehende Verbindungen nach der
|
||
|
MSN (Telefonnummer), sowie dem Service Indicator ("Dienstkennung").
|
||
|
|
||
|
Z.Zt. kennt isdnlog folgende Dienstkennungen:
|
||
|
|
||
|
1 = Speech (Telefon, Fax G3, Modem etc.)
|
||
|
2 = Restricted digital information
|
||
|
3 = Unrestricted digital information
|
||
|
with tones/announcements
|
||
|
4 = Video
|
||
|
7 = Unrestricted digital information (HDLC, X.75 etc.)
|
||
|
|
||
|
Bei jedem Verbindungsaufbau sucht isdnlog aus der "isdnlog.conf" den
|
||
|
Eintrag, bei dem sowohl die MSN, als auch der SI uebereinstimmen.
|
||
|
|
||
|
Wird solch ein Eintrag nicht gefunden, nimmt isdnlog den _ersten_ Eintrag
|
||
|
mit der passenden MSN.
|
||
|
|
||
|
Beispiel:
|
||
|
|
||
|
Auf der MSN 4711 lauscht sowohl die Teles-Karte auf X.75 Anrufe, als auch
|
||
|
ein Analoges Telefon ueber eine Telefonanlage.
|
||
|
|
||
|
Hier wuerden folgende Eintraege in der "isdnlog.conf" passen:
|
||
|
|
||
|
4711,1 Phone 1 - IORA=auplay ring.au
|
||
|
4711,7 X.75 1 - IORA=auplay computer.au
|
||
|
|
||
|
Ruft nun jemand die 4711 mit einem Telefon an, wird das als Anruf auf
|
||
|
"Phone" angezeigt, und das Soundfile "ring.au" abgespielt.
|
||
|
|
||
|
Waehlt jemand hingehen die 4711 mit einer Teles-Karte an, wird das als
|
||
|
"X.75" angezeigt, und das Soundfile "computer.au" abgespielt.
|
||
|
|
||
|
Startet hingegen jemand eine Video-Uebertragung auf die 4711, wird auch
|
||
|
dies als "Phone" angezeigt, da in obigem Beispiel die Dienstkennung "4"
|
||
|
nicht gesondert definiert wurde.
|
||
|
|
||
|
|
||
|
MSN Alias Zone Interface Info-Args
|
||
|
-----------------------------------------------------------
|
||
|
4711,1 Phone 1 - IORA=auplay dingdong.au,,18-21;
|
||
|
|
||
|
|
||
|
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 = Vis-'a-vis 1
|
||
|
|
||
|
|
||
|
4.2.4 4. Spalte: IP-Interface
|
||
|
-----------------------------
|
||
|
|
||
|
In der vierten Spalte wird das IP-Interface angegeben, das auf dieser
|
||
|
Nummer konfiguriert wurde, oder ein "-", falls dieser Nummer kein
|
||
|
IP-Interface zugeordnet wurde.
|
||
|
Diese Information wird fuer die "-hx" huptimeout Option benoetigt.
|
||
|
|
||
|
|
||
|
4.2.5 5. Spalte: Info-Args
|
||
|
--------------------------
|
||
|
|
||
|
ACHTUNG: Syntax hat sich geaendert!
|
||
|
|
||
|
Hier werden jetzt alle anderen Spalten wie Flags, Time und Info-Arg vereinigt.
|
||
|
|
||
|
Aufbau:
|
||
|
"Flags"="Info-Arg"[,Intervall[,"Time"[,"Time",..]]]; ["Flags....]
|
||
|
|
||
|
---------------------------------------------------^
|
||
|
Es ist darauf zu achten, dass nach jedem Info-Arg ein Semikolon kommt!
|
||
|
Auch nach dem letzten Info-Arg _muss_ ein Semikolon!
|
||
|
|
||
|
Es koennen pro MSN mehrere Befehle angegeben werden. z.B. fuer jedes Event
|
||
|
eines.
|
||
|
|
||
|
Flags:
|
||
|
------
|
||
|
|
||
|
Hier wird angegeben, bei welchem Event das Info-Programm gestartet werden
|
||
|
soll. Es koennen eine beliebige Menge aus folgenden Flag-Gruppen angegeben
|
||
|
werden:
|
||
|
|
||
|
Gruppe 1:
|
||
|
|
||
|
I = Programme werden nur gestartet, wenn es ein eingehendes Gespraech ist
|
||
|
O = Programme werden nur gestartet, wenn es ein ausgehendes Gespraech ist
|
||
|
|
||
|
Gruppe 2:
|
||
|
|
||
|
C = Bei CONNECT Programm starten (Intervall-faehig)
|
||
|
B = Programm starten, wenn der Teilnehmer besetzt ist (Busy)
|
||
|
E = Programm starten, wenn ein Fehler von der VSt uebermittelt wurde
|
||
|
R = Bei RING Programm starten (Intervall-faehig)
|
||
|
A = Bei AOCD ("Gebuehrenimpuls") Programm starten
|
||
|
H = Bei Verbindungsende Programm starten
|
||
|
|
||
|
Gruppe 3:
|
||
|
|
||
|
Die folgenden Flags haben nur Bedeutung fuer die Flags "C" und "R" aus
|
||
|
Gruppe 2. Es sollte immer nur _ein_ Argument von dieser Gruppe je Info-Arg
|
||
|
verwendet werden:
|
||
|
|
||
|
L = Es wird waehrend dieses Zeitraum ein Programm immer wieder gestartet,
|
||
|
wenn sich das vorherige beendet hat.
|
||
|
Es macht dann keinen Sinn noch zusaetzlich ein Intervall einzuschalten,
|
||
|
da "L" Vorrang hat.
|
||
|
|
||
|
U = Es darf waehrend eines Intervalls nur ein Programm gestartet werden.
|
||
|
Wenn ein Intervall erreicht wurde, und das letzte Programm noch laeuft,
|
||
|
dann wird das naechste nicht gestartet, sondern wartet, bis sich der
|
||
|
Vorgaenger Beendet hat.
|
||
|
Wenn das Flag nicht gesetzt ist, dann koennen mehrere Programme
|
||
|
gleichzeitig laufen, da dann beim erreichen eines Intervalls
|
||
|
ein neues gestartet wird, unabhaengig davon, ob das vorherige noch
|
||
|
laeuft. Es wird das Argument Intervall benoetigt!
|
||
|
|
||
|
K = Wenn ein Intervall angegeben ist, und das Intervall beendet ist, soll
|
||
|
das vorherige Programm beendet werden. Sonst ist es moeglich, das
|
||
|
mehrere Programme gleichzeitig laufen. Es wird das Argument Intervall
|
||
|
benoetigt!
|
||
|
|
||
|
Es macht also keinen Sinn "U" und "K" gleichzeitig einzuschalten, da beide
|
||
|
nur ein Programm erlauben. Der einzige Unterschied zwischen "K" und "U" ist,
|
||
|
dass bei "U" gewartet wird, bis sich das Programm beendet, waehrend "K" beim
|
||
|
Ende des Intervalls das laufende Programm "mit Gewalt" beendet.
|
||
|
|
||
|
Damit ein Programm ueberhaupt gestartet werden kann, muessen Flags
|
||
|
aus Gruppe 1 _und_ Gruppe 2 angegeben werden. Gruppe 3 ist Optional.
|
||
|
|
||
|
|
||
|
Die Events "B", "E", "A" und "H" beschreiben Zeitpunkte in der Verbindung,
|
||
|
waehrend "R" und "C" Zeitabschnitte beschreiben. Daher koennen fuer
|
||
|
Zeitpunkte auch keine Intervalle angegeben werden, da dieses nur Ereignisse
|
||
|
sind.
|
||
|
|
||
|
Eine Verbindung oder ein Verbindungsversuch kann folgenden Ablauf haben:
|
||
|
(Die Buchstaben entsprechen den Flags unter Gruppe 2)
|
||
|
|
||
|
Beim ausgehenden Gespraech ueber die ISDN-Karte
|
||
|
|
||
|
1.
|
||
|
|
||
|
| RING | CONNECT |
|
||
|
----------A-----A-----A-----A-----A------A------A------H
|
||
|
|
||
|
2.
|
||
|
|
||
|
| RING | CONNECT |
|
||
|
----------A-----A-----A-----A-----A------A------EH
|
||
|
|
||
|
3.
|
||
|
|
||
|
| RING |
|
||
|
----------BH
|
||
|
|
||
|
4.
|
||
|
|
||
|
| RING |
|
||
|
----------EH
|
||
|
|
||
|
Bei ausgehenden Rufen ueber Telefon/Fax...:
|
||
|
Dort wird _kein_ "RING" uebermittelt. Es gibt also niemals einen Zustand "OR".
|
||
|
|
||
|
1.
|
||
|
|
||
|
| CONNECT |
|
||
|
A-----A-----A-----A-----A------A------A------H
|
||
|
|
||
|
2.
|
||
|
|
||
|
| CONNECT |
|
||
|
A-----A-----A-----A-----A------A------EH
|
||
|
|
||
|
3.
|
||
|
|
||
|
BH
|
||
|
|
||
|
4.
|
||
|
|
||
|
EH
|
||
|
|
||
|
Bei reinkommenden Gespraechen:
|
||
|
Bei der ISDN-Karte ist die "Ring-Phase" extrem kurz, so dass es passieren
|
||
|
kann, dass isdnlog darauf nicht reagiert.
|
||
|
|
||
|
1.
|
||
|
|
||
|
| RING | CONNECT |
|
||
|
--------------------------H
|
||
|
|
||
|
2.
|
||
|
|
||
|
| RING | CONNECT |
|
||
|
-------------------------EH
|
||
|
|
||
|
3.
|
||
|
|
||
|
| RING |
|
||
|
-------H
|
||
|
|
||
|
Time
|
||
|
----
|
||
|
|
||
|
In Time kann eine Zeitzone angegeben werden, in der das Info-Programm
|
||
|
gestartet werden darf:
|
||
|
* = immer
|
||
|
9 = zwischen 9:00:00 Uhr und 9:59:59 Uhr
|
||
|
8-22 = zwischen 8:00:00 Uhr morgen's und 21:59:59 Uhr abend's
|
||
|
22-8 = zwischen 22:00:00 Uhr abend's und 7:59:59 Uhr morgen's
|
||
|
8-16,18-22 = von 8:00:00 .. 15:59:59 Uhr, und von 18:00:00 .. 21:59:59 Uhr
|
||
|
15-15 = immer (gleichbedeutend mit "*")
|
||
|
|
||
|
ACHTUNG: Aenderung in der Syntax:
|
||
|
Die Zeitangaben duerfen _nur_ mit ',' voneinander getrennt sein.
|
||
|
|
||
|
Also kein ';' mehr als Separator verwenden!
|
||
|
|
||
|
Beispiel: 8-12,14,16,18-20
|
||
|
8,9,10,11-14
|
||
|
|
||
|
Wenn Time ueberhaupt nicht angegeben wird, dann bedeutet dieses "immer".
|
||
|
|
||
|
Beispiele:
|
||
|
|
||
|
IOR=/usr/bin/auplay ring.au;
|
||
|
IORK=/usr/bin/auplay ring.au,5;
|
||
|
IORK=/usr/bin/auplay ring.au,5,;
|
||
|
|
||
|
|
||
|
Intervall
|
||
|
---------
|
||
|
|
||
|
Fuer die Flags 'C' und 'R' besteht die Moeglichkeit, ein Programm in
|
||
|
gewissen Abstaenden zu starten. Das Intervall ist eine Zahl, die in
|
||
|
Sekunden die Zeit angibt, die zwischen zwei Programmstarts liegt.
|
||
|
Wenn das Flag 'K' gesetzt ist und ein neues Programm gestartet wird,
|
||
|
dann wird der "Vorgaenger" automatisch beendet.
|
||
|
|
||
|
Wenn bei Ereignissen (Flags 'BAEH') ein Intervall angegeben wird, so wird
|
||
|
dieses ignoriert.
|
||
|
|
||
|
Das Intervall sollte mindestens auf 2 sec. stehen, da isdnlog es sonst
|
||
|
nicht schafft, die beendeten Prozesse zu "beerdigen".
|
||
|
So entstehen also Zombies.
|
||
|
Der Sekunden-Intervall sollte also hoechstens fuer das Ring-Event benutzt
|
||
|
werden.
|
||
|
Groessere Intervalle stellen kein Problem dar.
|
||
|
|
||
|
|
||
|
Info-Arg
|
||
|
--------
|
||
|
|
||
|
Hier wird das Info-Argument angegeben. Es steht dort der gesamte zu
|
||
|
startende Befehl
|
||
|
|
||
|
Es koennen hier Variablen verwendet werden, die entweder in der isdnlog.conf
|
||
|
gesetzt wurden oder vorher (z.b. auf Shellebene).
|
||
|
|
||
|
Es gibt aber drei zusaetzliche Variablen, die verwendet werden duerfen:
|
||
|
|
||
|
$1 : Sind die Flags, die den Programmstart ausgeloest haben.
|
||
|
z.B. "IR", "OC", "IH"
|
||
|
Zuerst kommt die Gespraechs-Direktive und dann der Zustand
|
||
|
der Verbindung. Es kommen immer _genau_ zwei Zeichen.
|
||
|
$2 : Gibt als String die Telefonnummer (mit Vorwahl) des Anrufenden an.
|
||
|
$3 : Gibt als String die Telefonnummer (mit Vorwahl) des Angerufenden an.
|
||
|
|
||
|
Wenn bei $2 und $3 die Telefonnummer nicht bekannt ist, dann wird dort
|
||
|
ein "?" eingesetzt.
|
||
|
|
||
|
Es fallen also alle Blanks und Tabulatoren vor und nach dem "=" heraus.
|
||
|
"IORK = /bin/auplay..." wird also zu "IORK=/bin/auplay...".
|
||
|
|
||
|
Eine (zwei) Zeile in der Spalte Info-Agrs kann also wie folgt aussehen:
|
||
|
|
||
|
4711 Phone 1 IORK= /bin/auplay /sounds/ring.au,1,8-14,16-22;\
|
||
|
OA = /bin/auplay /sounds/money.au,,8-14,16-22;
|
||
|
0815 Provider 2 IOCK= /bin/popclient_script $3,300;
|
||
|
|
||
|
Angenommen 4711 ist die MSN meines Telefons, dann wird beim Rauswaehlen
|
||
|
erst immer "/bin/auplay /sounds/ring.au" abgespielt. Auch wenn das Telefon
|
||
|
klingelt, wird "/bin/auplay /sounds/ring.au" ausgefuehrt. Dieser Vorgang
|
||
|
wird jede Sekunde wiederholt.
|
||
|
Wenn rausgewaehlt wurde, dann erhaelt man bei jedem Gebuehrenimpuls
|
||
|
den Sound "/sounds/money.au".
|
||
|
Diese Sounds werden nur von 8Uhr bis 14Uhr und 16Uhr bis 22Uhr gespielt.
|
||
|
|
||
|
Wenn man zum "Provider" verbunden ist, dann werden alle 5 Minuten Mails
|
||
|
geholt. Da hier keine Zeitangabe gemacht wurde, wird das Script zu
|
||
|
jeder Zeit ausgefuehrt. Das Script bekommt als Parameter "0815", wenn
|
||
|
man "Provider" angerufen hat, und wenn "Provider" einen anruft, seine
|
||
|
eigene MSN.
|
||
|
|
||
|
Wie unter "START=" beschrieben wurde, ist hier noch mal ein Beispiel
|
||
|
zu finden:
|
||
|
|
||
|
CMD1=/bin/auplay
|
||
|
CMD2=/bin/my_prog
|
||
|
DIR = /sounds/
|
||
|
START=IORK=$CMD1 ${DIR}ring.au,1,8-14,16-22;\
|
||
|
OA =$CMD1 ${DIR}money.au,,8-14,16-22;\
|
||
|
IOC =$CMD2 $1 $2 $3,,8-14,16-22;
|
||
|
|
||
|
Die letzte Zeile wird also wie folgt expandiert als Kommando, wenn ich
|
||
|
jemanden anrufe mit der Nummer 0815 (Meine MSN 040/1234):
|
||
|
"/bin/auplay OC 0401234 0815"
|
||
|
|
||
|
--------------^^
|
||
|
Ausgehendes Gspraech (O), Ereignis CONNECT (C)
|
||
|
-----------------^^^^^^^
|
||
|
Nummer des Anrufenden (also Meine)
|
||
|
Nummer des Angerufenden
|
||
|
|
||
|
Eine Variable muss immer am Anfang eines Argumentes stehen. Also
|
||
|
"/bin$PROG" und "/bin${MYPATH}prog" gehen nicht.
|
||
|
|
||
|
Wenn ich an die Variable noch etwas anhaengen will, dann muss ich den
|
||
|
Variablenname in geschweifte Klammern setzen:
|
||
|
"${MY_PATH}/ring.au"
|
||
|
"$MY_PATH/ring.au" geht nicht.
|
||
|
|
||
|
Die Variablen von isdnlog ($1, $2, ..) kann man nicht in geschweiften Klammern
|
||
|
setzen. Also auch nicht anhaengen.
|
||
|
|
||
|
Wenn eine unbekannte Variable verlangt wird (meistens wohl Tipp-Fehler;-)),
|
||
|
dann wird die mit einem "?" ersetzt, damit wenigstens die Parameterzahl
|
||
|
stimmt.
|
||
|
|
||
|
Wenn als Parameter ein "@" gefolgt von einem Dateinamen erschein, so wird
|
||
|
die erste Zeile der Datei als Parameter an die Datei uebergeben. Allerdings
|
||
|
darf der Name nicht aus einer Variablen bestehen, da die Variable nicht am
|
||
|
Anfang stehen kann, denn da steht ja schon "@" ;-)
|
||
|
|
||
|
Beispiel:
|
||
|
|
||
|
/tmp/data beinhaltet "Das ist ein test"
|
||
|
|
||
|
Der Aufruf
|
||
|
/bin/script @/tmp/data
|
||
|
fuehrt zu
|
||
|
/bin script "Das ist ein test"
|
||
|
|
||
|
Die gesamte erste Zeile wird als _ein_ Parameter uebergeben, auch wenn dort
|
||
|
Blanks oder Tabulatoren enthalten sind. Das abschliessende "\n" wird entfernt.
|
||
|
|
||
|
Beim Start der Programme ist immer darauf zu achten, dass diese sich selber
|
||
|
beenden, da der isdnlog nur in gewissen Ausnahmen Programme beendet.
|
||
|
Ausnahme ist, wenn ein RING-Zustand oder CONNECT-Zustand beendet wird. Dann
|
||
|
beendet der isdnlog die laufenden Programme.
|
||
|
|
||
|
ACHTUNG: Bei eigenen MSN's, auf die kein eigenes Geraet reagiert
|
||
|
(also "unbenutzt" sind), duerfen keine Info-Argumente angegeben
|
||
|
werden, da bei solchen MSN's isdnlog vitale Informationen zur
|
||
|
korrekten Ansteuerung fehlen!
|
||
|
|
||
|
|
||
|
4.2.6 Konkretes Beispiel fuer die "-S" Option
|
||
|
----------------------------------------------
|
||
|
|
||
|
MYPREFIX = 0815
|
||
|
PLAYER = /usr/bin/auplay
|
||
|
SOUNDS = /usr/sounds
|
||
|
|
||
|
START = O R L = $PLAYER ${SOUNDS}/unknown_ring.au,,8-14,16-22;\
|
||
|
IOA = $PLAYER ${SOUNDS}/pay.au,,8-14,16-22;\
|
||
|
IOC U = /usr/bin/who_is_it $2 $3;\
|
||
|
IOH = $PLAYER ${SOUNDS}/hangup.au,,8-14,16-22;\
|
||
|
IORAH = $PLAYER ${SOUNDS}/silent.au,,14-16,22-8;
|
||
|
|
||
|
4711 MSN\#1 1 - I RK = $PLAYER ${SOUNDS}/msn1_ring.au,5,8-14,16-22;\
|
||
|
- IOA = $PLAYER ${SOUNDS}/msn1_pay.au,,8-14,16-22;
|
||
|
4712 MSN\#2 1 - I RK = $PLAYER ${SOUNDS}/msn2_ring.au,5,8-14,16-22;
|
||
|
4713 MSN\#3 1 - I RK = $PLAYER ${SOUNDS}/msn3_ring.au,5,8-14,16-22;
|
||
|
|
||
|
*40441777 My_Provider 4 isdn0 OIR = $PLAYER ${SOUNDS}/provider_ring.au;\
|
||
|
OICU = /usr/bin/get.mails.from.provider,300;\
|
||
|
OICU = /usr/bin/get.news.from.provider,1800;
|
||
|
|
||
|
|
||
|
Erklaerung zum Beispiel:
|
||
|
|
||
|
Wenn man "My_Provider" anwaehlt, dann erklingt einmal der Sound
|
||
|
"provider_ring.au". Wenn die Verbindung zu stande gekommen ist, dann wird
|
||
|
sofort "/usr/bin/get.mails.from.provider" und "/usr/bin/get.news.from.provider"
|
||
|
gestartet. Das Programm "mails.from.provider" wird dann alle 5 Minuten wieder
|
||
|
gstartet. Das Programm "get.news.from.provider" wird alle 30 Minuten gestartet.
|
||
|
Wenn eines Programm mal laenger als 5 bzw. 30 Minuten laeuft,
|
||
|
wird der naechste Start so lange verschoben, bis sich das laufende beendet.
|
||
|
Das wird durch "U" ausgedrueckt. Wenn die Verbindung zu "My_Provider" beendet
|
||
|
wird, dann werden automatisch evtl. noch laufende Programme beendet (gekillt).
|
||
|
Jedes mal wenn eine Einheit von der VSt gemeldet wird, wird ein Sound gespielt.
|
||
|
Wenn ich von "MSN#1" anrufe, dann "msn1_pay.au". Von "MSN#2" und "MSN#3" wird
|
||
|
der Default-Sound "pay.au" gespielt. Alle "normalen" Sounds werden aber nur
|
||
|
von 8 Uhr bis 14 Uhr und von 16 Uhr bis 22 Uhr gespielt. In der uebrigen
|
||
|
Zeit laeuft fuer alle Ring's, AOCD und Hangup's der Sound "silent.au".
|
||
|
Die Zeit wird hier mit "von" - "bis" angegeben.
|
||
|
|
||
|
Wenn sonstige Verbindungen zustande kommen, wird das Programm
|
||
|
"/usr/bin/who_is_it" gestartet. Dem wird noch als Parameter die Telefonnummern
|
||
|
vom Anrufer und Angerufenen mitgeteilt. Das wird aber nur gestartet, wenn sonst
|
||
|
kein Programm existiert, das fuer diese Verbindung bei einem Connect laufen
|
||
|
soll. Das Programm wird nur einmal gestartet, direkt wenn die Verbindung zu
|
||
|
stande kommt.
|
||
|
|
||
|
Wenn ein Ruf ankommt, dann wird je nach MSN ein eigener Sound gespielt. Der
|
||
|
Sound wird alle 5 Sek. wieder gespielt. Sollte der Sound laenger als 5 Sek.
|
||
|
laufen, so wird er gekillt und der naechste gestartet (K). Der "Ring-Sound"
|
||
|
wird auch nur zu den angegebenen Zeiten gespielt. Ansonsten wird wieder
|
||
|
"silent.au" gespielt.
|
||
|
|
||
|
Wenn man von der ISDN-Karte rauswaehlt und nicht "My_Provider" anwaehlt,
|
||
|
dann wird der Sound "unknown_ring.au" gespielt (Achtung: Wieder Zeit beachten).
|
||
|
Der wird solange in einer Schleife gespielt (L), bis eine Verbindung zu stande
|
||
|
kommt. So wie "/usr/bin/auplay" beendet ist, wird es wieder neu gestartet.
|
||
|
Die Flags "OR" haben allerdings keine Bedeutung fuer andere Geraete am S0-Bus,
|
||
|
da die ISDN-Karte die Ring-Phase von anderen Geraeten am Bus nicht mitbekommt.
|
||
|
|
||
|
|
||
|
5. Die Konfigurationsdatei "isdnlog.users"
|
||
|
------------------------------------------
|
||
|
|
||
|
Die Datei wird nur benoetigt, wenn isdnlog mit der Option -xX gestartet werden
|
||
|
soll. Andernfalls braucht diese Datei auch nicht angelegt werden.
|
||
|
|
||
|
Wird isdnlog mit -xX gestartet, ohne dass diese Datei existiert, wird eine
|
||
|
Defaultdatei angelegt, die _unbedingt_ editiert werden sollte. Es erscheint
|
||
|
dann auch eine entsprechende Warnung.
|
||
|
|
||
|
Die Konfigurationsdatei wird im Verzeichnis "/etc/isdnlog" erwartet, und
|
||
|
enthaelt fuer isdnlog die Informationen ueber Zugriffsberechtigungen von
|
||
|
Benutzern via Client.
|
||
|
|
||
|
Leere Zeilen werden ignoriert. Wenn in einer Zeile ein "#" enthalten ist,
|
||
|
wird der Rest der Zeile als Kommentar gewertet.
|
||
|
|
||
|
Steht am Ende einer Nicht-Kommentarzeile ein "\", so wird die Zeile mit der
|
||
|
naechste Zeile zu einer "verschmolzen". ACHTUNG: Das Zeichen "\" muss als
|
||
|
letztes Zeichen stehen, und darf nicht von Tab's oder Leerzeichen gefolgt
|
||
|
werden.
|
||
|
|
||
|
Zur Zeit sind folgende Zeichen als Sonderzeichen anzusehen: "$@#,;\".
|
||
|
Diese Sonderzeichen muessen gequotet werden, wenn diese in der
|
||
|
Datei "isdnlog.users" verwendet werden sollen.
|
||
|
|
||
|
|
||
|
5.1 Aufbau
|
||
|
----------
|
||
|
|
||
|
Der Aufbau ist aehnlich, wie die Benutzerdatei von xcept, aber um einige
|
||
|
Eigenschaften erweitert.
|
||
|
|
||
|
Jedem Benutzer werden Rechte mitgegeben. Diese Rechte stehen direkt hinter
|
||
|
dem Namen, getrennt durch Leerzeichen oder Tab's.
|
||
|
|
||
|
Die Rechte beschreiben, welche Informationen der Benutzer vom isdnlog
|
||
|
beziehen kann, oder welche Einstellungen er am isdn4linux vornehmen kann:
|
||
|
|
||
|
ALL
|
||
|
Es werden komplett alle (folgenden) Rechte vergeben.
|
||
|
Sinnvoll fuer "root"
|
||
|
|
||
|
MSN=msn[,msn...]
|
||
|
Es werden nur Informationen zu den angegeben MSN's angezeigt.
|
||
|
Das bezieht sich auf ankommende sowie abgehende Gespraeche,
|
||
|
sowie auf die Protokoll-Daten.
|
||
|
|
||
|
Es koennen beliebig viele MSN's angegeben werden. Auch die Verwendung
|
||
|
von Wildcards, wie bei den Nummern von der Datei "isdnlog.conf", ist
|
||
|
erlaubt. Mit "MSN=*" werden alle MSN's abgedeckt.
|
||
|
|
||
|
Das Flag MSN funktionert nur bei reinkommenden (von ISDN-Anschluessen)
|
||
|
Gespraechen und den ISDN-Karten (siehe Bemerkung von Gernot Zander weiter
|
||
|
oben). Alle unbekannten Gegenstellen und rausgehenden Rufe werden nur mit
|
||
|
"ALL" oder "MSN=*" angezeigt.
|
||
|
|
||
|
PROTOCOL
|
||
|
Es wird ein separates Fenster vom Client zur Verfuegung gestellt,
|
||
|
wo man alle Informationen vom isdnlog angezeigt bekommt, die mit -xX
|
||
|
eingestellt worden sind.
|
||
|
|
||
|
In Planung/Vorbereitung:
|
||
|
I4LCONF
|
||
|
Es besteht die Moeglichkeit, Eigenschaften von isdn4linux von
|
||
|
dem Client aus einzustellen. Wenn einem Benutzer dies erlaubt werden
|
||
|
soll (Sinnvoll nur fuer "root"!), dann muss dem Benutzernamen
|
||
|
dieses Flag folgen.
|
||
|
|
||
|
In Planung/Vorbereitung:
|
||
|
ADDRESSBOOK
|
||
|
Dem Benutzer mit diesem Recht wird die Moeglichkeit gegeben, sich
|
||
|
Daten ueber den Anrufer/Angerufenen zu speichern und ein Notizbuch zu
|
||
|
fuehren (weitere Info's unter xisdn).
|
||
|
|
||
|
Wenn mehrere Rechte an einem Benutzer vergeben werden sollen, koennen diese
|
||
|
mit ";" getrennt hintereinander angegeben werden.
|
||
|
|
||
|
Am Anfang der Datei koennen Eintrage stehen, wo jeweils ein Benutzer mit einem
|
||
|
Hostnamen und seinen Benutzerrechten angegeben wird.
|
||
|
|
||
|
fred@vom.jupiter MSN=4711?
|
||
|
root@host1.at.home ALL
|
||
|
|
||
|
Im obigen Beispiel darf sich der Benutzer "fred" nur von dem Host "vom.jupiter"
|
||
|
mit dem isdnlog verbinden. Analog dazu der Benutzer "root" nur von dem
|
||
|
Host "host1.at.home".
|
||
|
|
||
|
In dem zweiten Abschnitt der Datei koennen Gruppierungen von Benutzern und
|
||
|
Hostnamen zusammengestellt werden. Ein Abschnitt beginnt mit der Zeile
|
||
|
|
||
|
[Mein_Abschnitt]
|
||
|
|
||
|
und endet mit dem Beginn des naechsten Abschnittes oder beim Dateiende.
|
||
|
Beim Abschnittnamen wird nicht zwischen Gross- und Kleinschreibung
|
||
|
unterschieden.
|
||
|
In einem Abschnitt besteht eine Zeile entweder aus einem Benutzernamen oder
|
||
|
einem Hostnamen:
|
||
|
|
||
|
heinz MSN=*;PROTCOL
|
||
|
@host1
|
||
|
@host2
|
||
|
otto MSN=47111,47112
|
||
|
@host3
|
||
|
|
||
|
Einem Benutzernamen muessen immer die Rechte folgen, die dem Benutzer zugeordnet
|
||
|
werden sollen. Dem Hostnamen duerfen keine Rechte zugeordnet werden.
|
||
|
|
||
|
Im obigen Beispiel duerfen die Benutzer "heinz" und "otto" von den Hosts
|
||
|
"host1", "host2" oder "host3" den Client starten.
|
||
|
|
||
|
Wenn ueberhaupt keine Rechte vergeben werden sollen, d.h. jeder beliebige
|
||
|
Benutzer darf von jedem Host zum isdnlog eine Verbindung aufbauen mit allen
|
||
|
Rechten, dann reicht es in der Datei "isdnlog.users" den folgenden Eintrag
|
||
|
zu setzen:
|
||
|
|
||
|
[world]
|
||
|
|
||
|
Beispiele fuer "isdnlog.users" sind im isdnlog-Paket unter dem Verzeichnis
|
||
|
"./samples" zu finden.
|
||
|
|
||
|
Es ist darauf zu achten, dass die angegeben Hostnamen in der Datei /etc/hosts
|
||
|
zu finden sind. Andernfalls wird der Nameserver nach unbekannten Hostnamen
|
||
|
befragt, was zu einem unbeabsichtigten Verbindungsaufbau via ppp oder
|
||
|
ISDN fuehren kann.
|
||
|
|
||
|
Die Datei "isdnlog.users" wird _vor_ jedem Verbindungsaufbau zu einem neuen
|
||
|
Client ueberprueft, ob sie noch aktuell ist, ansonsten wird sie neu eingelesen.
|
||
|
Dadurch hat man die Moeglichkeit, die Datei zu editieren, ohne anschliessend
|
||
|
den isdnlog neu zu starten.
|
||
|
|
||
|
|
||
|
6. 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.
|
||
|
|
||
|
|
||
|
7. 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 -C /dev/tty7" -> 7. Console).
|
||
|
|
||
|
- isdnlog -S
|
||
|
|
||
|
isdnlog startet bei diversen Event's die gesamte 5. 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. Der Service-Indicator entspricht dem Eintrag in der "isdnlog.conf"
|
||
|
|
||
|
3. Man selbst ruft diese Nummer an, und das Flag ist
|
||
|
"O" fuer OUTGOING gesetzt.
|
||
|
|
||
|
oder
|
||
|
|
||
|
Man wird von dieser Nummer angerufen, und das Flag
|
||
|
ist "I" fuer INCOMING gesetzt.
|
||
|
|
||
|
4. Es "klingelt", d.h. eine Verbindung ist gerade im Entstehen, und
|
||
|
das Flag ist "R" fuer RING gesetzt.
|
||
|
|
||
|
oder
|
||
|
|
||
|
Die Verbindung kam zustande, und in der Flags-Spalte ist "C" fuer
|
||
|
CONNECT gesetzt.
|
||
|
|
||
|
|
||
|
Die eigentliche Grund-Aufgabe von isdnlog, das Fortfuehren des Logbuch's
|
||
|
"/var/log/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.
|
||
|
|
||
|
|
||
|
8. 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 <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 [ -avsx:m:l:rt:cC:w:SVTRDPeMh: ] [ /dev/isdnctrl0 | - ]
|
||
|
|
||
|
gestartet werden. Der isdnlog kann nur als root gestartet werden!
|
||
|
|
||
|
isdnlog besitzt drei Ausgabekanaele:
|
||
|
- Console (default stderr) (Schalter -mX)
|
||
|
- syslog (Schalter -lX)
|
||
|
- xisdn (Schalter -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.'device'.pid", und schreibt dort seine eigene
|
||
|
Process-ID hinein. "device" steht fuer entsprechende isdnctrl-Device,
|
||
|
welches man gangesprochen hat. Somit kann isdnlog
|
||
|
jederzeit mittels "kill `cat /var/run/isdnlog.'device'.pid`" terminiert werden.
|
||
|
(Was z.b. zwingend ist, wenn man das teles- oder isdn-Modul entladen will!)
|
||
|
Wenn isdnlog ein zweites mal gestartet wird mit dem gleichen Device, beendet
|
||
|
er sich sofort wieder, da nur ein isdnlog gleichzeitig auf einem
|
||
|
device laufen kann.
|
||
|
|
||
|
Muessen mehrere isdnlog's gleichzeitig gestartet werden, muessen diese mit
|
||
|
Hilfe von Links gestartet werden. Z. B. ln -s isdnlog isdnlog1
|
||
|
|
||
|
isdnlog kann mittels "kill -HUP `cat /var/run/isdnlog.'device'.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!
|
||
|
Dieses fuehrt mit Sicherheit zum Programmabsturz!
|
||
|
|
||
|
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
|
||
|
|
||
|
-fX isdnlog liest eine Konfigurationsdatei "X". Hier koennen Optionen
|
||
|
angegeben werden.
|
||
|
Der Aufbau der Datei (Beispiel).
|
||
|
|
||
|
[options] # Muss immer zuerst kommen.
|
||
|
log=yes
|
||
|
port = 10000
|
||
|
STDOUT = 1023 # Gross/Kleinschreibung wird bei den Bezeichnern nicht
|
||
|
# beachtet.
|
||
|
...
|
||
|
|
||
|
Die Syntax ist also die gleiche wie bei isdnlog.conf.
|
||
|
Der Aufbau der einzelnen Optionen stehen in Klammern am Ende der einzelnen
|
||
|
Optionen. Optionen, die nur fuer Debugging-Zwecke Bedeutung haben wie -T,
|
||
|
koennen nicht ueber diese Datei "X" voreingestellt werden.
|
||
|
|
||
|
-vX isdnlog schreibt den gesamten Output von "/dev/isdnctrl0", den Output von
|
||
|
"/dev/isdninfo" sowie die jeweils gemessene Durchsatz-Rate, ergaenzt um
|
||
|
Uhrzeit/Datum nach "/tmp/isdnctrl0" zur spaeteren Kontrolle (siehe auch
|
||
|
"-r" Option)
|
||
|
Das Argument X gibt an, welche Ausgaben mitprotokolliert werden
|
||
|
sollen:
|
||
|
1 nur die "HEX:" Zeilen vom HiSax-Treiber
|
||
|
2 die Ausgaben von "/dev/isdnctrl"
|
||
|
4 die Ausgaben von "/dev/isdninfo"
|
||
|
8 die Byte-Angaben ("ibyte", "obyte")
|
||
|
Hier koennen auch Kombinationen angegeben werden
|
||
|
(z.b. 2 + 4 = 6 == "/dev/isdnctrl" und "/dev/isdninfo")
|
||
|
(log=X)
|
||
|
|
||
|
-s isdnlog fuehrt nach jedem Schreibzugriff auf die "/tmp/isdnctrl0"
|
||
|
(-> siehe "-vX") einen flush() darauf aus
|
||
|
(flush={yes|no})
|
||
|
|
||
|
-pX Angabe der TCP/IP Port-Nummer, ueber die isdnlog mit dem X11-Client
|
||
|
kommunizieren soll
|
||
|
ACHTUNG: Andere Bedeutung als in frueheren Versionen!
|
||
|
(port="value")
|
||
|
|
||
|
-mX Angabe der gewuenschten Meldungen, die angezeigt werden sollen.
|
||
|
Normalerweise ist das stderr. Es kann aber mit -C X ein anderes
|
||
|
Device sein.
|
||
|
ACHTUNG: Andere Bedeutung als in frueheren Versionen!
|
||
|
(stdout="value")
|
||
|
|
||
|
-lX Angabe der gewuenschten Meldungen, die in's syslog eingetragen
|
||
|
werden sollen
|
||
|
(syslog="value")
|
||
|
|
||
|
-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.
|
||
|
(xisdn=XXX)
|
||
|
|
||
|
-r isdnlog spielt die angegebene Datei (eine "/tmp/isdnctrl0") nochmals
|
||
|
trocken durch (Zwecks debugging etc.)
|
||
|
(Diese Option erkennt auch automatisch Dateien, die nicht von isdnlog
|
||
|
um Datum/Uhrzeit erweitert wurden, 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!
|
||
|
(time={0|1|2})
|
||
|
|
||
|
-C X 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.
|
||
|
(-C /dev/tty7, -C /dev/ttyp5)
|
||
|
ACHTUNG: Erweiterte Syntax gegenueber frueheren Versionen!
|
||
|
OBACHT: Zwischen "-C" und dem Device _muss_ ein Leerzeichen stehen!!
|
||
|
(console="path")
|
||
|
|
||
|
-S isdnlog soll bei diversen Event's die in der 5. Spalte der isdnlog.conf
|
||
|
angegebenen externen Programme starten
|
||
|
(start={yes|no})
|
||
|
|
||
|
-wX in welchen Abstaenden soll isdnlog die Uebertragungsrate neu
|
||
|
berechnen und anzeigen (Angabe in Sekunden)
|
||
|
(thruput="value")
|
||
|
|
||
|
-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.
|
||
|
(daemon={yes|no})
|
||
|
|
||
|
-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 ...
|
||
|
|
||
|
(pipe={yes|no})
|
||
|
|
||
|
-b Wenn ein bilingualer NT verwendet wird, mit dem DSS1 gefahren wird,
|
||
|
dann muss dieses Flag gesetzt sein, da sonst die eigenen MSN's fehlerhaft
|
||
|
angezeigt werden.
|
||
|
(bilingual={yes|no})
|
||
|
|
||
|
-M imon/imontty/isdnmon Emulator
|
||
|
Hiermit erzeugt isdnlog eine den obigen Tools entsprechende Ausgabe
|
||
|
(Achtung: -m2048 muss dann zusaetzlich angegeben werden!)
|
||
|
(monitor={yes|no})
|
||
|
|
||
|
-hX Zeitabhaengige Hangup-Timeout Steuerung
|
||
|
Wird dieses Flag angegeben, berechnet isdnlog bei jedem rausgehenden
|
||
|
Verbindungsaufbau die aktuelle Dauer einer Gebuehreneinheit
|
||
|
entsprechend der Tageszeit (nebst Wochentag/Feiertag etc.) sowie
|
||
|
der Gebuehrenzone des Gegners, und programmiert - falls erforderlich -
|
||
|
die neue Dauer in das entsprechende IP-Interface.
|
||
|
|
||
|
Beispiel:
|
||
|
Mein Internet-Provider steht folgendermassen in der "isdnlog.conf" :
|
||
|
4711 EUnet 3 isdn0 OC=$CMD ${SOUNDS}/dial.au
|
||
|
|
||
|
Konfiguriert wurde dessen IP-Interface "isdn0" in der "rc.isdn" so:
|
||
|
isdnctrl huptimeout isdn0 12
|
||
|
|
||
|
Erfolgt nun ein Verbindungsaufbau Richtung EUnet, berechnet isdnlog
|
||
|
die aktuell gueltige Dauer einer Gebuehreneinheit
|
||
|
(da mein Provider in "Regio 200" liegt, also 12.0, 13.5, 21.5, 30.0
|
||
|
oder 120.0 Sekunden)
|
||
|
und setzt intern die Befehle
|
||
|
isdnctrl chargeint isdn0 X
|
||
|
isdnctrl huptimeout isdn0 Y
|
||
|
ab, wobei fuer "X" die berechnete Zeit, und fuer Y je nachdem, ob
|
||
|
X groesser oder kleiner 20 Sekunden ist, den linken oder rechten
|
||
|
Parameter der -h Option.
|
||
|
|
||
|
Dauert z.b. eine aktuelle Gebuehreneinheit 12 Sekunden, und wurde
|
||
|
isdnlog mit "-h5:3" gestartet, wird also der ChargeInt-Counter auf
|
||
|
12 Sekunden, und der huptimeout-Counter auf 5 Sekunden gestellt.
|
||
|
|
||
|
|
||
|
Das Nachjustieren des Hangup-Timers geschieht sowohl bei jedem
|
||
|
Verbindungsaufbau, als auch bei jedem Uebergang in einen anderen
|
||
|
Tarif, also um 9:00, 12:00, 18:00, 21:00, 2:00 sowie 5:00 Uhr.
|
||
|
|
||
|
ACHTUNG: Die Gebuehrenimpulse der VSt kommen keineswegs im Rythmus
|
||
|
der wirklichen Gebuehrentakt-Laenge, sondern in jeweils
|
||
|
auf 10 Sekunden gerundeten Abschnitten (entsprechend eigener
|
||
|
Beobachtungen)
|
||
|
In obigem Beispiel also nicht nach 12,24,36,48 .. Sekunden,
|
||
|
sondern nach 20,30,40,50 Sekunden.
|
||
|
|
||
|
ACHTUNG: Wird dieses Feature genutzt, sollte isdnlog mindestens
|
||
|
mit "-t1", besser mit "-t2" synchron zur Uhr der VSt
|
||
|
laufen!
|
||
|
|
||
|
Fuer diese Funktionalitaet benoetigt isdnlog das Programm "isdnctrl"
|
||
|
nicht, da es direkt mit isdn4linux komuniziert.
|
||
|
(hangup="value")
|
||
|
|
||
|
-cX Nur in Verbindung mit -xX. Es werden die X letzten Gespreache vom isdnlog
|
||
|
gespeichert, die vom xisdn abgerufen werden, wenn der xisdn gestartet wird.
|
||
|
Der Defaultwert betraegt 100.
|
||
|
(calls="value")
|
||
|
|
||
|
-LX Nur in Verbindung mit -xX. Es werden die X letzten Meldungen von der Option
|
||
|
-xX im isdnlog gespeichert, die vom xisdn abgerufen werden, wenn der xisdn
|
||
|
gestartet wird. Der Defaultwert betraegt 500.
|
||
|
(xlog="value")
|
||
|
|
||
|
-n Die Durchsatzmeldungen werden - soweit moeglich - immer in derselben
|
||
|
Bildschirmzeile angezeigt.
|
||
|
(newline={yes|no})
|
||
|
|
||
|
-Wx Alle Bildschirmausgabezeilen werden auf max. "x" Zeichen/Zeile
|
||
|
beschnitten
|
||
|
(width="value")
|
||
|
|
||
|
-Ax Hiermit kann/koennen die Ziffer(n) angegeben werden, die
|
||
|
an einer Telefonanlage vorgewaehlt werden muessen, um ein Amt
|
||
|
zu bekommen.
|
||
|
(amt="value")
|
||
|
|
||
|
-2x Dual-Mode. isdnlog empfaengt die D-Kanal-Frames der anderen
|
||
|
Geraete auf dem S0-Bus ueber eine zweite, falsch angeschlossene
|
||
|
Teles-Karte.
|
||
|
Mit x = 2 zeigt isdnlog auch jede Kleinigkeit - wie z.b. jedes
|
||
|
einzelne gewaehlte Digit beim Telefonieren direkt an.
|
||
|
(dual="value")
|
||
|
|
||
|
|
||
|
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
|
||
|
|
||
|
2048 imon Anzeige
|
||
|
Der aktuelle Zustand der B-Kanaele wird angezeigt
|
||
|
|
||
|
4096 Der vollstaendige Service-Indicator wird bei jedem Verbindungsaufbau
|
||
|
aufgeschluesselt angezeigt
|
||
|
|
||
|
8192 Jede "-m" Meldung wird erweitert um eine Schaetzung, wann der naechste
|
||
|
Gebuehrentakt beginnt sowie in welcher Zone der Gegner vermutlich
|
||
|
liegt.
|
||
|
|
||
|
|
||
|
Alle weiteren Flags (16.384 .. 4.194.304) 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 "-m4087"
|
||
|
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.
|
||
|
|
||
|
|
||
|
9. Die Protokoll-Datei "/var/log/isdn.log"
|
||
|
------------------------------------------
|
||
|
|
||
|
Fuer jede (zustande gekommene, oder auch nicht zustande gekommene)
|
||
|
Verbindung erzeugt isdnlog einen Eintrag in der Datei "/var/log/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)
|
||
|
(12) Versionsnummer der "isdn.log" Eintragung, z.Zt. Version 2.0
|
||
|
(13) Dienstkennung fuer diese Verbindung (1=Speech, 7=Data usw.)
|
||
|
(14) Bei Dienstkennung 1=Speech steht hier eine 1, falls der Gegner aus dem
|
||
|
ISDN, und 0, falls der Gegner aus der analogen Welt kommt
|
||
|
(15) Der Currency Factor fuer diese Verbinung (in Deutschland z.Zt. 0,12)
|
||
|
(16) Die Waehrung fuer diese Verbindung (in Deutschland "DM")
|
||
|
|
||
|
|
||
|
10. 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/log/isdn.log" angesammelt haben (sonst nur "heute")
|
||
|
|
||
|
-n "numbers" isdnrep druckt anstelle der Symbolischen Namen die
|
||
|
Telefonnummern an
|
||
|
|
||
|
-c Zone "compute" Falls man kein AOC-E (Gebuehreninfo am Ende einer Verbindung)
|
||
|
bestellt hat, und isdnlog der angerufene Gegner unbekannt
|
||
|
ist ("calling ?"), kann hiermit angegeben werden, in
|
||
|
welcher Gebuehrenzone isdnrep den Gegner "vermuten" soll:
|
||
|
-c 0 : nicht's berechnen, sondern mit DM 0,00 abrechnen
|
||
|
-c 1 : in der City-Zone vermuten
|
||
|
-c 2 : in der Regio-50 Zone vermuten
|
||
|
-c 3 : in der Regio-200 Zone vermuten
|
||
|
-c 4 : in der Fernzone vermuten
|
||
|
|
||
|
-f file "file" Es kann ein anderes Logfile anstelle von /var/log/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)
|
||
|
|
||
|
[MM]DD[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)
|
||
|
3 3.Tag des akuellen Monats
|
||
|
|
||
|
|
||
|
-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
|
||
|
mit Wildcards (siehe "/etc/isdnlog/isdnlog.conf").
|
||
|
Wenn ein 'm' vor der Nummer steht, beschreibt es die
|
||
|
entsprechende MSN. Z.b. 'm2' (entspricht MSN#2).
|
||
|
Wenn 'MSN' == 0 ("m0") ist, dann bedeutet das, alle uebrigen
|
||
|
Nummern werden angezeigt.
|
||
|
|
||
|
Wird das Flag n gesetzt, bedeutet dieses, dass die
|
||
|
angegebenen Nummer nicht angezeigt werden. Dieses Flag
|
||
|
gilt immer fuer alle Nummern. Ist also eine Negierung.
|
||
|
|
||
|
-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.
|
||
|
|
||
|
|
||
|
11. Das Konfigurations-Tool isdnconf
|
||
|
------------------------------------
|
||
|
|
||
|
Dieses Programm bearbeitet oder interpretiert die Datei /etc/isdnlog/isdn.conf.
|
||
|
Es koennen hiermit Eintraege in dieser Datei angelegt oder geloescht werden.
|
||
|
Des weiteren koennen wie mit einem Grep Eintraege gesucht und angezeigt werden.
|
||
|
Unter einen Eintrag ist eine eigene MSN ([MSN]) oder eine Telefonnummer
|
||
|
([NUMBER]) gemeint.
|
||
|
|
||
|
Hier nun die Optionen des Programmes:
|
||
|
|
||
|
Befehle:
|
||
|
|
||
|
ACHTUNG:
|
||
|
|
||
|
Dieses Programm besitzt zwar die Faehigkeit, die Config-Datei zu veraendern.
|
||
|
Es wird aber dringend davon abgeraten die Schalter -A und -D zu verwenden!!
|
||
|
Hierbei wird die gesamte Struktur der Datei zerstoert (include), so wie alle
|
||
|
Kommentare werden geloescht.
|
||
|
|
||
|
-A "add" Es wird ein neuer Eintrag hinzugefuegt. Dieser wird ueber
|
||
|
Standardinput eingelesen. Es werden folgende Angaben
|
||
|
abgefragt:
|
||
|
|
||
|
Alias: Fred
|
||
|
Number: 0815/441777
|
||
|
SI: 0
|
||
|
Zone: 4
|
||
|
Interface: -
|
||
|
Flags: I|O
|
||
|
Program: /usr/local/ring
|
||
|
User: uucp
|
||
|
Group: user
|
||
|
Interval:
|
||
|
Time: 8-20
|
||
|
Flags: (CONTROL-D)
|
||
|
|
||
|
Alias: (CONTROL-D)
|
||
|
|
||
|
Wenn kein Control-D bei dem zweiten Flags gedrueckt
|
||
|
wuerde, kann ein weiterer Programmstart zur
|
||
|
entsprechenden Nummer angeben werden.
|
||
|
|
||
|
Wenn bei "Alias" kein Control-D gedrueckt wuerde,
|
||
|
koennte man eine weitere Nummer eingeben.
|
||
|
|
||
|
Es kann auch eine Datei als Eingabe "gepipt" werden.
|
||
|
Der Inhalt der der Datei sieht dann equivalent zur
|
||
|
oberen Eingabe aus:
|
||
|
|
||
|
Fred
|
||
|
0815/441777
|
||
|
0
|
||
|
4
|
||
|
-
|
||
|
I|O
|
||
|
/usr/local/ring
|
||
|
uucp
|
||
|
user
|
||
|
|
||
|
8-20
|
||
|
|
||
|
-D "delete" Loescht einen oder mehrere Eintraege, die den folgenden
|
||
|
Mustern entsprechen. Diese Muster werden unter den
|
||
|
weiteren Optionen besprochen.
|
||
|
|
||
|
-V "version" Zeigt die aktuelle Version und beendet sich.
|
||
|
|
||
|
Wenn weder -A noch -D angegeben wurde, dann wird isdnconf nur Telefonnummern
|
||
|
anzeigen die, dem Muster entsprechen.
|
||
|
|
||
|
Sollte -A und -D gleichzeitig angegeben werden. Wird isdnconf automatisch
|
||
|
beendet.
|
||
|
|
||
|
|
||
|
Optionen:
|
||
|
|
||
|
-n 'Nummer' "number" Sucht nach Telefonnummer unter allen Eintraegen,
|
||
|
die dem Muster entsprechen und zeigt sie anschliessend
|
||
|
an. 'Nummer' ist eine Zahl im Format der
|
||
|
Konfigurationsdatei mit Wildcards (siehe
|
||
|
"/etc/isdnlog/isdn.conf"). Gilt nicht fuer den
|
||
|
Befehl -A.
|
||
|
|
||
|
-a 'Alias' "alias" Sucht nach dem Alias unter allen Eintraegen,
|
||
|
die dem Muster entsprechen und zeigt sie anschliessend
|
||
|
an. 'Alias' ist eine Zahl im Format der
|
||
|
Konfigurationsdatei mit Wildcards (siehe
|
||
|
"/etc/isdnlog/isdn.conf"). Gilt nicht fuer den
|
||
|
Befehl -A.
|
||
|
BUG: Statt dem Zeichen '-' muss ein '?' verwendet
|
||
|
werden!
|
||
|
|
||
|
-t 'SI' Zeigt alle Eintraege mit Service-Indicator 'SI' an.
|
||
|
Gilt nicht fuer den Befehl -A.
|
||
|
|
||
|
-c 'Code' "code" Ermittelt die Vorzahl zu der Telefonnummer und gibt
|
||
|
diese dann aus. Gilt nicht fuer -A und -D.
|
||
|
|
||
|
-i "ignore" Es wird dann bei den Optionen -n und -a die
|
||
|
Gross/Kleinschreibung ignoriert.
|
||
|
|
||
|
-w "word" Der Ganze String von -a und -n muss auf den
|
||
|
angewendeteten String passen.
|
||
|
Beispiele:
|
||
|
"*34*" -> 123456, 345677, 1234
|
||
|
"34*" -> 34567, 34111
|
||
|
"34??" -> 3411, 3456
|
||
|
"34" -> 34 (und nichts anderes!!!)
|
||
|
|
||
|
Ohne diese Option wuerde das Muster wie beim
|
||
|
"grep" arbeiten:
|
||
|
"*34*" -> 123456, 345677, 1234
|
||
|
"34*" -> 123456, 345677, 1234, 34567, 34111
|
||
|
"34??" -> 123456, 345677, 1234, 3411, 3456
|
||
|
"34" -> 123456, 345677, 1234, 3411, 3456, 34567
|
||
|
|
||
|
-d "and" Defaultmaessig werden die Optionen -n, -a und -t
|
||
|
mit ODER verknuepft. Wenn diese alle mit UND
|
||
|
verknuepft werden sollen, muss diese Option
|
||
|
verwendet werden.
|
||
|
Es koennen die drei oben genannten Optionen nur
|
||
|
jeweils einmal in der Befehlszeile verwendet werden.
|
||
|
|
||
|
-q "quiet" Es unterdrueckt beim Befehl -A und -D die Ausgabe.
|
||
|
Ansonsten zeigt es nur das Alias zur gesuchten Nummer
|
||
|
oder die Nummber selber, falls kein Eintrag gefunden
|
||
|
wurde.
|
||
|
|
||
|
-m "msn" Es besagt beim Befehl -A, das die folgenden Eingaben
|
||
|
einen Eintrag MSN erzeugen. Defaultmassig werden
|
||
|
NUMBER-Eintraege geschrieben.
|
||
|
|
||
|
Normalerweise werden folgende Felder in der Ausgabe
|
||
|
angezeigt:
|
||
|
|
||
|
Alias: Fred
|
||
|
Number: 0815/441777
|
||
|
SI: 0
|
||
|
Zone: 4
|
||
|
Interface:
|
||
|
|
||
|
Dieses gilt nicht fuer die Befehle -A und -D.
|
||
|
Die folgenden beiden Optionen -l und -s veraendern
|
||
|
diese Ausgabe.
|
||
|
|
||
|
-s "short" Hiermit werden nun nur noch das Alias und die
|
||
|
Nummer angezeigt.
|
||
|
|
||
|
-l "long" Hier werden zusaetzlich noch die die zu startenden
|
||
|
Programme ([START]) angezeigt.
|
||
|
|
||
|
-f 'Datei' "file" isdnconf verwendet normalerweise die Konfigurationsdatei
|
||
|
"/etc/isdnlog/isdn.conf" sowie "~/.isdn". Wenn eine
|
||
|
andere benutzt werden soll, dann muss sie mit dieser
|
||
|
Option angegeben werden. Gilt nur fuer die
|
||
|
Optionen -A und -D
|
||
|
|
||
|
|
||
|
12. Der X-Client xisdn
|
||
|
----------------------
|
||
|
|
||
|
Der xisdn basiert auf Motif-2.0. Daher werden die wenigsten ihn selber
|
||
|
uebersetzen koennen. Der xisdn liegt als binary direkt neben dem isdnlog-Paket
|
||
|
auf den meisten ftp-Server'n, die auch isdnlog vorhalten. Der xisdn kann dann
|
||
|
in ein beliebiges Verzeichnis eingespielt werden, welches natuerlich im Pfad
|
||
|
liegen sollte.
|
||
|
|
||
|
Wenn die Datei "Isdn" nicht im Verzeichnis /usr/X11R6/lib/X11/app-defaults
|
||
|
zu finden ist (wird normalweise bei "make xinstall" dort hinein kopiert),
|
||
|
dann muss dem "xisdn" die Resource-Datei "Isdn" mittels
|
||
|
|
||
|
export XENVIRONMENT=<Pfad_der_Resource_Datei>/Isdn
|
||
|
|
||
|
bekannt gemacht werden.
|
||
|
|
||
|
Der X-Client laeuft ueber TCP/IP und muss daher nicht auf dem gleichen Host
|
||
|
laufen wie der isdnlog. Der isdnlog ist in der Lage, mehrere Clients
|
||
|
gleichzeitig zu bedienen.
|
||
|
|
||
|
Dem xisdn koennen folgende Parameter mit auf dem Weg gegeben werden:
|
||
|
|
||
|
xisdn: usage: xisdn ["X11 options"] [ -p: ] [host]
|
||
|
|
||
|
Es koennen alle ueblichen X11 Optionen angegeben werden (siehe "man X").
|
||
|
|
||
|
-pX Es kann die Portadresse vom isdnlog mit angegeben werden (-p 20011,
|
||
|
-p4711).
|
||
|
|
||
|
Host Der Host, auf dem isdnlog laeuft.
|
||
|
|
||
|
Werden dem xisdn keine Parameter mitgegeben, dann versucht er zum lokalen
|
||
|
isdnlog zu verbinden. Als Default-Port nimmt er den Eintrag von der Datei
|
||
|
/etc/services. Ist dort der Service "isdnlog" nicht bekannt (dieser wird
|
||
|
bei "make xinstall" in die /etc/services" eingetragen), wird der
|
||
|
"einkompilierte" Port genommen. Die Prioritaet vom Port (gilt auch fuer den
|
||
|
isdnlog):
|
||
|
|
||
|
1. -pXXX
|
||
|
2. /etc/services
|
||
|
3. #define SERV_PORT XXX (im Makefile abgelegt: SERV_PORT = 20011)
|
||
|
|
||
|
Kurze Beschreibung der Oberflaeche:
|
||
|
|
||
|
Die Oberflaeche ist in 3 Bereiche unterteilt: Ein Menubar mit Funktionen und
|
||
|
Hilfe und zwei scrollbaren Listen: die obere mit aktuell bestehenden und die
|
||
|
untere mit bereits abgeschlossenen (bzw. abgebrochenen) Verbindungen. Die
|
||
|
Zeilen in der letzten Liste koennen ausgewaehlt und dann mit
|
||
|
'Funktionen->Loeschen' entfernt werden. Die Spalten tragen die folgenden
|
||
|
Informationen (von links her): Monat, Tag, Verbindungsanfang, Dauer der
|
||
|
Verbindung, Gebuehren, Waehrung, MSN, Richtung, Gegenstelle, deren Ort, Status.
|
||
|
|
||
|
Mit 'Funktionen->Protokoll' koennen alle Meldungen vom Server im separaten
|
||
|
Dialog ausgegeben werden.
|
||
|
|
||
|
Die Informationen die beim isdnlog mit -xX eingestellt wurden, erscheinen dann
|
||
|
im Protokollfenster. Aber dafuer muss der Benutzer, der xisdn startet auch die
|
||
|
Rechte in der Datei /etc/isdnlog/isdnlog.users haben.
|
||
|
|
||
|
Der xisdn beinhaltet Teile von Xmt-2.1.2
|
||
|
Copyright (c) 1992, 1993, 1994 by Dovetail Systems.
|
||
|
|
||
|
Diese Programmteile unterliegen _nicht_ dem GPL. Sie duerfen daher auch
|
||
|
nicht anderweitig verwendet werden, als fuer den xisdn.
|
||
|
Weitere Informationen sind bitte den COPYRIGHT-Dateien
|
||
|
im Verzeichnis "client/Xmt" zu entnehmen.
|
||
|
|
||
|
|
||
|
13. ChargeInt
|
||
|
-------------
|
||
|
|
||
|
Die folgenden Seiten zum ChargeInt-Patch im contrib-Verzeichnis wurden
|
||
|
von Georg v.Zezschwitz (gvz@pop.de) geschrieben, der den ChargeInt-Patch
|
||
|
entwickelt hat. Der Patch haengt nicht direkt mit isdnlog zusammen, ist
|
||
|
aber im Zusammenspiel mit isdnlog sehr hilfreich, um ohne Leistungs-
|
||
|
Einbussen der Telekom ein paar Mark weniger ueberweisen zu muessen.
|
||
|
|
||
|
|
||
|
Was ist ChargeInt?
|
||
|
------------------
|
||
|
|
||
|
ChargeInt besteht aus einem Patch fuer den ISDN-Teil der Linux-Kernels und
|
||
|
einem Patch fuer isdn4kutils. Er fuehrt einen weiteren Parameter fuer
|
||
|
isdnctrl ein: den ChargeInt-Parameter. Mit dem ChargeInt-Parameter wird das
|
||
|
aktuelle Gebuehrenintervall einer bestimmten Verbindung angegeben, z.b.
|
||
|
90 Sekunden.
|
||
|
|
||
|
Wie wirkt ChargeInt?
|
||
|
|
||
|
Ohne ChargeInt prueft isdn4linux permanent, ob fuer eine gewisse Zeit (ueber
|
||
|
huptimeout konfiguriert) die bestehende Verbindung nicht genutzt wurde.
|
||
|
Ist diese Zeit abgelaufen, wird aufgelegt.
|
||
|
Demgegenueber verhaelt sich die kostenbewusste Nutzerin natuerlich so, dass
|
||
|
sie die fuer 12 Pf bezahlte Leistung der Telekom auch gerne bis zur letzten
|
||
|
Sekunde ausschoepfen wuerde, also erst dann auflegt, wenn in den naechsten
|
||
|
1-2 Sekunden die naechste Einheit anstehen wuerde.
|
||
|
ChargeInt macht eigentlich nichts weiter, als die Pruefung, ob in den
|
||
|
letzten Sekunden kein Traffic angefallen ist, nur dann durchzufuehren,
|
||
|
wenn die naechste Einheit der Telekom anfaengt.
|
||
|
Ohne ChargeInt steht man vor dem Konflikt:
|
||
|
|
||
|
- Eine niedrige Huptimeout fuehrt dazu, dass evtl. zu schnell aufgelegt wird,
|
||
|
also das Lesen einer WWW-Seite schon zum Auflegen fuehrt, obwohl man
|
||
|
bequem in der gleichen Einheit noch die zweite haette laden koennen
|
||
|
(so man nicht T-Online benutzt, wo sich die Durchschnittseite eh erst
|
||
|
nach 3 Einheiten voll darstellt :-)
|
||
|
|
||
|
- Ein hoher Huptimeout fuehrt dazu, dass man haeufiger in die naechste
|
||
|
Einheit "reinrutscht", obwohl auf der Leitung gar keine Aktivitaet mehr
|
||
|
stattfindet.
|
||
|
|
||
|
Also ist es am sinnigsten, einen kurzen Huptimeout einzustellen (empfohlen:
|
||
|
3-5 Sekunden), aber nur kurz vor Ablauf der aktuellen Einheit dieses
|
||
|
Kriterium abzupruefen.
|
||
|
|
||
|
|
||
|
Pro und Kontra von ChargeInt
|
||
|
----------------------------
|
||
|
|
||
|
Generell spricht nichts dagegen, ChargeInt einzukompilieren. Der Patch
|
||
|
ist "abwaertskompatibel", d.h., wer nicht explizit per Hand oder Programm
|
||
|
ein
|
||
|
|
||
|
isdnctrl device chargeint Takt
|
||
|
|
||
|
gibt, wird keinerlei Aenderungen feststellen. Zudem enthaelt der Patch
|
||
|
fuer isdnctrl die nette Moeglichkeit, mit einem einzigen isdnctrl-Befehl
|
||
|
gleich etliche Parameter auf einmal setzen zu koennen. (s.u.)
|
||
|
|
||
|
|
||
|
Wann sollte ich ChargeInt (nicht) aktivieren?
|
||
|
|
||
|
Wer mit synchronem PPP arbeitet und eine dynamische IP bezieht, duerfte
|
||
|
ein Verhalten wuenschen, wie es Otto-Normal-Dumm-Windows-User praktiziert:
|
||
|
Explizit Verbindung aufbauen, Rumsurfen, explizit Verbindung abbauen.
|
||
|
Zum einen kann etwa eine FTP-Session nicht ohne weiteres bei dynamischer
|
||
|
IP-Vergabe fortgesetzt werden, da sich die einem selbst zugewiesene
|
||
|
IP-Adresse bei einer erneuten Anwahl aendert. Dies gilt fuer alle
|
||
|
TCP-Verbindungen (z.b. Telnet, rlogin). Wer mit dynamischer IP-Adressvergabe
|
||
|
leben muss, wird grundsaetzlich seine Verbindung waehrend einer Sitzung
|
||
|
stehen lassen wollen und eher noch einen ping starten, damit auch die
|
||
|
Gegenseite nicht auflegt. Fuer diese User/innen ist ChargeInt also
|
||
|
ueberfluessig.
|
||
|
|
||
|
Ueberfluessig ist ChargeInt auch, wenn z.b. Daten im Batch-Betrieb (UUCP
|
||
|
ueber TCP/IP) abgeholt werden und anschliessend explizit aufgelegt wird.
|
||
|
|
||
|
Falsch ist ChargeInt dann, wenn eine Wiederanwahl so zeitaufwendig waere,
|
||
|
dass sie in keiner Relation zu den Mehrkosten fuer eine kontinuierliche
|
||
|
Verbindung steht.
|
||
|
|
||
|
ChargeInt ist ideal fuer Leute, die
|
||
|
- eine feste IP-Adresse haben
|
||
|
- gerne mal 1 Minute oder laenger die Seite, die sie sich gezogen
|
||
|
haben, auch lesen.
|
||
|
- oder z.b. Heimarbeit betreiben und ihr Trommelfeuer auf die Tastatur
|
||
|
auch mal kurz unterbrechen, um Nachzudenken oder Tee zu kochen oder...
|
||
|
|
||
|
|
||
|
Wie patche ich ChargeInt ein?
|
||
|
-----------------------------
|
||
|
|
||
|
ChargeInt ist im isdnlog-Tarfile bereits enthalten. Historisch ist ChargeInt
|
||
|
unabhaengig von isdnlog entwickelt worden und beide koennen nach wie vor
|
||
|
unabhaengig von einander betrieben werden, aber die eleganteste und einfachste
|
||
|
Methode ist, ChargeInt ueber isdnlog zu steuern (siehe Konfiguration).
|
||
|
|
||
|
ChargeInt befindet sich innerhalb von isdnlog in folgendem Verzeichnis:
|
||
|
|
||
|
contrib/chargeint/patch-chargeint-2.04
|
||
|
contrib/chargeint/patch-chargeint-kutils
|
||
|
|
||
|
Die Primary-Site ist
|
||
|
|
||
|
ftp://ftp.pop.de/pub/linux/isdn4linux/LOCAL/chargeint.tar.gz
|
||
|
|
||
|
, allerdings ist der Patch seit Linux 2.04 (Juli 1996) unveraendert geblieben.
|
||
|
Eine etwas ausfuehrlichere HTML-Doku ist unter
|
||
|
|
||
|
http://www.provi.de/~gvz/chargeint.html
|
||
|
|
||
|
abrufbar.
|
||
|
|
||
|
|
||
|
Angenommen, der Kernel liegt in /usr/src/linux und isdn4kutils in
|
||
|
/usr/src/isdn4k-utils-2.0, die Patche selbst im Home-Verzeichnis,
|
||
|
dann reichen folgende Befehle:
|
||
|
|
||
|
cd /usr/src
|
||
|
patch -p0 -l -F10 < ~/patch-chargeint-2.04
|
||
|
rm -rf isdn4k-utils-2.0/isdn/RCS
|
||
|
patch -p0 -l ~/patch-chargeint-kutils
|
||
|
|
||
|
Der patch-chargeint-2.04 wurde urspruenglich gegen Linux 2.0.4 erzeugt,
|
||
|
klappt aber mit der -F10 Option auch bei neueren Kerneln.
|
||
|
|
||
|
Wer bei dieser Gelegenheit den Kernel zum ersten Mal kompiliert, mache
|
||
|
bitte nicht ChargeInt verantwortlich, wenn es nicht klappt!
|
||
|
|
||
|
|
||
|
Wie konfiguriere ich ChargeInt?
|
||
|
-------------------------------
|
||
|
|
||
|
Parameter fuer die Hangup-Kontrolle
|
||
|
|
||
|
Das Gebuehrenintervall wird ueber den Parameter chargeint mitgeteilt.
|
||
|
Der Parameter huptimeout erhaelt eine andere Bedeutung: 2 Sekunden, bevor
|
||
|
die naechste Einheit faellig wird, prueft Chargeint, ob in den letzten
|
||
|
huptimeout Sekunden kein Traffic war. Bei "Stille" wird aufgelegt, sonst
|
||
|
weitergemacht. Man koennte auch anders sagen: Durch Chargeint wird der
|
||
|
huptimeout-Parameter nur kurz vor Ablauf der Gebuehreneinheit abgefragt.
|
||
|
|
||
|
Ich setze bei Cityverbindungen huptimeout auf 5 Sekunden, bei Fernver-
|
||
|
bindungen auf 3 Sekunden.
|
||
|
|
||
|
Im Juli 96 wurde isdnlog so modifiziert, dass isdnlog selbstaendig beim
|
||
|
Aufbau einer Verbindung berechnet, welche Taktzeit zur Zeit von der
|
||
|
Telekom vorgegeben wird und diese setzt. Otto Normaluserin muss sich also
|
||
|
nur noch darum kuemmern, dass
|
||
|
- die Systemuhr halbwegs richtig geht
|
||
|
- die Tarif-Zonen fuer die einzelnen Leitungen in der
|
||
|
/etc/isdnlog/isdnlog.conf korrekt angegeben sind.
|
||
|
|
||
|
|
||
|
Flexible Syntax fuer isdnctrl
|
||
|
-----------------------------
|
||
|
Als ich den chargeint-Parameter in isdnctrl einbauen wollte, juckte es
|
||
|
mich in den Fingern, das Ding gleich ein bisschen umzuschreiben. Mein
|
||
|
ISDN-Router daheim ist ein 386DX40, und die endlos vielen isdnctrl-Befehle
|
||
|
beim Booten, die die 5 ISDN-Verbindungen eintragen, brauchten ihre Zeit.
|
||
|
Daher habe ich eine Moeglichkeit eingebaut, mehrere Parameter auf einmal
|
||
|
setzen zu koennen. Auch hier gilt die Abwaertskompatibilitaet, wer also
|
||
|
nur einen Parameter aendern will, schreibt weiterhin:
|
||
|
|
||
|
isdnctrl chargeint isdn 90
|
||
|
|
||
|
Z.b. beim Booten sind aber auch solche Anweisungen moeglich:
|
||
|
|
||
|
isdnctrl l2_prot isdn0 hdlc eaz 232282 addphone in 40110 40112 \
|
||
|
out 2519612 huptimeout 5
|
||
|
|
||
|
Waehrend also die Syntax fuer das erste Kommando unveraendert
|
||
|
|
||
|
Kommando isdn-device [Parameter 1] (Parameter 2)
|
||
|
|
||
|
lautet, wird bei folgenden Kommandos im Aufruf von isdnctrl das Isdn-Device
|
||
|
weggelassen.
|
||
|
|
||
|
|
||
|
14. Gebuehren-GAU Begrenzer
|
||
|
---------------------------
|
||
|
|
||
|
isdnlog bietet 4 unterschiedliche (auch kombinierbare) Moeglichkeiten,
|
||
|
die maximal pro Zeiteinheit zu entrichtenden Gebuehren an die Telekom
|
||
|
sowie den Internet-Provider wirkungsvoll zu begrenzen.
|
||
|
|
||
|
Wird isdnlog terminiert, merkt es sich die bislang aufgelaufenen
|
||
|
Geld-, Zeit-, sowie Durchsatz-Betraege in der Datei "/etc/isdnlog/charge.dat"
|
||
|
und liest diese beim naechsten Start wieder ein.
|
||
|
|
||
|
|
||
|
14.1 Watchdog
|
||
|
-------------
|
||
|
|
||
|
In seltenen Faellen "glaubt" isdn4linux, aufgelegt zu haben. Die VSt
|
||
|
sieht das jedoch ganz anders, und laesst den Gebuehrenzaehler weiterlaufen.
|
||
|
|
||
|
Hiergegen hilft die Cmd-Line-Option "-H x" von isdnlog.
|
||
|
Sobald isdnlog feststellt, das seit mehr als "x" Gebuehrenimpulsen (AOC-D)
|
||
|
von der VSt kein Traffic mehr stattfand (Durchsatz rein sowie raus = 0)
|
||
|
faehrt isdnlog das gesamte isdn4linux runter.
|
||
|
|
||
|
Dies wird in 4 Stufen versucht:
|
||
|
|
||
|
1. Stufe: Es wird ein "isdnctrl hangup isdnX" ausgefuehrt
|
||
|
|
||
|
2. Stufe: Es wird der Shell-Script "/etc/isdnlog/reload" ausgefuehrt
|
||
|
Dieser sollte das Teles-/HiSax-Modul ent- und wieder laden.
|
||
|
(Siehe "samples/reload")
|
||
|
|
||
|
3. Stufe: Es wird ein "isdnctrl system off" ausgefuehrt
|
||
|
|
||
|
4. Stufe: Der Rechner wird rebootet ("/sbin/reboot")
|
||
|
|
||
|
|
||
|
14.2 CHARGEMAX
|
||
|
--------------
|
||
|
|
||
|
Mit dem Eintrag
|
||
|
CHARGEMAX = x
|
||
|
in der "/etc/isdnlog/isdn.conf" kann angegeben werden, das man gewillt
|
||
|
ist, maximal DM x pro Tag an Telefongebuehren auszugeben.
|
||
|
Sobald dieses Limit ueberschritten wird, fuehrt isdnlog den Shell-Script
|
||
|
"/etc/isdnlog/stop" aus (siehe "samples/stop"), der das isdn4linux
|
||
|
abschalten sollte.
|
||
|
|
||
|
|
||
|
14.3 CONNECTMAX
|
||
|
---------------
|
||
|
|
||
|
Mit dem Eintrag
|
||
|
CONNECTMAX = x,y
|
||
|
in der "/etc/isdnlog/isdn.conf" kann angegeben werden, das man gewillt
|
||
|
ist, maximal x Sekunden pro Monat Online zu sein.
|
||
|
|
||
|
(Ich persoenlich habe dort die 5 Freistunden (5 * 60 * 60 = 18000 Sekunden)
|
||
|
meines Providers eingetragen)
|
||
|
|
||
|
Sobald dieses Limit ueberschritten wird, fuehrt isdnlog den Shell-Script
|
||
|
"/etc/isdnlog/stop" aus (siehe "samples/stop"), der das isdn4linux
|
||
|
abschalten sollte.
|
||
|
|
||
|
Getrennt durch ein Komma (",") muss hinter der Anzahl Sekunden angegeben
|
||
|
werden, in welcher Form der Provider Online-Zeit abrechnet:
|
||
|
|
||
|
0 = es wird auf die Sekunde genau abgerechnet
|
||
|
1 = es wird "pro angefangene Minute" abgerechnet
|
||
|
|
||
|
|
||
|
14.4 BYTEMAX
|
||
|
------------
|
||
|
|
||
|
Mit dem Eintrag
|
||
|
BYTEMAX = x,y
|
||
|
in der "/etc/isdnlog/isdn.conf" kann angegeben werden, das man gewillt
|
||
|
ist, maximal x Byte pro Monat vom Provider zu saugen.
|
||
|
|
||
|
(Dies ist relevant bei Providern, die nach Volumen abrechnen)
|
||
|
|
||
|
Sobald dieses Limit ueberschritten wird, fuehrt isdnlog den Shell-Script
|
||
|
"/etc/isdnlog/stop" aus (siehe "samples/stop"), der das isdn4linux
|
||
|
abschalten sollte.
|
||
|
|
||
|
Getrennt durch ein Komma (",") muss hinter der Anzahl Byte angegeben
|
||
|
werden, in welcher Form der Provider abrechnet:
|
||
|
|
||
|
0 = auf's Byte genau
|
||
|
1 = auf's KByte genau
|
||
|
2 = auf's Mbyte genau
|
||
|
|
||
|
8 = nur die _zum_ Provider geschickten Bytes sollen zaehlen
|
||
|
16 = die Summe aus _zum_ Provider und _vom_ Provider zaehlen
|
||
|
|
||
|
Wird weder 8 noch 16 angegeben, meint das: nur die _vom_ Provider
|
||
|
gesaugten Byte zaehlen.
|
||
|
|
||
|
|
||
|
15. Dual-Mode
|
||
|
-------------
|
||
|
|
||
|
Wie eingangs erwaehnt, kann isdnlog bei allen rausgehenden Verbindungen,
|
||
|
die nicht mit der Teles-Karte entstanden sind (ISDN-Telefon, Modem/Fax)
|
||
|
die entsprechenden Telefonnummern leider nicht anzeigen.
|
||
|
|
||
|
Mit dem Dual-Mode ist genau dies jedoch moeglich.
|
||
|
|
||
|
Dazu muss der Rechner mit einer zweiten Teles-Karte ausgestattet, und
|
||
|
darauf ein Teles-/HiSax-Treiber installiert werden.
|
||
|
|
||
|
Bei mir sieht das so aus:
|
||
|
|
||
|
modprobe hisax io=0xd80,0xe80 irq=12,9 mem=0xd0000,0xd2000 type=1,1
|
||
|
protocol=2,2 id=bri1
|
||
|
|
||
|
Dann muss diese zweite Karte (diese muss beim laden des HiSax-Treibers
|
||
|
auch auf jeden Fall als *zweite* Karte angegeben werden!) _verkehrt_
|
||
|
am S0-Bus angeschlossen werden:
|
||
|
|
||
|
Beim S0 Kabel an der Karte die aeusseren zwei Draehte auf die inneren
|
||
|
zwei Anschluesse des Steckers legen. Die beiden inneren nicht
|
||
|
anschliessen !!!, das legt den Bus lahm.
|
||
|
|
||
|
B 3 -- RX+ 2a ---------------\
|
||
|
U 4 -- TX+ 1a -- offen ------------
|
||
|
S 5 -- TX- 1b -- offen ------------ Karte
|
||
|
6 -- RX- 2b ---------------/
|
||
|
|
||
|
|
||
|
Abschliessend muss isdnlog mit der weiteren Option "-2" gestartet werden.
|
||
|
|
||
|
|
||
|
16. SQL-Anbindung
|
||
|
-----------------
|
||
|
|
||
|
Wird isdnlog mit "POSTGRES=1" erstellt, traegt isdnlog alle
|
||
|
Verbindungsinformationen zusaetzlich in eine Postgres95 SQL-Datenbank ein.
|
||
|
(Datenbank "isdn", Tabelle "isdn2")
|
||
|
|
||
|
Da isdnlog die Eintraege im europaeischen Datumsformat (tt.mm.jjjj)
|
||
|
vornimmt, muss postgres95 zwingend mit EUROPEAN_DATES=1
|
||
|
(siehe "postgres95/src/Makefile.global") compiliert werden!
|
||
|
|
||
|
Die Datenbank muss zuvor folgendermassen erstellt werden:
|
||
|
|
||
|
createdb isdn
|
||
|
psql isdn < script
|
||
|
|
||
|
Mit folgendem "script":
|
||
|
|
||
|
-------------------------
|
||
|
create table isdn2 (
|
||
|
sdate date,
|
||
|
stime time,
|
||
|
calling varchar(30),
|
||
|
called varchar(30),
|
||
|
charge int4,
|
||
|
dir char,
|
||
|
in_bytes int4,
|
||
|
out_bytes int4,
|
||
|
msec int4,
|
||
|
sec int4,
|
||
|
status int4,
|
||
|
service int4,
|
||
|
source int4,
|
||
|
vrsion int4,
|
||
|
factor real,
|
||
|
currency varchar(30)
|
||
|
);
|
||
|
\q
|
||
|
-------------------------
|
||
|
|
||
|
Da isdnlog normalerweise als User "root" laeuft, muss "root" das Recht
|
||
|
zum Eintragen gegeben werden:
|
||
|
|
||
|
grant insert on isdn2 to root;
|
||
|
|
||
|
Wie bei postgres95 ueblich kann ueber die Environment-Variablen
|
||
|
$PGHOST
|
||
|
sowie
|
||
|
$PGPORT
|
||
|
auch ein postmaster auf einem anderen Host angesprochen werden.
|
||
|
|
||
|
|
||
|
17. 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 -v1" 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, dass dieser haengt.
|
||
|
|
||
|
- Es wird bei isdnlog, isdnrep und xisdn immer nur die letzte Ziffer der
|
||
|
eigenen MSN's angezeigt. Das Verhalten tritt bei bilingualen NT's auf.
|
||
|
Dann muss isdnlog mit der Option -b gestartet werden.
|
||
|
|
||
|
- Es werden die Programme nicht gestartet, die zu den Events ausgefuehrt
|
||
|
werden sollen.
|
||
|
Dort gibt es mehrere Ursachen. Haeufig liegt das Programm nicht
|
||
|
im Pfad, weil der isdnlog meistens in der Bootphase gestartet wird.
|
||
|
Daher sollte das Programm mit vollem Pfad gestartet werden.
|
||
|
Die folgende Zeile fuehrt zu mehreren Problemen:
|
||
|
"/usr/local/bin/myplayer '~fred/*.au'"
|
||
|
Die Anfuerungszeichen und die Hochkomma werden so dem execvp() uebergeben.
|
||
|
Der kann dieses aber nicht aufloesen. Also wird versucht das Programm
|
||
|
"/usr/local/bin/myplayer zu starten.
|
||
|
Auch der Parameter fuehrt zu Problemen. Das Hochkomma (') wird mit
|
||
|
uebergeben. Ausserdem wird ~fred NICH in /home/fred umgewandelt. Und auch
|
||
|
*.au wird so uebergeben und es wird versucht vom Programm *.au abzuspielen.
|
||
|
Die Zeile sollte also richtig so aussehen:
|
||
|
/usr/local/bin/myplayer /home/fred/telefon.au
|
||
|
|
||
|
Bei Verwendung vom xisdn:
|
||
|
|
||
|
Der xisdn meldet:
|
||
|
|
||
|
- "Nicht autorisierter Zugriff auf Server"
|
||
|
Der Benutzer, der xisdn gestartet hat, ist nicht in der
|
||
|
Datei /etc/isdnlog/isdnlog.users eingetragen, oder
|
||
|
er darf xisdn von dem Host nicht starten.
|
||
|
|
||
|
- "Server und Client haben unterschiedliche Protkollversionen"
|
||
|
Der xisdn und isdnlog kommen jeweils aus verschiedenen Versions-Paketen.
|
||
|
Die Protokollversion hat nichts mit der Version von isdnlog zu tun.
|
||
|
Der Client kann unter Umstaenden laufen, aber es kommt bestimmt
|
||
|
zu Fehlverhalten. Daher sollten beide Programme immer aus einem
|
||
|
Paket stammen. Wenn ein beliebiger Client mit isdnlog
|
||
|
Version 2.23 oder 2.30 gestartet wird, kommt die obige Meldung leider
|
||
|
nicht. Es kann dann auch zu Fehlverhalten fuehren, welches
|
||
|
vom Client nicht gemeldet wird.
|
||
|
|
||
|
Wenn keine Gespreache und keine Verbindungen angezeigt werden, oder nur
|
||
|
bestimmte MSN's, dann liegt der Fehler mit Sicherheit bei den Rechten des
|
||
|
entsprechenden Benutzers in der Datei /etc/isdnlog/isdnlog.users.
|
||
|
|
||
|
Wenn der isdnlog mit einem Segmentation-fault oder mit der Meldung
|
||
|
"Got signal 11" abbricht, dann sollten folgende Schritte durchgefuehrt
|
||
|
werden, um Debuginformationen zu erlangen, die an die
|
||
|
"isdnlog@Kool.f.EUnet.de" zu senden sind:
|
||
|
|
||
|
Im isdnlog-Verzeichnis
|
||
|
|
||
|
make clean
|
||
|
# Nun im "Makefile" "COPTS = -O3" in "COPTS = -g" aendern
|
||
|
make install
|
||
|
|
||
|
ulimit -c unlimited
|
||
|
bin/isdnlog "Parameter _ohne_ -D"
|
||
|
|
||
|
Die angegebenen Flags (-x, -l oder -m) _muessen_ 2048 enthalten, da sonst
|
||
|
kein Segmentation-fault auftritt.
|
||
|
|
||
|
Wenn ein Segmentation-fault auftritt:
|
||
|
|
||
|
gdb bin/isdnlog
|
||
|
# Im Debugger "where" eingeben.
|
||
|
|
||
|
Den _gesamten_ Output an die oben angegebene Adresse senden.
|
||
|
|
||
|
|
||
|
18. Verwendete Dateien
|
||
|
----------------------
|
||
|
|
||
|
Folgende Files werden von diesem System verwendet:
|
||
|
|
||
|
/sbin/isdnlog - Das Protokoll-Programm
|
||
|
/usr/sbin/isdnrep - Das Report-Programm
|
||
|
/usr/sbin/isdnconf - Das Konfigurationstool
|
||
|
/etc/isdnlog/isdnlog.conf - Die alte Config-Datei
|
||
|
/etc/isdnlog/isdn.conf - Die neue Config-Datei
|
||
|
~/.isdn - Die Config-Datei des Benutzers
|
||
|
/etc/isdnlog/isdnlog.users - Die User-Access-Datei
|
||
|
/etc/isdnlog/avon - altes Vorwahl-Verzeichnis (ASCII)
|
||
|
/etc/isdnlog/avon.pag - altes Vorwahl-Verzeichnis (ISAM-Version)
|
||
|
/etc/isdnlog/avon.dir - altes Vorwahl-Verzeichnis (Index)
|
||
|
/etc/isdnlog/charge.dat - Zwischenspeicher fuer die ChargeMax-Funktion
|
||
|
/etc/isdnlog/reload - Script zum Wiederanfahren eines verklemmten i4l
|
||
|
/etc/isdnlog/stop - Script zum Stoppen bei erreichen von CHARGEMAX
|
||
|
/usr/lib/areacode - Neues Vorwahl-Verzeichnis
|
||
|
/var/log/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
|
||
|
/usr/X11R6/lib/X11/app-defaults/Isdn - Resourcefile fuer xisdn
|
||
|
|
||
|
|
||
|
19. Verwendete Environment-Variablen
|
||
|
------------------------------------
|
||
|
|
||
|
Folgende Environment-Variablen werden von diesem System verwendet:
|
||
|
|
||
|
$ISDNLOG = Verzeichnis, in dem sich die Konfigurations-Dateien
|
||
|
befinden (z.b. "export ISDNLOG=/etc/isdnlog")
|
||
|
|
||
|
$XENVIRONMENT = Vollstaendiger Pfad der Resourcen-Datei fuer den
|
||
|
X-Client "xisdn"
|
||
|
|
||
|
|
||
|
20. 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
|
||
|
|
||
|
SI = Service-Indicator (Dienstkennung)
|
||
|
|
||
|
CLIP = Calling Line Identification Presentation
|
||
|
|
||
|
CLIR = Calling Line Identification Restriction
|
||
|
|
||
|
COLP = Connected Line Identification Presentation
|
||
|
|
||
|
COLR = Connected Line Identification Restriction
|
||
|
|
||
|
|
||
|
21. 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 Entdeckung der AOC-D sowie AOC-E Bytes im D-Kannel-Protokoll
|
||
|
|
||
|
Bei
|
||
|
Kai Voelcker (kai@fantaghiro.deceiver.org)
|
||
|
sowie
|
||
|
Martin Stover (mstover@Stover.f.EUnet.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, und natuerlich vor allem fuer
|
||
|
seinen HiSax-Treiber sowie das neue Protokoll zwischen HiSax und isdnlog.
|
||
|
|
||
|
Bei
|
||
|
Jochen Heuer (jogi@planetzork.ping.de)
|
||
|
fuer seinen Kampf mit den neuen Tarifen der Telekom
|
||
|
|
||
|
Bei
|
||
|
Hardy Buchholz (hardy@Kool.f.EUnet.de)
|
||
|
der viele Ideen zum CHARGEMAX beigetragen hat
|
||
|
|
||
|
Bei
|
||
|
Ad Aerts (ad@aasup.nl)
|
||
|
der die Gebuehrenauswertung fuer die Niederlande beigesteuert hat
|
||
|
|
||
|
Bei
|
||
|
Markus Maeder (mmaeder@cyberlink.ch)
|
||
|
der die Gebuehrenauswertung fuer die Schweiz korrigiert hat
|
||
|
|
||
|
Bei
|
||
|
Markus Leist (markus@hal.dirnet.com)
|
||
|
fuer die Anbindung an postgres95
|
||
|
|
||
|
Sowie bei
|
||
|
Ullrich von Bassewitz (uz@musoftware.com)
|
||
|
fuer die "AreaCode" Library (AVON-Verzeichnis)
|
||
|
|
||
|
Gar nicht genug danken kann ich Dr.-Ing. Joachim Goeller sowie
|
||
|
Sebastian Goeller, die mir unzaehlige Informationen zum D-Kanal
|
||
|
Protokoll geliefert haben.
|
||
|
|
||
|
Und natuerlich bei der deutschen Telekom, die mir seit nunmehr zwei Jahren
|
||
|
falsche (aber von isdnlog erkannte) AOC-E Elemente schickt ;-)
|
||
|
|
||
|
Aber ganz besonders bei
|
||
|
Stefan Luethje (luethje@sl-gw.lake.de)
|
||
|
von dem sicherlich mittlerweile 50% des isdnlog-Codes bestehen.
|
||
|
|
||
|
|
||
|
Viel Spass mit isdnlog wuenscht
|
||
|
|
||
|
Andreas Kool (akool@Kool.f.EUnet.de)
|