Diskussion:Capisuite als Faxserver

Aus Linupedia.org
Version vom 12. März 2007, 07:49 Uhr von Yehudi (Diskussion | Beiträge) (Diskussion:Capisuite als Faxserver-2Version wurde nach Diskussion:Capisuite als Faxserver verschoben: Zur favoristeten Version erkoren, die andere befindet sich zum Einarbeiten auf der Diskussionsseite.)
(Unterschied) ← Nächstältere Version | Aktuelle Version (Unterschied) | Nächstjüngere Version → (Unterschied)
Wechseln zu: Navigation, Suche

2tes Howto zum einarbeiten

Markus Görres, 20.02.2006


Installation von CAPISUITE

Bei passiven Karten wird teilweise von Suse als Standard ein Hisax-Treiber für die AVM-Karte geladen. In diesem Fall muss der entsprechende closed-source-driver von AVM heruntergeladen werden.
FRITZ!Card PCI CAPI Driver Version 3.11.07 05.01.2006
http://www.avm.de/de/Service/Service-Portale/Service-Portal/index.php?portal=Linux
Zu finden unter Download (fcpci-suse93-64bit-3.11-07.tar.gz).


Entpacken und die Installationsanweisungen unter install_passive-d.html lesen.
Mit root-Rechten kann das Installationsskript ./install aufgerufen werden, dass die notwendigen Treiber in das aktuelle Modulverzeichnis kopiert.
Anschliessend muss Yast gestartet werden, um die ISDN-Karte unter Netzwerkgeräte einzurichten. Wichtig ist die Wahl des CAPI2.0-Treibers (nicht Hisax) und die Eingabe der Ortskennziffer ohne führende 0.
Der nächste Schritt kann übersprungen werden, wenn keine Verbindung zum Internet über ISDN gewünscht wird.
Nun sollte die ISDN-Karte samt Treiber ordentlich geladen sein. Nach Aufruf von capiinfo sollten einige Ausgaben erscheinen.
Wichtig: nach jedem Kernel-Update muss das Installationsskript neu aufgerufen werden und die ISDN-Karte mittels Yast ausgewählt werden. Andernfalls wundert man sich über nicht empfangene Faxe.


Die Konfiguration von CapiSuite in der Konfigurationsdatei (/etc/capisuite/fax.conf) enthält einen globalen Teil und benutzerspezifische Teile.
Die benutzerspezifischen Angaben überschreiben die globalen Angaben und können bequem über Yast eingerichtet werden. Benutzer aus der Liste auswählen, Faxnummer eingeben, die StationID und die Kopfzeile (wird beim Faxversand übertragen). Bei der Aktion MailAndSave wird das Fax im Verzeichnis /var/spool/capisuite/users/<user> gespeichert und als Mail verschickt.
Hier können die Wahlwiederholungen eingestellt werden: send_tries="3" (default ist 10).


Der CapiSuite-Dämon wird in der Regel von Suse automatisch beim Systemstart aktiviert.


Faxverand an mehrere, auch externe Mailadressen

Falls die Faxe an eine externe Mailadresse versendet werden sollen, muss die Absendeadresse mit einer gültigen Domain versehen sein. Andernfalls ist eine Fehlermeldung des Providers vorprogrammiert und die Mail wird nicht verschickt. Dies kann sowohl in den globalen als auch in den benutzerspezifischen Teilen erfolgen.
Mehrere Mailadressen werden per Kommata getrennt. Dies funktioniert aufgrund eines Bugs nur nach einer Änderung der Skripte, was weiter unten erläutert wird.

Code:
fax_email_from="richtiger.name@web.de"


fax_action="MailAndSave"

fax_email="name@localhost,externer.name@web.de"



Die Lösung dieses Bugs ist beschrieben in http://www.capisuite.de/mantis/view.php?id=123
Die Datei /usr/lib64/python2.4/site-packages/cs_helpers.py muss hier angepasst werden.
In der Funktion def sendMIMEMail muss folgende Änderung vorgenommen werden:
zeile:

Code:
import email.MIMEBase,email.MIMEText,email.MIMEAudio,email.Encoders,encodings.ascii,smtplib,popen2,capisuite


ersetzen mit:

Code:
import email.MIMEBase,email.MIMEText,email.MIMEAudio,email.Encoders,encodings.ascii,smtplib,popen2,capisuite,string



vor:

Code:
server.sendmail(mail_from,mail_to,msg.as_string())


diese Zeile einfügen:

Code:
mail_to = string.split (mail_to, ",")


sinnvolle Dateinamen der Faxe

