[[Vorlage(getestet, focal)]] {{{#!vorlage Wissen [:Pakete installieren: Installation von Programmen] [:Programme_starten: Starten von Programmen] [:Terminal: Ein Terminal öffnen] [:sudo: Root-Rechte] }}} [[Inhaltsverzeichnis(1)]] [[Bild(hylafax-logo.gif,72 ,align=left)]] [https://www.hylafax.org HylaFAX] {us} ist ein professionelles System zum [:Faxe_schicken_und_empfangen/: Senden und Empfangen von Faxen]. Es besteht aus einem Serverteil, der die Modems bedient, zu sendende Faxe abarbeitet, Faxe empfängt und diese abspeichert. Die empfangenen Faxe können vom Client eingesehen werden, als PDF abgespeichert oder gleich ausgedruckt werden. Der Server läuft nur unter UNIX-ähnlichen Betriebssystemen. Der HylaFAX-Client auf der Kommandozeile ist recht rudimentär und bietet kaum Komfort. Es gibt jedoch zahlreiche graphische Clients von anderen Anbietern und für viele Betriebssysteme (Linux, Windows, OS X) mit recht komfortablen Funktionen. HylaFAX steht im Ruf, dass die Einrichtung kompliziert sei. Das ist so nicht richtig: es ist ein umfangreiches System, das viele Möglichkeiten bietet, die Einrichtung der Basisfunktionen für einen durchschnittlichen Nutzer ist jedoch sehr einfach und soll hier beschrieben werden. Es gibt Forks von HylaFAX: [sourceforge2:hylafax:HylaFAX+] {us} und [https://www.ifax.com/products/hylafax-enterprise/ HylaFAX Enterprise] {us}. Diese werden hier nicht behandelt. = Modems = Bevor man HylaFAX installieren bzw. konfigurieren kann, braucht man ein [:/Internetzugang/#Begriffserklaerungen: Faxmodem]; diese gibt es zwar wie Sand am Meer, nicht alle sind jedoch geeignet. Faxmodems werden immer seltener, weil die Faxtechnologie langsam an Wichtigkeit verliert. Hat man HylaFAX installiert, kann man die Basiskonfigurationsdateien der unterstützten Modems unter '''/var/spool/hylafax/config/''' ansehen. Diese sind jedoch mit Vorsicht zu geniessen, weil sie teilweise fehlerhaft sind. Generell sind externe Modems mit serieller oder virtueller serieller Schnittstelle zu bevorzugen. HylaFAX bringt auf seiner Homepage eine [https://www.hylafax.org/hardware-compatibility-list/ Liste von kompatiblen Modems] {us}, diese Liste ist leider völlig veraltet (2002) und viele Geräte sind gar nicht mehr verfügbar. Die Benutzung von internen Modems ist meist nicht möglich, da diese spezielle Treiber benötigen, die es meist nur für Windows gibt. Gut verfügbar und sehr gut für HylaFAX geeignet sind die modernen Modems des Hersteller [https://www.usr-emea.com/products/p-dialup-menu.asp?loc=grmy U.S. Robotics] {de} (früher 3Com), bewährt haben sich die Modelle 5630G / USR025630G (serielle Schnittstelle, '''/dev/ttySx''') und 5637 / USR805637 (virtuell serielle Schnittstelle über USB, '''/dev/ttyACMx''', Treiber sind in Linux enthalten). Nicht geeignet ist das Modell 5639 / USR5639, bei diesem handelt es sich um ein sogenanntes Softmodem, die dafür benötigten Treiber gibt es nur für Windows. Bei Benutzung der Modems von U.S. Robotics muss die Konfiguration von HylaFAX angepasst werden, dies ist weiter unten beschrieben. Im Internet findet man [debian:HylaFax:Hinweise] {en} darauf, dass auch das USB-Modem TFM-561U des Herstellers Trendnet für HylaFAX geeignet sei, weil es keine Treiber für Linux benötigt. Es gibt jedoch auch [https://www.forum-raspberrypi.de/Thread-usb-fax-modem Berichte] {de}, wonach sich dieses Modem nach einiger Zeit aufhängt und der Rechner neu gestartet werden muss. Andere Modems können funktionieren, müssen aber nicht, da HylaFAX u.U. nicht die richtigen Steuerkommandos kennt. Am Ende des Artikels ist eine Liste mit kompatiblen und nicht kompatiblen Modems. = Installation = HylaFAX kann direkt aus den Paketquellen installiert werden [1] {{{#!vorlage Paketinstallation hylafax-server, universe }}} = Konfiguration von HylaFAX und Modem = Das Programm muss vor Benutzung konfiguriert werden. Das geschieht im Terminal[3] mit Root-Rechten[4]. {{{#!vorlage Befehl sudo faxsetup }}} Zuerst erscheinen dort viele Meldungen, die man ignorieren kann, danach kommen die Abfrage zur Konfiguration, zuerst allgemeine Parameter, diese müssen an die deutschen bzw. europäischen Normen angepasst werden: {{{ ... ... ... Update /var/spool/hylafax/status/any.info. HylaFAX configuration parameters are: [1] Init script starts faxq: yes [2] Init script starts hfaxd yes [3] Start paging protocol: no Are these ok [yes]? Modem support functions written to /var/spool/hylafax/etc/setup.modem. Configuration parameters written to /var/spool/hylafax/etc/setup.cache. Restarting HylaFAX server processes. Should I restart the HylaFAX server processes [yes]? /etc/init.d/hylafax start -ne [ ok arting hylafax (via systemctl): hylafax.service . You do not appear to have any modems configured for use. Modems are configured for use with HylaFAX with the faxaddmodem(8) command. Do you want to run faxaddmodem to configure a modem [yes]? Serial port that modem is connected to [ttyS0]? Ok, time to setup a configuration file for the modem. The manual page config(5) may be useful during this process. Also be aware that at any time you can safely interrupt this procedure. Reading scheduler config file /var/spool/hylafax/etc/config. No existing configuration, let's do this from scratch. Country code [1]? 49 Area code [415]? 30 Phone number of fax modem [+1.999.555.1212]? +49.30.12345678 Local identification string (for TSI/CIG) ["NothingSetup"]? Long distance dialing prefix [1]? 0 International dialing prefix [011]? 00 Dial string rules file (relative to /var/spool/hylafax) [etc/dialrules]? etc/dialrules.europe Tracing during normal server operation [1]? Tracing during send and receive sessions [11]? Protection mode for received facsimile [0600]? 0660 Protection mode for session logs [0600]? 0660 Protection mode for ttyS0 [0600]? 0666 Rings to wait before answering [1]? Modem speaker volume [off]? low Command line arguments to getty program ["-h %l dx_%s"]? Pathname of TSI access control list file (relative to /var/spool/hylafax) [""]? Pathname of Caller-ID access control list file (relative to /var/spool/hylafax) [""]? Tag line font file (relative to /var/spool/hylafax) [etc/lutRS18.pcf]? Tag line format string ["From %%l|%c|Page %%P of %%T"]? Time before purging a stale UUCP lock file (secs) [30]? Hold UUCP lockfile during inbound data calls [Yes]? Hold UUCP lockfile during inbound voice calls [Yes]? Percent good lines to accept during copy quality checking [95]? Max consecutive bad lines to accept during copy quality checking [5]? Max number of pages to accept in a received facsimile [25]? Syslog facility name for ServerTracing messages [daemon]? Set UID to 0 to manipulate CLOCAL [""]? Use available priority job scheduling mechanism [""]? The non-default server configuration parameters are: CountryCode: 49 AreaCode: 30 FAXNumber: +49.30.12345678 LongDistancePrefix: 0 InternationalPrefix: 00 DialStringRules: etc/dialrules.europe SessionTracing: 11 RecvFileMode: 0660 LogFileMode: 0660 DeviceMode: 0666 RingsBeforeAnswer: 1 SpeakerVolume: low GettyArgs: "-h %l dx_%s" LocalIdentifier: "NothingSetup" TagLineFont: etc/lutRS18.pcf TagLineFormat: "From %%l|%c|Page %%P of %%T" MaxRecvPages: 25 Are these ok [yes]? }}} Nach der Abfrage ''"Are these ok [yes]?"'' drückt man [[Vorlage(Tasten, Enter)]], danach versucht HylaFAX den Modemtyp herauszufinden und zu konfigurieren. Es ist unbedingt zu empfehlen, dass das Modem für __Fax Class 1__ konfiguriert wird (das schlägt HylaFAX auch vor). Bei anderen Einstellungen gibt es oft Probleme mit inkompatiblen Gegenstellen. Zumindest die Einstellungen für Modems des Hersteller U.S. Robotics müssen nachgearbeitet werden. Diese Einstellungen sind {{{ ModemAnswerCmd: AT+FCLASS=1A -> AT+FCLASS=1;A ModemHardFlowCmd: AT&H1&I0&R2 -> AT&H1 ModemNoFlowCmd: AT&H0&I0&R1 -> AT&H0 ModemSetupDTRCmd: ATS13=1&D2 -> ATS13=1&D3 ModemSoftFlowCmd: AT&H2&I2&R1 -> AT&H2 Class1NFLOCmd: AT&H0&I0&R1 -> AT+FLO=0 Class1HFLOCmd: AT&H1&I0&R2 -> AT+FLO=2 Class1SFLOCmd: "" -> AT+FLO=1 }}} Der gesamte Dialog sieht dann wie folgt aus, beim Hersteller U.S.Robotics muss man bei der Frage ''"Are these ok [yes]?"'' -> ''"no"'' und [[Vorlage(Tasten, Enter)]] eingeben, bei anderen Herstellern kann man einfach [[Vorlage(Tasten, Enter)]] drücken. {{{ Now we are going to probe the tty port to figure out the type of modem that is attached. This takes a few seconds, so be patient. Note that if you do not have the modem cabled to the port, or the modem is turned off, this may hang (just go and cable up the modem or turn it on, or whatever). Probing for best speed to talk to modem: 38400 OK. About fax classes: The difference between fax classes has to do with how HylaFAX interacts with the modem and the fax protocol features that are used when sending or receiving faxes. One class isn't inherently better than another; however, one probably will suit a user's needs better than others. Class 1 relies on HylaFAX to perform the bulk of the fax protocol. Class 2 relies on the modem to perform the bulk of the fax protocol. Class 2.0 is similar to Class 2 but may include more features. Class 1.0 is similar to Class 1 but may add V.34-fax capability. Class 2.1 is similar to Class 2.0 but adds V.34-fax capability. HylaFAX generally will have more features when using Class 1/1.0 than when using most modems' Class 2 or Class 2.0 implementations. Generally any problems encountered in Class 1/1.0 can be resolved by modifications to HylaFAX, but usually any problems encountered in Class 2/2.0/2.1 will require the modem manufacturer to resolve it. Use Class 1 unless you have a good reason not to. This modem looks to have support for Class 1 and 2.0. How should it be configured [1]? Hmm, this looks like a Class 1 modem. Product code (ATI0) is "5601". Other information (ATI3) is "U.S. Robotics 56K Voice EXT Rev. 11.1.17". DTE-DCE flow control scheme [default]? Modem manufacturer is "3Com U. S. Robotics". Modem model is "3CP5610". Using prototype configuration file usr-xon... The modem configuration parameters are: ModemAnswerCmd: AT+FCLASS=1A ModemFlowControl: xonxoff ModemHardFlowCmd: AT&H1&I0&R2 ModemMfrQueryCmd: !USR ModemModelQueryCmd: ATI3 ModemNoFlowCmd: AT&H0&I0&R1 ModemRate: 19200 ModemResultCodesCmd: ATQ0X4 ModemRevQueryCmd: ATI7 ModemSetupAACmd: AT+FCLASS=0 ModemSetupDCDCmd: AT&C1 ModemSetupDTRCmd: ATS13=1&D2 ModemSoftFlowCmd: AT&H2&I2&R1 Class1NFLOCmd: AT&H0&I0&R1 Class1HFLOCmd: AT&H1&I0&R2 Class1SFLOCmd: "" Class1ResponseWaitCmd: AT+FRS=1 Class1SwitchingCmd: "" Are these ok [yes]? no Command for answering the phone [AT+FCLASS=1A]? AT+FCLASS=1;A DTE-DCE flow control scheme [xonxoff]? Command for setting DCE-DTE hardware flow control [AT&H1&I0&R2]? AT&H1 Command for querying modem manufacture [!USR]? Command for querying modem model [ATI3]? Command for disabling DCE-DTE flow control [AT&H0&I0&R1]? AT&H0 DTE-DCE communication baud rate [19200]? Command for enabling result codes [ATQ0X4]? Command for querying modem firmware revision [ATI7]? Command for setting up adaptive-answer [AT+FCLASS=0]? Command for setting up DCD handling [AT&C1]? Command for setting up DTR handling [ATS13=1&D2]? ATS13=1&D3 Command for setting DCE-DTE software flow control [AT&H2&I2&R1]? AT&H2 Command to setup no flow control after switch to Class 1 [AT&H0&I0&R1]? AT+FLO=0 Command to setup hardware flow control after switch to Class 1 [AT&H1&I0&R2]? AT+FLO=2 Command to setup software flow control after switch to Class 1 [""]? AT+FLO=1 Command to stop and wait prior to looking for the TCF response [AT+FRS=1]? Command to ensure silence after receiving HDLC and before sending [""]? The modem configuration parameters are: ModemAnswerCmd: AT+FCLASS=1;A ModemFlowControl: xonxoff ModemHardFlowCmd: AT&H1 ModemMfrQueryCmd: !USR ModemModelQueryCmd: ATI3 ModemNoFlowCmd: AT&H0 ModemRate: 19200 ModemResultCodesCmd: ATQ0X4 ModemRevQueryCmd: ATI7 ModemSetupAACmd: AT+FCLASS=0 ModemSetupDCDCmd: AT&C1 ModemSetupDTRCmd: ATS13=1&D3 ModemSoftFlowCmd: AT&H2 Class1NFLOCmd: AT+FLO=0 Class1HFLOCmd: AT+FLO=2 Class1SFLOCmd: AT+FLO=1 Class1ResponseWaitCmd: AT+FRS=1 Class1SwitchingCmd: "" Are these ok [yes]? Creating new configuration file /var/spool/hylafax/etc/config.ttyS0... Creating fifo /var/spool/hylafax/FIFO.ttyS0 for faxgetty... done. Done setting up the modem configuration. Checking /var/spool/hylafax/etc/config for consistency... ...everything looks ok; leaving existing file unchanged. Don't forget to restart hylafax in order to run faxgetty on this new modem line. /var/spool/hylafax/config Do you want to run faxaddmodem to configure another modem [yes]? no }}} Will man für großen Faxanfall weitere Modems konfugieren, dann geht es mit [[Vorlage(Tasten, Enter)]] weiter, ansonsten mit ''"no"'' und [[Vorlage(Tasten, Enter)]], die nachfolgende Frage ''"Should I run faxmodem for each configured modem [yes]?"'' beantwortet man ebenfalls mit [[Vorlage(Tasten, Enter)]] und dann ist die erste Konfiguration von HylaFAX und des Modems schon fertig. Möchte man später weitere Modems installieren, dann geschieht das ebenfalls mit {{{#!vorlage Befehl sudo faxaddmodem }}} und man kommt in den obigen Dialog. = Konfiguration der Benutzer = Benutzer, die Faxe verschicken wollen, müssen HylaFAX bekannt sein. Sie können am Server-Rechner angemeldet sein, aber auch an anderen Rechnern, solange sich diese im gleichen Netz oder über ein VPN am Server anmelden können. Die einmalige Anmeldung bei HylaFAX geschieht am Server mit dem Befehl {{{#!vorlage Befehl sudo faxadduser -p PASSWORT BENUTZERNAME }}} oder {{{#!vorlage Befehl sudo faxadduser -a ADMINPASSWORT-p PASSWORT BENUTZERNAME }}} wobei der Benutzername der gleiche ist, mit dem man an dem jeweiligen Faxclient arbeitet. Passwort und/oder Adminpasswort sind nicht die gleichen wie bei Linux! Der Benutzername muss nicht am Server-Rechner als Benutzer angemeldet sein, es sei denn, man verschickt auch von dort aus Faxe. Lässt man das Adminpasswort weg, dann kann dieser Benutzer nur Faxe senden und lesen, die Faxliste aber nicht bearbeiten (kein Adminmodus), also z.B. Einträge löschen. Nutzer an Clients müssen ihre HylaFAX-Benutzerdaten am Client angeben. Der Client kann als Programm auch am Server-Rechner laufen. Möchte man Benutzer wieder abmelden geschieht dies mit dem Befehl {{{#!vorlage Befehl sudo faxdeluser BENUTZERNAME }}} = Abschluss und Neustart = Damit ist die Einrichtung von HylaFAX und Benutzern fertig und man muss Hylafax neu starten {{{#!vorlage Befehl sudo service hylafax restart }}} = Clients für HylaFAX = == YajHFC == [:YajHFC: YajHFC - Yet Another Java HylaFAX Client -] ist in Java geschrieben und daher für viele Betriebssysteme (Linux, Windows, OS X, ...) geeignet. == Winprint HylaFAX (reloaded) == [sourceforge2:winprinthylafax:Winprint HylaFAX] {en} wird nicht mehr weiterentwickelt, die Benutzung ist nicht mehr zu empfehlen (Windows). [sourceforge:wphf-reloaded:Winprint HylaFAX reloaded] {en} basiert auf Winprint HylaFAX, es ist ein empfehlenswerter und gut benutzbarer Client für Windows, der hier nur erwähnt, aber nicht weiter besprochen wird. = Modemliste = {{{#!vorlage Tabelle Modemliste +++ Hersteller Modell Bemerkungen +++ U.S. Robotics 5630G seriell, getestet o.k. +++ U.S. Robotics 025663-00 seriell, getestet o.k. +++ U.S. Robotics 5637 USB virtuell seriell /dev/ttyACMx, getestet o.k. +++ U.S. Robotics 5636 USB Softmodem, geht nicht +++ Trendnet TFM-561U getestet, geht, [https://www.forum-raspberrypi.de/Thread-usb-fax-modem hängt sich aber nach längerem Gebrauch auf] {de} +++ Longshine LCS-8156C1 getestet, geht, hängt sich aber nach längerem Gebrauch auf }}} Weitere Modems können inklusive Erfahrungsberichte ergänzt werden. = Links = * [https://www.hylafax.org/ Die Homepage von HylaFAX] {us} * [https://www.hylafax.org/content/Documentation Dokumentation] {us} * [twitter:hylafax:HylaFAX] {us} * [https://www.yajhfc.de/ Die Homepage von YajHFC] {en} * [:efax:] Wesentlich einfacher zu konfigurierende Alternative * [sourceforge:wphf-reloaded:Die Homepage von Winprint HylaFAX reloaded] {en} * [wikipedia:HylaFAX:] {de} #tag: Fax, Büro, Kommunikation