Hylafax

"The Linux answer to faxing"

1. Introduction

Is HylaFAX the package you're looking for?

  • Do you need to send faxes from or receive faxes on a computer?
  • Do you need to have multiple users, platforms, and operating systems submit faxes to a common line?
  • Do you need incoming fax delivery to be done by e-mail?
  • Do you need to have remote clients submit faxes to the fax server, possibly by e-mail?
  • Do you need logging or archiving of all faxes? " Do you need a fax system that is robust enough to handle multiple lines and thousands of faxes without ''crashing''?
  • Do you need the same document faxed to many different recipients automatically?
  • Do you need to do other things while a fax is being sent?

If the answer is yes to any or all of these questions, then HylaFAX is the solution. Its open source nature and dedicated following provide for a flexible, customizable, and tested package, while basic and simple faxing needs can be met easily and quickly.

1.1 General HylaFAX

Use Most HylaFAX users have configured HylaFAX on a standalone server to both send and receive faxes for an existing workgroup of computers. Often, incoming faxes will be delivered by e-mail to a receptionist of sorts who routes those faxes to the intended recipients. HylaFAX is often configured to receive outgoing faxes from a number of different computers and users. This saves them time, and there's no more waiting at the fax machine while a fax completes, either. Outbound faxes can be received by the server in a large number of different ways: popularly, by direct communication with the server or also by e-mail. Many HylaFAX administrators take good advantage of the system's logging and reporting mechanisms. HylaFAX can be configured to give descriptive reports of all faxes and/or summaries of fax logs for any period of time. Common coverpage customization allows for every fax to quickly relay standard information regarding the fax service, and unique information regarding the sender and recipient.

1.2 HylaFAX Capabilities

All of the following features are possible with HylaFAX (although not all may be detailed in this document):

  • Fax Broadcasting (sending an identical fax to multiple recipients)
  • Fax-to-Email Gateway (receiving faxes by e-mail attachments)
  • Email-to-Fax Gateway (sending faxes by e-mail attachments)
  • Fax Distribution and Fax Routing (delivering faxes automatically)
  • Automatic printing of any fax
  • Sending Alpha-Numeric Pages
  • Polled Retrieval of Facsimile

HylaFAX™ Overview

HylaFAX™ is a telecommunication system for UNIX systems. It supports:

  • sending facsimile
  • receiving facsimile
  • polled retrieval of facsimile
  • transparent shared data use of the modem
  • sending alpha-numeric pages

Facsimile can be any size (e.g. A4, B4), either 98 or 196 lpi, and transmitted/received as either 1D-encoded or 2D-encoded facsimile data (2D-encoded data is frequently more compact and hence takes a shorter time to communicate). Any modem that supports one of the standard interfaces for facsimile operation can be used; i.e. any Class 1, Class 2, or Class 2.0 modem.

Outgoing documents can be any format; the sendfax program uses a rule-based definition file similar to the System V /etc/magic file to deduce document types and to decide how to convert each document to a form suitable for transmission (either PostScript or TIFF/F). Automatic cover page generation is supported and users can easily tailor cover pages to their environment. A simple text-based phonebook database is supported by the sendfax program. Information is also provided on how to trivially setup an email to fax gateway service.

Incoming facsimile are stored in a receiving area as TIFF/F (read ``TIFF Class F'') files and may be automatically delivered by mail and/or printed. A fax server status program, faxstat, can be used to monitor the send and receive queues, as well as the state of facsimile servers. Fax modems are shared with outgoing data communication applications that honor the UUCP locking protocol. These applications typically include: cu, tip, kermit, uucp, slip, and ppp. The software can also be configured so that incoming data calls cause HylaFAX™ to invoke the standard system getty program.

The software is structured around a client-server architecture. Fax modems may reside on a single machine on a network and clients can submit outbound jobs from any machine that can communicate with the machine on which the modems reside. Client software is designed to be lightweight and easy to port; imaging can be offloaded to the server or done on the client. (Imaging is however, typically done on the server because it simplifies administration.)

An access control mechanism is included to control which users on which machines may access a server. Clients and servers communicate using well-defined publicly specified protocols: for facsimile the HylaFAX™ Client-Server Protocol and for alpha-numeric pages the Simple Network Paging Protocol (SNPP) specified by RFC 1861.

Multiple modems on a single server machine are effectively scheduled for high throughput. Broadcast faxing is well-supported through optimal imaging of transmitted documents and the effective scheduling of modem resources. Support is provided for scheduling jobs during off-peak hours based on the destination phone numbers (e.g. long distance calls may be scheduled for off-peak phone rates). An access control mechanism can be used to restrict the class of phone numbers called so that, for example, calls to emergency services such as 911 can be rejected out of hand.

