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.