Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
voip:fax:hylafax [04.08.2011 06:21. ] – [automatischer Serverstart] django | voip:fax:hylafax [31.10.2023 19:25. ] (aktuell) – Externe Bearbeitung 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Fax-Server mit HylaFAX+ unter CentOS5 ====== | ||
+ | {{: | ||
+ | \\ | ||
+ | **HylaFAX+** ist eine OpenSource Fax-Serverlösung mit dem klingenden Slogan:\\ | ||
+ | \\ **// | ||
+ | \\ | ||
+ | Da es für **HylaFAX+** ein bereits vorgefertigtes **RPM** gibt, brauchen wir nicht mehr selber Hand anlegen und HylaFAX aus den Quellen selbst übersetzen und installieren. | ||
+ | \\ | ||
+ | Ein ausführliches [[https:// | ||
+ | |||
+ | ===== Installation ===== | ||
+ | Die Installation geht wie gewohnt sehr einfach von statten. | ||
+ | < | ||
+ | Nach der erfolgreichen Installation können wir uns mittels **rpm -ql hylafax** einen Überblick verschaffen, | ||
+ | < | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | / | ||
+ | ===== Konfiguration ===== | ||
+ | ==== Einrichtung des Modems ==== | ||
+ | Zur Datenkommunikation gehen wir den klassischen Weg und nutzen einen vorhandenen ELSA-USB Modem. Nach dem Anstecken des Modems an den USB-Port wird dies im syslog entsprechend quittiert: | ||
+ | < | ||
+ | Nov 8 19:30:40 mnss kernel: usb 3-1: new full speed USB device using ohci_hcd and address 10 | ||
+ | Nov 8 19:30:40 mnss kernel: usb 3-1: configuration #2 chosen from 2 choices | ||
+ | Nov 8 19:30:42 mnss kernel: cdc_acm 3-1:2.0: ttyACM0: USB ACM device | ||
+ | Nov 8 19:30:42 mnss kernel: usbcore: registered new driver cdc_acm | ||
+ | Nov 8 19:30:42 mnss kernel: drivers/ | ||
+ | Somit ist schon mal sichergestellt, | ||
+ | < | ||
+ | crw-rw---- 1 root uucp 166, 0 27. Sep 16:10 / | ||
+ | </ | ||
+ | Da wir den Modem später über die Gerätedatei **/ | ||
+ | < | ||
+ | [root@elwms hylafax]# ll /dev/mo* | ||
+ | lrwxrwxrwx 1 root root 12 27. Sep 17:52 /dev/modem -> / | ||
+ | Damit nun bei jedem Neustart des Systemes dieser symlink automatisch gesetzt wird, ergänzen wir in der **/ | ||
+ | < | ||
+ | < | ||
+ | KERNEL==" | ||
+ | ==== Konfiguration des Servers mit Hilfe von **faxsetup** ==== | ||
+ | Die Konfiguration der des Faxservers wird am einfachsten mit Hilfe des Scriptes faxsetup durchgeführt: | ||
+ | < | ||
+ | |||
+ | Setup program for HylaFAX (tm) 5.2.5. | ||
+ | |||
+ | Created for i686-pc-linux-gnu on Sun Jun 22 23:24:30 CEST 2008. | ||
+ | |||
+ | Found encoder: / | ||
+ | Checking system for proper client configuration. | ||
+ | Checking system for proper server configuration. | ||
+ | ... | ||
+ | |||
+ | ... | ||
+ | There does not appear to be an entry for the FaxMaster either in | ||
+ | the YP/NIS database or in the / | ||
+ | FaxMaster is the primary point of contact for HylaFAX problems. | ||
+ | The HylaFAX client-server protocol server identifies this alias as | ||
+ | the place to register complaints and HylaFAX directs automatic mail | ||
+ | messages to this user when problems are identified on a server | ||
+ | machine or when the routine server maintainence scripts are run | ||
+ | (e.g. faxcron). | ||
+ | |||
+ | Should an entry be added for the FaxMaster to / | ||
+ | Users to receive fax-related mail [root]? | ||
+ | / | ||
+ | Rebuilt / | ||
+ | Update / | ||
+ | |||
+ | HylaFAX configuration parameters are: | ||
+ | |||
+ | [1] Init script starts faxq: yes | ||
+ | [2] Init script starts hfaxd yes | ||
+ | [3] Start paging protocol: | ||
+ | Are these ok [yes]? yes | ||
+ | |||
+ | Modem support functions written to / | ||
+ | Configuration parameters written to / | ||
+ | |||
+ | No scheduler config file exists, creating one from scratch. | ||
+ | Country code [1]? 49 | ||
+ | Area code [000]? 8121 | ||
+ | Long distance dialing prefix [1]? 0 | ||
+ | International dialing prefix [011]? 00 | ||
+ | Dial string rules file (relative to / | ||
+ | Tracing during normal server operation [1]? 527 | ||
+ | Default tracing during send and receive sessions [0xFFF]? 527 | ||
+ | Continuation cover page (relative to / | ||
+ | Timeout when converting PostScript documents (secs) [180]? | ||
+ | Maximum number of concurrent jobs to a destination [1]? | ||
+ | Define a group of modems []? | ||
+ | Time of day restrictions for outbound jobs [" | ||
+ | Timeout before purging a stale UUCP lock file (secs) [30]? | ||
+ | Max number of pages to permit in an outbound job [0xffffffff]? | ||
+ | Syslog facility name for ServerTracing messages [daemon]? | ||
+ | |||
+ | The non-default scheduler parameters are: | ||
+ | |||
+ | CountryCode: | ||
+ | AreaCode: | ||
+ | LongDistancePrefix: | ||
+ | InternationalPrefix: | ||
+ | ServerTracing: | ||
+ | MaxSendPages: | ||
+ | SessionTracing: | ||
+ | |||
+ | Are these ok [yes]? yes | ||
+ | |||
+ | Creating new configuration file / | ||
+ | Und weiter geht es mit der Einstellung des Konfigurationsfiles: | ||
+ | < | ||
+ | Should I restart the HylaFAX server processes [yes]? yes | ||
+ | |||
+ | / | ||
+ | Starting HylaFAX queue manager (faxq): | ||
+ | Starting HylaFAX server (hfaxd): | ||
+ | |||
+ | You do not appear to have any modems configured for use. Modems are | ||
+ | configured for use with HylaFAX with the faxaddmodem(8C) command. | ||
+ | Do you want to run faxaddmodem to configure a modem [yes]? | ||
+ | Serial port that modem is connected to []? modem | ||
+ | |||
+ | Ok, time to setup a configuration file for the modem. | ||
+ | page config(5F) may be useful during this process. | ||
+ | that at any time you can safely interrupt this procedure. | ||
+ | |||
+ | Reading scheduler config file / | ||
+ | |||
+ | No existing configuration, | ||
+ | |||
+ | Country code [49]? | ||
+ | Area code [8121]? | ||
+ | Phone number of fax modem [+1.999.555.1212]? | ||
+ | Local identification string (for TSI/CIG) [" | ||
+ | Long distance dialing prefix [1]? 0 | ||
+ | International dialing prefix [011]? 00 | ||
+ | Dial string rules file (relative to / | ||
+ | Tracing during normal server operation [1]? 527 | ||
+ | Tracing during send and receive sessions [0xFFF]? 527 | ||
+ | Protection mode for received facsimile [0600]? 0644 | ||
+ | Protection mode for session logs [0600]? 0600 | ||
+ | Protection mode for modem [0600]? 0644 | ||
+ | Rings to wait before answering [1]? | ||
+ | Modem speaker volume [off]? | ||
+ | Command line arguments to getty program ["-h %l dx_%s" | ||
+ | Pathname of TSI access control list file (relative to / | ||
+ | Tag line font file (relative to / | ||
+ | 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]? 50 | ||
+ | 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: | ||
+ | AreaCode: | ||
+ | FAXNumber: | ||
+ | LongDistancePrefix: | ||
+ | InternationalPrefix: | ||
+ | DialStringRules: | ||
+ | ServerTracing: | ||
+ | SessionTracing: | ||
+ | RecvFileMode: | ||
+ | DeviceMode: | ||
+ | RingsBeforeAnswer: | ||
+ | SpeakerVolume: | ||
+ | GettyArgs: | ||
+ | LocalIdentifier: | ||
+ | TagLineFont: | ||
+ | TagLineFormat: | ||
+ | MaxRecvPages: | ||
+ | |||
+ | Are these ok [yes]? yes</ | ||
+ | Und weiter geht es mit der Konfiguration des Modems: | ||
+ | < | ||
+ | of modem that is attached. | ||
+ | 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. | ||
+ | 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' | ||
+ | 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. | ||
+ | How should it be configured [1]? | ||
+ | |||
+ | Hmm, this looks like a Class 1 modem. | ||
+ | Product code (ATI0) is " | ||
+ | Other information (ATI3) is " | ||
+ | DTE-DCE flow control scheme [default]? RTSCTS | ||
+ | Modem manufacturer is " | ||
+ | Modem model is " | ||
+ | |||
+ | Using prototype configuration file class1... | ||
+ | |||
+ | There is no prototype configuration file for your modem, so we will | ||
+ | have to fill in the appropriate parameters by hand. You will need the | ||
+ | manual for how to program your modem to do this task. In case you are | ||
+ | uncertain of the meaning of a configuration parameter you should | ||
+ | consult the config(5F) manual page for an explanation. | ||
+ | |||
+ | Note that modem commands must be specified exactly as they are to be | ||
+ | sent to the modem. | ||
+ | and will automatically be deleted. | ||
+ | null parameters as "" | ||
+ | |||
+ | Finally, beware that the set of parameters is long. If you prefer to | ||
+ | use your favorite editor instead of this script you should fill things | ||
+ | in here as best you can and then edit the configuration file | ||
+ | |||
+ | "/ | ||
+ | |||
+ | after completing this procedure. | ||
+ | |||
+ | Command to enter Class 1 [AT+FCLASS=1]? | ||
+ | Command to stop and wait prior to sending PPM [AT+FTS=7]? | ||
+ | Command to stop and wait prior to sending TCF [AT+FTS=7]? | ||
+ | Command to stop and wait prior to sending EOP [AT+FTS=9]? | ||
+ | Extra bytes in a received HDLC frame [4]? | ||
+ | Maximum time to wait for OK after aborting a receive (ms) [200]? | ||
+ | Maximum wait for initial identification frame (ms) [40000]? | ||
+ | Command to ensure silence after receiving HDLC and before sending [AT+FRS=7]? | ||
+ | |||
+ | The modem configuration parameters are: | ||
+ | |||
+ | Class1Cmd: | ||
+ | Class1PPMWaitCmd: | ||
+ | Class1TCFWaitCmd: | ||
+ | Class1EOPWaitCmd: | ||
+ | Class1FrameOverhead: | ||
+ | Class1RecvAbortOK: | ||
+ | Class1RecvIdentTimer: | ||
+ | Class1SwitchingCmd: | ||
+ | Class1TCFMaxNonZero: | ||
+ | Class1TCFMinRun: | ||
+ | |||
+ | Are these ok [yes]? yes | ||
+ | |||
+ | Creating new configuration file / | ||
+ | Creating fifo / | ||
+ | Done setting up the modem configuration. | ||
+ | |||
+ | Checking / | ||
+ | ...some parameters are different. | ||
+ | |||
+ | The non-default scheduler parameters are: | ||
+ | |||
+ | CountryCode: | ||
+ | AreaCode: | ||
+ | LongDistancePrefix: | ||
+ | InternationalPrefix: | ||
+ | DialStringRules: | ||
+ | ServerTracing: | ||
+ | MaxSendPages: | ||
+ | SessionTracing: | ||
+ | |||
+ | Are these ok [yes]? yes | ||
+ | |||
+ | Creating new configuration file / | ||
+ | ...saving current file as / | ||
+ | |||
+ | Don't forget to run faxmodem(8C) (if you have a send-only environment) | ||
+ | or configure init to run faxgetty on modem. | ||
+ | Do you want to run faxaddmodem to configure another modem [yes]? no | ||
+ | |||
+ | You do not appear to be using faxgetty to notify the HylaFAX scheduler | ||
+ | about new modems and/or their status. | ||
+ | faxmodem program to inform the new faxq process about the modems you | ||
+ | want to have scheduled by HylaFAX. | ||
+ | require non-default capabilities specified to faxmodem then you should | ||
+ | read faxmodem(8C) manual page and do this work yourself (since this | ||
+ | script is not intelligent enough to automatically figure out the modem | ||
+ | capabilities and supply the appropriate arguments). | ||
+ | |||
+ | Should I run faxmodem for each configured modem [yes]? no | ||
+ | |||
+ | Done verifying system setup.</ | ||
+ | Die Frage **Should I run faxmodem for each configured modem** ist mit **__no__** zu beantworten, | ||
+ | ==== cronjobs faxqclean und faxcron ==== | ||
+ | Die beiden scripts **faxqclean** und **faxcron** sollen in regelmäßigen Abständen aufgerufen werden. \\ | ||
+ | |||
+ | Das zweite script **faxcron** (ebenfalls beheimatet unter /// | ||
+ | \\ | ||
+ | Dank der RPM-Installation wurden für die beiden Aufgaben entsprechende Eintragungen bereits vorgenommen. | ||
+ | \\ | ||
+ | Das Sript **faxqclean** (beheimatet unter /// | ||
+ | < | ||
+ | insgesamt 4 | ||
+ | -rwxr-xr-x 1 root root 39 20. Jun 15:08 hylafax</ | ||
+ | < | ||
+ | #!/bin/sh | ||
+ | |||
+ | / | ||
+ | |||
+ | exit 0</ | ||
+ | Das zweite script **faxcron** (ebenfalls beheimatet unter /// | ||
+ | < | ||
+ | -rwxr-xr-x 1 root root 80 20. Jun 15:08 / | ||
+ | < | ||
+ | #!/bin/sh | ||
+ | |||
+ | / | ||
+ | |||
+ | exit 0</ | ||
+ | Der Report, den **faxcron** täglich erstellt, sieht exeplarisch wie folgt aus: | ||
+ | < | ||
+ | |||
+ | Sender | ||
+ | ------------------------------------------------------------- | ||
+ | Total 0 0:00 0,0 0 | ||
+ | |||
+ | Facsimile transmitted since last week: | ||
+ | |||
+ | Sender | ||
+ | ------------------------------------------------------------- | ||
+ | Total 0 0:00 0,0 0 | ||
+ | |||
+ | Facsimile received since : | ||
+ | |||
+ | Sender | ||
+ | ------------------------------------------------------------------------------------------ | ||
+ | Total | ||
+ | |||
+ | Facsimile received since last week: | ||
+ | |||
+ | Sender | ||
+ | ------------------------------------------------------------------------------------------ | ||
+ | Total | ||
+ | |||
+ | Report failed calls and associated session logs: | ||
+ | |||
+ | Nothing to purge in info directory. | ||
+ | |||
+ | Truncate merged session logs older than 30 days: | ||
+ | |||
+ | Nothing to purge in receive queue. | ||
+ | |||
+ | Nothing to purge in the tmp directory.</ | ||
+ | ===== Faxserver starten ===== | ||
+ | ==== manuellen Start ==== | ||
+ | Zum Starten und Stoppen bedienen wir uns am besten der scripe, die beim Installationsprozess in die dafür vorgesehenen Pfade kopiert wurden. | ||
+ | Unter CentOS stoppen wir den Server einfach via service hylafax stop und der Start erfolgt dann analog via service hylafax start. | ||
+ | |||
+ | Den ersten Start unseres Fax-Servers nehmen wir wie folgt vor. | ||
+ | < | ||
+ | Starting HylaFAX queue manager (faxq): | ||
+ | Starting HylaFAX server (hfaxd): | ||
+ | Im Syslog wird uns der erfolgreiche Start entsprechend quittiert. | ||
+ | < | ||
+ | Nov 8 20:02:56 nss FaxQueuer[25781]: | ||
+ | Nov 8 20:02:56 nss FaxQueuer[25781]: | ||
+ | Nov 8 20:02:56 nss HylaFAX[25784]: | ||
+ | Zur Kontrolle können wir ja noch genau nachprüfen, | ||
+ | < | ||
+ | uucp | ||
+ | uucp | ||
+ | ==== automatischer Faxempfang ==== | ||
+ | Da wir Faxe nicht nur senden sondern auch empfangen wollen, veranlassen wir den Start des Programms **faxgetty** bereits beim Hochfahren des Servers. Hierzu tragen wir in die entsprechende Konfigurationsdatei **/ | ||
+ | < | ||
+ | fa: | ||
+ | Mit **init q** veranlassen wir das Neueinlesen der inittab-Datei durch den init-Prozeß. | ||
+ | ==== automatischer Serverstart ==== | ||
+ | Damit nun unser HylaFAX-Server beim Booten automatisch gestartet wird, nehmen wir noch folgende Konfigurationsschritte vor. | ||
+ | < | ||
+ | Anschließend überprüfen wir noch unsere Änderung: | ||
+ | < | ||
+ | hylafax | ||
+ | |||