The server requires a PostScript to facsimile imaging utility for useful operation (otherwise, only pre-imaged facsimile may be transmitted.) A Display PostScript-based imager is provided for IRIX 4.x- and 5.x-based systems. For other systems, a Ghostscript-based version can be built from the GNU sources. HylaFAX™ is freely available under copyright in complete source form. It may be used in commercial applications in part or in whole without charge.

Documentation

HylaFAX™ comes with extensive documentation in two forms: this HTML-based documentation that is designed for on-line use and general guidance, and a complete set of UNIX manual pages that contain reference information in a more terse but precise format. The HTML documentation contains links to the manual pages providing a complete hypertext connection between the two forms of documentation. The HylaFAX™ documentation is intended to support users of binary distributions; it is complete enough that access to the source code is not needed.

Esoterica

The name of this software package is ``HylaFAX'', not ``hylafax'', ``Hylafax'', or anything else. Also, do not call this software by its old name ``FlexFAX'' because that name is a trademark of another fax product and the folks that own that trademark are possessive. Please also note that ``HylaFAX'' is a trademark of Silicon Graphics and it should be treated as such when used in documentation. Regarding the name, it is derived from the word hyla which is defined as ``Any of a genus of (Hyla) of frogs, especially the tree frog.'' Hence the logo found on the home page for this software. Finally, please recognize that this is free software that represents the work of many people. The section of ``Acknowledgements'' lists those people that have made significant contributions. Last updated $Date: 2002/05/02 22:02:59 $.

Selecting a Modem

