Konfiguration von telmond und imond unter Linux - HowTo-Version 1.1

Dieses Howto richtet sich an User, die telmond und imond auf einem "richtigen" Linux-Rechner einsetzen wollen.

Bitte dabei immer bedenken: Beide Programme sind speziell für fli4l und nicht allgemein für Linux entwickelt worden. Man möge mir daher bestimmte imond-/telmond-Funktionalitäten, die es im isdn4linux irgendwo bereits gibt, verzeihen. imond bereitet alle wichtigen Informationen möglichst kompakt auf und stellt diese den Clients zur Verfügung. Gerade die Umsetzung auf Client-Ebene ist Nico Wallmeier mit dem Windows-Programm imonc als Benutzeroberfläche sehr gut gelungen. Aber auch 2 Linux-Clients sind verfügbar: entweder als ASCII- oder als graphische Oberfläche. Alle Clients stellen nicht nur Monitor-, sondern auch Steuerfunktionen zur Verfügung.

Die folgenden Erklärungen gelten für imond und telmond ab Version 1.5. Es wird eine bereits funktionierende ISDN-Konfiguration und die Kenntnis der fli4l-Dokumentation vorausgesetzt. Ohne das Studium der Doku wird's nichts!
 
 

A. telmond

telmond protokolliert eingehende Telefonanrufe und kann auch Aktionen bei bestimmten Anrufen auslösen. Das Wichtigste aber
ist, daß der Client imonc am PC diese Informationen abfragen und anzeigen bzw. protokollieren kann.

Dateien:
 
/etc/telmond.conf Konfigurationsdatei für telmond
/usr/local/bin/telmond telmond-Programm
/var/log/kernel-info Named pipe
/sbin/init.d/telmond Boot-Script (SuSE, bei RedHat entsprechender Pfad)
/sbin/rc2.d/S99telmond Symlink auf Boot-Script
/sbin/rc2.d/S00telmond Symlink auf Boot-Script

 

A.1. Datei telmond.conf
Die Datei /etc/telmond.conf hat folgenden Aufbau:
  log MSN IP1 [IP2 ....]
  ...
  exec MSN CALLER COMMAND
  ...
Die Datei darf auch leer oder gar nicht vorhanden sein.
Dabei ist:
 
MSN die eigene MSN
IP1 IP-Adresse eines Client-PCs usw.
CALLER Telefonnummer des anrufenden Gegners, darf auch '*' sein
COMMAND ein Shell-Kommando, welches bei Anruf ausgeführt werden soll

Mit der log-Zeile kann man bestimmen, welche Clients auf welche Log-Dateien zugreifen können. Normalerweise protokolliert telmond alle eingehenden Telefonanrufe in der Datei /var/log/telmond.log. Dann haben alle Clients Zugriff auf die kompletten Daten. Sollen aber die Anrufe separiert werden, kann man z.B. festlegen, daß der Client 192.168.1.1 lediglich die Anrufe auf die MSN 12345657890 sehen darf. Dieses ist z.B. für WGs sehr sinnvoll.

Beispiel:

  log 1234567890 192.168.1.1
Dabei dürfen weitere IP-Adressen für dieselbe MSN hinten angehängt werden - durch Blank getrennt.

Mit der exec-Zeile können bestimmte Kommandos ausgelöst werden, wenn ein Anruf eintrifft. Dabei wird die eigene MSN angegeben und evtl. die Telefonnummer des Anrufenden. Soll die Nummer des Anrufenden ignoriert werden, ist stattdessen ein '*' (ohne die Hochkommata) anzugeben, also z.B.

  exec 1234567890 0891234 sleep 5; isdnctrl dial ippp0
In diesem Fall wird zunächst 5 Sekunden gewartet, um sicherzustellen, daß der Anrufende auch wieder eingehängt hat und damit den ISDN-Kanal freigibt. Anschließend wird auf dem iPPP-Device ippp0 rausgewählt.
A.2. Named Pipe
telmond liest die nötigen Infos normalerweise aus /proc/kmsg. Unter Linux läuft jedoch meist der Prozess klogd, welcher die Kernel-Messages ebenso aus /proc/kmsg liest und diese weiter an den syslogd gibt. Bei zwei Prozessen, die von /proc/kmsg lesen, gibt's Datensalat (habe ich ausprobiert).

Der Trick ist nun folgender: Man lässt syslogd die Kernel-Infos zusätzlich in eine Named Pipe schreiben. Aus dieser kann dann telmond wiederum die Anrufe herausfiltern.

Also:

  cd /var/log
  mkfifo kernel-info
Dann Datei /etc/syslog.conf editieren und folgende Zeile einfügen:
  *.info |/var/log/kernel-info
