Wenn Sie mit Ihrem Modem eine Verbindung zu einem anderen Rechner aufbauen, nutzen Sie damit gleichzeitig einen Einwahldienst auf dem anderen Rechner. Ohne diesen Dienst käme keine Verbindung zustande.
Umgekehrt können Sie es anderen Personen ermöglichen, Ihr Modem
anzurufen und Ihren PC zu nutzen. In der Praxis sieht das so aus, dass
jemand mit einem Modem Ihre Nummer wählt. Ihr Modem nimmt ab und beide
Modems versuchen, eine Verbindung aufzubauen, indem sie sich auf ein
Übertragungsprotokoll einigen. Wenn die Verbindung steht, kann Ihr PC
z.B. eine Aufforderung zum Einloggen senden. Der Anfrufer kann sich
auf Ihrem PC anmelden und dann auf Ihrem PC arbeiten, ganz so, als ob
er sich direkt an einer Konsole angemeldet hätte. Das setzt natürlich
voraus, dass der Anrufer mit seinem Benutzernamen auf Ihrem PC bekannt
ist und für ihn ein entsprechender Benutzer eingerichtet ist. Eine
andere Möglichkeit besteht darin, dass der Anrufer mit seinem PC
Zugang zum Internet erhält, falls Ihr PC eine Verbindung zum Internet
hat. Das Programm, dass diese Dienste zur Verfügung stellt, heisst
getty
.
Häufig werden nach einem erfolgreichem Login weitere Programme gestartet, z.B. solche Programme, die den Anrufer mittles PPP mit dem Internet verbinden. In diesem HOWTO werden diese Programme nicht behandelt.
Der Login-Vorgang kann auch automatisiert werden, so dass das Terminalprogramm automatisch den Benutzernamen und das Passwort überträgt.
getty stellt einen Einwahldienst zur Verfügung. Sie brauchen
es nicht, wenn Sie mit Ihrem Modem eine andere Nummer anwählen. Neben
der Fähigkeit, einen Login-Prompt zu übertragen, kann es auch auf den
Telefonanruf reagieren. Ursprünglich wurde getty zum einloggen in
einen Computer von einem einfachen Terminal aus verwendet. Es wird
jetzt noch verwendet, um sich an einer Linux-Konsole anzumelden. Es
gibt einige verschiedene getty-Programme mit leicht
unterschiedlichen Namen. Nur bestimmte Programme stellen eine
Einwahlmöglichkeit zusammen mit einem Modem zur Verfügung. getty
wird normalerweise beim Booten des System gestartet. Es muss von der
Datei /etc/initab
aufgerufen werden. Eventuell finden Sie in
dieser Datei bereits einen Aufruf von getty, den Sie aber
wahrscheinlich noch anpassen müssen. Insbesondere haben die
verschiedenen getty-Programmtypen unterschiedliche Aufrufparameter.
Sie können aus vier verschiedenen getty-Programmtypen
auswählen, die alle für die Konfiguration einer Einwahlmöglichkeit in
Verbindung mit einem Modem verwendet werden können: mgetty
,
uugetty
, getty_em
und agetty
. Einige Details werden in
den nächsten Abschnitten behandelt. agetty
ist das einfachste der
vier Typen, hat allerdings auch nur eine eingeschränkte Funktionalität und
wird daher hauptsächlich bei einer direkten Verbindung mit
Textterminals verwendet. mgetty
unterstützt Fax- und
Sprachnachrichten, uugetty
dagegen nicht. Angeblich fehlen
mgetty
dagegen ein paar Leistungsmerkmale von uugetty
.
getty_em
ist eine vereinfachte Variante von uugetty
. Wenn
Sie sich also nicht ohnehin schon mit uugetty
auskennen, sollten
Sie mgetty
verwenden.
mgetty
ist der Nachfolger von uugetty
. Beide eignen sich
für den Einsatz mit Modems. mgetty
kann auch für direkt
angeschlossene Textterminals verwendet werden. Neben dem Bereitstellen
eines Login-Prompts kann mgetty
auch mit FAX-Dokumenten umgehen
und verfügt über eine automatische PPP Erkennung. Es gibt ein
Zusatzprogramm namens vgetty
, welches zusammen mit einigen Modems
eine Anrufbeantworterfunktion übernehmen kann. Die
mgetty
-Dokumentation ist ausgezeichnet und nicht Bestandteil
dieses HOWTOs. Um PPP automatisch zu starten, muss die
Konfigurationsdatei /etc/mgetty/login.conf
angepasst werden.
Informationen zu mgetty
finden Sie im WWW unter:
getty_ps
besteht aus zwei Programmen: getty
wird für
Textkonsolen und Terminalgeräte verwendet und uugetty
für Modems.
Greg Hankins (früher Autor des Serial HOWTO) verwendete uugetty
,
daher sind seine Erfahrungen mit diesem Programm im Abschnitt
Uugetty-Konfiguration enthalten.
getty_em
ist eine vereinfachte Version von uugetty
. Es
wurde von Vern Hoxie geschrieben, weil er die komplexen
Konfigurationsdateien für getty_ps
und uugetty
verwirrend
fand.
Es ist Teil einer Sammlung von mehreren Dienstprogrammen und Informationsschriften für die serielle Schnittstelle von Vern Hoxie. Sie ist via FTP erhältlich unter:
ftp://scicom.alphacdc.com/pub/linux
Der Name der Datei ist serial_suite.tgz
.
agetty
ist eine einfache, aber vollständige Implementierung
von getty
, die sich besser für virtuelle Konsolen oder
Terminals als für Modems eignet. Unter günstigen Umständen kann es
aber auch mit Modems verwendet werden (allerdings können Sie keinen
abgehenden Anruf initiieren, wenn agetty
aktiv ist und auf einen
Anruf wartet). In der Debian-Distribution heisst agetty
einfach
getty
.
mingetty
ist eine kleine Version von getty, die nur für
Konsolen (bzw. Monitore) funktioniert, mit Modems kann sie nicht
verwendet werden.
Der Anrufer verwendet ein beliebiges Terminalprogramm, das Ihre Nummer
wählt und Ihr Telefon läutet. Es gibt zwei Möglichkeiten, wie Ihr PC
den Anruf entgegennehmen kann. Einmal kann das Modem den Anruf
automatisch annehmen. Die andere Möglichkeit besteht darin, dass
getty merkt, dass es läutet, und daraufhin einen Befehl an das
Modem sendet, den Anruf entgegenzunehmen. Wenn das Modem abgenommen
hat, sendet das Modem Töne zum anderen Modem (und umgekehrt). Beide
Modems einigen sich auf ein Übertragungsprotokoll, und wenn das
erfolgreich ist, sendet ihr Modem eine »CONNECTed«-Nachricht an
getty. Wenn getty diese Nachricht erhält, sendet es den
Login Prompt über den seriellen Port. Manchmal ruft getty auch
ein Programm namens login
auf, um den Login-Vorgang abzuwickeln.
getty startet üblicherweise beim Booten des Systems, aber es
wartet mit dem Senden des Login Prompts, bis eine Verbindung aufgebaut
ist.
Nun noch einige Informationen über die beiden Möglichkeiten, den Anruf anzunehmen.
Der Wert des S0-Registers im Modem bestimmt, ob und wann ein eingehender Anruf beantwortet wird. Mit einem Terminalprogramm kann der Wert des S0-Registers mit dem Befehl »ATS0?« abgefragt werden. Mit dem Befehl »ATS0=3« wird das S0-Register des Modems auf den Wert 3 gesetzt, das Modem nimmt den Anruf nach dem 3. mal läuten entgegen. Steht das S0-Register auf 0, wird das Modem den Anruf nicht automatisch entgegennehmen, sondern erst, wenn es von getty oder einem Terminalprogramm den Befehl »ATA« (=Antwort) erhalten hat, während es läutet. Diese Möglichkeit sollte bevorzugt werden. Wenn das Modem den Anruf nicht automatisch entgegennimmt, spricht man von manueller Rufannahme, obwohl die Rufannahme von getty automatisch durchgeführt wird.
Bei »manueller« Rufannahme öffnet getty den seriellen Port zum Zeitpunkt des Systemstarts und hört auf die serielle Schnittstelle. Kommt ein Anruf herein, sendet das Modem eine »RING«-Nachricht an getty. Wenn der Anruf entgegengenommen werden soll, sendet getty einen »ATA«-Befehl an das Modem. Das Modem baut dann die Verbindung auf und sendet eine »CONNECT..«-Nachricht, sobald die Verbindung steht. getty kann dann den Login-Prompt zum Anrufer übertragen.
Bei automatischer Annahme des Anrufs durch das Modem wird das DCD-Signal (Data Carrier Detect, d.h. es ist ein Trägersignal zur Übermittlung von Daten vorhanden) der seriellen Schnittstelle verwendet, um zu signalisieren, dass eine Verbindung aufgebaut wurde. Zum Zeitpunkt des Systemstarts versucht getty, den seriellen Port zu öffnen, aber dieser Versuch schlägt im Allgemeinen fehl, da noch kein DCD-Signal des Modems anliegt. getty wartet daraufhin an dieser Stelle im Programm, bis ein DCD-Signal auftritt. Wenn das der Fall ist (u.U. viele Stunden später), wird ein Interrupt ausgelöst, getty wird aktiv, der Port kann nun geöffnet werden und getty sendet den Login Prompt. Während getty auf das DCD-Signal wartet, können andere Prozesse ohne Beeinträchtigung aktiv sein, da Linux ein Multitasking-Betriebssystem ist.
Vielleicht fragen Sie sich, wie getty im »manuellen« Rufannahmemodus den seriellen Port öffnen kann, schiesslich gibt es ja zu diesem Zeitpunkt noch kein DCD-Signal. Nun, es gibt eine programmiertechnische Möglichkeit, das Öffnen des Ports zu erzwingen, selbst wenn kein DCD-Signal anliegt.
Der Unterschied zwischen beiden Möglichkeiten der Rufannahme zeigt
sich dann, wenn der PC abgeschaltet ist, das Modem aber noch arbeitet.
Im manuellen Fall wird die »RING«-Nachricht an getty gesendet,
aber da der PC nicht läuft, gibt es auch keinen getty-Prozess,
und der Anruf wird nicht entgegengenommen. Es fallen daher auch keine
Telefongebühren an. Im Fall der automatischen Rufannahme hebt das
Modem ab, aber es wird nie ein Login-Prompt gesendet, da der PC nicht
läuft. Je länger der Anrufer auf den Login wartet, umso teurer wird
seine Telefonrechnung. Zudem ist es frustrierend, auf einen Login zu
warten, der niemals kommt. mgetty
verwendet den manuellen
Annahmemodus. uugetty
kann dies ebenfalls, wenn ein
Konfigurationsskript verwendet wird.
Es gibt auch die Möglichkeit eines automatischen Rückrufs. Zuerst ruft jemand Ihr Modem an. Sie erhalten dadurch ein paar Informationen über den Anrufer wie z.B. seine Telefonnummer. Der Anrufer legt aber wieder auf und wird unmittelbar danach von Ihrem Modem zurückgerufen. Welche Gründe gibt es, dieses Verfahren einzusetzen? Ein Grund ist z.B., um Telefonkosten zu sparen, falls Sie den Anrufer günstiger anrufen können als er Sie. Ein anderer Grund ist eine höhere Systemsicherheit. Mit dem Rückruf kann sichergestellt werden, dass der Anrufer wirklich der ist, für den er sich ausgibt.
Es gibt für Linux ein Programm namens callback
(engl. Callback =
Rückruf), das mit mgetty
zusammenarbeitet. Es ist zu finden
unter
ftp://ftp.icce.rug.nl/pub/unix.
Eine Schrittweise Anleitung zur Installation von callback
(und
PPP) ist zu finden unter
http://www.stokely.com/unix.serial.port.resources/callback.html
Die Verarbeitung von Sprachnachrichten ermöglicht dem PC, als Anrufbeantworter zu fungieren. Dazu benötigen Sie ein entsprechendes Modem (»Voice-Modem«) und die passende Software. Anstatt die Sprachnachrichten auf Band zu aufzuzeichnen, werden sie in digitaler Form auf der Festplatte gespeichert. Wenn Sie einen Anruf erhalten, hört der Anrufer eine Begrüßungsansage und kann dann eine Nachricht hinterlassen. Die etwas besseren Systeme erlauben je nach Anrufer individuelle Begrüßungstexte und die Sortierung der Nachrichten in verschiedene Mailboxen. Für Linux gibt es bisher nur frei verfügbare Software für einfache Anrufbeantwortersysteme.
Zwei Anrufbeantworter-Programme sind allgemein bekannt. Das eine
implementiert nur sehr einfache Funktionen
(siehe
Anrufbeantworter-Software). Das andere Programmpaket ist
vgetty
, es besitzt zwar einen größeren Funktionsumfang,
ist aber nicht so ausführlich dokumentiert. Es ist eine optionale
Erweiterung zum gut dokumentierten und weit verbreiteten
mgetty
-Programm. Es unterstützt ZyXEL-ähnliche
Modembefehle. Es sieht so aus, als ob vgetty
im Moment nicht sehr
stabil läuft, aber es wird erfolgreich eingesetzt und seine
Entwicklung geht weiter. Falls jemand mehr über vgetty
weiss,
wäre ich für Hinweise bzgl. des aktuellen Entwicklungsstands sehr dankbar.