Really, this is all up to you and your intended use of the faxmodem with HylaFAX. But, in general, it is wise to look for a modem that supports Class 1 (even if you're going to try using Class 2, because if you find a bug in the Class 2 firmware, then what?), supports both 1-D and 2-D image compression, and supports a wide range of communication speeds from 2400 to 33,600 (V.34-Fax or SuperG3) baud. Generally speaking, the more features a modem supports, the better it is in general use. There is rightfully some concern as to which modem models work (or work best) with HylaFAX. Additionally, there are known but rare incompatibilities between some modem models and some facsimile systems. HylaFAX has a fair number of pre-made configuration files for many common modem types. Modem type is determined by ATI0 and ATI3 commands in Class 1, AT+FMFR? and AT+FMDL? commands in Class 2, and AT+FMI? and AT+FMM? commands in Class 2.0 and 2.1. Click here for the current list of modems with default prototype configuration files in HylaFAX. However, if you're willing to work on a configuration file, then almost any faxmodem should generally work. The following links contain modems that have been used with some degree of success and with some version of HylaFAX. Note that modems can vary greatly between model numbers and firmware revisions.

This document will not discuss modem installation except to say that the modem must be installed prior to HylaFAX installation. In most cases if minicom, tip, or cu can ''talk'' to it with ATI commands then the modem is installed properly for HylaFAX use.

  • External Serial Modems
  • Almost without exception, external serial faxmodems will work with HylaFAX. External modems are nice because they generally have some type of display which indicates activity. This can be useful when troubleshooting. External modems use external power sources and cabling, so it is important that they be located where they are not likely to be bumped or jostled. Unless you are using external modems on a multiport serial card (you're using the system board's built-in serial ports), and because HylaFAX's faxgetty continually accesses the modem (unable to share the IRQ) you are generally limited to a combination of only two external serial or internal ISA faxmodems.
  • Internal ISA Hardware (Jumpered or PnP) Modems
  • As with external serial modems, internal ISA hardware faxmodems work with HylaFAX almost without exception. There need be no fear of power or data cables being jostled with internal modems, but there are no lighted displays, either. Because non-PnP hardware ISA modems use the same memory addresses and IRQs as external serial modems, the same limitation to only two applies. However, if your system supports Plug-n-Play, then ISA hardware PnP faxmodems will likely work as well, and these PnP modems may provide a means to go beyond that limitation. Be cautious when purchasing a new ISA modem since many new ISA modems are Windows-software-driven and do not have a hardware serial controller. Consequently it may not be able to be "spoken" to as noted above. US Robotics/3Com ISA Winmodems are a good example of what not to buy.
  • Internal PCI Hardware Modems

  • Yes, a few of these exist, and for the most part, using PCI hardware modems may be the only inexpensive way to break the two-modem limitation had by the modem types mentioned above. PCI hardware modems also work well with HylaFAX. These can be different to set up on your system than more traditional modems. On Linux, you may need to understand the 'setserial' command. Specifically, PCI modems using the 3Com "Kermit" chipset or the Lucent "Venus" chipsets are hardware modems and have been tested with HylaFAX. Examples are the USR/3Com 3CP5610(A), the MultiTech MT5634ZPX-PCI, or the Zoom 2920.
  • Internal PCI or ISA "Linmodems"

  • As have been tested, Linmodems (software-driven modems with Linux-compatible drivers available) will work with HylaFAX. Examples are Lucent Winmodems, the PCTel modems, and the Intel/Ambient modems. The key to their compatibility is the quality and functionality of the Linmodem driver. One significant drawback to note when using Linmodems with HylaFAX is that you are limited to that one Linmodem. The Linmodem drivers modify the behavior of the Linux serial driver, and consequently, normal hardware modems will not function properly in the presence of the Linmodem driver, and other Linmodems will also not function properly in the presence of a foreign Linmodem driver. No Linmodem driver at this time is known to support multiple instances (for use with multiple identical Linmodems).
  • External USB Modems

  • Those that have been tested work fine as long as they can be "spoken" to as mentioned above. Note that there are soft-USB modems out there (see Linmodems above). Using USB modems is another possible way to get more than two modems on a system without the possible expense of a multiport modem.
  • Internal Serial "MultiPort" Modems

  • Using multiport modems such as the Comtrol RocketModem (or RocketPort attached to multiple external serial modems), MultiTech ISI MultiModem, Digi Acceleport RAS, or Equinox MultiModem is probably the best way to get more than six faxmodems into a system at once provided that the device is supported by your operating system. As mentioned already, a good way to determine traditional compatibility is to know if ATI commands can be issued directly from a terminal program such as listed above.
  • ISDN, T1, and Other High-Bandwidth Digital Serial Modems

  • The Eicon Diva Server is known to work well. As for others, some work, some don't, and some work better than others. Again, traditional compatibility requires the hardware to be accessible by a terminal-like program. Please consult the hylafax-users mailinglist (and archives) for user experience with HylaFAX using digital modems.
  • Proprietary Hardware Devices such as BrookTrout Fax Boards

  • Products such as BrookTrout Intelligent Fax Boards require integration with proprietary API from the manufacturer. For information on support of such devices, visit iFax Solutions at http://www.ifax.com.

Most HylaFAX users have configured HylaFAX on a standalone server to both send and receive faxes for an existing workgroup of computers. Often, incoming faxes will be delivered by e-mail to a receptionist of sorts who routes those faxes to the intended recipients. HylaFAX is often configured to receive outgoing faxes from a number of different computers and users. This saves them time, and there's no more waiting at the fax machine while a fax completes, either. Outbound faxes can be received by the server in a large number of different ways: popularly, by direct communication with the server or also by e-mail.
Many HylaFAX administrators take good advantage of the system's logging and reporting mechanisms. HylaFAX can be configured to give descriptive reports of all faxes and/or summaries of fax logs for any period of time. Common coverpage customization allows for every fax to quickly relay standard information regarding the fax service, and unique information regarding the sender and recipient.

Frequently asked Questions

Q. Is HylaFAX able to receive 100s of faxes?

A. No problem. We have a hylafax server running on a pentium pro 200 for about two years now. 30 Multitech modems on an Digiboard multitech board, receiving 6000-7000 pages per day. Incoming faxes average 2-3 pages. Outgoing volume is much less, but some are very large (up to 80 pages). If that's not enough, we another server: Dual pentium II with a Digiboard DataFire RAS card (48 onboard modems and a T1 connector). No stats on this one. It's supposed to replace the first one, which is running so well, we just haven't bothered yet.

Q. Why should I use HylaFAX instead of some other fax package?

A. HylaFAX is designed to be very robust and reliable. The fax server is designed to guard against unexpected failures in the software, in the configuration, in the hardware, and in general use. HylaFAX uses an intelligent scheduling policy that attempts to recognize different types of failures and optimize retry attempts. An important design goal is that users must never worry about transmit jobs being lost or mishandled: jobs are either completed successfully or the submitter is notified what happened to their job and why the job failed. If you are willing to shepherd your facsimile transmissions then other software packages may be more suitable for you.

HylaFAX supports a wide variety of modems and is designed to support any Class 1, Class 2, or Class 2.0 modem without modification to the source code. If you have a modem that provides only a Class 1 interface then HylaFAX is likely to be the only freely available software package that will work with your modem.
HylaFAX supports multiple modems and heavy traffic load. If you expect to send or receive more than 1 or 2 facsimile a day, then HylaFAX is likely to be the best package for you to use. HylaFAX is expressly designed to be highly configurable without modification or access to the source code. The software comes with extensive documentation to assist in understanding how the software functions and how to configure it.
HylaFAX is freely available. There is no GNU copyleft policy. There are no requests for remuneration, constraints on use, or constraints on incorporation into products (compare this with other ``freely available fax packages''). The software copyright only restricts the use of the author's name and/or Silicon Graphics' name in any advertising; consult the copyright text for details. There are binary distribution packages or other formats for several Unixes.