4742 lines
167 KiB
Plaintext
4742 lines
167 KiB
Plaintext
ISDNLOG - Version 3.48 - 29-Aug-99 12:27
|
||
|
||
|
||
isdnlog ist ein Utility zur Auswertung des D-Kanals eines
|
||
ISDN-BRI Anschlusses.
|
||
|
||
isdnlog-3.48 wurde ausgiebig mit Linux-2.0.37 getestet.
|
||
|
||
|
||
Fuer alle, die es nun ueberhaupt nicht mehr abwarten koennen, hier das
|
||
|
||
Quick-Installation-Guide
|
||
------------------------
|
||
|
||
1. Linux-2.0.37 verwenden:
|
||
CONFIG_ISDN=m
|
||
CONFIG_ISDN_DRV_HISAX=m
|
||
|
||
2. isdn4k-utils-3.0.tar.gz auspacken, erstellen und installieren:
|
||
cd /usr/src
|
||
tar xzf isdn4k-utils-3.0.tar.gz
|
||
cd isdn4k-utils
|
||
make config
|
||
make
|
||
make install
|
||
|
||
|
||
3. Konfigurationsdatei fuer isdnlog fuellen:
|
||
|
||
vi | emacs | vim | e | nedit | ... | /etc/isdn/callerid.conf
|
||
|
||
-----------------------------------------------------
|
||
[MSN]
|
||
NUMBER = 4711
|
||
SI = 1
|
||
ALIAS = My Phone
|
||
ZONE = 1
|
||
|
||
[MSN]
|
||
NUMBER = 4712
|
||
SI = 1
|
||
ALIAS = FAX
|
||
ZONE = 1
|
||
|
||
[MSN]
|
||
NUMBER = 4713
|
||
SI = 1
|
||
ALIAS = X.75
|
||
ZONE = 1
|
||
-----------------------------------------------------
|
||
|
||
NUMBER = <eigene_Telefonnumer_ohne_Vorwahl>
|
||
SI = <Dienstkennung>
|
||
ALIAS = <Alias>
|
||
ZONE = 1
|
||
|
||
|
||
4. isdn4linux das D-Kanal-Protokoll entlocken:
|
||
|
||
hisaxctrl <DriverID> 1 4
|
||
|
||
mit <DriverID> entsprechend Driver-ID, wie beim "insmod" des HiSax-Treibers
|
||
angegeben, oder "line0", falls der HiSax-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 "isdn.conf"
|
||
4.1 Grundeinstellungen
|
||
4.2 Telefonnummern
|
||
4.2.1 1. Eintrag: Telefonnummer
|
||
4.2.2 2. Eintrag: Alias
|
||
4.2.3 3. Eintrag: Tarifzone
|
||
4.2.4 4. Eintrag: IP-Interface
|
||
4.2.5 5. Eintrag: 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
|
||
16.1. Postgres95
|
||
16.2. MySQL
|
||
17. Tarifdatenbank
|
||
18. LCR (Least cost router)
|
||
19. Probleme?
|
||
20. Verwendete Dateien
|
||
21. Verwendete Environment-Variablen
|
||
22. Verwendete Abkuerzungen
|
||
23. 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-Raten-Ermittlung!
|
||
|
||
Anmerkung:
|
||
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.
|
||
|
||
Es wurden folgende Dinge geaendert, die vor dem ersten Start
|
||
dieser neuen Version unbedingt angepasst werden muessen!
|
||
|
||
Aenderungen seit Version 2.60:
|
||
|
||
- Unterstuetzung fuer die seit 1.1.1998 moeglichen privaten
|
||
Telefongesellschaften
|
||
|
||
Aenderungen seit Version 2.50:
|
||
|
||
- Konfigurationsdateien heissen jetzt isdn.conf, callerid.conf und
|
||
~/.isdn statt isdnlog.conf
|
||
- Neue Syntax der Konfigurationsdateien
|
||
- Watchdog-Funktion (isdnlog ueberwacht isdn4linux)
|
||
- HTML-Ausgabe des isdnrep
|
||
|
||
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 komplett 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/isdn" ... 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 bitte nicht an meine Email-Adresse senden,
|
||
sondern an
|
||
|
||
akool@isdn4linux.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. ISDN-Karte im Rechner steckt) das gesamte D-Kanal 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 ISDN-Karte:
|
||
13 21:16:31 * tei 104 calling UUnet with Phone Digital
|
||
13 21:16:33 tei 104 calling UUnet with ISDN Time:Wed Mar 13 21:17:00 1996
|
||
13 21:16:33 tei 104 calling UUnet with ISDN CONNECT
|
||
13 21:16:33 tei 104 calling UUnet with ISDN 0,12 DM (0 s)
|
||
13 21:16:40 tei 104 calling UUnet with ISDN 5,63 kB / 823,43 bps
|
||
13 21:16:51 tei 104 calling UUnet 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 HiSax-Treiber) die
|
||
von der VSt uebermittelten Gebuehreninformationen, und zeigt diese
|
||
sowohl am Ende einer Verbindung (== Gesamtkosten fuer diese Verbindung)
|
||
als auch waehrend der Verbindung staendig an.
|
||
|
||
|
||
- isdnlog kann pro aktivem B-Kanal staendig die aktuelle Durchsatz-Rate
|
||
(in Byte/s), sowie die bislang komplett durchgerauschten Byte anzeigen.
|
||
|
||
|
||
- 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.
|
||
Da auch _alle_ alternativen Carrier (die neuen, "privaten"
|
||
Telefongesellschaften, die seit dem 1.1.1998 neben der Deutschen Telekom
|
||
verfuegbar sind) keine Gebuehreninformationen uebermitteln, ist isdnlog
|
||
in diesem Fall besonders hilfreich, da es Mithilfe einer umfangreichen
|
||
Tarifdatenbank die entstandenen Gebuehren selbststaendig berechnet.
|
||
|
||
- 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.
|
||
|
||
- Da die grafische Oberflaeche KDE mehr und mehr zum Standard aller Linux-
|
||
Rechner wird, gibt es natuerlich auch schon eine KDE-Oberflaeche zum
|
||
isdnlog: kisdnlog!
|
||
|
||
|
||
2. Was kann isdnlog nicht?
|
||
--------------------------
|
||
|
||
Z.Zt. arbeitet isdnlog _nur_ mit dem HiSax-Treiber (d.h. allen passiven
|
||
Karten) sowie der AVM-B1 zusammen, die ICN-Karte wird leider noch nicht
|
||
unterstuetzt.
|
||
|
||
Weiterhin kann isdnlog bei allen rausgehenden Verbindungen, die nicht
|
||
mit der ISDN-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 HiSax) 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 ISDN-Karte selbst).
|
||
: Wenn man mit seiner TK-Anlage rauswaehlt, geht die Zielnummer
|
||
: aber User->Amt, und genau das wird von einer ISDN-Karte
|
||
: 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
|
||
---------------
|
||
|
||
Da isdnlog seit der Version 3.0 nur noch als Bestandteil der isdn4k-utils
|
||
freigegeben wird, findet die Konfiguration ueber das dortige Menu statt.
|
||
Es darf also nicht mehr direkt in dem Makefile editiert werden.
|
||
|
||
Die alte Datei "isdnlog.conf" wird, wenn vorhanden, in die Dateien "isdn.conf"
|
||
und "callerid.conf" umgesetzt. Dieses macht die Installation automatisch.
|
||
|
||
Die alte Konfigurationsdatei "isdnlog.conf" wird in das neue Verzeichnis
|
||
uebernommen. Allerdings traegt sie dann den Namen "isdnlog.conf.old".
|
||
|
||
Es ist dabei zu beachten, dass bei allen Telefonnummern in der
|
||
isdn.conf, die mit einem "*" oder einem "?" beginnen, dieses Zeichen
|
||
geloescht wird.
|
||
|
||
Beispiel:
|
||
|
||
*8154711 -> 8154711
|
||
081547* -> 081547*
|
||
|
||
Wenn das Zeichen ("*" oder "?") nur als Platzhalter fuer eine "0" stand, kann
|
||
man es lassen, andernfalls muss eine manuelle Nacheditierung stattfinden.
|
||
|
||
Auch die Datei "isdnlog.users" wird uebernommen. Allerdings finden hier keine
|
||
Aenderungen statt.
|
||
|
||
Das Vornummernverzeichnis AVON wird nicht uebernommen. Da sich die Syntax
|
||
etwas geaendert hat, muss die alte Datei von Hand an die neue angefuegt werden.
|
||
Aber normalerweise wird bei der Installation von isdnlog empfohlen die
|
||
neue areacode-Library zu verwenden.
|
||
|
||
Hier sind nochmal alle Eintraege aufgefuehrt, die isdnlog im Makefile enthaelt,
|
||
und die ueber das Menue konfiguriert 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)
|
||
-DISDN_AT - Gebuehrenauswertung Oesterreich (anstelle Deutschland)
|
||
|
||
I4LCONFDIR (/etc/isdn)
|
||
Wo liegen die "isdn.conf" sowie die "avon" (falls verwendet!)
|
||
|
||
Mit der Environment-Variablen "ISDN_CONF_PATH" kann auch zur Laufzeit das
|
||
Verzeichnis festgelegt werden.
|
||
Beispiel "export ISDN_CONF_PATH=/etc/isdn"
|
||
|
||
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.
|
||
Wenn der Name der Datei mit '+' anfangt, wird der Datei nicht neu
|
||
geschrieben, sondern neue Infos wirden am Ende zugefuegt.
|
||
(Diese Einstellung laesst sich spaeter noch zur Laufzeit in der isdn.conf
|
||
aendern)
|
||
|
||
LOCKDIR (/var/lock/)
|
||
Wo liegen die lock files (lock-Dateien).
|
||
|
||
RUNDIR (/var/run/)
|
||
Wo liegen die pid files (pid-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/isdn/avon (wenn LIBAREA nicht definiert ist!)
|
||
/usr/lib/areacode.dat (wenn LIBAREA definiert ist!)
|
||
|
||
|
||
ACHTUNG: Durch die Syntaxaenderung und den Erweiterungen muessen folgende
|
||
Anderungen _zuerst_ an der bestehenden "isdnlog.conf" durchgefuehrt
|
||
werden:
|
||
|
||
Bei der Installation von isdnlog werden automatisch die neuen
|
||
Konfigurationsdateien angelegt.
|
||
|
||
Wenn isdnlog noch nie installiert war, muss noch die Datei
|
||
callerid.conf editiert werden.
|
||
Bestand schon eine aeltere Version von isdnlog und wurde der alte
|
||
Pfad der Dateien korrekt im Installationsmenue angegeben,
|
||
werden alle Daten aus der alten Datei isdnlog.conf in die neuen
|
||
uebernommen. Es sollte also keine Nachbearbeitung noetig sein.
|
||
|
||
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.
|
||
|
||
|
||
4. Die Konfigurationsdatei "isdn.conf"
|
||
-----------------------------------------
|
||
|
||
Die Konfigurationsdatei wird im Verzeichnis "/etc/isdn" erwartet (wenn die
|
||
Variable I4LCONFDIR im Makefile so gesetzt ist), und enthaelt alle fuer isdnlog
|
||
relevanten Steuerungsparameter.
|
||
|
||
Diese Datei muss dem User root gehoeren (auch die Gruppe). Nur dieser
|
||
darf Schreibrechte an dieser Datei haben. Diese Datei wird auch vom isdnlog
|
||
gelesen. Andernfalls beendet sich der isdnlog sofort wieder. Dieses ist ein
|
||
Schutz, um Trojanische Pferde zu verhindern und kann auch nicht ausgeschaltet
|
||
werden.
|
||
|
||
Wenn man in dem compilierten Programm den Pfad aendern will, muss man die
|
||
Umgebungsvariable "ISDN_CONF_PATH" setzen.
|
||
|
||
Die Syntax der Konfigurationsdateien ist ausfuehrlich in der Datei
|
||
|
||
../lib/README.Syntax.conffile
|
||
|
||
beschrieben.
|
||
|
||
|
||
4.1 Grundeinstellungen
|
||
----------------------
|
||
|
||
Es gibt hier drei Sektionen, die vom isdnlog ausgewertet werden:
|
||
[GLOBAL]
|
||
[VARIABLES]
|
||
[ISDNLOG]
|
||
Diese Sektionen koennen in einer beliebigen Reihenfolge in der Datei
|
||
vorkommen.
|
||
|
||
Die Sektion GLOBAL beinhaltet Eintraege, die fuer alle ISDN-Programme
|
||
von Bedeutung sind. Hier sind folgende Eintraege zu finden:
|
||
|
||
AREACODE:
|
||
Beinhaltet die eigene Ortsvorwahl (mit oder ohne vorlaufender "0". Der
|
||
Prefix "0" wird in der Datei config.h durch das Macro S_AREA_PREFIX
|
||
oder durch den Eintrag AREAPREFIX representiert). Dieser Eintrag ist
|
||
zwingend.
|
||
Wird isdnlog im 1TR6 eingesetzt, muss hier die _gesamte_ Telefonnummer
|
||
exclusive der EAZ eingetragen werden. Diese Variable ist absolute Pflicht!
|
||
Beispiel fuer Hamburg (Euro-ISDN !!!):
|
||
AREACODE = 040 # oder
|
||
AREACODE = 40
|
||
|
||
Wenn S_AREA_PREFIX den String "0815" enthaelt, dann ist auch folgende
|
||
Zeile erlaubt:
|
||
AREACODE = 081540
|
||
|
||
COUNTRYCODE:
|
||
Hier wird die eigene Laenderkennung gesetzt (mit oder ohne vorlaufendem "+".
|
||
Der Prefix "+" wird in der Datei config.h durch das Macro S_COUNTRY_PREFIX
|
||
oder durch den Eintrag AREAPREFIX representiert). Dieser Eintrag ist
|
||
ebenfalls zwingend.
|
||
Beispiel fuer Deutschland:
|
||
COUNTRYCODE = +49 # oder
|
||
COUNTRYCODE = 49
|
||
|
||
Wenn S_COUNTRY_PREFIX den String "0815" enthaelt, dann ist auch folgende
|
||
Zeile erlaubt:
|
||
COUNTRYCODE = 081549
|
||
|
||
AREAPREFIX:
|
||
Es enthaelt den Prefix zur Ortsvorwahl. Beim Kompilieren ist dieser
|
||
Wert defaultmaessig auf "0" gesetzt. Dieser Eintrag ist optional.
|
||
|
||
COUNTRYPREFIX:
|
||
Es enthaelt den Prefix zur Laenderkennung. Beim Kompilieren ist dieser
|
||
Wert defaultmaessig auf "+" gesetzt. Dieser Eintrag ist optional.
|
||
|
||
CODELIB:
|
||
Es kann nach dem Kompilieren eingestellt werden, welche Library verwendet
|
||
werden soll. Fuer AVON wird dort "AVON" eingetragen und fuer areacode
|
||
wird dort "AREACODE" eingetragen. Andere Werte sind dort zur Zeit nicht
|
||
erlaubt. Es sollte dann aber zusaetzlich AREALIB bzw. AVONLIB eingetragen
|
||
werden.
|
||
Dieser Eintrag ist optional.
|
||
Beispiel:
|
||
CODELIB=avon
|
||
|
||
AREALIB:
|
||
Enthaelt den vollen Pfad zu der Datei "areacode.dat". Diese Angabe ist
|
||
optional und nur notwendig, wenn sich der Pfad nach der Compilation
|
||
geaendert hat.
|
||
Beispiel:
|
||
AREALIB=/usr/share/lib/areacode.dat
|
||
|
||
AVONLIB:
|
||
Enthaelt den vollen Pfad zu der Datei "avon". Diese Angabe ist
|
||
optional und nur notwendig, wenn sich der Pfad nach der Compilation
|
||
geaendert hat.
|
||
Beispiel:
|
||
AREALIB=/usr/share/lib/avon
|
||
|
||
Da aber defaultmaessig die Arealib verwendet wird, ist die Datei
|
||
avon obsolete.
|
||
|
||
|
||
Die ISDN-Tools erlauben es, Umgebungsvariablen zu setzen und zu verwenden.
|
||
Es gibt Variablen, die in der isdn.conf (oder vorher) gesetzt werden sollten.
|
||
Diese sind in der Sektion [VARIABLES] zu setzen.
|
||
Beispiel:
|
||
|
||
[VARIABLES]
|
||
MYPATH = /home/fred
|
||
|
||
Es duerfen als Variablennamen nur noch gross geschriebene Woerter verwendet
|
||
werden. Ein Eintrag der Form
|
||
|
||
myPath = /home/fred
|
||
|
||
oder
|
||
|
||
mypath = /home/fred
|
||
|
||
wird z.B. unter /bin/sh mit "MYPATH=/home/fred" gesetzt.
|
||
Hier gibt es auch keine andere Moeglichkeit das zu aendern.
|
||
|
||
Wenn Kleinbuchstaben verwendet werden sollen, muessen diese vor dem Start
|
||
von isdnlog mit export (sh, bash) oder setenv (csh) unter der Shell gesetzt
|
||
werden.
|
||
|
||
ACHTUNG: "MYPATH = /home/fred" wird als Variable zu "MYPATH=/home/fred".
|
||
Es fallen also alle Blanks und Tabulatoren vor und nach dem "="
|
||
heraus.
|
||
|
||
|
||
Die dritte Sektion beschreibt spezifische Angaben fuer den isdnlog. Diese
|
||
Sektion wird durch [ISDNLOG] eingeleitet.
|
||
|
||
LOGFILE = /var/log/isdn.log
|
||
|
||
Dies ist das Logfile, in dem isdnlog alle Gespraeche ablegt, und isdnrep
|
||
sie anschliessend anzeigt. Wenn diese sich an einem anderen Platz befindet,
|
||
als zur Compilationszeitpunkt (in der Regel "/var/log/isdn.log"), dann kann
|
||
die Lokation hier angegeben werden.
|
||
Die Option "-f" vom isdnrep ueberschreibt diesen Wert dann allerdings wieder.
|
||
|
||
Zusatzinformation:
|
||
Diese Datei wird seit der Version 3.0 vom isdnlog nicht mehr staendig offen
|
||
gehalten, sondern nur noch nach Beendigung eines Gespraeches wird die Datei
|
||
geoeffnet, der Eintrag ergaenzt und anschliessend wieder geschlossen.
|
||
Dadurch ist es jetzt moeglich diese Datei zu verschieben, wenn der isdnlog
|
||
laeuft und gerade kein Gespraech beendet wird.
|
||
Dieser Eintrag ist optional.
|
||
|
||
RELOADCMD = reload
|
||
|
||
Hiermit wird ein ausfuehrbares Programm (z.b. Shell-Script) angegeben,
|
||
mit dem isdnlog ein evtl. wildgewordenes isdn4linux reanimieren kann.
|
||
(Ein Beispiel findet sich im Kapitel 14.1 Watchdog)
|
||
Dieser Eintrag ist optional.
|
||
|
||
STOPCMD = stop
|
||
|
||
Hiermit wird ein ausfuehrbares Programm (z.b. Shell-Script) angegeben,
|
||
mit dem isdnlog isdn4linux terminieren kann.
|
||
(Ein Beispiel findet sich im Kapitel 14.2 CHARGEMAX)
|
||
Dieser Eintrag ist optional.
|
||
|
||
REBOOTCMD = /sbin/reboot
|
||
|
||
Hiermit wird ein ausfuehrbares Programm (z.b. Shell-Script) angegeben,
|
||
mit dem isdnlog Linux herunterfahren kann.
|
||
(Ein Beispiel findet sich im Kapitel 14.2 CHARGEMAX)
|
||
Dieser Eintrag ist optional.
|
||
|
||
CHARGEMAX = 15.00
|
||
|
||
Hiermit wird (in DM) angegeben, wieviel Geld man pro Tag maximal
|
||
mit isdn4linux vertelefonieren moechte.
|
||
Dieser Eintrag ist optional.
|
||
|
||
CONNECTMAX = 18000,0
|
||
|
||
Hiermit wird (in Sekunden) angegeben, wieviel Zeit man pro Monat
|
||
maximal Online sein moechte.
|
||
Dieser Eintrag ist optional.
|
||
|
||
BYTEMAX = 67108864,0
|
||
|
||
Hiermit wird (in Byte) angegeben, wieviel Byte man maximal pro
|
||
Monat saugen moechte.
|
||
Dieser Eintrag ist optional.
|
||
|
||
CURRENCY=factor,currency
|
||
|
||
Wenn die Variablen in der isdn.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.
|
||
|
||
Wenn man sich zum Beispiel die Nettogebuehren (ohne MwSt.) anzeigen
|
||
lassen will, kann man hier z.B. folgenden Wert setzen:
|
||
|
||
CURRENCY=0.1043,DM
|
||
|
||
Dieser Eintrag ist optional.
|
||
|
||
Wenn der isdnrep via HTML aufgezeichneten Anrufe abspielen soll, dann muss hier
|
||
der Pfad eingetragen werden. Eine genaue Beschreibung findet man unter
|
||
dem Kapitel isdnrep.
|
||
Dieser Eintrag ist optional.
|
||
|
||
Beipiel:
|
||
VBOXPATH = /var/spool/vbox/fred/incoming
|
||
|
||
Der isdnrep kann fuer jeden aufgezeichneten Anruf ein Konvertierungsprogramm
|
||
starten. Eine genaue Beschreibung findet man unter dem Kapitel isdnrep.
|
||
Dieser Eintrag ist optional.
|
||
|
||
Beipiel:
|
||
VBOXCMD1 = /usr/bin/zyxeltowav # Fuer Version vbox 0.x und 1.x
|
||
VBOXCMD2 = /usr/bin/zyxeltowav # Fuer Version vbox 2.x
|
||
|
||
Wenn der isdnrep via HTML angekommene Faxe anzeigen soll, dann muss hier
|
||
der Pfad eingetragen werden. Eine genaue Beschreibung findet man unter
|
||
dem Kapitel isdnrep.
|
||
Dieser Eintrag ist optional.
|
||
|
||
Beipiel:
|
||
MGETTYPATH = /var/spool/fax/incoming
|
||
|
||
Der isdnrep kann fuer jedes Fax ein Konvertierungsprogramm starten.
|
||
Eine genaue Beschreibung findet man unter dem Kapitel isdnrep.
|
||
Dieser Eintrag ist optional.
|
||
|
||
Beipiel:
|
||
MGETTYCMD = /usr/bin/g3tojpg
|
||
|
||
Fuer den isdnrep kann man einen oder mehrere Formatsstrings definieren,
|
||
wie der isdnrep die einzelnen Gebuehren anzeigen soll. Die genaue Syntax
|
||
wird unter dem Kapitel isdnrep beschrieben.
|
||
|
||
Der Formatstring kann in Hochkommata eingeschlossen werden. Dieses ist
|
||
sinnvoll, wenn das erste Zeichen ein Leerzeichen oder ein Tabulator
|
||
sein sollte. Dabei ist zu beachten, falls ein Hochkomma im Formatstring
|
||
selber vorkommen soll, dass dieses zu quoten ist.
|
||
Dieses gilt fuer ILABEL, OLABEL und auch REPFMT.
|
||
|
||
Beispiel:
|
||
|
||
REPFMT = "%X\"%x"
|
||
|
||
Alle Formateintraege sind optional. Bei der Installation werden diese
|
||
allerdings erzeugt.
|
||
|
||
Die folgenden beiden sind Standard-Eintraege, die der isdnrep sucht:
|
||
|
||
REPFMT = " %X %D %15.15H %T %-15.15F %7u %U %I %O"
|
||
REPFMTWWW = "%X %D %17.17H %T %-17.17F %-20.20l SI: %S %9u %U %I %O"
|
||
|
||
Der erste ist fuer den "normalen" Gebuehrenausdruck. Der zweite wird
|
||
verwendet, falls die Ausgabe im HTML-Format erfolgen soll.
|
||
|
||
Es koennen noch weitere angegeben werden:
|
||
|
||
REPFMTxxx = ...
|
||
|
||
Fuer "xxx" kann eine beliebige Zeichenfolge ohne Leerzeichen und Tabulator
|
||
stehen. Dieser Formatstring wird dann vom isdnrep verwendet mit der
|
||
Option -Fxxx.
|
||
|
||
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 %Itei %t calling %N2 with %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)
|
||
%cx Via CLIP vermeldete MSN (siehe *1)
|
||
%A der Text " alias <MSN>", falls
|
||
CLIP-Meldung, sonst leer
|
||
%I Tabulation (siehe *2)
|
||
%a Wochentag (-> "Fri")
|
||
%b Monat (-> "Aug")
|
||
%e Tag im Monat (-> " 8")
|
||
%T Uhrzeit (-> "13:17:11")
|
||
%B B-Kanal (1 oder 2)
|
||
%k Nummer der ISDN-Karte, von der die Meldung kam (0 = 1. Karte)
|
||
%p Nummer des Provider's
|
||
%P "via <Providerbezeichnung>"
|
||
%Z Gebuehrenzone des Gegners ("CityCall", "RegioCall", "GermanCall", "GlobalCall")
|
||
%z Gebuehrenzone des Gegners (1, 2, 3, 4)
|
||
|
||
%/
|
||
%
|
||
%(
|
||
%) Falls die Nummer des Gegners bekannt, entsprechendes Zeichen,
|
||
sonst Leerstring
|
||
|
||
|
||
*1 Bei %N, %n sowie %c muss angegeben werden, wie die Telefonnummer ausgegeben
|
||
werden soll:
|
||
|
||
%N0 - Telefonnummer exakt so, wie von der VSt gemeldet
|
||
(z.b. "8989810530")
|
||
%N1 - Telefonnummer, von isdnlog um Vorwahl, vorlaufende "0" etc.
|
||
ergaenzt (z.b. "+498989810530")
|
||
%N2 - Von isdnlog optimal "verschoenerte" Nummer, also Alias
|
||
aus "isdn.conf" oder mit Ortsnetz etc.
|
||
(z.b. "+49 89/89810530, Muenchen")
|
||
%N3 - Vorwahl (z.b. "89")
|
||
%N4 - Rufnummer (z.b. "89810530")
|
||
%N5 - Alias
|
||
%N6 - Ortsnetz (z.b. "Muenchen")
|
||
%N7 - Countrycode (z.b. "+49")
|
||
|
||
*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={
|
||
...
|
||
}
|
||
|
||
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"
|
||
in der Sektion [ISDNLOG] 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 "isdn.conf" keinen Eintrag hat, oder unter
|
||
der Nummer in der Sektion [Flag] nichts eingetragen ist, dann schaut isdnlog
|
||
unter "START" nach.
|
||
|
||
Diese Zeilen koennen verwendet werden, wenn man fuer alle Verbindungen
|
||
die gleichen Programme starten will, oder fuer alle unbekannten Nummern.
|
||
Die Syntax ist unter "Info-Args" der Dateien "callerid.conf" und"~/.isdn"
|
||
zu finden.
|
||
|
||
|
||
Sobald die Calling party number ueber die Leitung kommt, wird diese in eine
|
||
spezielle Datei geschrieben. Dieses Feature wird ueber zwei
|
||
Konfigurationseinstellungen (CALLFILE und CALLFMT) in der isdn.conf aktiviert.
|
||
Beispiel:
|
||
|
||
CALLFILE = /var/log/caller.log
|
||
CALLFMT = %b %e %T %N7 %N3 %N4 %N5 %N6
|
||
|
||
|
||
|
||
4.2 Die Dateien "callerid.conf" und "~/.isdn"
|
||
---------------------------------------------
|
||
|
||
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 Datei "callerid.conf" liegt im Verzeichnis "/etc/isdn" und muss dem User
|
||
root gehoeren (auch die Gruppe). Nur dieser darf Schreibrechte an dieser
|
||
Datei haben. Diese Datei wird auch vom isdnlog gelesen. Es ist die globale
|
||
Datei fuer die Telefonnummern. Hier muessen auch die [MSN]-Eintraege
|
||
untergebracht werden.
|
||
|
||
Die Datei "~/.isdn" kann jeder Benutzer haben, der den isdnrep und den isdnconf
|
||
verwendet. Hier sind die Rechte der Datei voellig egal. Diese Datei ist
|
||
dafuer bestimmt, dass ein Benutzer soetwas wie ein eigenes Telefonverzeichnis
|
||
anlegen kann, wo auch die Nummer nur beim isdnrep angezeigt werden.
|
||
Es koennen hier aber die [MSN]-Eintraege ueberschrieben werden fuer die
|
||
beiden Programme isdnconf und isdnrep.
|
||
|
||
Es koennen hier Variablen verwendet werden, die entweder in der isdn.conf
|
||
gesetzt wurden oder vorher (z.b. auf Shellebene).
|
||
In den Dateien "callerid.conf" und "~/.isdn" koennen ebenfalls Variablen
|
||
gesetzt werden. Das bedeutet also, dass es dort auch eine Sektion [VARIABLES]
|
||
gibt, wie in der "isdn.conf". Aber Achtung!! Hier koennen nur gross
|
||
geschriebene Variablennamen verwendet werden:
|
||
|
||
[VARIABLES]
|
||
fred=fred1234 # -> "FRED=fred1234" !!!!
|
||
FRED=fred1234 # -> "FRED=fred1234"
|
||
|
||
Eine Variable wird allerdings nur ab dem Gleichheitszeichen ersetzt.
|
||
|
||
Wenn man an die Variable noch etwas anhaengen will, dann muss man den
|
||
Variablenname in geschweifte Klammern setzen.
|
||
Im Gegensatz zur frueheren Version koennen die Variablen an beliebiger Stelle
|
||
kommen.
|
||
|
||
Beispiele:
|
||
|
||
[$num] # wobei num=NUMBER nicht geht !!!!
|
||
$alias=fred # wobei alias=ALIAS nicht geht !!!!
|
||
|
||
[NUMBER]
|
||
NUMBER=$MSN1 # MSN1=1234 -> "1234"
|
||
ALIAS=${PHONE}1 # PHONE=Telefon -> "Telefon1"
|
||
|
||
...
|
||
PROGRAM= auplay ${MY_PATH}ring.au # MY_PATH=/home/fred/ -> "/home/fred/ring.au"
|
||
PROGRAM= auplay $MY_PATHring.au # geht nicht!!
|
||
PROGRAM= auplay ${MY_PATH}ring.au ${SOUND_PATH}/$RING_FILE
|
||
# SOUND_PATH=/home/sound RING_FILE=ring.au -> "/home/sound/ring.au"
|
||
...
|
||
|
||
Wenn eine Variable nicht ersetzt werden konnte, so wird dieses angemahnt,
|
||
und die Variable bleibt so bestehen, im Gegensatz zur bash-Shell, wo
|
||
dann ein Leerstring ausgegeben wird:
|
||
|
||
...
|
||
ALIAS = $FRED Feuerstein # -> "$FRED Feuerstein", wenn $FRED ungueltig ist.
|
||
...
|
||
|
||
Wenn das "$" nicht als Zeichen fuer
|
||
eine Variable verwendet werden soll, so muss diese mit "\$" geqoutet werden:
|
||
|
||
...
|
||
ALIAS = \$PATH # -> "$PATH"
|
||
...
|
||
|
||
Wenn eine Variable mehrfach gesetzt wird, so wird sie ueberschrieben. Die
|
||
Regel fuer das ueberschreiben entspricht der Reihenfolge, in der die
|
||
Konfigurationsdateien gelesen werden:
|
||
|
||
1. isdn.conf
|
||
2. callerid.conf
|
||
3. ~/.isdn
|
||
|
||
Wenn eine Variable "FRED" in "isdn.conf" und "~/.isdn" gesetzt wird, so wird
|
||
der Wert von "isdn.conf" durch den Wert der zweiten Datei ueberschrieben.
|
||
|
||
Die Variablen werden zuerst aus allen drei Dateien gelesen, bevor die
|
||
Ersetzung stattfindet. Das bedeutet also, das z. B. eine Variable, die
|
||
in "~/.isdn" gesetzt wurde, in der isdn.conf verwendet werden kann.
|
||
|
||
Dieses mag im ersten Augenblick als ein Sicherheitsloch erscheinen, aber
|
||
wenn als root ein Programm gestartet wurde, muessen alle drei Dateien
|
||
auf readonly fuer group und world gesetzt sein. Andersherum kann ein Benutzer,
|
||
der ein Programm startet auf diese Dateien nur lesend zugreifen.
|
||
|
||
ACHTUNG:
|
||
Es ist allerdings davon abzuraten, weder den isdnlog, noch den isdnrep oder den
|
||
isdnconf mit dem sticky-Bit auszustatten!!!!
|
||
|
||
Es gibt bestimmte Regeln, nachdem Eintraege aus der Datei "~/.isdn" die
|
||
Eintraege der "callerid.conf" ueberschreiben:
|
||
|
||
Der Sektionsname ist in "callerid.conf" und "~/.isdn" gleich (entweder
|
||
[MSN] oder [NUMBER]).
|
||
|
||
Wenn die Eintraege NUMBER und SI in beiden Dateien vorkommen und identisch sind,
|
||
dann wird der Eintrag aus der der Datei "callerid.conf" ueberschrieben durch
|
||
den Eintrag "~/.isdn".
|
||
|
||
Wenn nur der Eintrag NUMBER (und _nicht_ SI) in beiden Dateien vorkommt und
|
||
identisch ist, dann wird der Eintrag aus der der Datei "callerid.conf"
|
||
ueberschrieben durch den Eintrag "~/.isdn".
|
||
Unter Identisch ist zu verstehen, wenn beide Strings absolut identisch sind:
|
||
NUMBER=+49 7531/21103
|
||
NUMBER=753121103
|
||
sind nicht identisch!!!!
|
||
|
||
Beispiele:
|
||
|
||
Eintrag in "callerid.conf":
|
||
[NUMBER]
|
||
NUMBER=753121103
|
||
ALIAS=MSN\#1
|
||
|
||
Eintrag in "~/.isdn":
|
||
[NUMBER]
|
||
NUMBER=753121103
|
||
ALIAS=Fred's Number
|
||
|
||
Im obigen Fall wird der zweite Eintrag genommen.
|
||
|
||
Eintrag in "callerid.conf":
|
||
[NUMBER]
|
||
NUMBER=753121103
|
||
SI=7
|
||
ALIAS=Internet
|
||
|
||
Eintrag in "~/.isdn":
|
||
[NUMBER]
|
||
NUMBER=753121103
|
||
SI=6
|
||
ALIAS=Fred's Number
|
||
|
||
Im obigen Fall werden beide Eintrage uebernommen. Wenn nun eine Datenverbindung
|
||
auf der 753121103 stattfindet, dann wird "Internet" angezeigt, wenn jemand z.B.
|
||
eine Video-Konfernzschaltung oder einen normalen Telefonanruf taetigt, dann
|
||
wird "Fred's Number" angezeigt. Dieses gilt natuerlich nur beim isdnrep
|
||
und isdnconf.
|
||
|
||
Eintrag in "callerid.conf":
|
||
[NUMBER]
|
||
NUMBER=753121103
|
||
SI=7
|
||
ALIAS=MSN\#1
|
||
|
||
Eintrag in "~/.isdn":
|
||
[NUMBER]
|
||
NUMBER=753121103
|
||
ALIAS=Fred's Number
|
||
|
||
Im obigen Fall gilt das gleiche wie beim vorherigen Beispiel.
|
||
|
||
Jede Sektion (Nummer) kann eine Dienstekennung enthalten. Dieses wird durch
|
||
einen Eintrag in der Form
|
||
|
||
SI=4 # Video
|
||
|
||
realisiert.
|
||
|
||
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 "isdn.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.
|
||
|
||
Ein eindeutiger Key fuer eine Nummer ist nun die Telefonnummer selber und die
|
||
Dienstkennung. Es kann also eine Nummer mehrfach erscheinen mit jeweils
|
||
einer anderen Dienstkennung. Wird in der Sektion fuer eine Nummer kein
|
||
Eintrag fuer die Dienstkennung angegeben (keine Zeile SI=x), wird die Kennung
|
||
"0" angenommen. Das bedeutet alle Dienste werden ueber diese Sektion erkannt.
|
||
Es gibt also fuer eine Nummer nur einen einzigen Eintrag.
|
||
|
||
Zum Verstaendnis:
|
||
|
||
Nehmen wir mal eine eigne MSN (das funktioniert auch fuer fremde Nummern!).
|
||
Dort kann man mit einer MSN eine ISDN-Verbindung mit LINUX unterhalten und
|
||
parallel diese MSN zum Telefonieren verwenden. Obwohl die gleiche Nummer
|
||
dort verwendet wird, reagiert z.B. das Telefon nicht (es klingelt nicht!),
|
||
wenn ein Teilnehmer sich mit einem PC an dieser Nummer anwaehlt.
|
||
Beispiel:
|
||
|
||
Auf der MSN 4711 lauscht sowohl die ISDN-Karte auf X.75 Anrufe, als auch
|
||
ein Analoges Telefon ueber eine Telefonanlage.
|
||
|
||
Hier wuerden folgende Eintraege in der "callerid.conf" passen:
|
||
|
||
[MSN]
|
||
NUMBER = 4711
|
||
SI = 1 # Das normale Telefon
|
||
ALIAS = Phone
|
||
START = {
|
||
[FLAG]
|
||
FLAGS = I|O|R|A # alternativ geht auch FLAGS=IORA
|
||
PROGRAM = auplay ring.au
|
||
}
|
||
|
||
[MSN]
|
||
NUMBER = 4711
|
||
SI = 7 # Der Linux-Rechner
|
||
ALIAS = X.75
|
||
START = {
|
||
[FLAG]
|
||
FLAGS = I|O|R|A # alternativ geht auch FLAGS=IORA
|
||
PROGRAM = auplay computer.au
|
||
}
|
||
|
||
Die genaue Syntax wird weiter unten beschrieben.
|
||
|
||
Ruft nun jemand die 4711 mit einem Telefon an, wird das als Anruf auf
|
||
"Phone" angezeigt, und mit "auplay" das Soundfile "ring.au" abgespielt.
|
||
|
||
Waehlt jemand hingehen die 4711 mit einer ISDN-Karte an, wird das als
|
||
"X.75" angezeigt, und mit "auplay" 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.
|
||
|
||
|
||
Es gibt zwei verschiedene Sektionen in diesen Dateien:
|
||
|
||
[MSN]
|
||
[NUMBER]
|
||
|
||
Die Eintraege in den einzelnen Sektionen sind gleich. Es koennen beliebig viele
|
||
von den einzelnen Sektionen (MSN,NUMBER) existieren. Im Gegensatz zu frueheren
|
||
Versionen des isdnlog's muss nun nicht mehr die Anzahl der eigenen MSN angegeben
|
||
werden (MYMSNS entfaellt).
|
||
|
||
|
||
Alle Eintraege in einer Sektion koennen in einer beliebigen Reihenfolge
|
||
folgen. Das gleiche gilt fuer die Sektionen innerhalb einer Datei.
|
||
|
||
Im folgenden werden nun die einzelnen Eintraege unter den Sektionen MSN
|
||
und NUMBER erwaehnt:
|
||
|
||
|
||
4.2.1 1. Eintrag: Telefonnummer [NUMBER] und [MSN]
|
||
--------------------------------------------------
|
||
|
||
Hier muss zwischen 1TR6 und DSS1 unterschieden werden:
|
||
|
||
im 1TR6 muss unter [MSN] nur die EAZ eingetragen werden. Unter der Sektion
|
||
[NUMBER] kommt dort die komplette Nummer. Diese Nummer muss _mindestens_
|
||
die Vorwahl enthalten.
|
||
|
||
Im DSS1 ist dieses ziemlich egal. Man kann die Nummern so eintragen, wie man
|
||
sie am eigenen Telefon waehlen wuerde. Es muss die Voreinstellungen der
|
||
Installation beruecksichtigt werden. Die Werte von AREACODE
|
||
und COUNTRYCODE, wie sie waehrend der Installation eingestellt wurden,
|
||
werden so ueberall uebernommen.
|
||
|
||
Es ist aber empfehlenswert ueberall die Vorwahl mit anzugeben (ist auch bei
|
||
der MSN moeglich). Wenn man z.B. umzieht in eine andere Stadt,
|
||
muss man sonst die gesamte Datei ueberarbeiten. Das entfallt, wenn man
|
||
ueberall die Vorwahl angibt.
|
||
|
||
Die Syntax ist jetzt ziemlich frei. Es koennen dort Telefonnummern angegeben
|
||
werden, wie man sie ueblicherweise kennt:
|
||
|
||
NUMBER = 4711
|
||
NUMBER = 0815/4711
|
||
NUMBER = 0815/471-0
|
||
NUMBER = +49 815/4711
|
||
NUMBER = +49 815/471*
|
||
NUMBER = +49 815/471?
|
||
NUMBER = +49 815/47[!6]1
|
||
NUMBER = 4711, 4712, +49 815/4713
|
||
|
||
Es werden alle NICHT-Zahlen dort herausgefiltert, bis auf die Wildcards '?',
|
||
'*' und "[]"
|
||
|
||
Ein Plus '+' am Anfang wird durch COUNTRYCODE ersetzt.
|
||
|
||
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])
|
||
|
||
Es ist auch moeglich, mehrere Telefonnummern unter einem Eintrag zu setzen.
|
||
Die einzelnen Nummern werden dann durch ein Komma getrennt.
|
||
|
||
|
||
4.2.2 2. Eintrag: Alias [ALIAS]
|
||
-------------------------------
|
||
|
||
In diesem Entrag steht eine beliebige Symbolische Beschreibung fuer
|
||
diese Nummer ("Mausi", "UUnet" usw.). Diese darf Blanks enthalten!
|
||
Wenn hier das Zeichen '#' verwendet werden soll, muss dieses gequotet
|
||
werden mit "\#".
|
||
Das Zeichen "|" darf auf keinen Fall verwandt werden, da es fuer interne
|
||
Zwecke benoetigt wird!
|
||
|
||
ALIAS = MSN #1
|
||
ist falsch, dieses fuehrt zu dem Ergebnis:
|
||
ALIAS = MSN
|
||
|
||
Richtig waere:
|
||
|
||
ALIAS = MSN \#1
|
||
|
||
Auch ein Eintrag
|
||
|
||
ALIAS = Helmut Kohl
|
||
|
||
ist erlaubt. Allerdings unterscheidet sich dieser von
|
||
|
||
ALIAS = helmut kohl
|
||
|
||
|
||
4.2.3 3. Eintrag: Tarifzone
|
||
---------------------------
|
||
|
||
Ein weiterer Eintrag ist die Tarifzone, in der sich von uns aus gesehen
|
||
diese Nummer befindet:
|
||
|
||
0 = Verbindung am internen S0-Bus (eigene TK-Anlage)
|
||
1 = CityCall (bis 31.12.1997 City, bis 31.12.1995 "Ortszone/Nahzone", bis 20 km)
|
||
2 = RegioCall (bis 31.12.1997 Region 50, bis 31.12.1995 "Regionalzone", bis 50 km)
|
||
3 = GermanCall (bis 31.12.1998 Region 200, bis 31.12.1995 "Weitzone", dann bis 200 km)
|
||
4 = C-Netz
|
||
5 = C-Mobilbox
|
||
6 = D1-Netz
|
||
7 = D2-Netz
|
||
8 = E-plus-Netz
|
||
9 = E2-Netz
|
||
10 = Euro City
|
||
11 = Euro 1
|
||
12 = Euro 2
|
||
13 = Welt 1
|
||
14 = Welt 2
|
||
15 = Welt 3
|
||
16 = Welt 4
|
||
17 = Internet (Internet-Zugang des jeweiligen Carriers)
|
||
|
||
|
||
Dieser Eintrag wird wie folgt dargestellt:
|
||
|
||
ZONE = 1
|
||
|
||
oder
|
||
|
||
ZONE = 5
|
||
|
||
|
||
Dieser Eintrag kann seit der Version 3.0 ersatzlos entfallen, da isdnlog
|
||
seitdem eine eigene Verzonungstabelle enthaelt, d.h. selbststaendig in der
|
||
Lage ist, die Zone des Gegners zu ermitteln.
|
||
|
||
|
||
4.2.4 4. Eintrag: IP-Interface
|
||
------------------------------
|
||
|
||
Dieser Eintrag repraesentiert das IP-Interface, welches auf dieser
|
||
Nummer konfiguriert wurde, oder ein "-", falls dieser Nummer kein
|
||
IP-Interface zugeordnet wurde.
|
||
Diese Information wird fuer die "-hx" huptimeout Option benoetigt.
|
||
|
||
Beispiel:
|
||
|
||
INTERFACE=ippp0
|
||
|
||
4.2.5 5. Eintrag: Info-Args
|
||
---------------------------
|
||
|
||
Hier besteht unter der Sektion [NUMBER] und [MSN] eine Untersektion. Diese
|
||
ist allerdings optional. Diese Informationen werden vom isdnlog nur ausgewertet,
|
||
wenn die Option -S gesetzt wurde.
|
||
Die Untersektion traegt den Namen START.
|
||
|
||
Es koennen mehrere Programme pro Nummer angegeben werden, zum Beispiel fuer
|
||
jedes Event. Hier folgt nun ein Beispiel. Die Erklaerung folgt anschliessend:
|
||
|
||
[MSN]
|
||
NUMBER = 4711
|
||
SI = 1 # Das normale Telefon
|
||
ALIAS = Phone
|
||
ZONE = 1
|
||
START = { # Beginn der Untersektionen
|
||
# Die geschweifte Klammer muss in der gleichen
|
||
# Zeile stehen, wie "START =" !!!!
|
||
[FLAG]
|
||
FLAGS = I|O|R # alternativ geht auch FLAGS=IORA
|
||
PROGRAM = auplay ring.au
|
||
|
||
[FLAG]
|
||
FLAGS = A
|
||
PROGRAM = auplay pay.au
|
||
} # Ende der Untersektionen
|
||
|
||
|
||
Hier werden jetzt alle anderen Spalten wie Flags, Time und Info-Arg vereinigt.
|
||
|
||
Jeder Programmstart fuer ein Event wird mit der (Unter-)Sektion [FLAG]
|
||
eingeleitet.
|
||
|
||
Unter dieser Sektion sind nun verschiedene Eintraege zu finden. Die folgende
|
||
Reihenfolge muss allerdings innerhalb der Sektion nicht eingehalten werden:
|
||
|
||
Eintrag 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
|
||
|
||
In der Zeile koennen die einzelnen Events entweder als ein "Wort" geschrieben
|
||
werden oder aber durch das Zeichen "|" getrennt werden:
|
||
|
||
FLAGS = IORA
|
||
|
||
oder
|
||
|
||
FLAGS = I|O|R|A
|
||
|
||
Wobei die zweite Schreibweise wesentlich uebersichtlicher ist.
|
||
|
||
|
||
User
|
||
----
|
||
|
||
Wenn ein Programm gestartet wird, kann die User-ID umgestellt werden. Dieses
|
||
ist sogar notwendig, wenn der Benutzer (nicht noetig fuer den Benutzer root !!)
|
||
die Rechte an der Datei besitzt. isdnlog verbietet es seit der Version 3.0,
|
||
dass das Programm als normaler Benutzer gestartet wird. Ebenso wird es
|
||
unterbunden ein Programm zu starten, wo ein Benutzer Leserechte besitzt
|
||
und dieses als root gestartet wird. Dieses koennte sich als trojanisches Pferd
|
||
verwenden lassen. Daher muessen Programme, die nicht root gehoeren oder
|
||
die jeder (others) beschreiben kann mit dem Eintrag USER belegt werden.
|
||
|
||
Wenn die folgenden Eintraege nicht vorhanden sind und diese Dateien nicht
|
||
dem User root gehoeren, dann setzt isdnlog die Rechte so, wie sie der
|
||
Datei mitgegeben sind auf dem Dateisystem. Beispiel:
|
||
|
||
luethje@bundy:bin$ ls -l
|
||
total 3
|
||
-rwxr-xr-x 1 luethje users 315 Mar 9 16:15 deloldmails*
|
||
|
||
Die Datei "deloldmails" wird mit den Rechten luethje.users gestartet, wenn die
|
||
folgenden Eintraege in der isdn.conf fehlen. Allerdings haben diese Eintraege
|
||
hoehere Prioritaet.
|
||
|
||
Der Eintrag in der isdn.conf hat folgende Syntax:
|
||
|
||
USER=fred
|
||
|
||
oder
|
||
|
||
USER=103
|
||
|
||
Es kann also entweder der Benutzername oder die Benutzer-ID verwendet werden.
|
||
|
||
Group
|
||
-----
|
||
|
||
Dieser Eintrag verhaelt sich analog zu dem Eintrag USER. Auch hier gilt wieder
|
||
die Systemsicherheit. Die Syntax ist wie folgt:
|
||
|
||
GROUP=freaks
|
||
|
||
oder
|
||
|
||
GROUP=201
|
||
|
||
Es kann also entweder der Gruppenname oder die Gruppen-ID verwendet werden.
|
||
|
||
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:
|
||
|
||
...
|
||
START={
|
||
[FLAG]
|
||
FLAGS = IOR
|
||
PROGRAM = /usr/bin/auplay ring.au
|
||
|
||
FLAGS = IORK
|
||
PROGRAM = /usr/bin/auplay ring.au
|
||
INTERVAL= 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.
|
||
|
||
|
||
Das zu startende Programm
|
||
-------------------------
|
||
|
||
Hier wird das Info-Argument angegeben. Es steht dort der gesamte zu
|
||
startende Befehl
|
||
|
||
Es gibt aber 10 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.
|
||
\$4 : Enthaelt die Zeit des Gespraechsbeginns. Beipiel:
|
||
"Wed May 28 23:07:44 1997"
|
||
\$5 : Enthaelt die Zeit die Gespraechsdauer bis zum aktuellen Zeitpunkt in
|
||
Sekunden.
|
||
\$6 : Enthaelt die Zeit des Gespraechsendes. Beipiel:
|
||
"Wed May 28 23:07:49 1997"
|
||
\$7 : Die Input-Bytes
|
||
\$8 : Die Output-Bytes
|
||
\$9 : Die Input-Bytes pro Sekunde
|
||
\$10 : Die Output-Bytes pro Sekunde
|
||
\$11 : Die Dienstekenung
|
||
\$12 : Die Gebuehren
|
||
\$13 : Gibt als String die Landesvorwahl des Anrufenden an.
|
||
\$14 : Gibt als String die Landesvorwahl des Angerufenden an.
|
||
\$15 : Gibt als String die Vorwahl des Anrufenden an.
|
||
\$16 : Gibt als String die Vorwahl des Angerufenden an.
|
||
\$17 : Gibt als String den Ort des Anrufenden an.
|
||
\$18 : Gibt als String den Ort des Angerufenden an.
|
||
\$19 : Gibt als String den Alias des Anrufenden an.
|
||
\$20 : Gibt als String den Alias des Angerufenden an.
|
||
|
||
Folgende Punkte sind zu beachten:
|
||
|
||
- Sollten mehr als zehn Variablen gleichzeitig verwendet werden, so kennt
|
||
die Shell nur die Variablen 0 - 9!
|
||
- Das Zeichen "$" muss gequotet werden, da dieses sonst zu einer Warnung fuehrt!
|
||
- Wenn eine Variable keinen gueltigen Wert hat, dann wird sie durch ein "?"
|
||
ersetzt.
|
||
- Diese Variablen koennen auch innerhalb eines Argumentes stehen.
|
||
- Wenn diese Variablen innerhalb eines Strings verwendet werden, muss der
|
||
Name (hier z.B. "1", "2") in geschweiften Klammern gesetzt werden.
|
||
- Es koennen wie auf der Shell die Hochkommata verwendet werden, um Argumente
|
||
zu kapseln (allderings nur die Hochkommata!). Wenn das Hochkomma im
|
||
Argument erscheinen soll, muss es gequotet werden.
|
||
|
||
Beispiele:
|
||
|
||
PROGRAM=/bin/auplay "Arg 1" "Arg 2" Arg3 "Arg\"4"
|
||
PROGRAM=/bin/auplay "Hier kommt der Anrufer:\${2}test"
|
||
PROGRAM=/bin/auplay "Der folgende Ausdruck wird nicht ausgewertet: \\$3"
|
||
|
||
Eine (zwei) Section [NUMBER] (oder [MSN]) kann also wie folgt aussehen:
|
||
|
||
[MSN]
|
||
NUMBER = 4711
|
||
ALIAS = Phone
|
||
ZONE = 1
|
||
START={
|
||
[FLAG]
|
||
FLAGS = IORK
|
||
PROGRAM = /bin/auplay /sounds/ring.au
|
||
INTERVAL= 1
|
||
TIME = 8-14,16-22
|
||
|
||
[FLAG]
|
||
FLAGS = OA
|
||
PROGRAM = /bin/auplay /sounds/money.au
|
||
TIME = 8-14,16-22
|
||
}
|
||
|
||
[NUMBER]
|
||
NUMBER = 0815/1234
|
||
ALIAS = Provider
|
||
ZONE = 2
|
||
START={
|
||
|
||
[FLAG]
|
||
FLAGS = IOCK
|
||
PROGRAM = /bin/popclient_script \$3
|
||
INTERVAL= 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/1234", 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:
|
||
|
||
...
|
||
[VARIABLES]
|
||
CMD1=/bin/auplay
|
||
CMD2=/bin/my_prog
|
||
DIR = /sounds/
|
||
|
||
START={
|
||
[FLAG]
|
||
FLAGS = I|O|R|K
|
||
PROGRAM = $CMD1 ${DIR}ring.au
|
||
INTERVAL= 1
|
||
TIME = 8-14,16-22
|
||
|
||
[FLAG]
|
||
FLAGS = O|A
|
||
PROGRAM = $CMD1 ${DIR}money.au
|
||
TIME = 8-14,16-22
|
||
|
||
[FLAG]
|
||
FLAGS = I|O|C
|
||
PROGRAM = $CMD2 \$1 \$2 \$3
|
||
TIME = 8-14,16-22
|
||
}
|
||
|
||
Die letzte Sektion 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 Gespraech (O), Ereignis CONNECT (C)
|
||
-----------------^^^^^^^
|
||
Nummer des Anrufenden (also Meine)
|
||
Nummer des Angerufenden
|
||
|
||
Die Variablen von isdnlog ($1, $2, ..) kann man ebenfalls 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
|
||
----------------------------------------------
|
||
|
||
[GLOBAL]
|
||
AREACODE = 0815
|
||
COUNTRYCODE = 49
|
||
|
||
[VARIABLES]
|
||
PLAYER = /usr/bin/auplay
|
||
SOUNDS = /usr/sounds
|
||
|
||
START = {
|
||
|
||
[FLAG]
|
||
FLAGS = O R L
|
||
PROGRAM = $PLAYER ${SOUNDS}/unknown_ring.au
|
||
TIME = 8-14,16-22
|
||
|
||
[FLAG]
|
||
FLAGS = IOA
|
||
PROGRAM = $PLAYER ${SOUNDS}/pay.au
|
||
TIME = 8-14,16-22
|
||
|
||
[FLAG]
|
||
FLAGS = IOC U
|
||
PROGRAM = /usr/bin/who_is_it $2 $3
|
||
|
||
[FLAG]
|
||
FLAGS = IOH
|
||
PROGRAM = $PLAYER ${SOUNDS}/hangup.au
|
||
TIME = 8-14,16-22
|
||
|
||
[FLAG]
|
||
FLAGS = IORAH
|
||
PROGRAM = $PLAYER ${SOUNDS}/silent.au
|
||
TIME = 14-16,22-8
|
||
}
|
||
|
||
[MSN]
|
||
NUMBER = 4711
|
||
ALIAS = MSN\#1
|
||
ZONE = 1
|
||
START = {
|
||
|
||
[FLAG]
|
||
FLAGS = I RK
|
||
PROGRAM = $PLAYER ${SOUNDS}/msn1_ring.au
|
||
INTERVAL = 5
|
||
TIME = 8-14,16-22
|
||
}
|
||
|
||
[MSN]
|
||
NUMBER = 4712
|
||
ALIAS = MSN\#2
|
||
ZONE = 1
|
||
START = {
|
||
|
||
[FLAG]
|
||
FLAGS = I RK
|
||
PROGRAM = $PLAYER ${SOUNDS}/msn2_ring.au
|
||
INTERVAL = 5
|
||
TIME = 8-14,16-22
|
||
}
|
||
|
||
[MSN]
|
||
NUMBER = 4713
|
||
ALIAS = MSN\#3
|
||
ZONE = 1
|
||
START = {
|
||
|
||
[FLAG]
|
||
FLAGS = I RK
|
||
PROGRAM = $PLAYER ${SOUNDS}/msn3_ring.au
|
||
INTERVAL = 5
|
||
TIME = 8-14,16-22
|
||
}
|
||
|
||
[NUMBER]
|
||
NUMBER = *40441777
|
||
ALIAS = My_Provider
|
||
ZONE = 4
|
||
INTERFACE= isdn0
|
||
START = {
|
||
|
||
[FLAG]
|
||
FLAGS = OIR
|
||
PROGRAM = $PLAYER ${SOUNDS}/provider_ring.au
|
||
|
||
[FLAG]
|
||
FLAGS = OICU
|
||
PROGRAM = /usr/bin/get.mails.from.provider
|
||
INTERVAL = 300
|
||
|
||
[FLAG]
|
||
FLAGS = OICU
|
||
PROGRAM = /usr/bin/get.news.from.provider
|
||
INTERVAL = 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
|
||
gestartet. Das Programm "get.news.from.provider" wird alle 30 Minuten
|
||
gestartet. Wenn ein 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.
|
||
|
||
|
||
Kommentare in den Konfigurationsdateien isdn.conf, callerid.conf und ~/.isdn:
|
||
-----------------------------------------------------------------------------
|
||
|
||
Es koennen koennen Kommentare an beliebiger Stelle beginnend mit dem Zeichen
|
||
'#' eingefuegt werden (siehe lib/README.Syntax.conffile).
|
||
Diese Kommentare haben den Nachteil, dass sie verschwinden, wenn die Datei
|
||
z.B. vom isdnconf (oder auch vom isdnlog selber) neu geschrieben werden.
|
||
Als Alternative gibt es dort die Moeglichkeit in den Sektionen einfach
|
||
Dummy-Eintraege zu setzen. Diese sind Eintraege, die von isdnlog nicht
|
||
ausgewertet werden, aber trotzdem eingelesen werden und auch wieder geschrieben
|
||
werden.
|
||
|
||
Beispiel
|
||
|
||
[isdnlog]
|
||
comment1 = Pro Tag duerfen max. 100 DM fuer Datenverbindungen ausgegeben \
|
||
werden.
|
||
CHARGEMAX = 100.00
|
||
comment2 = Das Logfile liegt unter /var/log/isdn.log
|
||
logfile = /var/log/isdn.log
|
||
|
||
|
||
Die beiden Eintraege "comment1" und "comment2" bleiben erhalten. auch die
|
||
Reihenfolge bleibt bestehen. Es ist nur darauf zu achten, dass kein
|
||
Eintrag den selben Namen hat. Also zweimal die Zeile "comment" geht nicht.
|
||
Dann wird die erste Zeile durch die zweite ersetzt. Es ist auch darauf zu
|
||
achten, dass der Name des Eintrages nicht schon von isdnlog verwendet wird.
|
||
Also ein Kommentar mit "SI" zu benennen schlaegt fehlt, da dieser Name
|
||
schon reserviert ist.
|
||
|
||
|
||
|
||
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/isdn" 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 "isdn.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.
|
||
|
||
Eine Ueberarbeitung in die neue Syntax ist geplant.
|
||
|
||
|
||
6. Das AVON-Verzeichnis
|
||
-----------------------
|
||
|
||
Ein "make install" installiert im isdnlog-Verzeichnis "/etc/isdn"
|
||
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 "isdn.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/isdn/avon.dir" sowie "/etc/isdn/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
|
||
"isdn.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 "isdn.conf"
|
||
|
||
2. Der Service-Indicator entspricht dem Eintrag in der "isdn.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
|
||
--------------------
|
||
|
||
ACHTUNG: Ab der Version 3.0 kann der isdnlog nur noch als root gestartet werden!
|
||
|
||
Vor dem Start von "isdnlog" muss das D-Channel Q.931 logging des
|
||
HiSax-Treiber eingeschaltet werden. Bis "isdn4linux0.6.6beta" ist dazu
|
||
|
||
hisaxctrl <DriverID> 1 4
|
||
|
||
wobei "<DriverID>" mit dem String zu ersetzen ist, der beim "insmod hisax.o"
|
||
als "id=<DriverID>" angegeben wurde.
|
||
|
||
Wurde keine "id" angegeben, ist beim "hisaxctrl" stattdessen "line0"
|
||
anzugeben.
|
||
|
||
Beim "hisaxctrl" koennen auch noch weitere Debug-Flags eingeschaltet werden,
|
||
isdnlog benoetigt allerdings auf jeden Fall die "4"
|
||
|
||
Nun kann isdnlog mittels:
|
||
|
||
isdnlog [ -av:sp:x:m:l:rt:c:C:w:SVTDPMh:nW:H:f:bL:NFA:2:O:Ki ] [ /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 HiSax- 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.
|
||
|
||
Ebenfalls wird unter dem Verzeichnis /var/lock (LOCKDIR) eine Datei namens
|
||
LCK..'device' angelegt. Auch diese Datei wird bei der Beendigung wieder
|
||
geloescht.
|
||
|
||
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/isdn/isdn.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. Die Datei hat nichts mit der isdn.conf zu tun.
|
||
Hier befinden sich nur Parameter zum starten von isdnlog.
|
||
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 isdn.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")
|
||
Diese Datei wird bei einem "kill -HUP" geschlossen und wieder geoeffnet.
|
||
(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")
|
||
|
||
-OX Angabe einer Datei, an der der Output von Option -mx (stderr) umgelenkt
|
||
werden soll. Nur gueltig mit Option -m zusammen!
|
||
Es ist moeglich parallel die Option -C X zu setzen. Dann wird
|
||
sowohl auf der Console als auch in der Datei die Ausgabe ausgegeben.
|
||
Diese Datei wird bei einem "kill -HUP" geschlossen und wieder geoeffnet.
|
||
(outfile="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 unter START
|
||
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
|
||
Der normale Hangup einer aufgebauten Verbindung erfolgt, wenn
|
||
eine bestimmte Anzahl Sekunden kein Traffic auf der Leitung
|
||
stattfand. (Der Parameter dafuer ist "huptimeout").
|
||
Viele Telefonanbieter rechnen aber in variablen (Deutsche
|
||
Telekom) oder anderen Zeitintervallen (Minuten) ab. In diesen
|
||
Faellen ist es sinnvoller, die angefangene Einheit oder Minute
|
||
voll auszuschoepfen. Diese Moeglichkeit wird mit dem
|
||
"chargeint" (Gebuehrenintervall)-Parameter von isdnctrl
|
||
angeboten (Siehe auch Abschnitt 13: Chargeint)
|
||
|
||
Mit dem Parameter -h 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 "isdn.conf" :
|
||
|
||
[NUMBER]
|
||
NUMBER = 4711
|
||
ALIAS = UUnet
|
||
ZONE = 3
|
||
INTERFACE = isdn0
|
||
|
||
Erfolgt nun ein Verbindungsaufbau Richtung UUnet, 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 huptimeout isdn0 X
|
||
isdnctrl chargeint isdn0 Y
|
||
ab. Das Gebuehrenintervall ("Y") wird automatisch berechnet.
|
||
Mit X ist gemeint, wie lange vor Ablauf des aktuellen Taktes
|
||
kein Traffic auf der Leitung gewesen sein darf, damit
|
||
aufgelegt wird. Je niedriger dieser Wert ist, desto eher wird bei
|
||
kurzen Pausen aufgelegt. Der -h Parameter laesst sich mit zwei Werten
|
||
angeben: Einem fuer Taktzeiten unter 20 Sekunden, einem fuer
|
||
Taktzeiten ueber 20 Sekunden.
|
||
|
||
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.
|
||
|
||
-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. Hierbei koennen beliebig viele, jeweils durch ein ":"
|
||
getrennte Amtsholungen angegeben werden, also z.B.
|
||
-A0:80:81:82:83:84:85:86:87:88:89
|
||
(amt="value")
|
||
|
||
-2x Dual-Mode. isdnlog empfaengt die D-Kanal-Frames der anderen
|
||
Geraete auf dem S0-Bus ueber eine zweite, falsch angeschlossene
|
||
ISDN-Karte.
|
||
Mit x = 2 zeigt isdnlog auch jede Kleinigkeit - wie z.b. jedes
|
||
einzelne gewaehlte Digit beim Telefonieren direkt an.
|
||
(dual="value")
|
||
|
||
-K isdnlog zeigt bei Betaetigung der Taste <l> eine Liste der letzten
|
||
Anrufer an. (History)
|
||
Kann nicht zusammen mit Option -d verwendet werden!
|
||
(keyboard={yes|no})
|
||
|
||
-ix isdnlog laeuft an einem internen S0-Bus
|
||
Mit x wird dabei die Mindestanzahl Ziffern fuer eine externe
|
||
Telefonnummer angegeben. Arbeitet die Anlage also z.b. mit 2-stelligen
|
||
internen Teilnehmernummern. sollte hier 3 angegeben werden.
|
||
(interns0="value")
|
||
|
||
-Bx Angabe der Vorwahl, die eine Verbindungsnetzbetreiberauswahlnummer
|
||
einleitet. In Deutschland ist dies "010", in Holland hingegen
|
||
"16" oder "17". Gibt es (wie in Holland) mehrere, m<>ssen diese
|
||
durch ein ":" getrennt angegeben werden, also
|
||
-B16:17
|
||
(vbn="value")
|
||
|
||
-Rx Angabe der Verbindungsnetzbetreiberauswahlnummer der Telefongesellschaft,
|
||
auf die man preselected ist. Hierbei ist 010 wegzulassen, d.h. z.b.
|
||
bei Arcor ist -R70 anzugeben.
|
||
Fehlt diese Angabe, wird 33, d.h. die Deutsche Telekom angenommen.
|
||
(preselected="value")
|
||
|
||
-0x Beliebiges Unterdruecken vorlaufender Zeichen. Haengt isdnlog an dem
|
||
internen S0-Bus einer TK-Anlage, und ist es nicht moeglich, isdnlog
|
||
mit seiner internen Logik sowie der "-A" Option dazu zu ueberreden,
|
||
Deutschland und Ausland auseinanderzuhalten, kann hiermit die
|
||
gesamte interne Logik uebersteuert werden.
|
||
|
||
Der Option "-0" sind zwei, durch ein ":" getrennte Ziffern zu
|
||
uebergeben. Diese geben an, wieviele vorlaufende Zeichen von der
|
||
Tk-Anlage isdnlog bei rein- sowie rausgehenden Gespraechen entfernen
|
||
soll.
|
||
|
||
Beispiel:
|
||
|
||
Meine TK-Anlage signalisiert bei einem reinkommenden Gespraech
|
||
aus Hamburg diese Nummer als "00040..." Bei einem rausgehenden
|
||
Gespraech nach Hamburg wird die Nummer als "0040..." signalisiert.
|
||
|
||
Da eine Nummer innerhalb Deutschlands ohne fuehrende "0"
|
||
weiterverarbeitet wird (bei einer Nummer im Ausland muss eine
|
||
fuehrende "0" uebrigbleiben), muessen dementsprechend bei
|
||
reinkommenden Gespaechen 3, bei rausgehenden Gespraechen 2
|
||
vorlaufende "0" entfernt werden, um die Normalform zu erreichen.
|
||
|
||
Somit waere in diesem Fall die Option "-03:2" korrekt. Links
|
||
vom ":" wird die Anzahl Ziffern fuer reinkommende, rechts vom
|
||
":" die Anzahl Ziffern fuer rausgehende Gespaeche angegeben.
|
||
Wird nur ein Argument angegeben, wird fuer reinkommende wie
|
||
rausgehende Verbindungen diese Anzahl verwendet, d.h. "-01"
|
||
bedeutet dasselbe wie "-01:1".
|
||
|
||
Wird die Option "-0" verwendet, darf die "-A" Option nicht verwendet
|
||
werden, da auch diese ja vorlaufende "0" entfernt!
|
||
(trim="value:value")
|
||
|
||
Auch eine Amtholung wie z.b. "#0" l<><6C>t sich damit entfernen!
|
||
|
||
|
||
-o Auch die causes (Hinweise, wie z.b. "non-selected user clearing")
|
||
anderer Geraete werden angezeigt. Ohne diese Option werden nur
|
||
die causes der an der Verbindung beteiligten Geraete angezeigt.
|
||
(other={yes|no})
|
||
|
||
-ux Unterdruecken von "unwichtigen" Frames.
|
||
Fuer "x" kann angegeben werden:
|
||
1 = keine RR (Receiver ready) Frames.
|
||
2 = keine EMP (Euracom Management Protokoll) Frames.
|
||
(ignoreRR="value")
|
||
|
||
-Ux Ignorieren der COLP/CLIP Frames.
|
||
(ignoreCOLP="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 UUnet 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 UUnet 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 UUnet 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 UUnet 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 UUnet 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 [ -ac:d:f:hinop:s:t:uvw:NVF: ]
|
||
|
||
Der isdnrep kann seit der Version 3.0 die Ausgabe im HTML-Format erzeugen.
|
||
Dieses kann ueber zwei Wege erreicht werden:
|
||
- Option -wX
|
||
- Der Name des isdnrep hat die Endung ".cgi" (z.B. isdnrep.cgi). Diese
|
||
entspricht der Option -w1. Man kann also z.B. einen Link auf
|
||
den isdnrep machen: ln -s isdnrep isdnrep.cgi
|
||
|
||
Wenn das Programm mit der Extension ".cgi" gestartet wird, koennen ihm
|
||
Parameter mit der URL ueberreicht werden:
|
||
|
||
http://localhost/isdnrep.cgi?-t8+-v
|
||
^--- representiert ein Blank zwischen Parametern
|
||
^------- representiert ein Blank zwischen dem
|
||
Prorammnamen und dem ersten Parameter
|
||
|
||
Alternativ kann man auch ein Shellscript mit der Endung ".cgi" schreiben,
|
||
von dem aus der isdnrep gestartet wird:
|
||
|
||
Beispiel:
|
||
|
||
-------------------------------------------------
|
||
#!/bin/sh
|
||
isdnrep -w1 -t `date +%m` $@ # Monatliche Anzeige
|
||
-------------------------------------------------
|
||
|
||
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")
|
||
|
||
-h "no header" Es wird weder fuer jeden Tag der Header angegeben,
|
||
noch wird die Tages-/Gesamtzusammenfassung der
|
||
Gespraeche und Gebuehren angezeigt.
|
||
Dieses ist sinnvoll, wenn man den Output in ein
|
||
anderes Programm einlesen will.
|
||
Diese Option hat keine Funktion, wenn der isdnrep
|
||
ebenfalls mit der Option -wX aufgerufen wurde.
|
||
|
||
-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 : als CityCall vermuten
|
||
-c 2 : als RegioCall vermuten
|
||
-c 3 : als GermanCall 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/isdn/isdn.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.
|
||
|
||
-u "unknown caller"
|
||
Zeigt am Ende alle Nummern an, die nicht in der
|
||
callerid.conf oder ~/.isdn eingetragen sind.
|
||
Diese Option laeuft nicht bei der Ausgabe im HTML-Format.
|
||
|
||
-wX "WWW" Der isdnrep kann die Ausgabe im HTML-Format erzeugen.
|
||
dieses wird mit der Option -w erreicht. Es gibt dort zwei
|
||
Modi:
|
||
0 Es wird der HTML-Header unterdrueckt. Dieses ist
|
||
sinnvoll, wenn die Ausgabe des isdnrep in eine
|
||
bestehende Seite eingebettet werden soll.
|
||
1 Es wird eine eigenstaendige Seite im HTML-Format
|
||
erzeugt.
|
||
|
||
-sX "format string"
|
||
Die Ausgabe des isdnrep kann beeinflusst werden, indem
|
||
im Formatstring angegeben wird, welche Informationen
|
||
pro Verbindung angezeigt werden sollen. Die Syntax
|
||
entspricht dem printf. Folgende Platzhalter sind bekannt:
|
||
|
||
%X: Die Zeit ohne Datum (z.B. 23:54:06)
|
||
%x: Das Datum (z.B. 05/07/97)
|
||
%y: Datum ohne Jahresangabe (z.B. Sun May 04)
|
||
%Y: Das Jahr, vierstellig (z.B. 1997)
|
||
|
||
%D: Gespraechsdauer (z.B. 00:03:34)
|
||
%j: Der Name des Providers, ueber den diese Verbindung
|
||
gelaufen ist (der Telefon-Carrier)
|
||
%H: Die eigene MSN, wenn ein Eintrag in der callerid.conf
|
||
gefunden wurde wird dort das Alias angezeigt.
|
||
Es sollte die Precision angegeben werden!
|
||
%h: Die eigene MSN (kein Alias, nur die Nummer)
|
||
Es sollte die Precision angegeben werden!
|
||
%F: Der andere Gesprachsteilnehmer, wenn ein Eintrag in
|
||
der callerid.conf gefunden wurde wird dort das Alias
|
||
angezeigt.
|
||
Es sollte die Precision angegeben werden!
|
||
%f: Der andere Gesprachsteilnehmer (kein Alias, nur die
|
||
Nummer)
|
||
Es sollte die Precision angegeben werden!
|
||
%L: Gibt den Ort aus fuer die eigene MSN falls bekannt,
|
||
sonst ein Leerstring.
|
||
Es sollte die Precision angegeben werden!
|
||
%l: Gibt den Ort aus fuer den anderen Gesprachsteilnehmer
|
||
falls bekannt, sonst ein Leerstring.
|
||
Es sollte die Precision angegeben werden!
|
||
%T: Gibt den Pfeil an zwischen den Nummern ("->" oder "<-")
|
||
fuer die Gespraechsrichtung. Die eigene MSN
|
||
sollte hierbei immer links vom Pfeil stehen.
|
||
%t: Gibt den Pfeil an zwischen den Nummern ("->" oder "<-")
|
||
fuer die Gespraechsrichtung. Die eigene MSN
|
||
sollte hierbei immer rechts vom Pfeil stehen.
|
||
|
||
%u: Gibt die Einheiten aus, falls vorhanden (z.B. 6 EH)
|
||
Es sollte die Precision angegeben werden!
|
||
%U: Gibt die Gebuehren aus, falls vorhanden (z.B. 2,28 DM)
|
||
%I: Gibt den INPUT-Datendurchsatz an.
|
||
%O: Gibt den OUTPUT-Datendurchsatz an.
|
||
%P: Gibt den INPUT-Datendurchsatz pro Sekunde an.
|
||
%p: Gibt den OUTPUT-Datendurchsatz pro Sekunde an.
|
||
%S: Gibt die SI an.
|
||
%G: Gibt ein Link auf die entsprechenden Faxe fuer
|
||
diese Verbindung an. Diese koennen dann angesehen
|
||
werden. Die Faxe muessen allerdings mit mgetty
|
||
empfangen worden sein.
|
||
Diese Option geht nur mit der Option -wx
|
||
Weitere Informationen weiter unten.
|
||
%C: Gibt ein Link auf den entsprechenden gespeicherten
|
||
Anruf vom vbox an.
|
||
Diese Option geht nur mit der Option -wx
|
||
Weitere Informationen weiter unten.
|
||
|
||
|
||
Defaultmaessig ist der folgende String fuer den isdnrep
|
||
(nicht HTML) eingestellt:
|
||
|
||
" %X %D %15.15H %T %-15.15F %7u %U %I %O"
|
||
|
||
Mit dem folgenden String hat man alle wichtigen Daten
|
||
ueber 80 Zeichen pro Zeile:
|
||
|
||
"%X%D %10.10H%T%-14.14F%U%I %O"
|
||
|
||
Der oben genannte String wird bei der Installation
|
||
in der isdn.conf unter REPFMTSHORT abgelegt und kann mit
|
||
-Fshort verwendet werden.
|
||
|
||
-FX "format" Es koennen in der Datei isdn.conf Format-Strings definiert
|
||
werden. Diese koennen mit Option -F verwendet werden.
|
||
Unter der Sektion [ISDNLOG] kann es Eintraege namens
|
||
"REPFMTxxx" existieren. Der String nach der Option -F
|
||
muss identisch sein mit "xxx". Beispiel:
|
||
|
||
REPFMT1 = ... # -> isdnrep -F1
|
||
REPFMTMYSTRING = ... # -> isdnrep -Fmystring oder
|
||
# isdnrep -F MYSTRING
|
||
|
||
-Rx Angabe der Verbindungsnetzbetreiberauswahlnummer
|
||
der Telefongesellschaft, auf die man preselected ist.
|
||
Hierbei ist 010 wegzulassen, d.h. z.b.
|
||
bei Arcor ist -R70 anzugeben.
|
||
Fehlt diese Angabe, wird 33, d.h. die Deutsche Telekom
|
||
angenommen.
|
||
|
||
|
||
Abspielen von Anrufen vom vbox und Anzeigen von Faxen vom mgetty im HTML-Format
|
||
-------------------------------------------------------------------------------
|
||
|
||
Unter HTML kann der isdnrep die Dateien von den Programmen
|
||
finden und sie dem entsprechenden Anruf zuordnen. Diese koennen dann via einem
|
||
Link aufgerufen werden z.B. mit dem Netscape.
|
||
Dazu sind allerdings noch einige Einstellungen noetig.
|
||
|
||
Anrufbeantworter abspielen
|
||
--------------------------
|
||
Wenn dieses im Formatstring mit %C eingetragen wurde unter REPFMTWWW= ... %C ...
|
||
Dann wird isdnrep die entsprechenden Gespraeche mit einem Link hinterlegen,
|
||
die dann abgerufen werden koennen.
|
||
|
||
Dazu wird in der isdn.conf unter Sektion [ISDNLOG] folgender Eintrag benoetigt:
|
||
|
||
VBOXPATH= /var/spool/vbox/fred/incoming #Pfad zum Incoming-Verzeichnis vom vbox.
|
||
|
||
Nun kann der isdnrep diese Dateien finden. Wird nun der Link angeklickt,
|
||
wird die Datei direkt uebermittelt. Die Datei besteht aus dem Zyxel-Format.
|
||
Dieses kann der Browser nicht selber erkennen. Also muss
|
||
dieser Typ ergaenzt werden. isdnrep uebertraegt folgende Zeile am Anfang:
|
||
|
||
Content-Type: application/x-zyxel4
|
||
|
||
Hier muss man also noch die entsprechende Applikation im Browser eintragen,
|
||
damit die Datei erkannt werden kann.
|
||
|
||
Alternativ kann man aber auch dem isdnrep ein Programm mitteilen, dass das
|
||
Zyxel-Format umwandelt. Dieses Programm bekommt einen Parameter mit. Dieser
|
||
Parameter enthaelt die zu uebertragende Datei:
|
||
|
||
program /play/file
|
||
|
||
Dieses teilt man dem isdnrep wieder ueber die Datei isdn.conf mit. Es muss
|
||
dort unter [ISDNLOG] der Eintrag
|
||
|
||
VBOXCMD1 = /usr/bin/program1
|
||
|
||
fuer Version 0.x und 1.x vom vbox
|
||
und
|
||
|
||
VBOXCMD2 = /usr/bin/program2
|
||
|
||
fuer Version 2.x vom vbox
|
||
eingefuegt werden. Es koennen auch beide gesetzt sein, da der isdnrep selber
|
||
erkennt, welches Format die entsprechende Datei hat.
|
||
|
||
Das Programm muss zuerst den Datei-Typ und die Sound-Datei auf stdout ausgeben.
|
||
Um das Zyxel-Format in eine WAVE-Datei auszugeben, kann man folgende Skripte
|
||
verwenden:
|
||
|
||
Fuer Version 0.x und 1.x:
|
||
-----------------------------------------------------------
|
||
#! /bin/sh
|
||
##
|
||
## Kommando zum abspielen von Voicenachrichten vom vbox-1.0
|
||
##
|
||
## ACHTUNG! Wenn die Pfade falsch gesetzt sind oder fehlen,
|
||
## stuerzt netscape einfach ab!
|
||
|
||
PATH=$PATH:"Pfad zum sox":"Pfad zu den pvftools"
|
||
FILENAME1=/tmp/voxplay.$$.voc
|
||
FILENAME2=/tmp/voxplay.$$.wav
|
||
VOLUME=8
|
||
|
||
zyxeltopvf < $1 | \
|
||
pvfspeed 0.8 | \
|
||
pvfamp $VOLUME | \
|
||
pvfcut 0.20 | \
|
||
pvftovoc > $FILENAME1
|
||
|
||
sox $FILENAME1 $FILENAME2
|
||
|
||
echo Content-Type: audio/x-wav
|
||
echo
|
||
cat $FILENAME2
|
||
|
||
rm -f $FILENAME1 $FILENAME2
|
||
-----------------------------------------------------------
|
||
|
||
Fuer Version 2.x:
|
||
-----------------------------------------------------------
|
||
#! /bin/sh
|
||
##
|
||
## Kommando zum abspielen von Voicenachrichten vom vbox-2.0
|
||
##
|
||
## ACHTUNG! Wenn die Pfade falsch gesetzt sind oder fehlen,
|
||
## stuerzt netscape einfach ab!
|
||
|
||
PATH=$PATH:"Pfad zum sox":"Pfad zu den pvftools":"Pfad zum vbox"
|
||
FILENAME1=/tmp/voxplay.$$.voc
|
||
FILENAME2=/tmp/voxplay.$$.wav
|
||
VOLUME=8
|
||
|
||
vboxtoau <$1 | \
|
||
autopvf | \
|
||
pvfamp $VOLUME | \
|
||
pvfcut 0.20 | \
|
||
pvftovoc > $FILENAME1
|
||
|
||
sox $FILENAME1 $FILENAME2
|
||
|
||
echo Content-Type: audio/x-wav
|
||
echo
|
||
cat $FILENAME2
|
||
|
||
rm -f $FILENAME1 $FILENAME2
|
||
-----------------------------------------------------------
|
||
|
||
Die obigen Skripte benoetigen die Pakete sox und pvftools.
|
||
Es ist darauf zu achten, dass die benoetigten Programme im Pfad stehen.
|
||
Andernfalls quittiert netscape 3.0 gold (alpha??) dieses mit einem "bus error".
|
||
|
||
Damit der Browser etwas mit dem Typ "audio/x-wav" anfangen kann, muss
|
||
an den folgenden Dateien noch Zeilen angefuegt werden:
|
||
|
||
~/.mime.types
|
||
-----------------------------------------------------------
|
||
type=audio/x-wav \
|
||
desc="auWAV Audio" \
|
||
exts="wav"
|
||
-----------------------------------------------------------
|
||
|
||
~/.mailcap:
|
||
-----------------------------------------------------------
|
||
audio/x-wav;/usr/bin/auplay %s
|
||
-----------------------------------------------------------
|
||
|
||
Hierzu muss das Paket NAS installiert sein.
|
||
|
||
Wenn jetzt der Browser gestartet wird, kann er diese Dateien vom Typ WAVE
|
||
erkennen und das entsprechende Programm starten.
|
||
Wird vom isdnlog jetzt der Link zu einer Anruf, angeklickt, wird die Datei
|
||
abgespielt.
|
||
|
||
Das Format WAVE wurde aus dem Grund ausgewaehlt, da dieses auch unter
|
||
Windows abspielbar ist.
|
||
|
||
Anzeigen von Faxen vom mgetty
|
||
-----------------------------
|
||
|
||
Hierzu muss im Formatstring %G eingetragen werden. Dann werden alle Seiten
|
||
einzeln, die zu diesem Fax gehoeren durch einen eigenen Link dargestellt.
|
||
|
||
Diese laeuft analog zur vbox-Einstellungen.
|
||
Es muss also der Pfad zu den Fax-Dateien dem isdnrep mitgeteilt werden:
|
||
|
||
...
|
||
[ISDNLOG]
|
||
MGETTYPATH = /var/spool/fax/incoming
|
||
...
|
||
|
||
ACHTUNG: Wenn der isdnrep keine Berechtigung zum Lesen der Datei(en) hat,
|
||
werden diese auch nicht angezeigt. Es wird auch keine Fehlermeldung erscheinen.
|
||
Wenn also keine Dateien vom isdnrep angezeigt werden, sind haeufig die Rechte
|
||
an der Datei falsch.
|
||
|
||
Wenn isdnrep diese Dateien an den Browser uebertraegt (oder besser der HTTPD),
|
||
dann haben diese das G3-Format. Der isdnrep uebertraegt daher das Header-Type
|
||
folgende Zeile:
|
||
|
||
Content-Type: application/x-faxg3
|
||
|
||
Da dieses der Browser nicht kennt, muessen wiederum folgendende Eintraege
|
||
an den Dateien des Browsers ergaenzt werden:
|
||
|
||
~/.mime.types
|
||
-----------------------------------------------------------
|
||
type=application/x-faxg3 \
|
||
desc="G3-Fax Format" \
|
||
exts="fax,g3"
|
||
-----------------------------------------------------------
|
||
|
||
~/.mailcap:
|
||
-----------------------------------------------------------
|
||
application/x-faxg3;/usr/X11/bin/g3view %s
|
||
-----------------------------------------------------------
|
||
|
||
Hierzu muss das Programm g3view installiert sein.
|
||
|
||
Wird jetzt der Link verfolgt, wird automatisch vom Browser das externe Programm
|
||
g3view gestartet.
|
||
|
||
Wenn man auch hier nicht mit dem G3-Format einverstanden ist, kann man z.B.
|
||
auch das JPEG-Format dem Browser uebermitteln lassen. Hierzu sollte man
|
||
dann folgenden Eintrag fuer das Konvertierungsskript in die isdn.conf
|
||
eintragen:
|
||
|
||
...
|
||
[ISDNLOG]
|
||
VBOXCMD = /usr/bin/g3tojpeg # Beispielpfad
|
||
...
|
||
|
||
ACHTUNG: Wenn der isdnrep keine Berechtigung zum Lesen der Datei(en) hat,
|
||
werden diese auch nicht angezeigt. Es wird auch keine Fehlermeldung erscheinen.
|
||
Wenn also keine Dateien vom isdnrep angezeigt werden, sind haeufig die Rechte
|
||
an der Datei falsch.
|
||
|
||
Dann sollte die Datei /usr/bin/g3tojpeg wie folgt aussehen:
|
||
|
||
-----------------------------------------------------------
|
||
#! /bin/sh
|
||
##
|
||
## Kommando zum anzeigen von Faxen unter einem Browser
|
||
##
|
||
## ACHTUNG! Wenn die Pfade falsch gesetzt sind oder fehlen,
|
||
## stuerzt netscape einfach ab!
|
||
|
||
export PATH=$PATH:"Pfad zu g3topbm":"Pfad zu convert"
|
||
|
||
echo Content-Type: image/jpeg
|
||
echo
|
||
|
||
g3topbm < $1 | convert pbm:- jpeg:-
|
||
-----------------------------------------------------------
|
||
|
||
Es werden hierfuer die Pakete ImageMagick und mgetty (sollte wohl vorhanden
|
||
sein!) benoetigt.
|
||
|
||
Wenn jetzt der Link angeklickt wird, wird das Fax im Browser angezeigt.
|
||
|
||
Das Format JPEG wurde aus dem Grund ausgewaehlt, da dieses auch unter
|
||
Windows angezeigt werden kann.
|
||
|
||
Ein Beipspiel fuer REPFMTWWW:
|
||
|
||
REPFMTWWW = "%X %D %17.17H %T %-17.17F %-20.20l SI: %S %9u %U %I %O %G %C"
|
||
|
||
Falls jemand andere/bessere Skripte/Loesungen hat, sollte er sie unbedingt an
|
||
|
||
akool@isdn4linux.de
|
||
|
||
senden, damit diese in der naechsten Version vom isdnlog aufgenommen werden
|
||
koennen.
|
||
|
||
Als Browser wurden von mir der netscape 3.0 gold und arena verwendet. Beide
|
||
arbeiten mit der Ausgabe vom isdnrep. Allerdings war die Ausgabe vom arena
|
||
nicht so farbenpraechtig, wie die vom netscape.
|
||
|
||
Bekannte und unloesbare Probleme sind die Zuordnung von einem Anruf zu einem
|
||
Fax oder vbox-Call. Leider sind die Zeiten des Anrufsbeginn unterschiedlich
|
||
zwischen isdnrep, mgetty und vbox. Daher versucht der isdnrep die beste
|
||
Annaeherung zu erreichen. Es kann aber immer passieren, dass z.B. ein Fax
|
||
dem falschen Anruf zugeordnet wurde.
|
||
|
||
Anzeige der isdnrep
|
||
-------------------
|
||
|
||
Es wird nun auf stdout eine Abrechnung mit folgender Default-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 : CityCall 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,
|
||
CityCall, 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/isdn/callerid.conf
|
||
sowie ~/.isdn.
|
||
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.
|
||
|
||
Dieses Programm hat seine Staerken als ein Suchprogramm in einem persoenlichem
|
||
Telefonbuch.
|
||
|
||
ACHTUNG:
|
||
|
||
Dieses Programm besitzt zwar die Faehigkeit, die Nummerndateien zu veraendern.
|
||
Defaultmaessig wird die Datei ~/.isdn editiert. Es kann auch mit den Schaltern
|
||
-f und -g eine andere Datei verwendet werden.
|
||
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.
|
||
|
||
Das Utility "isdnconf" kann weiterhin zur gezielten Befragung der
|
||
Tarifdatenbank eingesetzt werden. Dazu gilt folgende Syntax:
|
||
|
||
isdnconf -c <Ziel>[,Dauer]
|
||
|
||
Wird keine Dauer (L<>nge der Verbindung) angegeben, nimmt isdnconf
|
||
153 Sekunden an.
|
||
|
||
"isdnconf" blickt immer von "hier", d.h. dem Ort, in dem man sich
|
||
aktuell befindet (oder genauer, dem Ort, der durch die Eintraege
|
||
COUNTRYCODE sowie AREACODE in der Config-Datei angegeben wurden).
|
||
|
||
|
||
Als Ziel darf entweder ein ".", eine Telefonnummer oder eine
|
||
Landesbezeichnung angegeben werden.
|
||
|
||
Bei einem "." gibt isdnconf eine 7 Tage/24-Stunden LCR-Tabelle aus, die man
|
||
sich z.b. neben das Telefon legen kann:
|
||
|
||
$ isdnconf -c .
|
||
Least-Cost-Routing-Table [Verbindungsdauer:153 Sekunden]:
|
||
|
||
Werktag:
|
||
RegioCall:
|
||
07:00 .. 07:59 01055:Esprit (DEM 0.050/60.0s = DEM 0.050/Min (Esprit, Region 50, Workday (Thursday), Late night))
|
||
08:00 .. 08:59 01070:Arcor CbC (DEM 0.075/60.0s = DEM 0.075/Min (Arcor CbC, Regio Plus, Workday (Thursday)))
|
||
09:00 .. 17:59 01051:01051 (DEM 0.090/60.0s = DEM 0.090/Min (01051, Ferngespr<70>che, Workday (Thursday)))
|
||
18:00 .. 18:59 01070:Arcor CbC (DEM 0.075/60.0s = DEM 0.075/Min (Arcor CbC, Regio Plus, Workday (Thursday)))
|
||
19:00 .. 19:59 01013:Tele 2 (DEM 0.070/60.0s = DEM 0.070/Min (Tele 2, National, Workday (Thursday)))
|
||
20:00 .. 20:59 01078:3U (DEM 0.001/1.0s = DEM 0.059/Min (3U, Fern, Workday (Thursday)))
|
||
21:00 .. 21:59 01070:Arcor CbC (DEM 0.040/60.0s = DEM 0.040/Min (Arcor CbC, Regio Plus, Workday (Thursday)))
|
||
22:00 .. 06:59 01019:Mobilcom CbC (DEM 0.040/60.0s = DEM 0.040/Min (Mobilcom CbC, Ferngespr<70>che bundesweit, Workday (Thursday), Nacht))
|
||
...
|
||
|
||
D.h. es wird ausgegeben, ueber welchen Provider um welche Uhrzeit eine
|
||
Verbindung am guestigsten ist.
|
||
|
||
Daneben kann eine Telefonnummer angegeben werden, woraufhin isdnconf
|
||
die Tarife der einzelnen Provider fuer eine Verbindung "jetzt gerade"
|
||
ausgibt:
|
||
|
||
$ isdnconf -c +4989
|
||
Ein 153 Sekunden langes Gespraech nach Muenchen (Zone 4) kostet am Thu May 6 21:52:24 1999
|
||
01055 DEM 0.150 (DEM 0.050/60.0s = DEM 0.050/Min (Esprit, Fern, Workday (Thursday), Late night))
|
||
01078 DEM 0.150 (DEM 0.001/1.0s = DEM 0.059/Min (3U, Fern, Workday (Thursday)))
|
||
01030 DEM 0.153 (DEM 0.001/1.0s = DEM 0.060/Min (TelDaFax, Deutschland, Workday (Thursday)))
|
||
|
||
$ isdnconf -c +45
|
||
Ein 153 Sekunden langes Gespraech nach Daenemark (+45) kostet am Thu May 6 21:54:21 1999
|
||
01078 DEM 0.660 (DEM 0.004/1.0s = DEM 0.259/Min (3U, Daenemark,Finnland,Frankreich,Schweiz))
|
||
01013 DEM 1.170 (DEM 0.390/60.0s = DEM 0.390/Min (Tele 2, Euro 1 / USA, Kanada))
|
||
01019 DEM 1.470 (DEM 0.490/60.0s = DEM 0.490/Min (Mobilcom CbC, Gruppe A))
|
||
01033 DEM 1.920 (DEM 0.120/10.0s = DEM 0.720/Min (DTAG, Euro 1))
|
||
|
||
Last but not least kann anstelle einer Telefonnummer eine Landesbezeichnung
|
||
angegeben werden:
|
||
|
||
$ isdnconf -c Italien
|
||
Ein 153 Sekunden langes Gespraech nach Italien (+39) kostet am Thu May 6 21:56:17 1999
|
||
01078 DEM 0.915 (DEM 0.006/1.0s = DEM 0.359/Min (3U, Zone 110))
|
||
01013 DEM 1.170 (DEM 0.390/60.0s = DEM 0.390/Min (Tele 2, Euro 1 / USA, Kanada))
|
||
01019 DEM 1.470 (DEM 0.490/60.0s = DEM 0.490/Min (Mobilcom CbC, Gruppe A))
|
||
|
||
Anstelle einer Telefonnummer kann auch direkt eine Zone angegeben werden:
|
||
|
||
$ isdnconf -c .<Zone>
|
||
|
||
Ein 153 Sekunden langes Gespraech in Zone 8 kostet am Tue May 11 09:07:58 1999
|
||
01078 DEM 1.068 (DEM 0.007/1.0s = DEM 0.419/Min (3U, Zone 8, Workday (Thuesday)))
|
||
01098 DEM 1.170 (DEM 0.008/1.0s = DEM 0.459/Min (Mox, Fest-zu-Mobil))
|
||
01030 DEM 1.224 (DEM 0.008/1.0s = DEM 0.480/Min (TelDaFax, C/D/E-Netz))
|
||
01019 DEM 1.470 (DEM 0.490/60.0s = DEM 0.490/Min (Mobilcom CbC, Mobilfunk))
|
||
01079 DEM 1.861 (DEM 0.012/1.0s = DEM 0.730/Min (Viatel, Deutschland GSM, Workday (Thuesday), Standard))
|
||
|
||
Hier sind bislang folgende einheitliche Zonen moeglich:
|
||
|
||
0 : Verbindungen an der eigenen Tk-Anlage (zwangslaeufig kostenlos)
|
||
sowie alle "FreeCall" (kostenlos) Nummern des jeweiligen Providers
|
||
1 : Ortszone (alle Nummern, die ohne Vorwahl erreichbar sind.
|
||
Z.Zt. nur ueber den preselected Provider erreichbar)
|
||
2 : Cityzone (Nummern im Umkreis von max. 20 km)
|
||
3 : Region 50 (Nummern im Umkreis von max. 50 km)
|
||
4 : Fernzone (Deutschlandweit)
|
||
5 : C-Mobilbox
|
||
6 : C-Netz
|
||
7 : D1-Netz
|
||
8 : D2-Netz
|
||
9 : E-plus-Netz
|
||
10 : E2-Netz
|
||
20 : Internet
|
||
21 : Auskunft Inland
|
||
22 : Auskunft Ausland
|
||
|
||
|
||
Hier nun die Optionen des Programmes:
|
||
|
||
Befehle:
|
||
|
||
-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/isdn/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/isdn/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 Ortsbezeichnung sowie die Gebuehrenzone
|
||
(relativ zum eigenen Standort, d.h. dem Eintrag
|
||
AREACODE in der "callerid.conf") zu der Telefonnummer
|
||
"code".
|
||
Daneben wird ausgegeben, ueber welchen Provider
|
||
jetzt gerade eine (153 Sekunden lange) Verbindung
|
||
zu dieser Nummer am guenstigsten waere.
|
||
Gilt nicht fuer -A und -D.
|
||
(153 Sekunden als gedachte Dauer der Verbindung
|
||
wurde gewaehlt, da es sich um den statistischen
|
||
Durchschnitt eines typischen Telefonats handelt,
|
||
und durch diese "krumme" Zahl alle Provider,
|
||
die im Sekunden-Takt abrechnen massiv im Vorteil
|
||
sind - was gewuenscht ist!)
|
||
|
||
-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 (hier fuer -n):
|
||
"*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/isdn/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
|
||
|
||
-g "global" Hat nur Auswirkungen bei den Befehlen -A und -D. Es
|
||
wird dann anstatt der ~/.isdn die Datei
|
||
/etc/isdn/callerid.conf genommen zum editieren.
|
||
|
||
-1 "first" loescht nur den ersten Eintrag oder zeigt nur den
|
||
ersten Eintrag an.
|
||
|
||
-M "isdnmon" liefert den Output fuer den isdnmon.
|
||
|
||
|
||
12. Der X-Client xisdn
|
||
----------------------
|
||
|
||
ACHTUNG: Der xisdn ist noch nicht an die Version 3.0 angepasst. Daher ist der
|
||
Client in dieser Version nicht enthalten. Es kann allerdings nicht
|
||
garantiert werden, ob der xisdn mit der Version 3.0 lauffaehig ist.
|
||
|
||
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/isdn/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 wurden von Georg v.Zezschwitz
|
||
(gvz@pop.de) geschrieben, der "ChargeInt" entwickelt hat. "ChargeInt"
|
||
war lange ein Patch fuer Linux, ist aber mittlerweile voll in
|
||
isdn4linux integriert und wird von isdnlog unterstuetzt (siehe
|
||
Option -h)
|
||
|
||
|
||
Was ist ChargeInt?
|
||
------------------
|
||
|
||
ChargeInt ist ein Feature von isdn4linux. Damit wird eine Taktzeit
|
||
fuer ein ISDN-Interface angegeben, die moeglichst voll ausgenutzt
|
||
werden soll. Ohne isdnlog wird ChargeInt ueber einen Parameter
|
||
von isdnctrl angesprochen: 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
|
||
ekunde 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
|
||
----------------------------
|
||
|
||
Chargeint wird nur dann aktiv, wenn es manuell mit
|
||
|
||
isdnctrl chargeint device Takt
|
||
|
||
aufgerufen wird, oder isdnlog mit der Option -h aufgerufen wird.
|
||
|
||
|
||
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 eher 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, wenn man nicht bei der Telekom oder
|
||
gar Mobilcom, sondern einem Anbieter mit sekundengenauer Abrechnung
|
||
telefoniert.
|
||
|
||
Ueberfluessig ist ChargeInt auch, wenn z.b. Daten im Batch-Betrieb (UUCP
|
||
ueber TCP/IP) abgeholt werden und anschliessend explizit aufgelegt wird.
|
||
|
||
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...
|
||
- generell lieber kurz auflegen wuerden, wenn die Verbindung 1-2
|
||
Minuten nicht gebraucht wird.
|
||
|
||
|
||
Wie konfiguriere ich ChargeInt?
|
||
-------------------------------
|
||
|
||
Eine manuelle Konfiguration von ChargeInt ist nur noetig, wenn
|
||
isdnlog nicht die Steuerung uebernehmen kann, weil z.B. der Anbieter
|
||
mit seinen Gebuehrenintervallen nicht unterstuetzt wird.
|
||
|
||
Wer z.B. grundsaetzlich im Minutenintervall (z.B. Viag-Interkom) oder
|
||
gar 2 Minuten-Intervall (Mobilcom) zahlt, braucht die intelligente
|
||
Steuerung von isdnlog nicht.
|
||
|
||
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 CityCall's huptimeout auf 5 Sekunden, bei GermanCall's
|
||
auf 3 Sekunden.
|
||
|
||
|
||
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/isdn/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/isdn/reload" ausgefuehrt
|
||
Dieser sollte das 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")
|
||
|
||
In der Parameterdatei wird dieses Feature mit
|
||
|
||
watchdog="value"
|
||
|
||
aufgerufen.
|
||
|
||
|
||
14.2 CHARGEMAX
|
||
--------------
|
||
|
||
Mit dem Eintrag
|
||
CHARGEMAX = x
|
||
in der "/etc/isdn/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/isdn/stop" aus (siehe "samples/stop"), der das isdn4linux
|
||
abschalten sollte.
|
||
|
||
|
||
14.3 CONNECTMAX
|
||
---------------
|
||
|
||
Mit dem Eintrag
|
||
CONNECTMAX = x,y
|
||
in der "/etc/isdn/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/isdn/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/isdn/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/isdn/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 ISDN-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 ISDN-Karte ausgestattet, und
|
||
darauf ein 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%echo
|
||
|
||
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.
|
||
Nach heutigem Kenntnisstand ist es nicht moeglich, eine Teles-16.3c
|
||
Karte als Echo-Karte einzusetzen. Ein Grund mehr, diese Karte nicht
|
||
zu kaufen ...
|
||
|
||
|
||
16. SQL-Anbindung
|
||
-----------------
|
||
|
||
16.1. Postgres
|
||
--------------
|
||
|
||
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),
|
||
pay real
|
||
);
|
||
\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.
|
||
|
||
|
||
16.2. MySQL
|
||
-----------
|
||
|
||
Wenn im Konfigurationmenue mysql ausgewaehlt wird, werden alle
|
||
Verbindungsdaten zusaetzlich zur Datei isdn.log in eine Tabelle in der
|
||
Datenbank geschrieben.
|
||
|
||
Der Name der Datenbank, die Tabelle, der SQL-Host, der Username und
|
||
das Passwort werden in der Datei ./isdnlog/mysqldb.h definiert.
|
||
Standardmaessig enthalten sie folgende Werte.
|
||
|
||
DB_HOST = localhost
|
||
DB_NAME = isdn
|
||
DB_USER = isdn
|
||
DB_PASSWD = isdn
|
||
DB_TABLE = isdnlog
|
||
|
||
Zur Erstellung der Datenbank sind folgende Schritte notwendig.
|
||
|
||
# mysqladmin create isdn
|
||
# mysql mysql < grants.txt (Inhalt wird spaeter erlaeutert)
|
||
# mysqladmin reload
|
||
# mysql isdn < table.txt (Inhalt wird spaeter erlaeutert)
|
||
|
||
Inhalt der Datei grants.txt:
|
||
|
||
--
|
||
|
||
INSERT INTO user VALUES ('localhost','isdn',password('isdn'),'N','N','N','N','N','N','N','N','N','N');
|
||
INSERT INTO db VALUES ('localhost','isdn','isdn','N','Y','N','N','N','N');
|
||
|
||
--
|
||
|
||
Inhalt der Datei table.txt:
|
||
|
||
--
|
||
|
||
CREATE TABLE isdnlog (
|
||
sdate date NOT NULL,
|
||
stime time NOT NULL,
|
||
calling varchar(30) NOT NULL,
|
||
called varchar(30) NOT NULL,
|
||
charge int(4) NOT NULL,
|
||
dir char(1) NOT NULL,
|
||
in_bytes int(4) NOT NULL,
|
||
out_bytes int(4) NOT NULL,
|
||
msec int(4) NOT NULL,
|
||
sec int(4) NOT NULL,
|
||
status int(4) NOT NULL,
|
||
service int(4) NOT NULL,
|
||
source int(4) NOT NULL,
|
||
vrsion int(4) NOT NULL,
|
||
factor double(16,4) NOT NULL,
|
||
currency varchar(30) NOT NULL,
|
||
pay double(16,4) NOT NULL,
|
||
provider varchar(30) NOT NULL,
|
||
KEY (sdate,stime),
|
||
KEY (calling,called),
|
||
KEY (pay,provider)
|
||
);
|
||
|
||
--
|
||
|
||
|
||
17. Tarifdatenbank
|
||
------------------
|
||
|
||
Die Tarifdatenbank fuer isdnlog wird bei jedem Neustart von isdnlog aus
|
||
der ASCII-Datei "/usr/lib/isdn/rate-xx.dat" neu generiert.
|
||
|
||
Anstelle von "xx" tritt das jeweilige Laenderkuerzel, also z.b. "de" fuer
|
||
Deutschland oder "at" fuer Oesterreich.
|
||
|
||
Welche Tarifdatei gilt, wird ueber den Eintrag
|
||
|
||
RATEFILE = /usr/lib/isdn/rate-de.dat
|
||
|
||
im Kapitel
|
||
|
||
[ISDNLOG]
|
||
|
||
der Konfigurationsdatei angegeben.
|
||
|
||
Benutzerbezogene Einstellungen an der Tarifdatenbank (wie Auswahl
|
||
eines bestimmten Tarifes eines Providers (z.b. Sekundentakt oder Minutentakt),
|
||
oder auch der konkrete Provider bei Kennzahlen, die von mehreren Providern
|
||
vergeben werden (z.b. 01098 wird von Star, Nikoma, Mox sowie C@llas verwendet)
|
||
werden in der Datei "/etc/isdn/rate.conf" vorgenommen.
|
||
|
||
Diese Datei mu<6D> ueber den Eintrag
|
||
|
||
RATECONF = /etc/isdn/rate.conf
|
||
|
||
im Kapitel
|
||
|
||
[ISDNLOG]
|
||
|
||
der Konfigurationsdatei angegeben werden.
|
||
|
||
Die Datei "rate-xx.dat" wird in einem Durchgang von oben nach unten eingelesen,
|
||
und muss folgenden Aufbau (als Beispiel hier nun Mobilcom) haben:
|
||
|
||
#######################################################################
|
||
P:19 Mobilcom CbC
|
||
C:CityLine Telefondienste GmbH, Schwarzer Weg 13, 24837 Schleswig 01019
|
||
G:06.04.1999
|
||
C:MobilCom AG
|
||
C:Homepage: http://www.mobilcom.de
|
||
C:Hotline: 01805/191919
|
||
C:Adresse: Postfach 1249
|
||
C: 24822 Schleswig
|
||
Z:2-4 Ferngespraeche bundesweit
|
||
T:*/07-19=0.12/60 Standard
|
||
T:*/19-22=0.08/60 Spar
|
||
T:*/22-07=0.04/60 Nacht
|
||
Z:5-10 Mobilfunk
|
||
A:01610,01617,01619,01618 # C
|
||
A:0170,0171 # D1
|
||
A:0172,0173 # D2
|
||
A:0177,0178 # Eplus
|
||
A:0176,0179 # E2
|
||
T:*/*=0.49/60
|
||
Z:14 Gruppe A
|
||
A:+1 # Vereinigte Staaten (USA)
|
||
A:+30 # Griechenland
|
||
A:+31 # Niederlande
|
||
A:+32 # Belgien
|
||
A:+33 # Frankreich
|
||
A:+34 # Spanien
|
||
A:+350 # Gibraltar
|
||
A:+351 # Portugal
|
||
A:+352 # Luxemburg
|
||
A:+353 # Irland
|
||
A:+356 # Malta
|
||
A:+358 # Finnland
|
||
A:+376 # Andorra
|
||
A:+377 # Monaco
|
||
A:+39 # Italien
|
||
A:+41 # Schweiz
|
||
A:+43 # Oesterreich
|
||
A:+44 # Grossbritannien und Nordirland
|
||
A:+45 # Daenemark
|
||
A:+46 # Schweden
|
||
A:+47 # Norwegen
|
||
T:*/*=0.49/60
|
||
Z:20 Internet
|
||
A:01929 # (Benutzername: mobilcom; Passwort: mobilcom)
|
||
T:*/*=0.05/60 FreeNet
|
||
#######################################################################
|
||
|
||
Leerzeilen, sowie Kommentare mittels "#" sind an jeder beliebigen
|
||
Stelle zulaessig.
|
||
|
||
Die Reihenfolge der Eintraege muss zwingend so wie angegeben sein.
|
||
Es ist auch nicht erlaubt, irgend welche Leerzeichen, Tabs o.ae.
|
||
einzufuegen, als Dezimalkomma muss der "." (Punkt) verwendet werden.
|
||
|
||
|
||
Nun die Eintraege im einzelnen:
|
||
|
||
-> V:
|
||
|
||
Hiermit wird die Version der Tarifdatenbank angegeben.
|
||
V:Versionsstring (Vorschlag: 1.0-Germany [18-Mar-1999])
|
||
|
||
-> U:
|
||
|
||
Damit wird das W<>hrungsformat und die Anzahl der Dezimalstellen
|
||
angegeben, z.B.
|
||
U:%.3 DM
|
||
|
||
-> P:
|
||
|
||
Hiermit beginnt die Definition des (naechsten) Providers.
|
||
Es wird die Kennzahl, evtl. eine laufende Nummer sowie die
|
||
Bezeichnung des Providers definiert. Diese Bezeichnung ist moeglichst
|
||
kurz zu halten, da isdnlog diese staendig anzeigt.
|
||
Unter Kennzahl versteht isdnlog hier die Vorwahl vor der eigentlichen
|
||
Telefonnummer, ueber die der jeweilige Anbieter verwendet werden kann.
|
||
In Deutschland sowie Oesterreich mu<6D> z.b.
|
||
|
||
01019 040 4711
|
||
|
||
gewaehlt werden, um die Telefonnummer 4711 in Hamburg (040) ueber den
|
||
Telefondienstanbieter (=Provider) 19 (Mobilcom) zu erreichen.
|
||
|
||
Beispiel:
|
||
|
||
P:19,0 MobilCom
|
||
|
||
Gibt es fuer eine Kennzahl mehrere Alternativen (wie verschiedene Provider
|
||
oder verschiedene Tarife), werden diese hierueber auseinander gehalten.
|
||
Der erste Tarif bekommt "P:xx,0", der naechste "P:xx,1" usw.
|
||
Gibt es keine Alternativen, darf das ",0" entfallen.
|
||
|
||
-> G:
|
||
|
||
Hier wird (im Format tt.mm.jjjj) angegeben, ab wann dieser Tarif gueltig ist.
|
||
Beispiel:
|
||
|
||
G:01.01.1999
|
||
|
||
-> C:
|
||
|
||
Hiermit koennen beliebig viele Kommentare eingefuegt werden, Beispiel:
|
||
|
||
C:Homepage: http://www.mobilcom.de
|
||
C:Hotline: 01805/191919
|
||
C:Adresse: Postfach 1249, 24822 Schleswig
|
||
|
||
Im Gegensatz zu den "#" Kommentaren koennten diese in spaeteren Versionen
|
||
von isdnlog noch gesondert verwendet werden, und sollten daher zumindest
|
||
genug Informationen enthalten, um eine Kontaktaufnahme mit der jeweiligen
|
||
Telefongesellschaft zu ermoeglichen.
|
||
|
||
-> D:
|
||
|
||
Damit wird die Art der Inlandsverzonung (D steht f<>r Domestic) angegeben.
|
||
Der Name wird mit dem Eintrag in der isdn.conf
|
||
|
||
ZONEFILE=/usr/lib/isdn/zone-de-%s.dat
|
||
|
||
zum Pfad zur Verzonungstabelle zusammengebaut. Mehrere Provider k<>nnen
|
||
dieselbe Verzonungstabelle nutzen.
|
||
|
||
Nun folgen die eigentlichen Tarifinformationen. Es wird zuerst die
|
||
Tarifzone, und danach die Kosten innerhalb dieser Zone angegeben. Es koennen
|
||
beliebig viele Zonen, jeweils gefolgt von beliebig vielen Kosten
|
||
angegeben werden.
|
||
|
||
-> Z:
|
||
|
||
Gibt die Zone an. Grundsaetzlich koennen die Zonen vollkommen willkuerlich
|
||
vergeben werden. Dies haengt vom jeweiligen Land und/oder
|
||
Telefondienstprovider ab.
|
||
|
||
Fuer Deutschland habe ich folgende Zonenzuordnung getroffen:
|
||
|
||
0 : Verbindungen an der eigenen Tk-Anlage (zwangslaeufig kostenlos)
|
||
sowie alle "FreeCall" (kostenlos) Nummern des jeweiligen Providers
|
||
1 : Ortszone (alle Nummern, die ohne Vorwahl erreichbar sind.
|
||
Z.Zt. nur ueber den preselected Provider erreichbar)
|
||
2 : Cityzone (Nummern im Umkreis von max. 20 km)
|
||
3 : Region 50 (Nummern im Umkreis von max. 50 km)
|
||
4 : Fernzone (Deutschlandweit)
|
||
5 : C-Mobilbox
|
||
6 : C-Netz
|
||
7 : D1-Netz
|
||
8 : D2-Netz
|
||
9 : E-plus-Netz
|
||
10 : E2-Netz
|
||
11 : Euro City
|
||
12 : Euro 1
|
||
13 : Euro 2
|
||
14 : Welt 1
|
||
15 : Welt 2
|
||
16 : Welt 3
|
||
17 : Welt 4
|
||
|
||
20 : Internet
|
||
|
||
Diese Zuordnung mu<6D> erhalten bleiben, da isdnlog fuer Deutschland bereits
|
||
eine Verzonungstabelle (der DTAG) enthaelt. In dieser Verzonungstabelle
|
||
kann isdnlog nachschlagen, welche der obigen Zonen zwischen zwei
|
||
gegebenen Telefonnummern liegt.
|
||
Weiterhin kann ueber den Eintrag "ZONE = x" in der "callerid.conf" fuer
|
||
jede Nummer wieder explizit die errechnete Zone uebersteuert werden.
|
||
|
||
|
||
Falls ein Provider in mehreren Zonen denselben Tarif anbietet, kann das
|
||
durch die Notation Z:1-2 (bedeutet: Gilt sowohl fuer die Orts- als die
|
||
Regionalzone) oder auch Z:5-10 (bedeutet: Gilt fuer alle Funknetze) angegeben
|
||
werden. Moeglich ist auch: Z:5,7,9-10
|
||
Die Nummer der Zone kann durch eine textuelle Bezeichnung fuer diese
|
||
Zone gefolgt werden, also z.b.
|
||
|
||
Z:4 GermanCall
|
||
|
||
|
||
-> A:
|
||
|
||
Telefonnummer(n), an der isdnlog die Zone erkennen kann.
|
||
Die Zonen
|
||
0 : Verbindungen an der eigenen Tk-Anlage
|
||
1 : Ortszone
|
||
2 : Cityzone
|
||
3 : Region 50
|
||
4 : Fernzone
|
||
kann isdnlog automatisch (mittels der Verzonungstabelle) erkennen. Daher
|
||
muessen fuer diese Zonne in Deutschland keine "A:" Eintraege vorgenommen
|
||
werden (das waere auch eine lange Liste ;-)
|
||
Von allen anderen Zonen weiss isdnlog intern nichts.
|
||
|
||
Durch einen Eintrag
|
||
|
||
Z:8 D2-Netz
|
||
A:0172,0173
|
||
|
||
wird isdnlog bekannt gemacht, das alle Telefonnummern, die mit "0172" oder
|
||
"0173" beginnen, in die Zone 8 gehoeren.
|
||
|
||
Ein Eintrag
|
||
|
||
Z:12 USA
|
||
A:+1 # Vereinigte Staaten (USA)
|
||
|
||
gibt an, das alle Nummern, die mit "+1" beginnen, in der Zone 12 liegen.
|
||
Es muss hier stets die Normalform einer Telefonnummer angegeben werden,
|
||
d.h. obwohl man in die USA "001" vorw<72>hlt, verarbeitet isdnlog dies intern
|
||
mit "+1". Die Normalform einer Telefonnummer lautet:
|
||
|
||
<Landesvorwahl><Vorwahl><Rufnummer>
|
||
|
||
D.h. eine evtl. Provider-Vorwahl, oder vorlaufende Nullen fuer die
|
||
Amtsholung an einer Tk-Anlage haben hier nichts zu suchen!
|
||
|
||
Ueber diesen "A:" Tag werden isdnlog auch alle "Sonderrufnummern" bekannt
|
||
gemacht. Durch den Eintrag
|
||
|
||
Z:0 FreeCall
|
||
A:110 # Polizei / Notruf
|
||
A:112 # Feuerwehr / Rettungsleitstelle
|
||
A:0010 # Operator Service
|
||
A:0130 # freecall 0130
|
||
A:0800 # freecall 0800
|
||
|
||
weiss isdnlog, das alle Nummern, die mit "110", "112", "0010", "0130" oder
|
||
"0800" beginnen, kostenlos sind.
|
||
|
||
-> T:
|
||
|
||
Hiermit wird letztendlich der eigentliche Tarif angegeben.
|
||
|
||
T:Tag[-Spanne][,Tag]/Zeit[-Spanne][,Zeit]=Kosten[,Kosten] Name
|
||
|
||
wobei Tag in der Form 1-5 oder 1,2,3,4,5 stehen kann, 1=Montag, es gibt
|
||
noch * fuer alle Tage und H fuer Holiday=Feiertag sowie
|
||
W=Werktag (entspricht 1-5) sowie E=Weekend (entspricht 6-7)
|
||
Welcher Tag ein Holiday (Tag mit verguenstigen Tarifen) ist, entnimmt
|
||
isdnlog der Datei "holiday-xx.dat" (Mit "xx" fuer das Land, in dem sich
|
||
isdnlog befindet). Auch diese Datei muss ueber den Eintrag
|
||
|
||
HOLIDAYS = /usr/lib/isdn/holiday-de.dat
|
||
|
||
im Kapitel
|
||
|
||
[ISDNLOG]
|
||
|
||
der Konfigurationsdatei angegeben werden.
|
||
|
||
|
||
die Zeit sieht aehnlich aus, 8-12 oder 8,9,10,11 oder 8-12,13-17
|
||
ACHTUNG: 8-12 bedeutet 8:00 bis 11:59 !!!
|
||
|
||
Kosten: Kosten einer Einheit/Dauer der Einheit z.B. 0.56/30; Kosten und
|
||
Dauer sind doubles; bei mehreren Kosten kann/soll die Verzoegerung, nach
|
||
der auf den naechsten Kostenwert gewechselt werden soll, mit ':'getrennt
|
||
angegeben werden
|
||
z.B. 0.56/30:600,0.56/60 heisst: zuerst alle 30 Sekunden, nach 10 min
|
||
alle 60 Sekunden
|
||
Wenn das Delay nicht angegeben wird, wird die Taktdauer als Delay
|
||
verwendet (d.h. die Kosten gelten nur fuer eine Einheit)
|
||
Der letzte Kosteneintrag darf kein Delay haben!
|
||
|
||
Sonderfaelle:
|
||
Grundkosten pro Gespraech:
|
||
1.0/0,0.40/30: 1 DM pro Verbindung, danach alle 30 Sekunden eine Einheit
|
||
zu 40 Pfennig
|
||
|
||
Freie Gespraechszeit:
|
||
0/10,0.50/30: 10 Sekunden mit 0 DM, dann alle 30 Sekunden 50 Pf
|
||
|
||
Abgeschlossen wird der Tarif durch eine textuelle Bezeichnung, wie z.b.
|
||
|
||
T:1-5/09-18=0.96/60 Hauptzeit
|
||
|
||
Da in den meisten Preislisten die Tarife in DM/Minute angegeben werden,
|
||
gibt es die Spezialnotation:
|
||
|
||
T:1-5/07-09=0.09(60)/1
|
||
|
||
Dies bedeutet: Der Minutenpreis betraegt DM 0.09 - abgerechnet wird
|
||
jedoch im Sekundentakt.
|
||
Um nun nicht alle Minutenpreise in Sekundenpreise umrechnen zu muessen,
|
||
und auch, um nicht arge Rundungsprobleme zu provozieren
|
||
(ohne die (60) Funktionalitaet wuerde hier stehen: ...0.0015/1),
|
||
sollte stets diese Form gewaehlt werden.
|
||
|
||
Um die korrekte Funktion vor allem von CHARGEINT zu gewaehrleisten, ist
|
||
es von extremer Wichtigkeit, die richtigen Taktlaengen anzugeben, und
|
||
hier nicht "kuenstlich" umzurechnen!
|
||
|
||
Es folgen in beliebig vielen weiteren "T:" Zeilen alle weiteren Tarife
|
||
fuer die darueber definierte Zone.
|
||
|
||
Danach wird mittels "Z:" die naechste Zone begonnen, wiederum gefolgt von
|
||
beliebig vielen "T:" Tarifen.
|
||
|
||
|
||
Sind alle Tarife eines Anbieters definiert, folgt mittels "P:"
|
||
der naechste Provider usw.
|
||
|
||
|
||
|
||
In der Datei "/etc/isdn/rate.conf" werden die Benutzerabhaengigen
|
||
Einstellungen an der Tarifdatenbank vorgenommen.
|
||
Beispiel:
|
||
|
||
# Kennzahl 98, moegliche Varianten:
|
||
# 0=Nikoma Minutentakt
|
||
# 1=Nikoma Sekundentakt
|
||
# 2=Nikocity Minutentakt
|
||
# 3=Nikocity Sekundentakt
|
||
# 4=Mox Telecom AG
|
||
# 5=C@llas Clever Communications
|
||
P:98=4
|
||
|
||
Hier wird definiert, das der konkrete Anwender bei einer Verbindung ueber
|
||
die Kennzahl "98" den Tarif der Fa. Mox Telecom AG meint.
|
||
|
||
|
||
18. LCR (Least cost router)
|
||
---------------------------
|
||
|
||
Seit dem 1.1.1998 duerfen in Deutschland ganz offiziell (im kommerziellen
|
||
Umfeld war das schon laenger gang und gebe) auch andere Firmen
|
||
(neben der DTAG = Deutsche Telekom) Telefondienste anbieten.
|
||
|
||
Dazu wurde die RegTP - Regulierungsbehoerde fuer Telekomunikation und Post
|
||
(http://www.regtp.de) ins Leben gerufen, die seitdem (u.a.) die
|
||
Verbindungsnetzbetreiberauswahlkennziffern vergibt.
|
||
|
||
Ueber diese Nummern kann nun jeder selbst entscheiden, ueber welchen
|
||
Provider (== Telefongesellschaft) er fuer das folgende Telefonat telefonieren
|
||
moechte.
|
||
|
||
Daher taucht im Bereich der Telekomunikation ein neuer - bislang primaer
|
||
in den USA gelaeufiger Begriff auf: das LCR, Least cost routing, d.h. die
|
||
Auswahl des guenstigsten Providers fuer eine gleich entstehende Verbindung.
|
||
|
||
|
||
Dazu muss folgendermassen gewaehlt werden:
|
||
|
||
|
||
010 xxx 49 69 123456
|
||
^-------------------------- Verbindungsnetzbetreiberauswahl
|
||
^---------------------- Nummer des gewuenschten Providers
|
||
^------------------ Landesvorwahl
|
||
^--------------- Ortsvorwahl
|
||
^----------- Rufnummer
|
||
|
||
Endet der Ruf im eigenen Land, kann die Landesvorwahl entfallen.
|
||
Endet der Ruf im eigenen Ortsnetz, kann die Ortsvorwahl (bis auf weiteres)
|
||
entfallen.
|
||
|
||
Mittels "xxx" wird der gewuenschte Provider selektiert, wobei die RegTP
|
||
zuerst alle 99 2-stelligen Nummern vergeben hat, und danach dazu ueber ging,
|
||
dreistellige Nummern, bislang i.d.F, 0xx zu vergeben.
|
||
|
||
Um ein konkretes Beispiel zu machen: Wenn man beabsichtigt, von Muenchen
|
||
nach Frankfurt ein Telefonat mit der Nummer 4711 zu fuehren, und dazu
|
||
den Provider VIAG Intercom verwenden moechte, waehlt man folgende Nummer:
|
||
|
||
010 90 069 4711
|
||
^---------------- Verbindungsnetzbetreiberauswahl
|
||
^------------- VIAG Intercom
|
||
^--------- Frankfurt
|
||
^------ Rufnummer
|
||
|
||
|
||
Ein grundlegendes Problem wurde jedoch bislang nicht geloest: Sobald man
|
||
ueber einen alternativen Carrier (also irgend eine Telefongesellschaft
|
||
jenseits der DTAG) eine Verbindung aufbaut, werden keinerlei Gebuehren-
|
||
informationen mehr uebertragen - weder waehrend, noch am Ende der
|
||
Verbindung.
|
||
D.h. die schoenen "Leistungsmerkmale" AOCD sowie AOCE funktionieren _nicht_
|
||
mehr.
|
||
|
||
Daher macht es per heute (1999) wirklich absolut keinen Sinn mehr, einen
|
||
ISDN-Komfort-Anschluss zu beantragen! Das dort enthaltene "Leitungsmerkmal"
|
||
Gebuehreninformationen waehrend der Verbindung wird sowieso nur noch bei
|
||
Verbindungen ueber die DTAG erbracht (da die DTAG meistens die teuerste
|
||
Gesellschaft ist, kommt das also praktisch nie mehr vor ...)
|
||
Wer den isdnlog (und eine up-to-date "rate-xx.dat") verwendet, bekommt jedoch
|
||
bei *allen* Gesellschaften - incl. der DTAG - Gebuehreninformationen geliefert,
|
||
in Bezug auf AOCD (waehrend der Verbindung) sogar genauer, als die
|
||
von der DTAG!
|
||
|
||
|
||
Was kann nun isdnlog (ab der Version 3.x) mit dieser neuen Situation anstellen?
|
||
|
||
1. isdnlog erkennt eine evtl. vorgewaehlte Verbindungsnetzbetreiberauswahl,
|
||
und dekodiert den entsprechenden Provider heraus.
|
||
|
||
Dazu greift isdnlog auf drei Quellen zurueck:
|
||
- zum ersten besitzt isdnlog ... bislang hardcoded ... die Namen
|
||
aller bislang bei der RegTP angemeldeten Provider. Von den bis zum
|
||
11.Maerz 1999 angemeldeten 126 Telefongesellschaften bieten allerdings
|
||
noch bei weitem nicht alle wirklich Telefondienste an.
|
||
|
||
- zum zweiten besitzt isdnlog eine Tarif-Datenbank, die Datei
|
||
"/usr/lib/isdn/rate-xx.dat"
|
||
Dort sind die Tarife der diversen Telefongesellschaften hinterlegt.
|
||
|
||
Da sich die Tarife haeufig sogar taeglich aendern, kann diese
|
||
Datei im Moment nur als Anhaltspunkt angesehen werden. Zu welchem
|
||
Zeitpunkt die dort hinterlegten Tarife mit Sicherheit gueltig waren,
|
||
kann dem Eintrag "V:" am Anfang der Datei entnommen werden.
|
||
Sollte mir irgend jemand verbesserte Tarifinformationen zuschicken
|
||
(an akool@isdn4linux.de), bitte ich darum, immer auch diese
|
||
Versionsnummer zu incrementieren!
|
||
|
||
- diverse Telefongesellschaften arbeiten mittlerweile mit sog.
|
||
Resellern - Firmen, die unter derselben Verbindungsnetzbetreiberauswahl
|
||
zu unterschiedlichen Tarifen Telefondienste anbieten. Hierzu muss man
|
||
sich bei einem der Reseller zuerst anmelden - meistens kostenlos.
|
||
|
||
Zum Beispiel hat die Firma Star Telecom die
|
||
Verbindungsnetzbetreiberauswahl 01098 erhalten, bietet jedoch an
|
||
Privatkunden praktisch gar keine Telefondienste an.
|
||
|
||
Stattdessen verkauft Star ihre Dienste weiter an die Firmen
|
||
|
||
Nikoma, Mox sowie C@llas
|
||
|
||
Ist man gewillt, ueber eine dieser drei Firmen zu telefonieren,
|
||
muss man sich zuerst dort anmelden. Erschwerend kommt hinzu, dass alle
|
||
diese Firmen noch unterschiedliche Tarif-Varianten anbieten:
|
||
|
||
- Abrechnung im Minutentakt
|
||
- Abrechnung im Sekundentakt, dafuer etwas teurer
|
||
- besondere Abrechnung, wenn man in einer sog. Superregion, d.h.
|
||
einer Grossstadt wie Frankfurt, Muenchen, Hamburg, Stuttgart usw.
|
||
wohnt.
|
||
|
||
Da jedoch alles oben genannte ueber ein und dieselbe
|
||
Verbindungsnetzbetreiberauswahlkennziffer, im Beispiel also
|
||
01098 laeuft, ist isdnlog absolut ausser Stande zu entscheiden,
|
||
was nun gemeint ist, wenn eine Verbindung mit der Nummer "01098"
|
||
beginnt.
|
||
|
||
Daher sieht isdnlog in der Datei "/etc/isdn/tarif.conf" nach,
|
||
welcher konkrete Provider sowie welche konkrete Tarifvariante
|
||
gemeint ist, wenn z.b. die Nummer 01098 auftaucht.
|
||
Diese Datei muss dementspechend jeder entsprechend seiner eigenen
|
||
Situation fuellen.
|
||
|
||
2. Anhand des ermittelten Providers kann isdnlog nun berechnen, was dieser
|
||
Provider fuer eine Verbindung verlangt, und wie lang bei diesem Provider
|
||
ein "Gebuehrentakt" dauert.
|
||
|
||
Mit diesen Informationen macht isdnlog per heute folgendes:
|
||
|
||
1. Er ist in der Lange, am Ende einer Verbindung auszugeben, was die
|
||
gerade beendete Verbindung gekostet hat.
|
||
|
||
2. Er ist in der Lage, den CHARGEINT von isdn4linux neu zu setzen,
|
||
d.h. die Steuerung, wann eine ISDN-Data-Verbindung auflegen soll,
|
||
um genau in einen Gebuehrentakt hineinzupassen.
|
||
|
||
3. Er ist in der Lage, den Gebuehrentakt (-> AOCD) zu "erfinden", und
|
||
auszugeben. Dieser dazuerfundene Gebuehrentakt wurde CI (fuer
|
||
ChargeInt) getauft.
|
||
|
||
4. Da isdnlog von (fast) allen aktiven Providern die Tarifinformationen
|
||
besitzt, macht er zu Beginn einer Verbindung evtl. den Vorschlag,
|
||
einen anderen - guenstigeren - Provider zu waehlen.
|
||
|
||
Das ist (leider) nur fast das, was ein sog. LCR (least-cost-router)
|
||
erbringt. Ein echter LCR sagt nicht, welchen Provider man haette
|
||
benutzten sollen, sondern benutzt genau diesen automatisch.
|
||
Dies ist aber per heute leider aufgrund der Physik einer
|
||
handelsueblichen ISDN-Karte nicht moeglich.
|
||
(Ich persoenlich benutze seit dem 1.1.1998 eine Tk-Anlage mit
|
||
internem S0-Bus, an dem alle ISDN-Telefone angeschlossen sind)
|
||
|
||
3. Praktisch alle neuen Provider kaempfen mit einem ueblen Problem: Sie
|
||
besitzen (in Relation zur DTAG) nur eine sehr begrenzte Anzahl freier
|
||
Leitungen. Besonders Provider, die mit extrem guenstigen Angeboten
|
||
locken, sind erst nach 10 .. 20 maligem Versuchen verfuegbar.
|
||
(Das beste Beispiel z.Zt. (Maerz 1999) ist sicherlich die Firma
|
||
01079:Viatel, die zwar extrem guenstige Tarife anbietet, aber praktisch
|
||
nie verfuegbar ist)
|
||
Dieses Problem kann natuerlich auch isdnlog nicht aus der Welt schaffen,
|
||
jedoch bringt isdnrep eine Statistik
|
||
(in der Rubrik "Outgoing calls ordered by Provider") mit der
|
||
prozentualen Verfuegbarkeit jedes benutzen Providers.
|
||
Diese Verfuegbarkeitsrate bezieht sich natuerlich nur auf die jeweils
|
||
eigenen Daten.
|
||
|
||
|
||
4. Zum echten LCR gehoert aber noch etwas anderes! Bei den normalen
|
||
Telefonnummern ist es einfach (naja, ich habe ueber 3 Jahre gebraucht,
|
||
bis isdnlog das konnte), anhand einer Vorzonungstabelle zu berechnen,
|
||
was eine Verbindung zwischen A und B kostet. Leider gibt es jedoch in
|
||
Deutschland ca. 210 sog. Sonderrufnummern, die sich nicht dem ueblichen
|
||
Schema unterziehen. Ein sehr bekanntes Beispiel fuer eine Sonderrufnummer
|
||
iat die Telefonnummer "112 -> Feuerwehr"
|
||
Die Telefonnummer 112 kostet nichts, was aber beileibe nicht fuer alle
|
||
Sonderrufnummern gilt. Ganz im Gegenteil: Es gibt viele Sonderrufnummern,
|
||
die weit mehr kosten, als die Fernzone! Bekannt sind hier sicherlich
|
||
alle Rufnummern, die mit 0180 oder 0190 beginnen, oder die div.
|
||
Telefonauskunften 118xx
|
||
Dummerweise kosten diese Sondernummern bei jedem Provider etwas anderes,
|
||
oder werden Fallweise von dem einen oder anderen Provider gar nicht
|
||
unterstuetzt.
|
||
|
||
Da sich die Tarife manchmal sogar taeglich aendern, lebt isdnlog
|
||
natuerlich von einer stets aktuellen "rate-de.dat". Diese Datei
|
||
wird z.Zt. von der Rate-Crew in einem CVS gepflegt, und taeglich
|
||
aktuell unter folgender Adresse zur Verfuegung gestellt:
|
||
|
||
http://www.digitalprojects.com/rates
|
||
|
||
|
||
Wer Fehler in der Tarifdatenbank findet, oder gar Verbesserungen oder
|
||
neue Anbieter dafuer zusammengestellt hat, schickt diese bitte an
|
||
folgende Adresse:
|
||
|
||
rates@gmx.de
|
||
|
||
|
||
19. 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 "hisaxctrl <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 (resp. beim HiSax-Treiber nur noch die "HEX:" Zeilen),
|
||
der Rest wird von isdnlog nicht benoetigt!
|
||
|
||
Diese Fehlermeldung sollte bitte an "akool@isdn4linux.de" geschickt
|
||
werden.
|
||
|
||
|
||
- Bei jeder Anwahl von draussen an meine ISDN-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 ISDN-Karte, der den
|
||
Anruf ablehnt!
|
||
|
||
Die ISDN-Karte spielt die Rolle von zwei Geraeten, wohl weil ein
|
||
Geraet zu einer Zeit immer nur eine Dienstkennung haben kann,
|
||
die ISDN-Karte koennte aber gleichzeitig eine Voice- und eine Data-
|
||
Verbindung fahren (nur (noch?) nicht unter i4l).
|
||
Fehlt also nach dem CONNECT der ISDN-Karte 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 NICHT 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/isdn/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/isdn/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
|
||
"akool@isdn4linux.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.
|
||
|
||
|
||
20. Verwendete Dateien
|
||
----------------------
|
||
|
||
Folgende Files werden von diesem System verwendet:
|
||
|
||
/sbin/isdnlog - Das Protokoll-Programm
|
||
/usr/bin/isdnrep - Das Report-Programm
|
||
/usr/bin/isdnconf - Das Konfigurationstool
|
||
/etc/isdn/isdnlog.conf - Die alte Config-Datei
|
||
/etc/isdn/isdn.conf - Die neue Config-Datei
|
||
~/.isdn - Die Config-Datei des Benutzers
|
||
/etc/isdn/isdnlog.users - Die User-Access-Datei
|
||
/etc/isdn/avon - altes Vorwahl-Verzeichnis (ASCII)
|
||
/etc/isdn/avon.pag - altes Vorwahl-Verzeichnis (ISAM-Version)
|
||
/etc/isdn/avon.dir - altes Vorwahl-Verzeichnis (Index)
|
||
/etc/isdn/charge.dat - Zwischenspeicher fuer die ChargeMax-Funktion
|
||
/etc/isdn/reload - Script zum Wiederanfahren eines verklemmten i4l
|
||
/etc/isdn/stop - Script zum Stoppen bei erreichen von CHARGEMAX
|
||
/etc/isdn/dontstop - verhindert temporaer die CHARGEMAX-Funktion
|
||
/usr/lib/isdn/areacodes - Neues Vorwahl-Verzeichnis
|
||
/usr/lib/isdn/sonderrufnummern.dat - Verzeichnis aller Sonderrufnummern (110, 112 ...)
|
||
/usr/lib/isdn/vorwahl.dat - Verzonungstabelle
|
||
/usr/lib/isdn/rate-xx.dat - Tarifdatenbank
|
||
/var/log/isdn.log - Das Logbuch
|
||
/var/run/isdnlog.pid - Enthaelt die PID des laufenden isdnlog
|
||
/dev/isdnctrl0 - Gibt das Q.931 Protokoll des HiSax-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
|
||
|
||
|
||
21. Verwendete Environment-Variablen
|
||
------------------------------------
|
||
|
||
Folgende Environment-Variablen werden von diesem System verwendet:
|
||
|
||
$ISDNLOG = Verzeichnis, in dem sich die Konfigurations-Dateien
|
||
befinden (z.b. "export ISDN_CONF_PATH=/etc/isdn")
|
||
|
||
$XENVIRONMENT = Vollstaendiger Pfad der Resourcen-Datei fuer den
|
||
X-Client "xisdn"
|
||
|
||
|
||
22. 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
|
||
|
||
BRI = Basic rate interface (2 B-Kanaele)
|
||
|
||
PRI = Primary rate interface (30 B-Kanaele)
|
||
|
||
|
||
23. Danksagung
|
||
--------------
|
||
|
||
Bedanken moechte ich mich vor allem bei
|
||
Fritz Elfert (fritz@isdn4linux.de)
|
||
fuer isdn4linux, sowie
|
||
Jan den Ouden (denouden@groovin.xs4all.nl)
|
||
fuer den ISDN-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-Kanal-Protokoll
|
||
|
||
Bei
|
||
Kai Voelcker (kai@fantaghiro.deceiver.org)
|
||
sowie
|
||
Martin Stover (mstover@Stover.f.UUnet.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.UUnet.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
|
||
Paul Slootman <paul@wau.mis.ah.nl>
|
||
der die Gebuehrenauswertung fuer die Niederlande korrigiert,
|
||
sowie unzaehlige Fehler beseitigt hat. Daneben verdankt isdnlog
|
||
Paul die schoenen man-Pages sowie die Debian Distribution.
|
||
|
||
Bei
|
||
Michael Reinelt <reinelt@eunet.at>
|
||
sowie
|
||
Leopold Toetsch <lt@toetsch.at>
|
||
die die gesamte Anpassung fuer Oesterreich implementiert haben
|
||
|
||
Bei
|
||
Markus Leist (markus@hal.dirnet.com)
|
||
fuer die Anbindung an postgres95
|
||
|
||
Bei
|
||
Dirk Staneker (dirk.staneker@student.uni-tuebingen.de)
|
||
fuer die Idee und das Design des HTML-Formats des isdnrep
|
||
|
||
Sowie bei
|
||
Ullrich von Bassewitz (uz@musoftware.com)
|
||
fuer die "AreaCode" Library (AVON-Verzeichnis)
|
||
|
||
Weiterer Dank gebuehrt der Rate-Crew
|
||
Jochen Erwied <j.erwied@gmx.de>
|
||
Alexander Werner Skwar <askwar@digitalprojects.com>
|
||
Ingo Richter <ingo.richter@gmx.de>
|
||
die die Tariftabellen staendig aktuell halten.
|
||
|
||
Last but not least bei Sabine Nagel (snagel@hlzm.de) fuer das
|
||
Korrekturlesen dieser Dokumentation.
|
||
|
||
Gar nicht genug danken kann ich Dr.-Ing. Joachim Goeller sowie
|
||
Sebastian Goeller, die mir unzaehlige Informationen zum D-Kanal
|
||
Protokoll geliefert haben.
|
||
|
||
Aber ganz besonders bei
|
||
Stefan Luethje (luethje@sl-gw.lake.de)
|
||
von dem sicherlich mittlerweile 50% des isdnlog-Codes bestehen.
|
||
|
||
Mein groesster Dank gilt natuerlich meiner Frau Claudia (clw@Kool.f.UUnet.de),
|
||
die die ganze Geduld aufgebracht hat, waerend ich am isdnlog
|
||
rumgeschraubt habe!
|
||
|
||
Viel Spass mit isdnlog wuenscht
|
||
|
||
Andreas Kool (akool@isdn4linux.de)
|