CAPISUITE nummeriert die Faxe aufsteigend. Zur eindeutigen Erkennung und Zuordnung ist dies nur begrenzt hilfreich, die eingehende Faxnummer ist an dieser Stelle aus meiner Sicht hilfreicher.


Für diesen Zweck wurde ein weiteres Python-Skript namen faxen_machen.py geschrieben, das ein Namen ermittelt und ebenfalls eine Funktion für den Ausdruck (siehe Punkt 3) bereitstellt.
Die Funktion muss am Anfang der Datei /usr/lib/capisuite/incoming.py unmittelbar hinter den anderen Importzeilen importiert werden.

Code:
import faxen_machen



Der Name des Faxes setzt sich zusammen aus der eingehenden Nummer und Empfangsdatum und -zeit. Hierzu wird die formatierte Zeitausgabe, eine Standardfunktion von Python, verwendet. Bei Bedarf ist diese natürlich beliebig anzupassen. Näheres unter http://www.python.org.


Der Funktionsaufruf in der Datei /usr/lib/capisuite/incoming.py muss entsprechend angepasst werden:


Code:
filename=faxen_machen.name(udir+"received/",call_from,faxFormat) # neuer aufruf

      #filename=cs_helpers.uniqueName(udir+"received/","fax",faxFormat) alter aufruf


Code von /usr/lib64/python2.4/site-packages/faxen_machen.py

# hilfsroutinen fuer capisuite
# copyright markus goerres 10.02.2006
#
# printfax = fax direkt ausdrucken
#

def printfax(filename):
  import cs_helpers
  # fuer die funktion sfftotiff
  import string
  # fuer string-funktionen
  import os
  # fuer die systemfunktionen
  namen = string.split(filename,".")
  suffix = namen[1]
  dateiname = namen[0]
  if (suffix=="sff"):
     ret=cs_helpers.sfftotiff(filename,dateiname+".tif")
     command="tiff2ps -a -h11 -w8.5 "+dateiname+".tif"+" | lp"
     os.popen2(command)
     command="rm "+dateiname+".tif"
     os.popen2(command)
  else:
     raise "color fax kann nicht ausgedruckt werden!"
# ende

#
# name = rueckgabe eines eindeutigen namens aus faxnummer + datum + zeit + endung
#
def name(directory,call_from,suffix):
  import time
  faxtime = time.strftime("%Y-%m-%d_%H-%M-%S")
  if (call_from=="-"):
     faxnumber = "unknown"
  else:
     faxnumber = call_from
  faxname = directory+"fax_"+faxnumber+"_"+faxtime+"."+suffix
  return faxname

sofortiges Ausdrucken eingehender Faxe

Um Faxe nach dem Empfang direkt auszudrucken, muss das Python-Skript am Ende der Funktion faxIncoming in der Datei /usr/lib/capisuite/incoming.py folgende Programmzeile eingefügt werden:

Code:
faxen_machen.printfax(filename)



In dieser Funktion (siehe oben) wird aus dem Fax (Endung sff) eine Tiff-Datei erzeugt, diese in Postscript umgewandelt und an den Drucker umgeleitet. Anschliessend wird die Tiff-Datei wieder gelöscht.
Bei ausgeschaltetem Drucker verbleiben die Druckaufträge in der Warteschlange, bis der Drucker angeschaltet wird.



Faxen via Scanner

Wie Faxe aus KDE und ObenOffice versendet werden, kann in d) nachgelesen werden.
Um jedoch ein handelsübliches Faxgerät komplett abschaffen zu können, müssen ebenfalls Papiervorlagen verarbeitet werden können.
Hierzu kann man sich des Pakets xsane bedienen, dass unter Suse bereits vorhanden ist. Neben der normalen Scanner-Funktion bietet xsane ebenfalls die Funktionalität einer Kopie sowie einer Faxansteuerung.
In der Konfiguration Fax müssen folgende Anpassungen vorgenommen werden:
- Befehl: /usr/bin/capisuitefax eintragen.
- Option für Empfängernummer -d
- Option für Postscriptdatei bleibt leer.
- Option für Normalmodus entfernen.
- Option für Feinmodus entfernen.


Im Hauptdialog von xsane statt Betrachter einfach Fax auswählen, in dem erscheinenden Dialog ein Faxprojekt erstellen und die gewünschte Faxnummer eingeben. Nach Scannen der Vorlage die entsprechende Datei auswählen und auf Projekt senden drücken. Nach Umwandlung wird die Datei an CAPISUITE übergeben und als Fax verschickt.

Die Teile können noch mit in das jetzige Howto eingefügt werden, diese Version habe ich gelöscht, damit nur eine Version vorhanden ist. --Yehudi 08:46, 12. Mär 2007 (CET)