Man kann nun dem syslogd mitteilen, daß sich seine Konfigurationsdatei geändert hat:
  kill -1 `cat /var/run/syslogd.pid` # syslogd Signal 1 schicken
 
A.3. Boot-Scripts
telmond sollte beim Booten automatisch gestartet werden. Dafür müssen wir ein sog. rc-Script anlegen. Ich beziehe mich mal hier auf SuSE, da es wohl sehr weit verbreitet ist. Bei anderen Distributionen ist eventuell der Pfad anzupassen.

Im Verzeichnis /sbin/init.d legt man nun das Shell-Script telmond mit folgendem Inhalt an:

----- schnipp ----

#! /bin/sh
case $1
in
  start)
    /sbin/isdnctrl verbose 2          # verbose level
    /usr/local/bin/telmond -log-to-syslog -syslog-fifo /var/log/kernel-info
    ;;
  stop)
    killproc /usrlocal/bin/telmond    # oder auch killall, wenn kein
    ;;                                # killproc vorhanden ist
esac
----- schnapp -----

Die Datei muss man nun noch ausführbar machen, also in der Shell eingeben:

  chmod +x telmond
Wichtig: Das Script darf *keine* CRs am Zeilenende haben! Also bitte nicht einfach unter DOS/Windows erzeugen und dann in das Linux-Verzeichnis kopieren.
 

Jetzt müssen noch 2 symbolische Links eingerichtet werden:

  cd rc2.d
  ln -s S99telmond ../telmond
  ln -s K00telmond ../telmond
 
A.4. telmond
Das telmond-Programm wird nun folgendermaßen installiert:

   cd /usr/src/fli4l-1.5/src/local
   make telmond
   cp telmond /usr/local/bin

telmond hat die folgende Aufrufsyntax:

  telmond [-port portno]
          [-log-to-syslog]
          [-syslog-fifo fifo-msg-file]
          [log-directory]
Zu den einzelnen Parametern:
 
 
-port portno: telmond horcht standardmäßig auf TCP-Port 5001. Dies kann man hier in Ausnahmefällen ändern. Dann muß aber auch beim Client der telmond-Port umkonfiguriert werden. Das geht zur Zeit jedoch nur mit dem Windows-Client imonc.exe. Also im Zweifel diese Option nicht einsetzen!
-log-to-syslog Flag, ob Meldungen über syslog geloggt werden sollen. Bei einem "echten" Linux-System ist das auf jeden Fall sinnvoll.
-syslog-fifo fifo-msg-file Angabe der Named Pipe (Fifo)
log-directory Verzeichnis, wo die einkommenden Anrufe protokolliert werden sollen

B. imond

imond ist ein ISDN- und DSL-Monitor mit Steuerfunktionen und kann mit mehreren imonc-Clients zur gleichen Zeit Daten austauschen. Diese können Steuerbefehle oder Daten zur Anzeige im imonc-Fenster sein.

Dateien:
 
 
/etc/imond.conf Konfigurationsdatei für imond
/etc/imond.env Umgebungsvariablen: Berechtigungen/Passwörter
/usr/local/bin/imond imond-Programm
/usr/local/bin/fli4lctrl Steuer-Script
/usr/local/bin/add-default-route Script zum Anfügen einer Default-Route
/usr/local/bin/delete-all-routes Löschen von Routen (device-abhängig)
/sbin/init.d/imond Boot-Script (SuSE, bei RedHat entsprechender Pfad)
/sbin/rc2.d/S99imond Symlink auf Boot-Script
/sbin/rc2.d/S00imond Symlink auf Boot-Script

B.1. Datei imond.conf
Die Datei /etc/imond.conf hat folgenden Aufbau:
  day hour device hup lcr droute phone name charge ch-int
Dabei sind:
 
 
day Tagesbereich, z.B. Mo-Fr
hour Stunden, z.B. 08-18
device Interface, z.B. ippp0. Bei Kanalbündelung z.B. ippp0/ippp1
bandwidth Schwelle:Zeitdauer für automatische Kanalbündelung, s. fli4l-Doku!
hup Hangup-Timeout in Sekunden
lcr Least cost routing circuit, yes oder no
droute default route, yes oder no
phone ISDN-Telefonnummer(n)
name Name des Circuits
charge Kosten pro Minute, z.B. 0.025
ch-int Zeittakt, z.B. 60

Beispiel:

Mo-Fr 09-18 ippp0/ippp1 -1:-1 40 yes yes 010280192306 Addcom 0.0388 60
Mo-Fr 18-09 ippp0/ippp1 -1:-1 40 yes yes 010280192306 Addcom 0.0248 60
Sa-Su 00-24 ippp0/ippp1 -1:-1 40 yes yes 010280192306 Addcom 0.0248 60
Die Bandwidth-Werte -1:-1 schalten die automatische Kanalbündelung ab.
Weitere Informationen zu den Zeitbereichen findet man in der fli4l-Dokumentation.
 
 
B.2. Boot-Scripts


