sipgatefax
Vom Linux-Rechner aus mit CUPS Faxe über Sipgate verschicken
Für Debian- und Ubuntu-Nutzer gibt es ein fertiges Paket, was
die Installation stark vereinfacht:
Hier weiterlesen
Worum geht es?
Seit längerem bietet Sipgate eine Windows-Software an, die es erlaubt,
Faxe über einen virtuellen Drucker zu verschicken. Dabei wird ein
Sipgate-Account genutzt, sodass man keine ISDN-Karte oder ähnliches
benötigt.
Für Linux war mir keine Lösung bekannt, also habe ich schnell
etwas geskriptet, was gerade diese Aufgabe löst.
Was braucht man?
- Einen Linux-PC (sollte aber auch mit anderen Unix-ähnlichen
Betriebssystemen gehen)
- Darauf CUPS als Druckdienst (dürfte meist schon da sein)
- Ein paar Zusatzpakete: perl, libfrontier-rpc-perl,
pstotext, sudo,
gmessage, ps2pdf ...
- Das Skript sipgateapi-fax.pl, herunterzuladen bei
Sipgate API-Downloads.
- Einen Sipgate-Account
(gratis oder gegen Monatsgebühr, je
nach FUnktionswünschen)
- Etwas, das man per Fax verschicken möchte
Wie geht man vor?
- Die notwendigen Pakete installieren. Unter Debian / Ubuntu z. B. mit
apt-get install sudo pstotext libfrontier-rpc-perl gmessage
libcrypt-ssleay-perl
libnet-ssleay-perl
Der Rest sollte auf einem Standard-Desktop-PC schon installiert sein.
- Sipgate-Fax-Script herunterladen und als /usr/local/bin/faxfile abspeichern.
Als Root ausführen:
chown root:lp /usr/local/bin/faxfile
chmod 750 /usr/local/bin/faxfile
- Konfigurationsdatei /etc/sipgatefax.conf anlegen:
$sipid = "benutzername";
$sippwd = "passwort";
Hier gehören die Zugangsdaten des Sipgate-Webinterface hinein,
nicht die SIP-Kennung des Telefons.
- CUPS-Backend-Datei /usr/lib/cups/backend/sipgatefax
anlegen und als root ausführbar machen:
chown root:lp /usr/lib/cups/backend/sipgatefax
chmod 750 /usr/lib/cups/backend/sipgatefax
- Das Skript, das nach der Faxnummer fragt, herunterladen und unter
/usr/local/bin/ask-for-fax-number
speichern und ausführbar machen:
chown root:root /usr/local/bin/ask-for-fax-number
chmod 755 /usr/local/bin/ask-for-fax-number
- Per sudo dem Benutzer lp das Fragen nach der Fax-Nummer erlauben:
Als root aufrufen visudo und dort folgende Zeile einfügen:
lp ALL= (ALL) NOPASSWD:/usr/local/bin/ask-for-fax-number
- CUPS einmal neu starten, um das neue Backend zu aktivieren:
/etc/init.d/cups restart
- Auf dem üblichen Weg (KDE-Kontrollzentrum, GNOME-Systemkonfiguration, ...)
einen neuen Drucker anlegen. Als Anschluss ist hier statt "smb://" oder
"usb://" einzugeben: sipgatefax://
Dieser Drucker ist als "Postscript-Drucker" einzustellen.
Entweder einfach Postscript mit Standard-Einstellungen übernehmen oder
diese PPD-Datei als sipgatefax.ppd speichern und
CUPS als Treiber-Datei vorlegen.
Wie verschickt man ein Fax?
Wenn der gerade lokal angemeldete Benutzer einen Druckjob auf den Sipgate-Fax-Drucker schickt,
wird dieser nach einer plausiblen Faxnummer durchsucht. Im Anschreiben sollte etwas wie
"Fax: 0123456789" stehen, damit diese automatische Suche funktioniert. Wird nichts
passendes gefunden, ist das aber auch nicht schlimm: Unabhängig davon wird nach der Ziel-Fax-Nummer
gefragt. Wenn schon eine identifiziert wurde, ist diese als Vorschlag eingetragen, sonst eben nicht.
Das funktioniert aber nur, wenn der druckende Benutzer gerade eine X-Sitzung offen hat. Auch dann kann
es in bestimmten Konfigurationen haken.
You get what you pay for.
Keine Garantie oder Gewährleistung - wer sich nicht die Finger verbrennen will, soll nicht mit
dem Feuer spielen. Geld-zurück bei Nichtgefallen :-)
Nachtrag
Auf einigen Linux-Distributionen scheint ENV(TMPDIR) nicht gesetzt zu sein. Bei diesen muß an
zwei Stellen in /usr/lib/cups/backend/sipgatefax eine Ersetzung durchgeführt werden:
Tausche $ENV{TMPDIR} gegen /tmp. Dann ist das temporäre Verzeichnis fest
kodiert, was prinzipiell auch funktioniert, aber meiner Meinung nach nicht ganz so elegant ist.
Wenn es Ubuntu zum Laufen bringt, ist es das wohl wert.