Return to BSD News archive
Xref: sserve comp.os.386bsd.announce:31 comp.os.386bsd.misc:179 Path: sserve!newshost.anu.edu.au!munnari.oz.au!news.Hawaii.Edu!ames!agate!bounce-me-im-a-basketball From: sam@flake.asd.sgi.com (Sam Leffler) Newsgroups: comp.os.386bsd.announce,comp.os.386bsd.misc Subject: FlexFAX Release Version 2.1.0 Available Followup-To: comp.os.386bsd.misc Date: 19 Apr 1993 17:34:37 -0700 Organization: Silicon Graphics, Inc. Lines: 406 Sender: cgd@agate.berkeley.edu Approved: 386bsd-announce-request@agate.berkeley.edu Distribution: world Message-ID: <1qv9iv$kii-try2@fido.asd.sgi.com> NNTP-Posting-Host: agate.berkeley.edu Keywords: fax, free FlexFAX Release Version 2.1.0 Available --------------------------------------- This note has the following sections: Overview Supported Systems About the Distribution Class 1 Modem Support Commonly Asked Questions How to Obtain the Distribution by FTP How to Obtain the Distribution by Mail How to Obtain the Distribution within Silicon Graphics What to do Once You've Retrieved Stuff (source distribution) What to do Once You've Retrieved Stuff (binary distribution) FlexFAX Mailing List Use and Copyright Overview -------- FlexFAX is a facsimile system for UNIX systems. It supports: o sending facsimile o receiving facsimile o polled retrieval of facsimile 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). 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 sendfax. 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 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 may be shared with outgoing data communication applications that honor the "uucp locking protocol". These applications typically include: cu, tip, kermit, uucp, slip, and ppp. The system can also be configured so that incoming data calls cause the system to invoke the standard system getty program. The software is structured around a client-server architecture. One facsimile server process exists for each fax modem on a network. Clients may send facsimile from any machine that can communicate with the machine(s) on which the server(s) 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.) Multiple modems may be located on a single machine. An access control mechanism is included to control which users on which machines may submit documents for transmission. The system supports a wide variety of fax modems. Any Class 1 or Class 2 modem should work with the system. The following modems have been used successfully with the software: Class 1 modems: Digicom Scout+ (firmware revision 2A19/2931 or newer) Nuvo Voyager 96424PFX (firmware revision AF-C2500-E0) SupraFAX v.32bis (firmware revision V1.200-H or newer) NOTE: SEE THE SECTION "Class 1 Modem Support" FOR IMPORTANT INFO ON THE CLASS 1 MODEM SUPPORT Class 2 modems: Boca M1440E (firmware revision V1.270 or newer) Dallas Fax <something> (no longer sold, not recommended) Everex 24/96D (no longer sold) Hayes Optima 24+Fax96 (firmware revision TR00-J260-001 XXX or newer) Multi-Tech 1432BAI (firmware revision 0307 I or newer) SupraFAX v.32bis (firmware revision V1.200-C or newer) Telebit WorldBlazer (firmware revision LA7.01) Twincom 144/DF (firmware revision V1.200 or newer) ZyXel U1496E (firmware revision 5.01 or newer) Other modems: Abaton InterFax 24/96 (no longer sold) Note however that some modems perform better than others. The file MODEMS included in the distribution provides information about each modem that has been tried. Supported Systems ----------------- The software has been ported to the following systems: sgi Silicon Graphics 4D machines w/ AT&T C++ compiler or gcc 2.3.3 sun Sun3/Sun4 w/ SunOS 4.1.X and GNU gcc 2.3.3 bsdi BSD/386 1.0 w/ GNU gcc 2.3.3 386bsd 386bsd 0.1 on an Intel 486 w/ GNU gcc 2.3.3+patches svr4 System V Release 4 on an Intel x86 w/ GNU gcc 2.3.3 (incomplete) solaris2 Solaris 2.x on a Sun4 with GNU gcc 2.3.3 (incomplete) sco SCO ODT 2.0 (incomplete) Systems that are marked (incomplete) compile properly and can be used to send and receive facsimile, but may have known problems or may be lacking some utilities such as the faxaddmodem installation script. Porting the software is usually straightforward provided there is a working C++ compiler (e.g. gcc), PostScript imaging facility (e.g. ghostscript), and support for a limited subset of the POSIX system call interface. System requirements are described more fully in the source code distribution. About the Distribution ---------------------- There are two distributions: a binary version that is directly installable on a Silicon Graphics IRIX 4.0.x system and a source distribution. The executables in the binary version of this distribution are only for Silicon Graphics 4D processor-based systems. The distribution is sure to work on any IRIX 4.0.x system, though it may also work on pre-4.0 os versions. The source distribution includes all the source code in the system except a small bit of code used to build a Display PostScript-based imager (this code is useless unless you have a developers agreement with Adobe for Display PostScript). The system is written almost entirely in C++. I use the AT&T 2.1 compiler, as supported by Silicon Graphics. GNU gcc 2.3.3 has been successfully used to build this software on all systems. A PostScript interpreter program is needed for imaging outgoing facsimile on the server machine. The binary distribution for Silicon Graphics machines includes an imaging program that requires the Display PostScript execution environment (dps_eoe) that is available with most versions of IRIX. The source distribution includes a device driver for use with Ghostscript version 2.5.2 or later. Class 1 Modem Support (Caveat Emptor) ------------------------------------- Most contemporary fax modems provide one of two command interfaces for communication between the host and modem: Class 1 or Class 2. (Actually, many modems that provide a Class 2 interface also provide a Class 1 interface.) These interfaces are specified by the Electronic Industries Association/Telecommunications Industry Association (EIA/TIA). The Class 1 standard provides minimal hardware support for fax communication while Class 2 adds many commands and places more functionality in the modem. FlexFAX includes drivers for both Class 1 and Class 2 modems. Robust support for Class 1 modems places two requirements on the host system: o low latency for serial line input o near realtime response In a UNIX environment both these requirements can be problematic. In particular, many UNIX systems increase the latency for data received on a serial port in order to reduce system overhead. That is, input data are typically held in a low level device driver for some period of time before they are passed to the user so that bursts of input data can be delivered to the user together. This behaviour is known to occur under the Silicon Graphics IRIX and SunOS 4.1.x operating systems; it may also occur under other systems. It is important for the proper operation of the Class 1 driver that input data be delivered to the facsimile server as quickly as possible. This may require making a non-standard call of some sort to the operating system. For SGI systems this call is automatically done. For SunOS systems it appears that the only way to minimize the input latency is to create a stream i/o module that accesses an internal interface (see the comments in the routine setInputBuffering in faxd/FaxServer.c++). The response time requirements are important for insuring that T.30 protocol messages are received in a timely fashion. On a loaded system the protocol process may be preempted by other activities and not be run fast enough to satisfy the protocol timing requirements. This can usually be guarded against by assigning the facsimile process a high scheduling priority. Unfortunately most UNIX systems do not provide support for such facilities and so even if it is possible to receive serial line input with the minimum of delay, protocol timing requirements may not be met because of delays in scheduling the execution of the fax server process. For this reason the facsimile server process attempts to raise its scheduling priority while it is actively sending or receiving facsimile. At other times, such as when it is doing queue management operations, it runs at a normal priority. On Silicon Graphics systems the ``high priority'' is a nondegrading scheduling priority that is above the priorities of the normal system processes. On other systems the server currently always runs at the same (normal) scheduling priority. For more details consult the setProcessPriority routine in faxd/FaxServer.c++. In summary, if you want to use a Class 1 modem with this software and your system does not provide support for low latency serial line input you are likely to have troubles. If your system does not provide a mechanism for raising process scheduling priority (note that this is not the same as the UNIX ``nice'' parameter), then you may see problems when the server is under load. Exactly how much load will cause trouble is dependent on the system configuration and processing power. Commonly Asked Questions ------------------------ Q: How is FlexFAX related to netfax (aka GNU fax)? A: Netfax is a simple fax package developed by folks at MIT and freely available under the terms of the GNU software agreement. FlexFAX is a totally independent project that was intended to provide a robust facsimile service that supports a wide variety of modems and systems. FlexFAX is also publicly available, but with a different copyright agreement (see the copyright at the bottom of this note). Q: My modem is not listed as supported, will it work? A: If the modem conforms to the draft Class 2 standard that most vendors used to implement their ``Ersatz Class 2'' modems, then it should work with the software; probably with some minor modifications to one of the modem configuration files distributed with the system. If the modem conforms to the EIA-578 "Class 1" programming interface, then it will only work if the intended host provides certain system facilities. At present the only machine that is *known* to provide the necessary facilities is the Silicon Graphics Indigo. Otherwise it is possible to support a modem by writing a new ``modem driver'' that is compiled into the facsimile server. Q: What's the best modem to buy/use with this software? A: First, if your system is incapable of supporting a Class 1 modem, then you need to use a Class 2 modem. The best Class 2 modem that I have had experience with is the Everex 24/96D, but it is no longer sold and it does not support the v.17 standard for transmitting and receiving at 14.4KB. I have had good success with all the Class 1 modems listed above; though the Supra modem exhibits the usual problems known to exist with modems built around the Rockwell RC144DP (data pump). How to Obtain the Distribution by FTP ------------------------------------- The source code is available for public ftp on sgi.com sgi/fax/v2.1.src.tar.Z (192.48.153.1) You can also obtain inst'able images for Silicon Graphics machines from sgi.com sgi/fax/v2.1.inst.tar (192.48.153.1) For example, % ftp -n sgi.com .... ftp> user anonymous Password: <use mail address as password> ftp> cd sgi/fax ftp> binary ftp> get v2.1.src.tar.Z .... ftp> quit In general, the latest version of the 2.1 release of the software is always available as "v2.1.src.tar.Z" or "v2.1.inst.tar" in the ftp directory. This file is a link to the appropriate released version (so don't waste your time retrieving the linked file as well!) Any files of the form v2.1.*.patch are shell scripts that can be used to patch older versions of the source code. For example, the file v2.1.0.patch would contain patches to update v2.1.0.tar.Z. Patch files only work to go between consecutive versions, so if you are multiple versions behind the latest release, you will need to apply each patch file between your current version and the latest. How to Obtain the Distribution by Mail -------------------------------------- Do not send me requests for the software; they will be ignored (without response). If you cannot use FTP at all, there is a service called "ftpmail" available from gatekeeper.dec.com: you can send e-mail to this machine and it will use FTP to retrieve files for you and send you the files back again via e-mail. To find out more about the ftpmail service, send a message to "ftpmail@gatekeeper.dec.com" whose body consists of the single line "help". How to Obtain the Distribution within Silicon Graphics ------------------------------------------------------ Internal to Silicon Graphics there are inst'able images on the host flake.asd in the directory /usr/dist. Thus you can do something like: % inst -f flake.asd.sgi.com:/usr/dist/flexfax to install the latest version of the software on your machine. What to do Once You've Retrieved Stuff (source distribution) ------------------------------------------------------------ The source distributions come in a compressed tar file. To extract the software do something like: % mkdir fax; cd fax % zcat <somewhere>/v2.1.src.tar.Z | tar xf - (uncompress and extract individual files in current directory). Then follow the instructions in the file README in the top of the source tree. What to do Once You've Retrieved Stuff (binary distribution) ------------------------------------------------------------ The binary distribution comes as a tar file that contains images for use with the standard Silicon Graphics installation program inst(1). To unpack the inst images do something like: % mkdir dist; cd dist % tar xf <somewhere>/v2.1.inst.tar Next, run inst to install the appropriate pieces that you want. The key documentation from the source distribution is included in the subsystem flexfax.man.readme. When this subsystem is installed the README file and other useful pieces of information are placed in the directory /usr/local/doc/flexfax. Otherwise the software is broken into two areas: flexfax.client.* for software needed on client machines, and flexfax.server.* for software needed on a machine where a fax modem is located. To unpack and install the client portion: % mkdir dist; cd dist % tar xf ../v2.1.inst.tar % cd ..; inst -f dist/flexfax ... inst> go (Note, the dist subdirectory is because some versions of inst fail if the files are in the current directory.) Note that server binaries are not installed by default, so to get them also you need to do: % inst -f flexfax ... inst> install flexfax.server.* inst> go Remember that to install a server on a Silicon Graphics machine, you need to have already installed the Display PostScript execution environment product (dps_eoe). Otherwise, the fax server will not be able to convert PostScript to facsimile for transmission. FlexFAX Mailing List -------------------- A mailing list for users of this software is located on sgi.com. If you want to join this mailing list or have a list-related request such as getting your name removed from it, send a request to flexfax-request@sgi.com Submissions (including bug reports) should be directed to: flexfax@sgi.com When corresponding about this software please always specify what version you have, what system you're running on, and, if the problem is specific to your modem, identify the modem and firmware revision. Use and Copyright ----------------- Silicon Graphics has seen fit to allow me to give this work away. It is free. There is no support or guarantee of any sort as to its operations, correctness, or whatever. If you do anything useful with all or parts of it you need to honor the copyright notices. I would also be interested in knowing about it and, hopefully, be acknowledged. Sam Leffler (sam@sgi.com) Copyright (c) 1988, 1989, 1990, 1991, 1992, 1993 Sam Leffler Copyright (c) 1991, 1992, 1993 Silicon Graphics, Inc. Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted without fee, provided that (i) the above copyright notices and this permission notice appear in all copies of the software and related documentation, and (ii) the names of Sam Leffler and Silicon Graphics may not be used in any advertising or publicity relating to the software without the specific, prior written permission of Sam Leffler and Silicon Graphics. THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.