Fax-Server hylafax

Auf dem Linuxrechner wird Hylafax Version 4.1beta2 als Serversoftware verwendet. Hylafax kann mit den CAPI-Treibern von AVM ungehen und ermöglicht somit das Faxen mit passiven Fritz-Karten.

tar xfj hylafax-4.1beta2.tar.bz2
./configure
make
make install

Die Konfiguration von hylafax erfolgt in verschiedenen Dateien. Schauen wir uns zuerst /usr/local/lib/fax/hfaxd.conf an. Die meisten Optionen sind gut erklärt und außerdem kann man sich noch in den man-pages informieren.

#
# HylaFAX Client-Server Protocol Configuration.
#
# Consult hfaxd(1M) for information on the contents
# of this file.  Note that pathnames specified in
# this file are relative to the root of the spooling
# area because hfaxd uses chroot to confine client
# accesses to the server's filesystem.
#
LogFacility:           daemon             # syslog facility (want this 1st))
ServerTracing:         0x0C000            # just server operation
IdleTimeout:           900                # initial client idle timeout (secs)
#MaxIdleTimeout:       7200               # max client idle timeout (secs)
MaxLoginAttempts:      5                  # max # login attempts before disconnect
MaxAdminAttempts:      5                  # max # admin attempts before disconnect
MaxConsecutiveBadCmds: 10                 # max # invalid cmds before disconnect
FaxContact:            fax                # who gets questions/complaints
UserAccessFile:        "/etc/hosts.hfaxd" # user+host access control file
#ShutdownFile:         "/etc/shutdown"    # server shutdown control filename
#XferLogFile:          "etc/clientlog"    # for logging client file transfers
FaxQFIFOName:          "FIFO"             # FIFO name for talking to faxq process
#
# The default format used to return job status queries.
# Note that clients can override this with JOBFMT.
#
JobFmt:                "%-3j %3i %1a %6.6o %-12.12e %5P %5D %7z %.25s"
#
# The default format used to return recvq status queries.
# Note that clients can override this with RCVFMT.
#
RcvFmt:                "%-7m %4p%1z %-8.8o %14.14s %7t %f"
#
# The default format used to return modem status queries.
# Note that clients can override this with MODEMFMT.
#
#ModemFmt:                "Modem %m (%n): %s"
#
# The default format used to return file-oriented
# directory listings.
# Note that clients can override this with FILEFMT.
#
FileFmt:                "%-7p %3l %8o %8s %-12.12m %.48f"

#
# SNPP-specific parameters.
#
#MaxMsgLength:                128                # max pager message length
#PagerIDMapFile:        "/etc/pagermap"        # file with pager ID mapping rules
#
# The following three items define the mapping from
# SNPP service level to job scheduling priority and
# expiration (kill) time.  Each item should have a
# list of 12 values that define the mapping for service
# levels 0 through 11 (first item is level 0, second
# item level 1, ... etc.).
#
#PriorityMap:                "63 127 127 127 127 127 127  127  127  127  127  127"
#RetryTimeMap:                "30  60  60 180   0   0   0    0    0    0    0    0"
#KillTimeMap:                " 5   5   5  15  60 240 720 1440 1440 1440 1440 1440"

Die Datei /var/spool/fax/etc/hosts.hfaxd legt fest, welche Rechner den Faxserver benutzen dürfen. Die Doppelpunkte hinter den IP-Nummern sind unbedingt notwendig.

localhost
127.0.0.1:::
192.168.0.1:::
192.168.0.2:::
192.168.0.3:::
192.168.0.4:::
192.168.0.5:::

Um mit einer passiven Fritz-Karte zu faxen, ist unbedingt der AVM-Capi-Treiber (siehe CAPI) zu installieren. Jetzt fehlt noch das capi4hylafax-01.01.01.tar.bz2-Paket.

tar xfj capi4hylafax-01.01.01.tar.bz2
cd capi4hylafax-01.01.01
make
make install

Damit haben wir die beiden Programme "c2faxsend" und "c2faxrecv" zur Verfügung. Die beiden Programme sind für das Senden bzw. Empfangen von Faxen per CAPI verantwortlich. Wir fügen noch die folgende Zeile in die Datei /etc/inittab ein, und stellen damit sicher, dass c2faxrecv immer gestartet wird. Dies ist notwendig, auch wenn nur Faxe versendet werden sollen.

fr:23:once:/usr/local/bin/c2faxrecv -v -C /var/spool/fax/etc/config.faxCAPI >> /var/log/fax 2>&1

