Dial-In on Call


Aufgabenstellung:

Ich wollte mit meinem Handy meinen Linux-Router (SuSE 6.4) dazu bewegen, sich ins Internet einzuwählen bzw. die Verbindung zu beenden.
Nach der Einwahl sollte der Router die IP-Adresse an eine nur mir bekannte Stelle im Internet hochladen, so daß ich beispielsweise von der Arbeit aus auf meine Rechner daheim zugreifen könnte.

Lösung:

In der Datei /etc/isdn/callerid.conf kann man das ISDN-Subsystem dazu veranlassen, bei Anwahl bestimmter MSNs ein Programm auszuführen und diesem bestimmte Parameter mitzugeben.
Bei mir wird also eine MSN für das Öffnen, eine andere für das Schließen der Verbindung verwendet.

[MSN]
NUMBER=xxxxx0
SI=1
ALIAS=STARGATE_OFF
ZONE=1
START = {
  [FLAG]
  FLAGS=IR
  PROGRAM = /usr/local/dialctrl/hangup $1 $2 $3
}
 
[MSN]
NUMBER=xxxxx1
SI=1
ALIAS=STARGATE_ON
ZONE=1
START = {
  [FLAG]
  FLAGS=IR
  PROGRAM = /usr/local/dialctrl/dialout $1 $2 $3
}

Die Scripte dialout und hangup prüfen mit Hilfe des Skripts allowed_caller, ob denn der Anrufer das darf.

dialout macht einen kurzen ping auf Website und öffnet damit die Verbindung zum Internet. Dann benutzt es get-transfer-id.sh um die IP zu ermitteln, diese in einem HTML-Seite einzubauen und diese dann an eine bestimmte Stelle ins Internet zu setzen.
ip2html.sh erzeugt die HTML-Seite ip.html, die dann per ftp hochgeladen wird, wohin steht in ftp.cmds

hangup verwendet einfach isdnctrl  hangup ippp0 um die Verbindung zu schließen.

Das ganze Getöse läuft als root.

Hier gibt es die Skripte herunterzuladen... DOWNLOAD



(C) 22.01.2002 by Carsten Rüthel