mgetty+sendfax unter LinuxDownload (ca. 25 kByte)
1 Allgemeines und Installation
mgetty in den Versionen 1.1.2 und 1.1.5 gesammelt
worden. Die aktuelle Version von mgetty ist via FTP von
ftp.leo.org
zu beziehen.
Für die Tests standen die Modems Highscreen 14400,
Sportster Voice und Zyxel 1496 zur Verfügung.
Unterschieden werden Schnittstellen ohne FIFO (UART 16450) und mit FIFO
(UART 16550). Der Typ der Schnittstelle wird beim Start des
Linux-Kernels ausgegeben. Die Ausgaben können mit dem Befehl
Um Geschwindigkeiten über 38400 bps zu nutzen, muss mit
Unter
Von Gert Döring, dem Autor von
Trotz der genannten Kritik ist eine Arbeit mit Rockwell basierten Modems
und mit dem Sportster möglich. Allerdings ist im Detail immer mit
Problemen zu rechnen.
Ein ausführlicher Bericht zu Modems findet sich in der Zeitschrift
c't in der Ausgabe 2/97 ab Seite 152.
Der Faxempfang ist bei diesem Modem entgegen der Spezifikation nur bis
9600 bps möglich. Dazu ist die Datei
Die einzelnen Aktionen werden durch Module zur Verfügung
gestellt. Die Konfiguration dieses Skriptes erfolgt in der Datei
Wird das Modem jetzt angerufen, erscheint auf dem Terminal des Anrufers
ein Login-Prompt. Soll das Login über Modem nur ausgewählten
Personen ermöglicht werden, ist das in der Datei
Das Feature heißt AutoPPP. Dazu ist im
Als Beispiel ist hier eine Konfiguration für PAP zu sehen:
Um mittels
Zu den Quellen von
Unabhängig vom Empfang von Faxen erfolgt ihr Versand. Durch den
Aufruf von
Der Versand kann automatisiert werden, wenn
Beim Versand von DVI-Dateien werden bessere Ergebnisse erzielt, wenn die
Datei erst in ein Postscriptfile konvertiert wird, welches dann mit
Eine Reihe nützlicher Zusatzprogramme finden sich unter den Quellen
von
Zum Versenden und Empfangen von Faxen gibt es unter UNIX mit
Hylafax eine freie Alternative zu
Die einfachste Nutzung ist die als Anrufbeantworter. Mit dem Programm
Von
Voice-Modems erkennen die DTMF-Codes (Tonsignale) der Tasten eines
Telefons. Diese Eigenschaft wird auch von
Die Dokumentation der entsprechenden Funktionen fehlt teilweise
noch und die einzelnen Funktionen sind auch noch nicht lange
implementiert, was dieses Gebiet zum Experimentierfeld macht.
Jede Art der Nutzung benötigt Möglichkeiten zur Manipulation
der aufgenommen Sounds. Speziell die Umwandlung des Modem eigenen
Formates in ein Format, welches über die Soundkarte abgespielt
werden kann, ist von Interesse. Die folgenden Programme können
dabei genutzt werden:
Zum Schluss sollen noch einige Erfahrungen bei der Nutzung der
Voice-Funktionen des Sportster Voice angegeben werden:
1.1 Serielle Schnittstellen
Externe Modems werden über eine serielle Schnittstelle mit dem
Computer verbunden, weshalb kurz auf diese eingegangen werden soll.dmesg angezeigt werden. Sie sehen ähnlich folgendem
aus:
Schnittstellen ohne FIFO sollten mit maximal 19200 bps betrieben
werden. Da die Geschwindigkeit auf der seriellen Schnittstelle
höher sein sollte als zwischen den Modems, ist für schnelle Modems
eine Schnittstelle mit FIFO erforderlich.
tty00 at 0x03f8 (irq = 4) is a 16550A
tty01 at 0x02f8 (irq = 3) is a 16550A
setserial /dev/ttyS1 speed die zu nutzende Datenrate
eingestellt werden. Ist das Modem nicht an COM 2 angeschlossen, ist
ttyS1 entsprechend zu ändern. Für
speed ist dabei spd_normal,
spd_hi oder spd_vhi entsprechend für
38400 bps, 57600 bps oder 115200 bps zu setzen. Anstatt 38400 bps wird dann
die eingestellte Geschwindigkeit benutzt./sbin/init.d/ findet sich meist ein Skript, welches
dafür benutzt werden kann. Ein Beispielskript
serial
befindet sich hier.
1.2 Hinweise zu Modems
Eigene Tests wurden mit einem Modem Highscreen 14400 (baugleich GVC,
Rockwell-Chipsatz), einem Sportster Voice von US Robotics (33600 bps)
und einem Zyxel 1496 durchgeführt.mgetty stammen die folgenden
Erfahrungen zu Modems:
1.3 Informationen
Die Diskussionen zu mgetty finden in den Netnews in der Gruppe
de.alt.comm.mgetty statt.1.4 Übersetzen
Die Installation von mgetty gestaltet sich recht einfach:
policy.h-dist nach
policy.h
kopiert und editiert werden. Hier werden die Modem spezifischen
Parameter eingestellt.
Makefile
müssen die einzelnen Pfade überprüft werden.
Außerdem muss als Echo-Kommando echo -e an der
entsprechenden Stelle eingetragen werden.
mg_m_init.c gepatcht worden.
make wird mgetty übersetzt und mit
make install in die entsprechenden Verzeichnisse
installiert.
voice/ zu wechseln und dort make und
make install auszuführen.
1.5 Verzeichnisse
Die Installationsverzeichnisse werden im Makefile
festgelegt. Im Folgenden werden die hier benutzten Verzeichnisse
angegeben:
/usr/etc/mgetty+sendfax/ ... Konfigurationsdateien,
/usr/lib/mgetty+sendfax/ ... mgetty-Dateien,
/usr/bin/ ... Programme,
/usr/sbin/ ... mgetty, sendfax, vgetty,
/var/spool/fax/ ... einkommende und ausgehende Faxe,
/var/log/ ... Logdateien.
1.6 Logdateien
Die Namen und Pfade der Logdateien werden in policy.h
eingestellt. Hier sind die folgenden Namen benutzt worden:
/var/log/mgetty.ttyS1 ... Logdatei von mgetty,
/var/log/sendfax.log ... Logdatei von sendfax,
/var/log/newfax.log ... Logdatei von newfax,
/var/log/vgetty.ttyS1 ... Logdatei von vgetty.
1.7 Anpassungen
Im Folgenden werden eine Reihe eigene Anpassungen und Konfigurationen
vorgestellt:
/etc/issue.mgetty
enth"alt einen speziellen Begrüßungsschirm, der bei Logins
über Modem benutzt werden kann.
/usr/local/etc/mgetty+sendfax/
sind editiert worden:
Von allen Dateien existieren Templates, die leicht angepasst werden
können.
faxheader
... Kopfzeile auf einem gesendeten Fax,
fax.allow
... Nutzer, die faxspool nutzen dürfen,
mgetty.config
... mgetty Konfiguration,
sendfax.config
... sendfax Konfiguration
/usr/local/lib/mgetty+sendfax/
steht das Programm new_fax, welches beim Empfang eines neuen
Faxes ausgeführt wird. Ein leistungsfähiges Beispiel
für so ein Skript ist Teil der Quellen von mgetty und
findet sich dort unter samples/new_fax.all. Die hier
angegebenen Dateien wurden teilweise modifiziert./usr/lib/mgetty+sendfax/faxlist.
Es ist möglich, in Abhängigkeit vom Sender verschiedene
Aktionen auszulösen.
faxspool
versenden zu können, ist die Datei
/usr/lib/teTeX/texmf/dvips/config.dfaxlo
angelegt worden. In der Datei modes.mf muss dabei ein
Eintrag für gtfaxlo existieren.
/usr/etc/mgetty+sendfax/login.config
kann eingestellt werden, dass nur bestimmten Personen ein Login via
Modem und mgetty erlaubt wird.
2 Einsatz von
Im Folgenden werden die Nutzung von mgettymgetty als Terminal-Server,
zum Senden und Empfangen von Faxen und als Voice-Mailbox beschrieben.
2.1 Terminal-Server
Wenn mgetty auf eingehende Anrufe an das Modem reagieren soll,
muss das Programm mgetty laufen. Dazu ist im File
/etc/inittab folgende Zeile einzufügen:
Standardmäßig können damit gleichzeitig Daten- und
Fax-Anrufe entgegen genommen werden.
mo:23:respawn:/usr/sbin/mgetty -i /etc/issue.mgetty ttyS1
mgetty, genauer gesagt
das Modem, erkennt den Typ des Anrufs automatisch./usr/etc/mgetty+sendfax/login.config
einzurichten.
2.2 PPP-Server
PPP-Logins können ermöglicht werden, indem spezielle Nutzer
eingerichtet werden, die als Shell das Programm pppd
eingetragen bekommen. mgetty bietet alternativ eine wesentlich
elegantere Lösung.Makefile
die Option -DAUTO_PPP zu ergänzen und in der Datei
/usr/etc/mgetty+sendfax/login.config
die entsprechende Zeile zu aktivieren. Erfolgt nun ein Anruf mit PPP,
wird automatisch auf dem Server der PPP-Dämon gestartet. Die
Authorisierung erfolgt dann mittels PAP oder CHAP.2.3 UUCP-Server
Für UUCP gilt das zu PPP gesagte. Zum einen können für
die Nutzer von UUCP spezielle Logins angelegt werden, die anstatt einer
Loginshell das Programm uucico starten. Eleganter ist es,
dies direkt durch mgetty zu erledigen. In
/usr/etc/mgetty+sendfax/login.config
kann eingestellt werden, dass bei einem Login-Namen, der mit einem
großen U beginnt, automatisch uucico gestartet wird.
Die Authorisation muss dann durch uucico erfolgen.
2.4 Faxen
Zur Konfiguration der Faxfunktionen siehe den Abschnitt 1.7mgetty Faxe zu empfangen, genügt in
/etc/inittab ein Eintrag der Form:
mo:23:respawn:/usr/sbin/mgetty ttyS1
mgetty, genauer gesagt das Modem, erkennt automatisch, ob es
sich bei dem Anruf um eine Datenverbindung oder ein Fax handelt. Sollen
nur Faxe empfangen werden, so geschieht dies mit folgendem Aufruf:
Für die Behandlung neu angekommener Faxe ist ein Programm
mo:23:respawn:/usr/sbin/mgetty -F ttyS1
/usr/lib/mgetty+sendfax/new_fax
verantwortlich. Der Name des Programms wird in
policy.h
eingestellt.mgetty gehören einige Beispiele
für so ein Skript. Als Beispiel ist hier das Skript angegeben,
welches unter
samples/new_fax.all/
zu finden ist. Die Module wurden teilweise leicht geändert. Die
Konfiguration des Skriptes erfolgt komfortabel im File
faxlist
und erlaubt in Abhängigkeit vom Sender verschiedene Reaktionen auf
das Fax auszulösen.
werden ein oder mehrere Faxe an Nummer
faxspool nr datei(en)
nr in eine
Queue unter /var/spool/fax/outgoing/ geschrieben.
Die Dateien können dabei weitesgehend ein beliebiges Format
besitzen, speziell ist der Versand von Text-, DVI- und PS-Dateien
möglich. Durch den Aufruf von faxrunq als Nutzer
root werden alle Faxe, die sich in der Queue befinden
gesendet.faxrunq via
Cron gestartet wird. Der Eintrag
im File
7 2,3,4 * * 1-5 /usr/bin/faxrunq >> /var/log/faxrunq.log
/var/cron/tabs/root bewirkt zum Beispiel von Montag
bis Freitag den Start des Programms um 02:07 Uhr, 03:07 Uhr und 04:07
Uhr.faxspool gesendet wird.mgetty im Verzeichnis frontends/ und auf
dem FTP-Server
ftp.leo.org:
mgetty,
mgetty:
mgetty beherrscht Hylafax auch den Fax
Klasse 1 Standard zur Kommunikation mit dem Modem.
2.5 Voice-Nutzung
Sollen die Voice-Funktionen des Modems genutzt werden, ist anstatt von
mgetty das Programm vgetty zu benutzen. In
/etc/inittab ist dann eine Zeile ähnlich
einzutragen.
mo:23:respawn:/usr/sbin/vgetty ttyS1
vm kann über das Modem eine Nachricht aufgenommen
werden:
Alternativ kann eine zum Beispiel im WAV-Format vorliegende Nachricht in
das Modem spezifische Format konvertiert werden. Die Nachricht wird dann
unter
vm record -i -c 1 ansage.rmd
abgelegt. Wird das Modem jetzt angerufen, hebt
/var/spool/voice/messages/standard.rmd
vgetty ab,
spielt die eingestellte Ansage ab und nimmt anschließend eine
Nachricht auf. Diese wird unter
abgelegt. Mit dem Programm
/var/spool/voice/incoming/
vm kann sie später
abgespielt werden:
Ein Beispiel für ein Skript, welches neue Nachrichten komfortabel
anzeigt und abspielt, findet sich
hier.
vm play -s va00280.rmd
vgetty wird die Unterscheidung von Sprach-, Daten- und
Faxanrufen durch das Modem unterstützt. Der Rechner kann damit
gleichzeitig auf Datenanrufe reagieren, Faxe empfangen und Personen, die
aus Versehen die Nummer wählen, einen Hinweistext ansagen.vgetty
unterstützt, was prinzipiell weitere mögliche Nutzungen
erlaubt:
pvftools: Teil von vgetty, Unterstützen
die Konvertierung der Voice-Formate von Zyxel und Rockwell, einfache
Manipulationen von Dateien im PVF-Format,
gsm-1.0: Programme toast,
untoast und tcat, benötigt
zur Umwandlung von Daten im GSM-Format, das vom Sportster von USR
benutzt wird,
usrgsm und gsmusr:
für Sportster Vi,
trunc: für Sportster Voice,
sox: universelles Programm zum Konvertieren von
Sounddaten.
/usr/etc/mgetty+sendfax/voice.conf das Voice-Format der
aufgezeichneten Daten mit rec_compression 1 einzustellen.
Das Programm
cat rmd-file | trunc | tcat -s | autopvf -8 | \
pvftowav > wav-file
trunc entfernt den Header von USR und
erzeugt damit Daten im GSM-Format. Diese konvertiert tcat
ins AU-Format die mit den letzten beiden Kommandos in ein WAV-File
umgewandelt werden.
wavtopvf wav-file | pvfspeed -s 8000 | pvftoau | \
toast | gsmusr > rmd-file
2.6 Probleme
Holm Sieber, E-Mail:
h.sieber@mathematik.tu-chemnitz.de