Handbook:Server Operation:Sending Faxes

One of the many reasons for using HylaFAX is for the ability to submit faxes from any networked computer, in any order, and in any quantity. HylaFAX will work away at them without anyone ever walking to a fax machine, and better yet, nobody will be wasting their time watching paper pass through it... page after page after boring page. If there's a busy signal or no answer, HylaFAX will try later, no need to remember in a few minutes. HylaFAX remembers its job well.

HylaFAX server must interact with a client program of some kind to receive its faxing instructions. These client programs may reside on another computer, on the same system as HylaFAX server, or (as in most cases) a combination of client programs both on the HylaFAX system and off work together for proper fax sending.

This section deals with several different approaches to this task. However, it is advisable to at least understand the basics of the HylaFAX client programs themselves, as sent-fax problem debugging and troubleshooting is best done at that level first. The essential HylaFAX client programs with which to be familiar are: faxcover(1), faxmail(1), faxrm(1), faxstat(1), and especially sendfax(1). A good reading would also include hylafax-client(1).

For another HylaFAX client list, see Client_Software

*NIX Clients

 * HylaFAX itself, of course! Read sendfax(1). Typical usage would be something like: 'sendfax -f "myname@mydomain.com" -R -r "faxsubject" -c "coverpage comments" -x "Recipient's company" -d "Recipient@1234567" tofax.ps' where myname@mydomain.com is a valid e-mail address for the sender, 1234567 is the number where to fax, and tofax.ps is the image file to be faxed. Standard HylaFAX-compatible file formats are ASCII, TIFF, PostScript, and PDF (in versions newer than 4.1beta2). Be aware that sendfax is capable of handling multiple -d options and that only the options that precede it apply to that instance of the -d. In most cases the -d option is the last option that should be used.
 * SuSEFax - See the printed SuSE manual for SuSEFax information.
 * tkhylafax is a popular Unix/X11 tcl/tk interface to HylaFAX. Get it at ftp://ftp.hylafax.org/contrib/tkhylafax. See a screen shot here.
 * ksendfax - http://ksendfax.sourceforge.net/. RPMs are available at RedHat's ftp, also.
 * GFax - http://www.cowlug.org/gfax/. Front End Gnome Fax Software For Linux. Requires Gnome 1.2 or newer such as the Helix release.

Windows Clients

 * HylaFSP - A simple, user-friendly client for faxing from Windows 2000/XP. HylaFSP plugs directly into Microsoft's own 'fax services' and includes support for coverpages (via Microsoft's coverpage editor), local and shared contacts, and generates high-quality TIFF output for great looking faxes. Homepage is at http://www.ifax.com/products/hylafsp.html.
 * HylaFAX-Client - http://www.swt-online.de/hylafax/index_eng.html - Free 30 day evaluation! Full Featured. Now ready for Windows Vista, Windows 7 and Terminal Server 2003/2008.
 * WHFC - Free, open-source, one-step-install fax client supporting cover pages, view sent/received log on fax server, printer driver, etc. See http://whfc.uli-eckhardt.de/ for documentation and installation information.
 * RelayFax - RelayFax is a commercial product sold by Alt-N Technologies. It has its own fax-server software, but because it uses an email-to-fax method, the RelayFax client software may be used in conjunction with a HylaFAX server using sendmail and procmail. See http://www.hylafax.org/howto/clients/RelayFax.html for more information.
 * Cypheus from Bodo Noering is for Windows. It is quite versatile, feature-rich, and has been well-supported. Cypheus serves well as a fax administrator utility. Get it from http://www.cypheus.co.uk/
 * Respond and adiXein - Uses a Samba share on the HylaFAX server to send print jobs to the faxing scripts. See http://www.boerde.de/~horstf/ for Respond and http://www.adixein.com/fax for adiXein.
 * Winprint HylaFAX is a GPL Windows print monitor designed to send its output directly to a HylaFAX Server. Install takes a few steps but isn't hard.  Supports sending only one print job, no cover page, no way to view/cancel fax jobs.  See: http://winprinthylafax.sourceforge.net/.
 * w2hfax - This client has no updates since 2000 and crashes in the latest Python 2.5. Instead, try WHFC or in the cross-platform section, Pyla or one of the Java clients. w2hfax is a versatile HylaFAX client, allowing sending files directly or sending a fax via printer driver; view incoming and outgoing fax; cancel and delete fax from the incoming, outgoing or sent folder; viewing job details; and address books. See http://w2hfax.sourceforge.net/.
 * Frogfax - Frogfax is a free HylaFAX Windows Client with advanced features like HylaFAX Monitor, Fax Notify, Phonebook and Fax Report. Available in Italian and other languages; a tool to translate in other languages is also available. See http://www.frogfax.com/.

