Inhaltsverzeichnis

Fax-Server mit HylaFAX+ unter CentOS 7.x

Bild: HylaFax Schriftzug

HylaFAX+ ist eine OpenSource Fax-Serverlösung mit dem klingenden Slogan:

HylaFAX™ is an enterprise-class open-source system for sending and receiving facsimiles as well as for sending alpha-numeric pages. The „+“ means that it is better.The world's most advanced open source fax server.

Da es für HylaFAX+ ein bereits vorgefertigtes RPM aus dem EPEL-Repository gibt, können wir den Fax-Server direkt mit dem Paketverwaltungstool yum installieren und müssen die Software nicht selbst aus den Quellen übersetzen und installieren.

Ein ausführliches How-To findet man ebenso wie die Manpage-List auf der sourceforge.net Project Page.

Installation

Die Installation erfolgt wie eingangs bereits erwähnt mit Hilfe des Paketverwaltungswerkzeug yum.

 # yum install hylafax+ hylafax+-client -y

Paketinhalte

Server

Nach der erfolgreichen Installation können wir uns mittels rpm -qil hylafax+ einen Überblick verschaffen, welche Dateien installiert und wohin diese gespeichert worden sind.

 # rpm -qil hylafax+
Name        : hylafax+
Version     : 5.5.8
Release     : 1.el7
Architecture: x86_64
Install Date: Tue 17 Jan 2017 10:04:13 PM CET
Group       : Applications/Communications
Size        : 2288180
License     : libtiff and BSD with advertising
Signature   : RSA/SHA256, Mon 08 Feb 2016 12:43:24 AM CET, Key ID 6a2faea2352c64e5
Source RPM  : hylafax+-5.5.8-1.el7.src.rpm
Build Date  : Sun 07 Feb 2016 05:24:31 AM CET
Build Host  : buildvm-16-nfs.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://hylafax.sourceforge.net
Summary     : An enterprise-strength fax server
Description :
HylaFAX(tm) is a enterprise-strength fax server supporting
Class 1 and 2 fax modems on UNIX systems. It provides spooling
services and numerous supporting fax management tools.
The fax clients may reside on machines different from the server
and client implementations exist for a number of platforms including
windows.
/etc/cron.daily/hylafax+
/etc/cron.hourly/hylafax+
/etc/hylafax
/etc/hylafax/hfaxd.conf
/etc/sysconfig/hylafax+
/usr/lib/systemd/system/hylafax-faxgetty@.service
/usr/lib/systemd/system/hylafax-faxq.service
/usr/lib/systemd/system/hylafax-hfaxd.service
/usr/lib64/libfaxserver.so.5.5.8
/usr/sbin/choptest
/usr/sbin/cqtest
/usr/sbin/faxabort
/usr/sbin/faxaddmodem
/usr/sbin/faxadduser
/usr/sbin/faxanswer
/usr/sbin/faxconfig
/usr/sbin/faxcron
/usr/sbin/faxdeluser
/usr/sbin/faxgetty
/usr/sbin/faxlock
/usr/sbin/faxmodem
/usr/sbin/faxmsg
/usr/sbin/faxq
/usr/sbin/faxqclean
/usr/sbin/faxquit
/usr/sbin/faxsend
/usr/sbin/faxstate
/usr/sbin/hfaxd
/usr/sbin/hylafax
/usr/sbin/lockname
/usr/sbin/ondelay
/usr/sbin/pagesend
/usr/sbin/probemodem
/usr/sbin/recvstats
/usr/sbin/tagtest
/usr/sbin/tsitest
/usr/sbin/xferfaxstats
/usr/share/doc/hylafax+-5.5.8
/usr/share/doc/hylafax+-5.5.8/CHANGES
/usr/share/doc/hylafax+-5.5.8/CONTRIBUTORS
/usr/share/doc/hylafax+-5.5.8/COPYRIGHT
/usr/share/doc/hylafax+-5.5.8/README
/usr/share/doc/hylafax+-5.5.8/TODO
/usr/share/doc/hylafax+-5.5.8/VERSION
/usr/share/man/man5/doneq.5f.gz
/usr/share/man/man5/hosts.hfaxd.5f.gz
/usr/share/man/man5/hylafax-config.5f.gz
/usr/share/man/man5/hylafax-info.5f.gz
/usr/share/man/man5/hylafax-log.5f.gz
/usr/share/man/man5/hylafax-server.5f.gz
/usr/share/man/man5/hylafax-shutdown.5f.gz
/usr/share/man/man5/pagermap.5f.gz
/usr/share/man/man5/recvq.5f.gz
/usr/share/man/man5/sendq.5f.gz
/usr/share/man/man5/status.5f.gz
/usr/share/man/man5/tsi.5f.gz
/usr/share/man/man5/xferfaxlog.5f.gz
/usr/share/man/man8/choptest.8c.gz
/usr/share/man/man8/cqtest.8c.gz
/usr/share/man/man8/faxabort.8c.gz
/usr/share/man/man8/faxaddmodem.8c.gz
/usr/share/man/man8/faxadduser.8c.gz
/usr/share/man/man8/faxanswer.8c.gz
/usr/share/man/man8/faxconfig.8c.gz
/usr/share/man/man8/faxcron.8c.gz
/usr/share/man/man8/faxdeluser.8c.gz
/usr/share/man/man8/faxgetty.8c.gz
/usr/share/man/man8/faxlock.8c.gz
/usr/share/man/man8/faxmodem.8c.gz
/usr/share/man/man8/faxmsg.8c.gz
/usr/share/man/man8/faxq.8c.gz
/usr/share/man/man8/faxqclean.8c.gz
/usr/share/man/man8/faxquit.8c.gz
/usr/share/man/man8/faxrcvd.8c.gz
/usr/share/man/man8/faxsend.8c.gz
/usr/share/man/man8/faxstate.8c.gz
/usr/share/man/man8/hfaxd.8c.gz
/usr/share/man/man8/hylafax.8c.gz
/usr/share/man/man8/jobcontrol.8c.gz
/usr/share/man/man8/lockname.8c.gz
/usr/share/man/man8/mkcover.8c.gz
/usr/share/man/man8/notify.8c.gz
/usr/share/man/man8/ondelay.8c.gz
/usr/share/man/man8/pagesend.8c.gz
/usr/share/man/man8/pollrcvd.8c.gz
/usr/share/man/man8/probemodem.8c.gz
/usr/share/man/man8/ps2fax.8c.gz
/usr/share/man/man8/recvstats.8c.gz
/usr/share/man/man8/tagtest.8c.gz
/usr/share/man/man8/tsitest.8c.gz
/usr/share/man/man8/wedged.8c.gz
/usr/share/man/man8/xferfaxstats.8c.gz
/var/spool/hylafax
/var/spool/hylafax/archive
/var/spool/hylafax/bin/archive
/var/spool/hylafax/bin/auto-rotate.ps
/var/spool/hylafax/bin/dict/de
/var/spool/hylafax/bin/dict/en
/var/spool/hylafax/bin/dict/es
/var/spool/hylafax/bin/dict/fr
/var/spool/hylafax/bin/dict/he
/var/spool/hylafax/bin/dict/it
/var/spool/hylafax/bin/dict/nl_BE
/var/spool/hylafax/bin/dict/pl
/var/spool/hylafax/bin/dict/pt
/var/spool/hylafax/bin/dict/pt_BR
/var/spool/hylafax/bin/dict/ro
/var/spool/hylafax/bin/dict/ru
/var/spool/hylafax/bin/dict/sr
/var/spool/hylafax/bin/dict/tr
/var/spool/hylafax/bin/dict/uk
/var/spool/hylafax/bin/dict/zh
/var/spool/hylafax/bin/dictionary
/var/spool/hylafax/bin/faxrcvd
/var/spool/hylafax/bin/mkcover
/var/spool/hylafax/bin/notify
/var/spool/hylafax/bin/pollrcvd
/var/spool/hylafax/bin/qp-encode.awk
/var/spool/hylafax/bin/rfc2047-encode.awk
/var/spool/hylafax/bin/wedged
/var/spool/hylafax/client
/var/spool/hylafax/config
/var/spool/hylafax/config/att-dataport
/var/spool/hylafax/config/att-dataport-2
/var/spool/hylafax/config/att-dataport-2.0
/var/spool/hylafax/config/att-dpexpress-2
/var/spool/hylafax/config/cirrus
/var/spool/hylafax/config/class1
/var/spool/hylafax/config/class1.0
/var/spool/hylafax/config/class2
/var/spool/hylafax/config/class2.0
/var/spool/hylafax/config/class2.1
/var/spool/hylafax/config/conexant-1.0
/var/spool/hylafax/config/davicom-2
/var/spool/hylafax/config/digi
/var/spool/hylafax/config/digi-2
/var/spool/hylafax/config/digi-20
/var/spool/hylafax/config/dsi-scout+
/var/spool/hylafax/config/e-tech
/var/spool/hylafax/config/eicon
/var/spool/hylafax/config/eicon-2
/var/spool/hylafax/config/elsa-microlink-56k-basic-2.0
/var/spool/hylafax/config/everex-2496d
/var/spool/hylafax/config/exar
/var/spool/hylafax/config/gvc-288
/var/spool/hylafax/config/gvc-288-2
/var/spool/hylafax/config/hayes
/var/spool/hylafax/config/i537ep
/var/spool/hylafax/config/iaxmodem
/var/spool/hylafax/config/intel-400e
/var/spool/hylafax/config/ip568x
/var/spool/hylafax/config/linux-isdn-1
/var/spool/hylafax/config/linux-isdn-2
/var/spool/hylafax/config/lucent
/var/spool/hylafax/config/lucent-isa
/var/spool/hylafax/config/lucent-mt-10
/var/spool/hylafax/config/lucent-mt-2
/var/spool/hylafax/config/lucent-mt-20
/var/spool/hylafax/config/lucent-mt-21
/var/spool/hylafax/config/mainpine-10
/var/spool/hylafax/config/mainpine-2
/var/spool/hylafax/config/mainpine-20
/var/spool/hylafax/config/mainpine-21
/var/spool/hylafax/config/moto-288
/var/spool/hylafax/config/mt-1432
/var/spool/hylafax/config/nuvo-voyager
/var/spool/hylafax/config/ppi-pm14400fxmt
/var/spool/hylafax/config/ppi-pm14400fxsa
/var/spool/hylafax/config/prometheus
/var/spool/hylafax/config/rc144ac
/var/spool/hylafax/config/rc144ac-1
/var/spool/hylafax/config/rc288dpi
/var/spool/hylafax/config/rc288dpi-1
/var/spool/hylafax/config/rc32acl
/var/spool/hylafax/config/rc32acl-1
/var/spool/hylafax/config/rockwell-k56
/var/spool/hylafax/config/rockwell-rc
/var/spool/hylafax/config/sierra
/var/spool/hylafax/config/skel
/var/spool/hylafax/config/t38modem
/var/spool/hylafax/config/telebit-qblazer
/var/spool/hylafax/config/telebit-t3000
/var/spool/hylafax/config/telebit-wb
/var/spool/hylafax/config/topic
/var/spool/hylafax/config/tricom2842
/var/spool/hylafax/config/uds-fastalk
/var/spool/hylafax/config/umc92144
/var/spool/hylafax/config/umc9624
/var/spool/hylafax/config/usr-2.0
/var/spool/hylafax/config/usr-rts
/var/spool/hylafax/config/usr-xon
/var/spool/hylafax/config/zyxel-1496e
/var/spool/hylafax/config/zyxel-1496e-1
/var/spool/hylafax/config/zyxel-1496e-2.0
/var/spool/hylafax/config/zyxel-2864
/var/spool/hylafax/dev
/var/spool/hylafax/docq
/var/spool/hylafax/doneq
/var/spool/hylafax/etc
/var/spool/hylafax/etc/LiberationSans-25.pcf
/var/spool/hylafax/etc/cover.templ
/var/spool/hylafax/etc/hosts.hfaxd
/var/spool/hylafax/etc/lutRS18.pcf
/var/spool/hylafax/etc/xferfaxlog
/var/spool/hylafax/info
/var/spool/hylafax/log
/var/spool/hylafax/pollq
/var/spool/hylafax/recvq
/var/spool/hylafax/sendq
/var/spool/hylafax/status
/var/spool/hylafax/tmp

