[ HOME ] [ BACK ] [ NEXT ]
Open-source software is all about customization. So don't be surprised when most HylaFAX
users consider customization a part of installation. In many cases some customization of the
config files and the default coverpage will be necessary for desired HylaFAX functionality.
In the future, HylaFAX may be capable of "auto-configuring" most faxmodems. But currently, unless
you're fortunate enough to be using a faxmodem that has been used by a HylaFAX developer or can find
a functional config file from another HylaFAX user, then you will need to work on a config file for
each of your faxmodems that you intend to use with HylaFAX. This can be done step-by-step during
the faxaddmodem script, or as I prefer, a config file can be created prior to running faxaddmodem.
The config file contains all of the unique settings for a faxmodem. There are "default" settings
built-into HylaFAX, but chances are good that all of these "defaults" are not appropriate or optimal for your particular
faxmodem's make, model, or firmware revision. There are many possible differences between one faxmodem
and another, and in order to properly create a config file you will need your faxmodem's AT and AT+F command set.
These should be in the manual that [hopefully] came with your faxmodem.
Begin by using one of the following three "template" config files. If you do not know what class your faxmodem
uses, then you can usually send it the '
AT+FCLASS=?' command, and the faxmodem will
report the possible classes to use. You may see something like '
0,1,2,80'. Class 0 is for data communication; Class 1, 2, and 2.0 are fax protocols; and
Class 80 is for voice communication. HylaFAX can utilize all of these classes, however, this document
will only discuss faxing.
For Class 1 faxmodems, begin by using this file.
For Class 2 faxmodems, begin by using this file.
For Class 2.0 faxmodems, begin by using this file.
Start editing your config file by changing the '
# $Id:' line. At a minimum, change
the $Id name to something that identifies your config file and that is unique from all other config
files usually found in the /var/spool/hylafax/config directory. The $Id name should also be the filename used
for this config file. So, perhaps this line will appear as:
# $Id: tweaking.html,v 1.28 2004/07/14 18:59:07 lhoward Exp $'
Next, change the '
# CONFIG:' line to match your make, model, and intended flow control.
For Class 1, change
ATI0 to match the result of '
ATI3 to match the result of '
Replace the two '
name's with anything to describe your modem.
For Class 2, change
Manufacturer to match the result of '
Model to match the result of '
For Class2.0, change
Manufacturer to match the result of '
Model to match the result of '
flowcontrol with your desired flow control method, '
XONXOFF' (software), or '
Now, proceed through the Modem* and Class* commands and replace the default value with the appropriate value for your modem. If your
desired values match the default values then that particular line may be removed (except for the *FillOrder and Class2AP* lines).
More description of each value is given in the hylafax-config(5F) man page.
When you have arrived at the bottom of the list, then save this config to a file named as your $Id name, and place it in the config directory (usually /var/spool/hylafax/config).
Kill faxgetty if it is running. Now (re)run faxaddmodem. It should detect your modem appropriately by presenting you the config list rather than asking you for each setting. You now have a customized
For more information please consult hylafax-config(5F) and faxaddmodem(8C).
There are a few ways to customize a coverpage:
- make_faxcover is a simple sed script to munge an encapsulated postscript file,
as created by tgif into the form required for a cover page for use
with HylaFAX. Also included is a sample page as an example, before being run through
the make_faxcover script. Read the README file for more information. Thanks to Thomas Erskine email@example.com.
Download and extract it from: ftp://ftp.sgi.com/sgi/fax/contrib/covers/makefaxcover.tar.Z.
Note that because of changes in 4.1beta2 to the CommentX-commentsX faxcover variable,
make_faxcover will not create comments sections appropriately. See
Bug 81 for details.
- latex-cover from Rainer Krienke firstname.lastname@example.org.
latex-cover.sty offers a way to create custom coverpage templates for use with the faxcover application from the hylafax distribution.
Download it at ftp://ftp.sgi.com/sgi/fax/contrib/covers/latex-cover-1.04.tar.gz.
Read the README file for more information.
- You can manually follow the procedure used by make_faxcover with good success. First, you
need to generate a simple Postscript or EPS document. In *NIXes you can use tgif. In Windows
you can generate a simple Postscript document from any text editor such as Microsoft Word by
configuring a new printer on the system using the Apple Laserwriter driver printing to a file.
Make sure that in the driver properties under the "Postscript" options the EPS option
is used. Create your document first, but using easily-found markers (such as "XXXX-to") to
identify your intended dynamic (variable) fields. Then, print your document to a file using
the newly installed printer driver. Using an ASCII text editor, edit the created Postscript
file, changing marked sections into Postscript variables, usually by removing the marker and
the accompanying parenthesis. For example, changing "
(XXXX-from) SH" into
from SH". See faxcover(1) for an exact list
of available faxcover variables. A sample BreakIntoLines routine can be seen at:
For 4.1beta2 users, please review
For more information, refer to faxcover(1) and
faxcron is a command script that does routine upkeep tasks in a HylaFAX spooling directory
hierarchy. This script is intended to be invoked from cron(8C) on behalf of the fax user once a
day, with the standard output sent by mail to the HylaFAX administrator. In conjunction with
recvstats, xferfaxstats, info, and other HylaFAX utilities, the fax administrator can receive
informative daily fax reports.
hylafax-info(5F) for details.
- For logging and error statistics, try Robert Colquhoun's errorstats script.
- If you're using an old HylaFAX version, be aware of an applicable patch: http://www.hylafax.org/patches/posix-rename.patch.
- Matthias Reich email@example.com is one of the mass-fax guys
running HylaFAX on 10 servers with an output of up to 10,000 per day. He is running ten Suns
with Solaris 2.4 and HylaFAX 4.0pl2 and one Linux box with HylaFAX 4.1beta2. He uses Multitech
MT1432 BG, Multitech ZDX56 and some Elsa TQV33.6 Modems. He does error handling as follows:
- The user gets a mail for each failed fax. It is the user's responsiblity to check
that the number is right (BTW, the most common error is users sending faxes to wrong numbers).
- The mail the user gets is "custom made". He changed the notify.awk script
to give the user less detailed information e.g.: just the line was busy, no answer, or
- A script scans the logs and filters out the comm-errors (t.30 and so on).
- After getting this report he starts to investigate what is wrong. This begins with setting
up the debuglevel for the dest-number, resending the fax, and having a close look in the log.
- After hopefully recognizing the error, he changes some settings for the destination
in the info-directory to make the faxes work. Mostly setting down the speed or
changing the min-scanline-time brings success. In more severe cases he has had success with
attaching those destinations to be only used with his Elsa modems. After two or three
weeks, the work decreases dramatically, and now his error rate is below 1 percent.
- And if anyone feels up to a challenge, Bernd Proissl has a good developer's suggestion,
Caution: Unless you use the sendfax '-w' option in a loop to queue your outbound
faxes, all of the faxes enter the fax queue at the same time, almost.
A fax job can be in the queue idle for long periods of time and reach its "KillTime", waiting for other fax
jobs to complete, without ever being attempted once. Therefore, if you queue enough faxes such
that the last fax will not complete before the configured KillTime (default is three hours),
some faxes will be removed from the send queue before ever being attempted, specifically all
of the faxes that have not completed by the configured KillTime.
To compensate for this, it is advisable that you use the sendfax '-k' option, or that
you modify KillTime in your ~/.hylarc, sendfax.conf, or hyla.conf files so that all of your
faxes have time to complete. See sendfax(1) for details.
Re-run faxaddmodem for each faxmodem in the system. By default, HylaFAX will route outgoing faxes
through any available modem. Incoming faxes are not differentiated by HylaFAX by default. However,
faxrcvd does receive the device name of the modem which received the incoming fax, and so some
form of routing could conceivably be developed by means of a custom faxrcvd script. See
for an example.
Modems may be "grouped" so that any particular job by be performed by any modem in a particular
ModemGroup. For specific information, see ModemGroup in hylafax-config(5F).
If you want a group of send-only modems and a group of receive-only modems, instead of using ModemGroup, consider setting
RingsBeforeAnswer: 0 for the send-only modems and
ModemReadyState: D for the receive-only modems.
There are a couple of common ways to establish a send-only environment.
Thanks to Andreas Hoedle and Jay Ashworth for their input on this.
- The best way is to use faxgetty, but to set "RingsBeforeAnswer: 0" in the modem config file.
This method will provide the user with more accurate faxstat information, and is the preferred
method for establishing send-only environments when possible.
- Another way is to not use faxgetty at all, but rather use faxmodem instead. This
should only really be used in cases where faxgetty is inappropriate (i.e. faxgetty conflicts with
something or causes device conflicts).
faxmodem sends a message to the HylaFAX queuer process faxq telling it that the specified
modem is ready for use and informing it about its fax-related capabilities. Once a modem has
been configured its status can be reconfigured using the faxstate program. faxmodem can also
be used to alter the capabilities and usage priority of a previously configured modem.
See faxmodem(8C) and faxstate(8C) for more information.
faxqclean is a program that processes completed HylaFAX jobs and expunges unreferenced
document files. This program is intended to be invoked by cron(8C) on behalf of the super user
(i.e. root) one or more times a day.
See faxqclean(8C) for more information.
To automatically print incoming faxes to lpr, insert a line of code similar to
/usr/bin/tiff2ps -a $FILE | lpr
into your faxrcvd script, assuming that your printer is PostScript compatible.
Dieter Kluenter firstname.lastname@example.org has added at line 112
of faxrcvd these lines for his printing:
if [ -n "$SENDTO" ]; then
echo "The facsimile was automatically dispatched to: $SENDTO."
$TIFFBIN/fax2ps $1 | lpr -Plp
Michael email@example.com states:
Our printing environment is specific, a shared HP LJ1100 (A4 only).
To be able to print out various types of paper sizes, we use the
following code for printing (0.95 * A4 size):
/usr/bin/tiff2ps -a -h 11.1082 -w 7.8543 $FILE | /usr/bin/lpr
If we use fax2ps, it would be complicated to handle the printouts of
different paper sizes.
Empty the contents of these directories:
/var/spool/hylafax is your $SPOOL directory.
Create a shell script
/var/spool/hylafax/etc/FaxDispatch) which sets
SENDTO to a valid
e-mail address. By using FaxDispatch, the HylaFAX administrator can route received fax notifications
and, if desired, the fax image directly to the intended recipient.
The following shell variables are available for use in FaxDispatch:
CIDNUMBER the CIDNumber value determined from faxgetty
CIDNAME the CIDName value determined from faxgetty
DEVICE the device name (i.e. ttyS1) of the receiving modem
FILE the filename (including path) of the tif fax image
FILENAME the filename (excluding path) of the tif fax image
SENDER the TSID of the fax sender
FILETYPE the type of file attachment to use (ps, tif, pdf)
MIMENCODE the program for UU-encoding binary mail attachments
SENDTO the destination e-mail address of the notification
These are all generally considered read-only values except for MIMENCODE (which defaults to
mimencode), FILETYPE (defaults to
ps), and SENDTO (no default). A good
example is given in 'man faxrcvd', however, a simple usage would be:
Some users wish to have copies of the faxed documents returned to them via e-mail. In HylaFAX versions 4.2.0 and later this is
natively configurable. To do this, create the file
etc/FaxNotify in the HylaFAX spool directory containing these
This will make any sent-job notifications (which occur based on the notification setting specified by the submission client)
contain attachment with a copies of the faxed documents. See '
man notify' for
more specific information.
[ HOME ] [ BACK ] [ NEXT ]
Last updated $Date: 2004/07/14 18:59:07 $.