Mac Clients (Max OS X)

 * HylaFSP for Mac OS X - A simple, user-friendly client for faxing from Mac OS X. See http://www.ifax.com/products/hylafsp.html.
 * MacHylafax - see http://www.machylafax.com

Mac Clients (System 9 and earlier)

 * MacFlex - see http://homepage.mac.com/robthedude/MacFlex/ Note: MacFlex requires the use of the "old" protocol/ports. /etc/init.d/hylafax (on some OSes) needs changes. See http://www.hylafax.org/archive/2000-08/msg00356.html and http://www.hylafax.org/archive/2000-08/msg00409.html. There may be security issues with this configuration, however. See http://www.hylafax.org/archive/2000-08/msg00421.html.
 * SDFax - SDFax is a commercial print driver for the Macintosh computer. The print job is formatted in either PostScript or TIFF formats and is sent via e-mail to a fax server in the Internet TPC Fax Project. See http://www.sdesign.com/sdfax1x/mac_os/.

Cross-Platform Clients

 * Pyla is a GPL Python client similar to WHFC. See: http://www.teamsw.it/pyla/.
 * Hermes is a web-enabled browser-driven client run from a web server. See: http://www.hermesfax.it/en/index.html.
 * JHylaFax is a platform independent Java client licensed under the GPL featuring a Swing user interface. See http://jhylafax.sourceforge.net.
 * gnu.hylafax - The gnu.hylafax package is a pure-Java implementation of the HylaFAX client protocol. The gnu.hylafax package can be used to implement a HylaFAX client that will run on any Java-supporting system. See http://gnu-hylafax.sourceforge.net.
 * Bernd's SendFax.java - See http://sourceforge.net/project/showfiles.php?group_id=5469.
 * YajHFC is a platform independent Java client with support for faxing documents in PostScript, PDF, JPEG, PNG, TIFF, GIF and HTML format,polling faxes,support for generating cover pages from templates (in PostScript, HTML and (with a Plugin) XSL:FO or ODT format),phone book (entries can optionally be read from SQL databases or LDAP directories), runs under Windows, Linux and Mac OS X (other platforms if a suitable JRE is available). See http://yajhfc.berlios.de/.

Email-To-Fax Configuration

 * faxmail - faxmail is a HylaFAX client program which takes an electronic mail message on standard input and converts it to PostScript in a form that is suitable for transmission as a facsimile. Read the man page: faxmail(1). In order to use faxmail as an email-to-fax gateway, typically some degree of "sendmail mangling" must be done. See http://www.hylafax.org/howto/clients/sendmail-faxmail-mangling.html and http://www.hylafax.org/howto/clients/faxmail-nonrandom-host.html for more information.
 * email-to-fax with procmail - If procmail is your mail delivery agent (MDA), then you can easily configure it to handle outbound faxes by setting up a dedicated user account for faxing out and placing appropriate recipes in that user's $HOME/.procmailrc file. Outbound faxes are then e-mailed to this user account. This is how the above-mentioned RelayFax client works, which already has a simple generic email-to-fax capability built-in.

Faxing From Samba
It is possible to send a (Hyla)FAX by printing to a Samba-defined fax-printer using a Windows client. This is the recipe:

  Manual: 1. Make up your document (text, pictures, whatever) on a Windows (-alike) client. 2. ANYwhere in your text, specify the fax number you want to send the document to, i.e.:  3. Print, using a Postscript driver, to the printer on your HylaFAX server system. 4. As soon as the fax has been sent, you will be notified by email. If a   failure occurs, an email will be sent to you too.  Prerequisites: 1. We assume you have a "standard" *NIX and HylaFAX setup. <BR>2. You have a standard Windows-like client i.e., 95, 98, ME, NT, or 2000. OS/2 will also work fine, as long as it supports drive sharing. <BR>3. You use the Samba package to share system resources with the clients - and it is working fine already, meaning that you can log-on as a client. </LI>  To setup do the following:</B> <BR>1. Put the following lines in  and delete (if applicable) any other faxprinters: faxlp:\ :lp=/dev/null:\ :sd=/usr/spool/lpd:\ :if=/var/spool/hylafax/bin/sambafax:\ :sh:sf:mx#0: Note: due to some UNIX history the directories  and

contain the same information, so you use the one that is already present on your machine.</I> <BR> <BR>2. Store this script as , or in the  directory of your HylaFAX tree (but then adjust the path in printcap). Make sure the script is executable, using " ". <BR> <BR>3. restart lpd and samba <BR>