Client

Nach der Installation der Client-Komponenten können wir mittels rpm -qil hylafax+-client einen Überblick verschaffen, welche Dateien installiert und wohin diese gespeichert worden sind.

 # rpm -qil hylafax+-client
Name        : hylafax+-client
Version     : 5.5.8
Release     : 1.el7
Architecture: x86_64
Install Date: Tue 17 Jan 2017 10:03:57 PM CET
Group       : Applications/Communications
Size        : 1160513
License     : libtiff and BSD with advertising
Signature   : RSA/SHA256, Mon 08 Feb 2016 12:43:45 AM CET, Key ID 6a2faea2352c64e5
Source RPM  : hylafax+-5.5.8-1.el7.src.rpm
Build Date  : Sun 07 Feb 2016 05:24:31 AM CET
Build Host  : buildvm-16-nfs.phx2.fedoraproject.org
Relocations : (not relocatable)
Packager    : Fedora Project
Vendor      : Fedora Project
URL         : http://hylafax.sourceforge.net
Summary     : Client programs for HylaFAX fax servers
Description :
HylaFAX(tm) is a enterprise-strength fax server supporting
Class 1 and 2 fax modems on UNIX systems. This package provides
fax clients which may reside on machines different from the server.
/etc/hylafax
/etc/hylafax/faxcover.ps
/etc/hylafax/faxmail
/etc/hylafax/faxmail.ps
/etc/hylafax/faxmail/application
/etc/hylafax/faxmail/application/binary
/etc/hylafax/faxmail/application/octet-stream
/etc/hylafax/faxmail/application/pdf
/etc/hylafax/faxmail/image
/etc/hylafax/faxmail/image/tiff
/etc/hylafax/pagesizes
/etc/hylafax/typerules
/usr/bin/faxalter
/usr/bin/faxcover
/usr/bin/faxmail
/usr/bin/faxrm
/usr/bin/faxstat
/usr/bin/sendfax
/usr/bin/sendpage
/usr/lib64/libfaxutil.so.5.5.8
/usr/sbin/dialtest
/usr/sbin/edit-faxcover
/usr/sbin/faxfetch
/usr/sbin/faxinfo
/usr/sbin/faxsetup
/usr/sbin/faxsetup.linux
/usr/sbin/faxwatch
/usr/sbin/textfmt
/usr/sbin/tiffcheck
/usr/sbin/typetest
/usr/share/doc/hylafax+-client-5.5.8
/usr/share/doc/hylafax+-client-5.5.8/CHANGES
/usr/share/doc/hylafax+-client-5.5.8/CONTRIBUTORS
/usr/share/doc/hylafax+-client-5.5.8/COPYRIGHT
/usr/share/doc/hylafax+-client-5.5.8/README
/usr/share/doc/hylafax+-client-5.5.8/TODO
/usr/share/doc/hylafax+-client-5.5.8/VERSION
/usr/share/man/man1/edit-faxcover.1.gz
/usr/share/man/man1/faxalter.1.gz
/usr/share/man/man1/faxcover.1.gz
/usr/share/man/man1/faxmail.1.gz
/usr/share/man/man1/faxrm.1.gz
/usr/share/man/man1/faxstat.1.gz
/usr/share/man/man1/hylafax-client.1.gz
/usr/share/man/man1/sendfax.1.gz
/usr/share/man/man1/sendpage.1.gz
/usr/share/man/man1/sgi2fax.1.gz
/usr/share/man/man1/textfmt.1.gz
/usr/share/man/man5/dialrules.5f.gz
/usr/share/man/man5/pagesizes.5f.gz
/usr/share/man/man5/typerules.5f.gz
/usr/share/man/man8/dialtest.8c.gz
/usr/share/man/man8/faxfetch.8c.gz
/usr/share/man/man8/faxinfo.8c.gz
/usr/share/man/man8/faxsetup.8c.gz
/usr/share/man/man8/faxsetup.linux.8c.gz
/usr/share/man/man8/faxwatch.8c.gz
/usr/share/man/man8/pdf2fax.8c.gz
/usr/share/man/man8/tiff2fax.8c.gz
/usr/share/man/man8/tiffcheck.8c.gz
/usr/share/man/man8/typetest.8c.gz
/var/spool/hylafax
/var/spool/hylafax/bin/common-functions
/var/spool/hylafax/bin/genfontmap.ps
/var/spool/hylafax/bin/pcl2fax
/var/spool/hylafax/bin/pdf2fax.gs
/var/spool/hylafax/bin/ps2fax.gs
/var/spool/hylafax/bin/tiff2fax
/var/spool/hylafax/bin/tiff2pdf
/var/spool/hylafax/etc
/var/spool/hylafax/etc/dialrules
/var/spool/hylafax/etc/dialrules-pabx.be
/var/spool/hylafax/etc/dialrules.europe
/var/spool/hylafax/etc/dialrules.ext
/var/spool/hylafax/etc/dialrules.sf-ba
/var/spool/hylafax/etc/dialrules.uk
/var/spool/hylafax/etc/dialrules.world