Zum Schluß müssen wir sicherstellen, dass die Datei /dev/capi20 die richtigen Rechte und Eigentümer aufweist.

mknod -m 600 /dev/capi20 c 68 0
chown uucp:fax /dev/capi20

Die Datei /var/spool/fax/etc/config.faxCAPI konfiguriert den AVM-Capi-Fax-Treiber. Die Datei ist sehr gut kommentiert, so dass keine größeren Probleme auftreten sollten. Hier ist mal meine Version:

#
# EDIT THIS CONFIGURATION TO REFLECT YOUR SETUP
#

# Grundsaetzliches:
# - Es gibt fuer jeden Wert einen Standardzustand (default), sodass jede Zeile
#   der Datei oder auch das komplette Configfile ausgelassen werden kann.
# - Es gibt ausschliesslich  ein Configfile, in dem alle noetigen Angaben fuer "c2faxsend/-receive"
#   eingetragen werden koennen.
# - Werden fuer HylaFAX mehrere virtuelle Geraete (devices) angelegt, muss es fuer jedes Device
#   ein Configfile im Format config.[DeviceName] geben. Dessen Existenz wird von HylaFAX
#   ueberprueft. Ohne dieses File kann die Arbeit mit dem Device nicht aufgenommen werden.
#   Die Existenz einer solchen Datei kann am einfachsten durch einen Link auf dieses ConfigFile
#   oder ein minimales "dummy"-ConfigFile nachgewiesen werden.

# "SpoolDir" gibt den Pfad an, unter dem im HylaFAX-kompatiblen Betrieb die HylaFAX-Dateien zu finden
# sind oder unter dem im Stand-Alone-Betrieb die empfangenen Faxe gespeichert werden sollen.
# Im HylaFAX-kompatiblen Betrieb werden die Faxe im Verzeichnis $(SpoolDir)/recvq gespeichert.
SpoolDir:               /var/spool/fax

# "FaxRcvdCmd" gibt das Skript an, das ausgefuehrt wird, sobald ein Fax empfangen wurde.
# default   /var/spool/fax/bin/faxrcvd
FaxRcvdCmd:             /var/spool/fax/bin/faxrcvd
#SendFaxCmd:		/usr/local/bin/c2faxsend

# "FaxReceiveUser" ist der User, als der c2faxrecv ausgefuehrt wird.
# Die Aenderung des Users kann nur vom Superuser bzw. "root" erfolgen. Sollte c2faxrecv von
# einem anderen User gestartet werden, wird dieser Eintrag ignoriert.
# Hier einen anderen als den Standardwert (Default-Wert) "uucp" einzutragen ist dann
# sinnvoll, wenn beispielsweise die Rechte von /dev/capi20 nicht geaendert werden sollen oder
# Ihre Linux-Distribution einen anderen User voraussetzt.
# default   uucp
FaxReceiveUser:         uucp


# Im "LogFile" werden Informationen ueber den Faxablauf abgespeichert.
LogFile:                /var/log/fax.log

# Der Befehl "LogTraceLevel" gibt die Menge der Daten an, die in ein LogFile geschrieben werden.
# Die Spanne reicht von 0 = nichts bis 4 = vieles.
LogTraceLevel:          4

# "LogFileMode" sind die Angaben (mode), aufgrund derer sowohl das gerade erwaehnte LogFile
# als auch die LogFiles fuer HylaFAX angelegt werden.
LogFileMode:            0644


