|This article is available in: English Castellano Deutsch Francais Nederlands Russian Turkce Arabic|
About the author:
It's been a long time since I used Windows and it feels good...
This article explains how to configure a Linux box as a fax server!
Here is a configuration for a fax server using Hylafax 4.0pl2.rjc11 and a Mandrake 7.1 distribution
On the server side, Hylafax consists of 3 daemons :
On the client side, one finds the following programs (which can also run on the server) :
Relevant configuration files are found in the /var/spool/fax/etc/ folder
I strongly advise you to install the following packages (included
with Mandrake 7.1) :
These resources are also available on the official site http://www.hylafax.org/links.html
If Hylafax is not installed by default, one simply has to add the needed RPM packages:
rpm -ivh hylafax-common-4.0pl2.rjc11-3mdk rpm -ivh hylafax-client-4.0pl2.rjc11-3mdk rpm -ivh hylafax-server-4.0pl2.rjc11-3mdk
In order to configure the server, run the command:
faxsetup -server (as root)
The default settings are ok to use almost every question asked, except for:
Country code ? enter 33 for France
Area code ? enter 1 for Paris
Long distance dialing prefix ? enter 0
International dialing prefix ? enter 00
Dial string rules file [etc/dialrules]? enter etc/dialrules.europe
Serial port that modem is connected to ? enter ttyS0 (for COM1) or ttyS1 (for COM2)
Hylafax does not launch the daemon faxgetty by default. This has to be done by hand:
1 - Edit file /etc/inittab and insert the following line at the end of the file:
the command kill -HUP 1 is necessary to restart faxgetty
mo:2345:respawn:/usr/sbin/faxgetty -D ttyS0
if you want to use the rc.local file:2 - Add to /etc/rc.d/rc.local the following line:
/usr/sbin/faxgetty -D /dev/ttyS0
and launch the command:
faxgetty -D /dev/ttyS0
Note : The command faxaddmodem allows you to add one or more modems afterwards.
After these manipulations, the file
/var/spool/fax/etc/config.ttyS0 (for com1) has been created for
It contains your modem configuration for /dev/ttyS0
The file /usr/share/fax/hfaxd.conf contains the hfaxd daemon configuration, I did not touch it!
To detect the modem, use the probemodem command. Moreover, there are typical configurations available in /var/spool/fax/config/
My modem is a 3Com US Robotics 56k, therefore I choose the file usr-2.0 which I copied into /var/spool/fax/etc/ while renaming it to config.ttyS0 and modifying it as follows:
# Configuration for using the Class 2.0 command interface # with a USR v.34 Courier or Sporster modem. # # CONFIG: CLASS2.0: USRobotics*-* # CountryCode: 33 AreaCode: 1 #FAXNumber: your number ex (for france): 0134123412 LongDistancePrefix: 0 InternationalPrefix: 00 DiadStringRules: etc/dialrules.europe (Important .europe !) ServerTracing: 1 SessionTracing: 11 RecvFileMode: 0600 LogFileMode: 0600 DeviceMode: 0600 RingsBeforeAnswer: 1 SpeakerVolume: off GettyArgs: "-h %l dx_%s" #LocalIdentifier: "Your Company" (uncomment if wanted on the fax) #TagLineFont: etc/lutRS18.pcf (idem) #TagLineFormat: "De %%l|%c|Page %%p sur %%t" (idem) #MaxRecvPages: 25 ModemType: Class2.0 # use class 2.0 interface ModemRate: 57600 # 38400 DCE-DTE communication rate ModemFlowControl: rtscts # XON/XOFF flow control assumed ModemDialCmd: ATDT0%s # I added 0 because I go through a PABX !! #ModemNoFlowCmd: AT&H0&I0&R1 # setup modem for no flow control ModemHardFlowCmd: AT&H1&I0&R2 # setup modem for hardware flow control #ModemSoftFlowCmd: AT&H2&I2&R1 # setup modem for software flow control #ModemSetupDTRCmd: ATS13=1&D2 # setup so DTR drop resets modem #ModemSetupDCDCmd: AT&C1 # setup so DCD reflects carrier (or not) ModemResultCodesCmd: ATQ0X4 # enable extended result codes #ModemSetupAACmd: AT+FAA=1 #ModemSetVolumeCmd: "ATM0 ATM1 ATM1 ATM1 ATM1" Class2BUGCmd: AT+FBU=0 Class2CQQueryCmd: !(0),(0) # override modem response Class2NRCmd: AT+FNR=1,1,1,0
Next the following lines are added to /var/spool/fax/etc/host:
All machines from domain 192.168.1.0 are allowed to use the fax!
If faxgetty does not exist in the process list (ps -e) try:
/usr/sbin/faxgetty -D /dev/ttyS0
To check the result:
sendfax -n -d number file1 file2 ..
faxstat -s (shows fax in the queue waiting to be sent) faxstat -d (shows faxes sent) faxstat -r (shows faxes received)
To remove a fax from the queue:
To clean the spool :
To show statistics :
For network use, I chose the resources available from http://www.hylafax.org/links.html
Particularly Printfax and Repond, on site http://www.boerde.de/~horstf/:
Download these three files:
Copy script printfax.pl in /usr/bin/ and modify it such that it works with hylafax :
### Format of commandline # $cmdlinefmt='mgetty'; $cmdlinefmt='hylafax'; ### The faxspoolprogram ### for mgetty+sendfax: # $faxspool = '/usr/bin/faxspool'; ### for hylafax: $faxspool = '/usr/bin/sendfax'; ### Additional faxspool args (e.g. header, coverpage) ### empty: @faxspool_args = qw(-n); ### for mgetty+sendfax with a special header: # @faxspool_args = qw( -h /usr/local/etc/mgetty+sendfax/faxheader.smb); ### for hylafax with send email when job is done or requeued and use ### a4 sized paper: # @faxspool_args = qw(-D -R -s a4);
Note :Cross check your script version of printfax.pl, as modifications might have taken place!
Add module smb_conf.add in /etc/smb.conf using copy/paste:
[Fax] comment = Fax Printer public = yes postscript = yes print command = ( /usr/bin/printfax.pl %I %s %U %m; rm %s ) & printable = yes writable = no path = /var/spool/samba
Check line print command especially with windows2000
Samba must now be restarted,
Here is a typical Client Configuration for WINDOWS 95,98,NT,2000... Install Respond.zip, which contains config.exe and respond.exe files :
Next a networked printer must be created:
This is the end of the road, open Wordpad, type any text and print it on the fax printer! The respond dialog box then appears (if you started respond.exe) asking you the fax number, just enter the number and Ok, your fax is going to be sent to the fax server hylafax
In order to check the correct behaviour, go to the server and type faxstat -s, your fax should be there.
Typical Client Configuration for Linux :
Use available utilities on the Hylafax site!
Mailing with the fax is done locally on the server with
On the other hand, your database can be anywhere on the network and is accessed using StarOffice(ODBC,JDBC,...) Use the spadmin utility and configure the telefax output: faxspool (PHONE) (TMP)
Inside the document to fax put @@#num_tel_fax@@ transparently with a database field name instead of num_tel_fax
Read the StarOffice help, everything is explained!
The drawback of this method is that you have to install StarOffice on the fax server :-( Fax Mailing through the network using respond is not straightforward with StarOffice because a fax number must be entered manually for every recipient!
I am investigating at the moment an alternative solution.
If you find this document incomplete or filled with faults, please wrtite to email@example.com And if you have some spare time, think about signing the no patents request!
Webpages maintained by the LinuxFocus Editor team
© HackLinux, FDL
Click here to report a fault or send a comment to LinuxFocus
2001-04-27, generated by lfparser version 2.13