Dokumentation

Detaillierte Beschreibungen und Information findet man auf der gut beschriebenen und gut sortierten Dokumentationsseite von HylaFAX+.

Konfiguration

Anbindung des FAX-Servers

Bei der Konfiguration unseres Faxservers gibt es nun zu berücksichtigen, an welcher TK-Anlage der Fax-Server betrieben werden soll.

  1. Analoge Nebenstelle einer TK-Anlage
  2. Integration in einem VoIP-Server Asterisk

1. Analoge Nebenstelle einer TK-Anlage

Zum Anschluss unseres Fax-Servers an einem analogen Port einer TK-Anlage benötigen wie einen entsprechenden Modem, in dem folgendem Beispiel gehen wir von einem vorhandenen ELSA-USB Modem aus.

Nach dem Anstecken des Modems an den USB-Port wird dies im syslog entsprechend quittiert:

Jan 17 22:14:12 elwms kernel: ohci_hcd 0000:00:12.0: wakeup
Jan 17 22:14:12 elwms kernel: usb 3-1: new full speed USB device using ohci_hcd and address 10
Jan 17 22:14:12 elwms kernel: usb 3-1: configuration #2 chosen from 2 choices
Jan 17 22:14:12 elwms kernel: cdc_acm 3-1:2.0: ttyACM0: USB ACM device
Jan 17 22:14:12 elwms kernel: usbcore: registered new driver cdc_acm
Jan 17 22:14:12 elwms kernel: drivers/usb/class/cdc-acm.c: v0.25:USB Abstract Control Model driver for USB modems and ISDN adapters