# Die geschweiften Klammern geben Anfang und Ende einer Section an.
# Jede Section darf eine oder mehrere SubSections enthalten.
# SubSubSections sind nicht erlaubt.
# Dabei enthaelt die Section Angaben zu einem virtuellen Device;
# die Subsection die Angaben fuer die Rufannahme jedes Controllers.
# Es koennen beliebig viele Sections und, darin enthalten, jeweils beliebig viele
# Subsections erzeugt werden.
# Jede Section muss aber einen anderen HylafaxDeviceName erhalten;
# zusaetzlich muss in jeder Subsection innerhalb einer Section ein anderer Controller aufgefuehrt
# werden.
# Beim Stand-Alone-Betrieb ist eine Section mit entsprechend vielen Subsections ausreichend,
# da in diesem Betriebsmodus die virtuellen DeviceNamen keine Rolle spielen.
#
{
    # "HylafaxDeviceName" ist der Name, unter dem sich C4H bei HylaFAX als "virtuelles Modem"
    # anmeldet.
    # Sollen fuer HylaFAX mehrere dieser "Modems" erzeugt werden, legen Sie einfach eine neue Section
    # mit einem anderen HylafaxDeviceName an.
    HylafaxDeviceName:          faxCAPI

    # "RecvFileMode" ist der Mode, in dem empfangene Faxe abgespeichert werden.
    # User und Group der Datei wird durch FaxReceiveUser (s.o.) festgelegt.
    # default   0600
    RecvFileMode:               0644

    # "FAXNumber" ist die eigene Nummer des Computers und wird der Gegenseite mitgeteilt
    # (sichtbar z. B. im Fax-Journal).
    # default   ""
    FAXNumber:                  +49.30.49791899

    # "LocalIdentifier" ist der von CAPI aus konfigurierbare Teil der Fax-Kopfzeile. Ein leerer
    # Eintrag fuehrt dazu, dass keine Kopfzeile eingefuegt wird.
    # default   ""
    LocalIdentifier:            "Familie Mucha"

    # ----------- outgoing params -----------
    # "OutgoingController" gibt den Controller an, ueber den eine externe Verbindung aufgebaut
    # werden soll.
    # default   1
    OutgoingController:         1

    # Die "OutgoingMSN" ist die MSN, die fuer ausgehenden Faxe benutzt wird.
    # default   ""
    OutgoingMSN:		49791899

    # CLIR (Rufnummernunterdrueckung) kann ueber "SuppressMSN" und den Wert (0) abgeschaltet
    # oder mit dem Wert (1) erneut angeschaltet werden.
    SuppressMSN:                0

    # "NumberPrefix" wird vor jede Telefonnummer gestellt. Dies ist bei Nebenstellenanlagen wichtig,
    # bei denen fuer den Aufbau einer externen Verbindung eine Ziffer vorgewaehlt werden muss.
    NumberPrefix:

    # Wenn der Wert in "UseISDNFaxService" = 1 ist, wird ein ausgehender Ruf mit der
    # ISDN-FAX-G3 Dienstekennung aufgebaut. Bei 0 wird eine 3.1kHz Audio Verbindung hergestellt.
    # default   0
    UseISDNFaxService:          0


    # ----------- incoming params -----------
    {
        # Controller, fuer den diese Subsection gilt.
        Controller:             1

        # Wenn "AcceptSpeech" auf 1 steht, wird auch die Dienstekennung "Sprache" angenommen.
        AcceptSpeech:           1

        # Sofern man DDI nutzen will, sollte man "UseDDI" auf 1 stellen.
        # default   0
        UseDDI:                 0

        # "DDIOffset" gibt die Anzahl aller Ziffern an, die vor der Durchwahl stehen.
        # Der Standardwert fuehrt zu keinem korrekten Ergebnis und sollte,
        # sofern "UseDDI" auf 1 gestellt wurde, immer veraendert werden.
        # default   0
        DDIOffset:              5

        # "DDILength" gibt die Anzahl der Durchwahlziffern an. (Diese Ziffern werden lediglich als
        # Teil der Empfaengernummer mitgeteilt.) Der Standardwert sollte bei Verwendung
        # von DDI ebenfalls angepasst werden.
        # default   0
        DDILength:              0

        # Bei "IncomingMSNs" koennen in einer durch Komma getrennten Liste alle MSNs angegeben werden,
        # fuer die Rufe angenommen werden sollen. Ist die Liste leer, werden alle Rufe auf
        # ISDN FAX G3, 3,1kHz Audio und eventuell "Sprache" angenommen.
        # Wenn "UseDDI" auf 1 gestellt ist, wird "IncomingMSNs" ignoriert.
        IncomingMSNs:		49791899
    }
}

Hylafax kann nun gestartet werden.

/var/spool/fax/etc/setup.cache
/usr/local/sbin/faxq
/usr/local/sbin/hfaxd -i 4559

Für die Windowsrechner empfehle ich cypheus. Das Programm funktioniert bei mir hervorragend. Unter Einstellungen, Sendeoptionen ist noch das Modem faxCAPI einzutragen. Unter Faxserver muß man noch 192.168.0.1 angeben. Empfehlenswert ist es, noch einen Extra FaxDrucker einzurichten, damit man direkt aus Anwendungen heraus Faxe versenden kann. Man wählt als Druckertyp den HP LaserJet 4V/4MV PostScript und als Anschluß WHFCFAX aus. Dieser Drucker eignet sich auch hervorragend, falls man PS-Dokumente erzeugen möchte.