Faxservice mit Samba
Samba ist eine File- und Printserversoftware für Unix. Mit Hilfe von Samba ist es möglich Verzeichnisse und Drucker eines Unix-Systems für Windows-Clients nutzbar zu machen. Der Unix-Rechner taucht hierbei in der Netzwerkumgebung eines Windows-Rechners auf, als wäre er ein ganz normaler Windows-Rechner.
Genauso ist es möglich, den Windows-Clients einen Faxservice zur Verfügung zu stellen. Hierzu ist zusätzlich zu Samba ein installiertes mgetty+sendfax-Paket und natürlich ein Faxmodem notwendig.
Ein Script, dass das Versenden von Faxen aus beliebigen Windowsanwendungen heraus ermöglicht, möchte ich hier vorstellen. Das Script setzt einen funktionierenden Samba-Server mit funktionierendem sendfax voraus (mgetty selbst ist nicht unbedingt nötig, da es hierbei nicht um den Empfang von Faxen geht).
Um das Versenden der Faxe so einfach wie möglich zu gestalten, extrahiert das Script die im Faxtext vorhandene Faxnummer. Diese muß also nicht noch einmal in einem seperaten Dialog eingegeben werden. Damit das Script die Nummer erkennen kann muß dieser der Text "Fax-Nr:" voran gestellt sein (Leerzeichen zw. ":" und der Nummer sind erlaubt, aber keine Tabs). Die Nummer darf Klammern sowie Schräg- und Bindestriche enthalten, Leerzeichen sind hier nicht erlaubt.
Das Script basiert auf einer Mail von Michael A. Meiszl <mam@werries.de> (Im mgetty+sendfax-Paket zu finden unter /frontends/windows/) und einem Text von Gerhard Zuber <zuber@berlin.snafu.de> (siehe mgetty+sendfax-Paket /frontends/winword).
Funktionsweise:
Das Fax wird als Postscript an ein "Fax-Drucker" auf dem Samba-Rechner
gedruckt. Samba speichert das Fax in einem Spoolverzeichnis und startet
daraufhin das Script und übergibt dabei den Namen der Spooldatei, den
Namen des Users und des Windows-Clients. Das Script sucht nach dem Text
"Fax-Nr:" und extrahiert die Faxnummer. Die o.g. Zeichen werden entfernt
und die Nummer wird geprüft. Nun wird faxspool mit der Spooldatei und der
extrahierten Nummer aufgerufen. Der Anwender bekommt eine Bestätigung für
die Annahme oder eine Fehlermeldung per Winpopup o.ä. (Winpopup muß
natürlich gestartet sein). Mit dem nächten Lauf von faxrunq wird das Fax
verschickt.
Der User erhält von faxrunq einen Erfolgs- oder Fehlerbericht per Mail
zugestellt, sofern dies entsprechend eingerichtet ist,(siehe hierzu die
Man-Page von faxspool und faxrunq).
Download:
Das Script kann in einer deutschen oder englischen Version heruntergeladen werden:
- Deutsche Version 0.1.1d [3.0kb]
- English Version 0.1.1e [2.8kb]
- Fax-Vorlage für MS-Word 97 (deutsch) [13.7kb]
Installation:
Voraussetzung sind ein funktionsfähiges Samba-Paket, eine funktionierende sendfax Einrichtung inkl. faxspool und faxrunq.
In der smb.conf wird folgendes eingetragen:
[Fax]
path = /usr/spool/samba
read only = true
printable = true
public = true
comment = Samba Fax-Service
print command = /usr/local/samba/bin/do_fax %s %U %m
Wenn Samba motzt, das der Drucker Fax nicht existiert, ist es ggf. nötig, das Folgende zusätzlich einzufügen:
lpq command = /usr/bin/lpq -Plp
Das bei path angegebene Spool-Verzeichnis muß angelegt werden.
Wichtig: Die User müssen Schreibrechte auf das
Spool-Verzeichnis haben und Sie müssen den Faxservice auch benutzen
dürfen (siehe man faxspool und /etc/mgetty+sendfax/fax.allow)! Dies ist
auch abhängig von der Einstellung "security" in der smb.conf!
Beispiel:
cd /var/spool/
mkdir -m 775 samba
chgrp users samba
Das Script selbst wird im Verzeichnis /usr/local/samba/bin/ als do_fax installiert:
cd /
tar xvzf do_fax_de.tgz
Natürlich sind auch andere Verzeichnisse möglich, die Einträge in der smb.conf müssen dann entsprechend angepasst werden.
Als Letztes muss auf dem Windows-Client noch ein Postscript-Drucker-Treiber installiert werden (z.B. Apple Laserwriter NTX) und mit der Netzwerkdruckerwarteschlange "Fax" auf dem Samba-Rechner verbunden werden.
Nun kann von einer beliebigen Windowsanwendung ein Fax "gedruckt" werden.
Bekannte Probleme:
- Statt der angegeben Nummer wird immer 181 gewählt:
- Zwischen dem String "Fax-Nr:" und der Nummer dürfen keine Tabs stehen sondern nur Leerzeichen.
- Bei MS-Word wird die Faxnummer nicht erkannt:
- MS-Word positioniert beim Ausdruck in Postscript jedes Zeichen einzeln. Somit ist das Script nicht in der Lage den String "Fax-Nr:" zu erkennen. Um dieses Problem zu umgehen muss man Word "austricksen". Wie das geht finden Sie hier. Es gibt eine deutsche Word97-Vorlage, bei der der Workaround eingebaut ist, siehe bei Download)