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 mgetty
mgetty
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