Zurück Weiter Inhalt

8. `Callback'-Funkion ohne `mgetty'

8.1 Anpassung des Anwahlskriptes

Wem der Einsatz von "mgetty" zu komplex oder zu aufwendig erscheint, kann die Funktion der "Callback"-Erkennung durch Erweiterung des "pppd" Anwahlskriptes auf einfache Weise nachbilden:


#!/bin/sh
# Aufbau einer PPP Verbindung
# zu einem Windows NT Server unter Verwendung des CALLBACK-Modus
phone="cb 555111"
/usr/sbin/pppd 38400 connect '/usr/sbin/chat -v -f $HOME/win_nt.chat' \
    lock $phone -detach
/usr/sbin/pppd 38400 connect '/usr/sbin/chat -v -f $HOME/win_nt_cb.chat' \
    lock -detach

Datei: dial_win_nt.callback

Parameterbeschreibung Datei dial_win_nt.callback :


-detach                   : verhindert daß 'pppd' über einen
                            fork(2)-Aufruf als Hintergrundprozess läuft

Entscheidend bei dieser Aufrufvariante ist die Verwendung der "pppd"-Option "-detach", die dafür sorgt, daß der erste "pppd"-Prozess nicht im Hintergrund abläuft und damit der zweite "pppd"-Prozess erst nach Beendigung des ersten gestartet wird.

Nach dem erstmaligen Aufruf des "pppd", bei dem Windows NT nur die Telefonnummer mittgeteilt wird, unter der zurückgerufen werden soll, erfolgt ein weiterer Aufruf des "pppd", der den Rückruf durch ein geändertes "chat"-Skript (win_nt_cb.chat) abfängt:


TIMEOUT  120
ABORT "NO CARRIER"
ABORT BUSY
ABORT "NO DIALTONE"
ABORT ERROR
"" +++ATZ
OK ATE1Q0&C1&S0
RING ATA
CONNECT ""

Datei: win_nt_cb.chat

Es wird nach der Modeminitialisierung einfach auf die "RING"-Kennung eines eingehenden Anrufes gewartet, durch "ATA" erfolgt die manuelle Beantwortung des Klingelzeichens: das Modem hebt ab und wartet auf die "CONNECT"-Meldung.

Kommt binnen des unter "TIMEOUT" definierten Zeitraumes keine Verbindung zustande, wird "chat" und somit auch "pppd" beendet.

Bei einer positiven "CONNECT"-Kennung übernimmt wie gehabt der "pppd" die Steuerung und baut die PPP-Verbindung auf.

Voraussetzung ist natürlich wieder die Deaktivierung des "AUTOANSWER"-Modus beim angeschlossenen Modem (siehe Abschnitt 2.5).

8.2 Protokoll PPP/CHAP-Verbindung mit `Callback' (ohne `mgetty')

Ein -unkommentiertes- Protokoll einer erfolgreichen PPP-Verbindungsaufnahme via CHAP-Authentifizierung mit Rückruf durch den Windows NT Server ohne Verwendung des "mgetty"-Prozesses sieht folgendermaßen aus (der "pppd"-Aufruf zur Übergabe der Telefonnummer ist nicht mehr aufgeführt):


 pppd: pppd 2.2.0f_SIGI.0 started by root, uid 0
 chat: timeout set to 120 seconds
 chat: abort on (NO CARRIER)
 chat: abort on (BUSY)
 chat: abort on (NO DIALTONE)
 chat: abort on (ERROR)
 chat: send (+++ATZ^M)
 chat: expect (OK)
 chat: +++ATZ^M^M
 chat: OK -- got it
 chat: send (ATE1Q0&C1&S0^M)
 chat: expect (RING)
 chat: ^M
 chat: ATE1Q0&C1&S0^M^M
 chat: OK^M
 chat: ^M
 chat: RING -- got it
 chat: send (ATA^M)
 chat: expect (CONNECT)
 chat: ^M
 chat: ATA^M^M
 chat: CONNECT -- got it
 chat: send (^M)
 pppd: Serial connection established.
 pppd: Using interface ppp0
 pppd: Connect: ppp0 <--> /dev/ttyS0

Der restliche Verbindungsaufbau verläuft dann gemäß Punkt 7.3/Punkt 7.4.

Auszug Protokoll /var/log/messages : Aufbau einer CHAP/PPP-Verbindung mit Rückruf ohne "mgetty"


Zurück Weiter Inhalt