<BR>4. On your client, install a new printer with a postscript driver (like an Apple Laserwriter) to print to \\YOURSERVER\faxlp <BR> <BR>5. Create a fax using your favorite wordchewer and take up a line like: <BR> <BR>and print to your new faxprinter. </LI>  Note 1:</B> The sambafax program will look for the following syntax in the printfile: <BR> ...text&gt;FAX-NR&lt;1 or 2 spaces&gt;:&lt;1 or 2 spaces&gt;&lt;fax number&gt;&lt;text...

The search is case-insensitive. The first non-nummeric, non-dash in the fax number will terminate the number. </LI>  Note 2:</B> If you print with a Postscript driver, the output sent to the HylaFAX server is ASCII, a lot of control sequences, and your text in-between. Some printer drivers break up the lines in your text (because postscript does not care about CRLF's). If that happens, the faxnumber will not be located. If using the Windows Apple Laserwriter driver, use the EPS Postscript option. </LI>  Note 3:</B> for the same reason, the textual makeup must be the same for the complete FAX-NR line! </LI> </UL> <BR> If there are any difficulties or questions, do not hesitate to contact Ignace Suy <BR><A HREF="mailto:ignace&#046;suy&#064;purpel3&#046;nl">ignace&#046;suy&#064;purpel3&#046;nl</A>

He has provided a sambafax web-site at: http://www.purpel3.nl/sambafax/. Please refer to it for the most up-to-date information. If you are working with it, drop him a line. Update 7/13/2008: that website was not being maintained. You may find an archived version of that website at http://web.archive.org/web/20070305223445/http://www.purpel3.nl/sambafax/. There also appears to be a successor to sambafax - salsafax that is on that website.

Sambafax is now suited to run under the printing systems lpd, LPRng and CUPS. For CUPS the installation is somewhat different. Refer to the website above.

Faxing via IBM AS/400
Although a true HylaFAX client for AS/400 is not available (more tests with the gnu-hylafax java client are scheduled), you can send facsimiles as print jobs to the HylaFAX server. To do this, some things have to be done but for now a little note.

I tested this with Red Hat Linux but using a different distros will not present to much difficulties. The feedback that I received from earlier version of this howto is that most of the people are not AS/400 experts which is not a problem but some language that I use in the steps for AS/400 setup make sense in that platform. Ask if you needed any explanation.

<UL>  AS/400 procedures:</B> <BR>1. Create an output queue like is presented here outq.txt and be sure that LPD package is installed and running. <BR>Note:</B> In outq.txt you will find the follow line Workstation costumization object....: LINUXOUTQ2</B> <BR>This applys only for specific national character map like portuguese, italian ,etc,etc. AS/400 use EBCDIC internally and needed a little help to know that linux use ASCII ;-). Any table can be modified but I sugest changing the 860 map table. </LI>  Linux:</B> <BR>1. Check if you have enscript installed. <BR>2. Check if lpr is installed and running. <BR>3. Add a printer. <BR>4. Modify the entry for that printer in printcap to match the script as400pscript where the job from AS/400 is redirected to create the fax and hylafax is called. Read carefully</B> the script, you will save yourself time and headashes. Here is my printcap for guidance,	lp:\        :sd=/var/spool/lpd/lp:\         :mx#0:\         :sh:\         :cd=/var/spool/lpd/filters:\         :if=/var/spool/lpd/filters/as400script:\         :lp=/dev/null: <B>Note:</B> The PATHs applies to RH7.x. Don't forget to restart lpd deamon. <BR> <BR><B>Last notes:</B> If you want more control accessing lpd services in the linux box, use LPRng package. The as400script, by default, merge the text from AS/400 with a file where is stored the company logo. If you only want send text, disable the merge text+companylogo process (read carefully the as400script). When merging logos with text, remember, you MUST create the logo file in EPS, Encapsulated Postscript, format. <BR><I>This was done with Red Hat 7.0, lprng 3.7.4, kernel 2.2.16-22, keyboard pt-latin1, AS400 V4R5.</I> </LI> <LI> <B>Improvement:</B> Rob Sherman changed the as400script to enable multi-page faxing,i e,if you needed same fixed <B>text</B>(only) in every page. If you are good in postscrip, doing this for graphics it will be easy. Read carefully the script and place the ACKFORM.hdr file in $PATH/enscript/. Pay attention that in AS/400 you must specifie your job as ACKFORM. In the as400script2 the ACKFORM.hdr file is invoqued here /usr/bin/enscript --fancy-header=$FNAME where in FNAME is stored the hdr name file, ACKFORM. <BR>as400script2 <BR>ACKFORM.hdr </LI> </UL> <BR> <BR>This section was contributed by <BR>Pedro Roçadas, procadas at Yahoo com. <BR>Pedro thanks Giulio Orsero for his assistance on this task.