Somit ist schon mal sichergestellt, dass wir den Modem über das Gerät ttyACM0 ansprechen können.

 # ll /dev/ttyACM0 
 crw-rw---- 1 root uucp 166, 0 17. Jan 22:14 /dev/ttyACM0

Da wir den Modem später über die Gerätedatei /dev/modem ansprechen wollen (wer will schon immer bei einem Gerätewechsel diverse Konfigscripte abändern?) setzen wir uns noch einen symbolischen link.

 # ln -s /dev/ttyACM0 /dev/modem

Bei Bedarf können wir nun noch kontrollieren, ob der gewünschte Symlink richtig gesetzt wurde.

 # ll /dev/mo*
 lrwxrwxrwx 1 root root 12 17. Jan 22:14 /dev/modem -> /dev/ttyACM0

Damit nun bei jedem Neustart des Systemes dieser symlink automatisch gesetzt wird, ergänzen wir in der /etc/udev/rules.d/50-udev.rules einfach folgende Zeilen:

 # vim /etc/udev/rules.d/50-udev.rules</code>
/etc/udev/rules.d/50-udev.rule
# Django : 2017-01-17
# symlink dauerhaft für /dev/modem setzen                                                                                                                          
KERNEL=="ttyACM0", SYMLINK+="modem"

2. Integration in einem VoIP-Server Asterisk

Betreiben wir einen VoIP-Server Asterisk so ist es zweckmässiger den FAX-Server direkt in den Asterisk-Server zu integrieren. Hierzu verwenden wir das Programm IAXmodem, welches einen Modem emuliert.

Im Gegensatz zur Installion unter CentOS 6 bei der wir die Software noch selbst aus den Quellen übersetzt und installiert haben, können wir unter CentOS 7 die Installation aus einem RPM-Paket vornehmen. Das Paket iaxmodem-1.3.0 finden wir im Repository nausch.org - die Integration des Repositories ist im Kapitel Einbinden des Repository nausch.org unter CentOS 7 beschrieben.

Die Installation des RPM-Paketes nehmen wir mit Hilfe des Paketverwaltungs-Tools yum vor.