Fax-Server mit HylaFAX+ unter CentOS 7.x
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.
- Analoge Nebenstelle einer TK-Anlage
- 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 mailserver.guru - die Integration des Repositories ist im Kapitel Einbinden des Repository mailserver.guru unter CentOS 7 beschrieben.
Die Installation des RPM-Paketes nehmen wir mit Hilfe des Paketverwaltungs-Tools yum vor.