imond sollte wie telmond beim Booten automatisch gestartet werden. Dafür müssen wir ein weiteres Boot-Script anlegen. Bei anderen Distributionen als SuSE ist eventuell der Pfad anzupassen.

Im Verzeichnis /sbin/init.d legt man nun das Shell-Script imond mit folgendem Inhalt an:

----- schnipp ----

#! /bin/sh
case $1
in
  start)
    . /etc/imond.env                  # Umgebungsvariablen laden
    /usr/local/bin/imond -log-to-syslog /var/log /var/log
    ;;
  stop)
    killproc /usrlocal/bin/imond      # oder auch killall, wenn kein
    ;;                                # killproc vorhanden ist
esac
----- schnapp -----

Auch diese Datei mussen wir noch ausführbar machen, also:

  chmod +x imond
Wichtig: Das Script darf *keine* CRs am Zeilenende haben! Also bitte nicht einfach unter DOS/Windows erzeugen und dann in das Linux-Verzeichnis kopieren.

Jetzt müssen noch 2 symbolische Links eingerichtet werden:

  cd rc2.d
  ln -s S99imond ../imond
  ln -s K00imond ../imond
Anschließend legen wir noch eine Datei /etc/imond.env für die Umgebungsvariablen an, welch die Rechte für die
normalen imonc-User regelt.

Inhalt:

  export DIALMODE='auto'         # Autmatische Anwahl: Dial on Demand
  export IMOND_ENABLE='no'       # Normaler Benutzer darf Dialmode einstellen: yes/no
  export IMOND_DIAL='no'         # Benutzer darf manuellen Wahlvorgang auslösen: yes/no
  export IMOND_REBOOT='no'       # Benutzer darf Rechner ferngesteuert booten: yes/no
  export IMOND_ROUTE='no'        # Benutzer dard Circuit/Provider wählen: yes/no
  export IMOND_PASS=''           # Passwort für Benutzer-Zugriff: evtl. anpassen
  export IMOND_ADMIN_PASS='xyz'  # Passwort für IMOND-Administrator: ANPASSEN!

Da diese Datei Passwörter enthält, sollte man sie mit dem Kommando "chmod 600 imond.env" den Blicken normaler User entziehen.
 

B.3. imond


Das imond-Programm wird wie telmond in das Verzeichnis /usr/local/bin installiert,

also:

   cd /usr/src/fli4l-1.5/src/local
   make imond
   cp imond /usr/local/bin

Ausserdem sollte man von aus fli4l-Distribution folgende Dateien kopieren:

  cd /usr/src/fli4l-1.5/opt/usr/local/bin
  cp add-defaultroute /usr/local/bin
  cp delete-all-routes /usr/local/bin

imond hat die folgende Aufrufsyntax:

  imond [-port portno]
        [-log-to-syslog]
        [-beep]
        [-led /dev/comX]
        [imond-log-directory [telmond-log-directory]]
Zu den einzelnen Parametern:
 
-port portno: imond horcht standardmäßig auf TCP-Port 5000. Dies kann man hier in Ausnahmefällen ändern. Dann muß aber auch beim Client der imond-Port umkonfiguriert werden. Das geht zur Zeit jedoch nur mit dem Windows-Client imonc.exe. Also im Zweifel diese
Option nicht einsetzen!
-log-to-syslog Flag, ob Meldungen über syslog geloggt werden sollen. Bei einem "echten" Linux-System ist das auf jeden Fall sinnvoll.
-beep Flag, ob imond nach jedem Connect/Disconnect einen Zweiklangton ausgeben soll. Achtung: Diese Option ist nicht für imond-Versionen aus den fli4l-1.5Pre-Paketen vorgesehen, funktioniert also erst mit imond aus der fli4l-Final Version von 1.5.
-led /dev/comX Es kann an eine serielle Schnittstelle eine LED angeschlossen werden. Wie, wird in der fli4l-Dokumentation erklärt. Ist der
Router online, leuchtet die LED, ist er wieder offline, erlischt die LED.
imond-log-directory Verzeichnis, wo die Verbindungen protokolliert werden sollen. Standardmäßig ist das /var/log. Der Dateiname ist immer imond.log.
telmond-log-directory Verzeichnis, in welchem telmond die einkommenden Anrufe protokolliert, normalerweise ebenso /var/log.

Alle Angaben ohne Gewähr! Haftung meinerseits ausgeschlossen!

Viel Spaß!

Frank Meyer, Februar 2001

 

Klicken Sie hier, um die Seite auszudrucken.