HYLAFAX CHANGE INFORMATION
Note that this is a major new distribution and lots
of things have changed. Consult the general overview
for a high-level description of the new functionality provided in the
v4.0 software.
This document describes the changes made to the software between the
previous and current versions (see above).
If you don't find something listed here, then it was not done in this
timeframe, or it was not considered important enough to be mentioned.
The following information is located here:
GENERAL CHANGES IN THE SOFTWARE:
- the TIFF library and related tools are no longer included in the
distribution; you must obtain the latest TIFF distribution from
ftp://ftp.sgi.com/graphics/tiff,
build and install it (both library and tools) before
building this software
- the client-server protocol used to submit outbound facsimile jobs,
query server status, control job operation, etc. has been completely
rewritten; client applications are mostly compatible on the command-line
with previous versions, but there are some differences (noted below)
- the default port for the client-server protocol has moved from
4557 to 4558; the new port service name is ``hylafax'' (as opposed
to the old ``fax'' service name)
- the syntax for specifying a destination service has changed slightly;
the old <host>:<modem> syntax is no longer supported,
only the syntax
[<modem>@]<host>[:<port>] is supported
- client access to servers may now be controlled with passwords;
the GECOS user identity information from the password file is no
longer used for client identification or authentication
- many administrative operations can now be accomplished directly
through the new client-server protocol
- users no longer get documents returned by electronic mail when an
outbound job fails; the documents are instead left on the server
and may be reused directly in resubmissions
- the queueing model used by the software has changed; jobs that complete
(with success or failure) no longer are automatically purged from the
system; instead such jobs are moved to a ``done queue'' from which
they, and their associated state, can be used to prepare new jobs
- a new faxqclean program is provided for removing unused and
orphaned documents and jobs from the spooling area; it is also
intended to do job archiving (not currently implemented)
- the default job queueing parameters have changed; in particular jobs
are now retried more quickly (check config.h.in and/or
config(4F) for details)
- IXO/TAP message paging support is temporarily broken except when
supporting the old client-server protocol; a future distribution
is intended to provide paging support through the Simple Network
Paging Protocol (SNPP) described in RFC 1861
- outbound jobs are now considered to be in a particular ``state''
that reflects the treatment they are receiving from the scheduler;
this state may be displayed with the faxstat program
- the server model for handling inbound and outbound documents has
changed; fax servers now act as a repository for documents and jobs
may be created that reference long-lived documents that reside in
the ``document queue'' or the ``receive queue''
- client applications now support system-wide as well as
per-user configuration files
- the client software has been redesigned to support multiple transport
protocols; the current distribution includes working support only
for TCP/IP using BSD-style socket calls
- the server software supports transcoding of inbound and outbound TIFF
- the server software supports automatic truncation of trailing whitespace
in pages of an outbound document
- the server software supports ``realtime notification'' of events
that take place within programs running on a server machine
- the ModemMaxPacketSize and ModemInterPacketDelay
configuration
parameters, used to throttle the host software for slow modems, has been
replaced by a new mechanism whereby a delay may be inserted prior to
each AT command sent to the modem
- the number of times a server program tries to initialize a modem is
now controllable
- a new modem command escape code has been added to force server software
to wait for a specific modem response (this was added specifically for
Motorola Lifestyle modems that require the host wait for CONNECT
after issuing ATO
when an inbound data call is recognized with adaptive answer)
- the T.4 decoder has been rewritten to use a superior algorithm (both
faster and more space efficient)
- communication between faxq and other processes on the server
machine is now ``reliable'' (i.e.
each message to faxq should elicit a response);
this fixes problems whereby clients would be told an operation had completed
successfully when in fact it was queued waiting for faxq
to process it
- support has been added for modem classes;
a modem class is a pseudo-device
that a user can specify when submitting a job--the job will be processed
by any modem in the class
- support has been added for sending and receiving SUB, SEP, and PWD
frames through the Class 1 driver (the Class 2 driver has support
based on the proposed ITU T.Class 2 standard, but no modems currently
support it); the following configuration parameters were added for
this functionality: Class2APQueryCmd, Class2APCmd, Class2SACmd,
Class2PACmd, Class2PWCmd
NEW PROGRAMS:
- hfaxd is a new program that implements the server-side of
the new client-server protocol; it replaces the old faxd.recv
program which is no longer included (and should not be used)
- faxstate is a new program that is used to control whether or
not faxq will assign a modem for use in processing an outbound job
- faxconfig is a new program to be used to alter
configuration parameters used by faxq and/or faxgetty
- cqtest is a new program for testing the copy quality checking support
- choptest is a new program for testing the automatic
whitespace truncation support
- faxwatch is a new program for testing the realtime event
notification support
CHANGES IN THE SOFTWARE CONFIGURATION:
- the configure script has been significantly reworked to
record more information about its work in the config.log file
- the configure script provides more extensive information about
tests that fail
- the TIFF library is no longer included in the distribution;
you define the location for the include files and library
using the LIBTIFF and TIFFINC
configuration macros (see the config.site file)
- a new macro CONFIG_TIOCMBISBYREF has been added to control whether
or not the software assumes the target system passed arguments
by reference or by value in a TIOCMBIS ioctl system call
- a new macro CONFIG_NOREOPEN has been added to control whether
or not the server software re-opens devices during the normal modem
setup/reset procedure (disabling this can speedup modem reset and/or
help with modems connected to terminal servers)
- a bug was fixed in the logic used to identify if -liberty
was needed
- -lgen is now recognized as a potential container for the
openlog and pututxline functions
- emulation code is now included for the getopt and
strtoul functions
CHANGES IN THE MODEM CONFIG FILES:
- new config file for the ZyXEL 2864
- the USR Class 2.0 configuration file has been changed to override the
copy quality query command so that the host does copy quality
checking of received facsimile; this works around the fact that
some firmware revisions incorrectly report support for copy quality
checking that does not exist
- the USR Class 1 configuration files has been updated to include the
new product ID code returned by modems running firmware that supports
data signalling rates >28.8 bps
- support for adaptive-answer was added for Motorola 28.8 modems
- all prototype configuration files now use an (obviously) invalid
FAXNumber and LocalIdentifier
CHANGES TO FAXQ:
- setup of a send-only server is done differently; rather than specify
modems on the command line a new faxmodem program is used to
dynamically inform faxq that a modem is available
(this mimics the way
that faxgetty works and permits proper setup of modem capabilities)
- arbitrary arguments to programs invoked by faxq
can now be specified in
the DestControls file; this is useful, for example, for controlling
fax session parameters based on the destination phone number (e.g.
restricting signalling rate to 9600 bps for overseas phone calls)
- users can control, on a per-job basis, the time to use when
rescheduling retries of outbound jobs that fail due to a communication
problem
- a bug was fixed whereby notification messages included garbage
information (the following line in the job queue file was
incorrectly appended
to the last line of status information)
- faxq no longer recursively locks a queue file when a job is
submitted whose kill time has already expired; this avoids a deadlock
situation on systems that improperly emulate flock
- faxq now processes jobs in an order that guarantees the highest
priority job will always be scheduled first
- the configuration file is automatically reread, if it has changed,
each time the job scheduler is entered to process a ready-to-run job
- the -m option has been removed; the new faxmodem
program should
be used instead to specify modems that are to be used in a send-only
configuration
- hooks have been added for supporting the submission of
PCL documents (a PCL RIP is required for operational support and such a
program is not included)
- TIFF documents that need reformatting are now handled on the server
through a tiff2fax command script; the default script uses a new
program tiffcheck and tools from the TIFF software distribution to
handle many flavors of TIFF (although this area needs more work)
- support was added for the automatic truncation of trailing
whitespace from document pages; this can be done on each page,
on the last page of each document, or not at all and users can control
the work that is done on a per-job basis
- programs (such as faxsend or ps2fax) specified
through configuration
parameters can now be passed arguments by specifying them in the
configuration parameter strings
- a bug was fixed where the reason for certain failures in document
preparation were not correctly recognized (the exit status from
ps2fax was being incorrectly interpreted)
- malformed jobs are now processed more carefully with the result
that more meaningful notification messages are returned to users
- all linear searches in the scheduler have been eliminated; this can
result in a noticeable performance improvement on systems that process
high volumes of outbound jobs
- the algorithms used to manage shared document files has changed
to support the functionality defined by the new client-server protocol
- new trace flags were added to trace messages sent and received
via FIFO special files, modem state transitions,
the parsing and application of dialstring rules, and document reference
handling
CHANGES TO FAXSEND:
- the Class 1 driver now properly handles modems and remote devices
that support only v.27ter signalling
- the Class 1 driver now sends only the minimum required pieces of
the DIS and DCS frames (i.e. no option bytes will be sent unless
meaningful information is present)
- the Class 1 driver now supports the transmission and reception
of PWD (Password), SEP (Selective Polling), and SUB (Sub Address) frames
- the Class 2 driver has support for the proposed ITU T.Class2
extensions to support PWD, SEP, and SUB frames
- support was added to control the minimum speed to use in sending
page data
- a bug was fixed whereby page data was corrupted when high resolution
2D-encoded data was overlaid with taglines
- document polling requests are now rejected before dialing the telephone
if a Class 2/2.0 modem does not support the necessary functionality
- 2D-encoded documents are now rejected before dialing the telephone
if a modem is incapable of transmitting 2D-encoded data
- users can now control, on a per-job basis, the minimum required speed
for transmitting page data, whether or not to image taglines (and the
format string to use), the desired signalling rate, data format,
minimum scanline time, and the use of error correction mode;
session-related parameters are advisory and dependent on the capabilities
of the sending modem and receiving device
- per-page accounting information is now kept, including the
negotiated session parameters
- modems that cannot be initialized after repeated attempts are
considered wedged and a command script is run that can, for example,
disable the use of the modem
- the handling of DTR under HP-UX has been changed to use the HP-specific
ioctl calls for manipulating modem signals
- realtime process scheduling support for HP-UX has been added
- all modem-related system calls that fail are now logged (previously
a few could fail without an error being logged)
CHANGES TO FAXGETTY:
- received facsimile are now written to files with names are
of the form faxXXXXXX.tif, where XXXXXX
is a cyclically increasing number
- a bug was fixed where received page data could be corrupted when
copy quality checking was enabled with a Class 2/2.0 modem
- copy quality checking has been rewritten to fix several bugs and
to add support for transcoding of received facsimile
- a new configuration parameter RecvDataFormat can be used
to force received facsimile to be written in a format different
from which it is received (e.g. write 1-D MR received data reencoded
with 2-D MMR so that less disk space is used)
- more information about the received facsimile is written to the
TIFF file using several new tags (registered with Adobe); this
information includes the session parameters, time spent
receiving each page, and any SUB frame received for routing
the inbound document
- inbound calls where no pages are successfully received now
generate notification via the faxrcvd command script
- per-page accounting information is now recorded, including the
negotiated session parameters; this information is also recorded
in the TIFF file using the new FaxRecvParams and
FaxRecvTime tags
- support was added for controlling the modem state reported to
faxq each time a modem is properly initialized; this can be used
to mark modems unavailable for outbound use
- a new -c option was added for setting configuration parameters
from the command line
- the -d option was removed
- modems that cannot be initialized after repeated attempts are
considered wedged and a command script is run that can, for example,
disable the use of the port
- new configuration parameters, LockDataCalls and
LockVoiceCalls,
can be used to control whether or not UUCP lock files are kept
for the duration of an inbound data and voice call, respectively
(this can be useful for programs that do not function properly
if they encounter a lock file, even if the file is setup for
their process)
- a new configuration parameter, ModemPriority, was added to control
the order in which modems are allocated by faxq to outboud jobs:
the higher a modem's priority, the more likely it is to be assigned
for use
CHANGES TO PAGESEND:
- modems that cannot be initialized after repeated attempts are
considered wedged and a command script is run that can, for example,
disable the use of the port
- a bug was fixed that caused duplicate copies of a message to be
transmitted under certain circumstances
- a bug was fixed where the pagerMaxMsgLength and
pagerPassword entries in the info database were being
overwritten/removed
CHANGES TO SENDFAX:
- sendfax has been totally rewritten to use the new
client-server protocol
- support has been added for tracing dialrules parsing
- new -1 and -2 options for requesting the use
of 1D- and 2D-encoded data
- a new -b option for specifying a minmum signalling rate
for transmitting page data
- a new -B option for specifying a desired signalling rate
- a new -E option for disabling the use of ECM
- a new -F option for specifying a per-job tagline format string
- a new -I option for specifying a fixed retry time interval
- a new -M option for specifying a desired minimum scanline time
- a new -w option for waiting for a job to complete
- support was added for specifying an email address for notification
messages that is different from the name/address specified with
the -f option
- parameters passed to the faxcover program are now quoted with single
quotes instead of double quotes (so that strings with ``$'' in them
are not expanded as shell variables)
- the pathname of the faxcover program can now be specified through
a configuration file
- many default parameters can now be specified on a per-system
and per-user basis through configuration files
CHANGES TO SENDPAGE:
- sendpage is temporarily broken
CHANGES TO FAXSTAT:
- faxstat has been totally rewritten to use the new
client-server protocol
- the command line interface is significantly different with the
new protocol; in particular to display the state of the outbound job
queue the -s option must be specified
- the -u option has been removed;
there is no support (currently) for showing only those jobs owned
by a particular user
- a new -d option can be used to see the state of jobs that
have completed but have not (yet) been archived or purged from the server
- a new -f option can be used to see the contents of the directory
where documents are stored on the server
- the -a option is now used to see the state of jobs that
have been archived (this currently will show nothing since there is
no support for archiving jobs)
- the format of displayed data can be customized on a per-system
and per-user basis through use of the jobfmt and rcvfmt
configuration parameters
- the -w option that enabled a wider display to be printed
is no longer supported; the format controls are intended to be used instead
- the default formats for various displays has changed; the old formats
can be recreated with suitable configuration settings
- new -g and -l options can be used to control whether
dates and times are displayed in GMT or in the local timezone of the
server (the default); this can also be controlled through the configuration
files
CHANGES TO FAXALTER:
- faxalter has been totally rewritten to use the new
client-server protocol
- support for manipulating parameters of job groups is temporarily broken
CHANGES TO FAXRM:
- faxrm has been totally rewritten to use the new
client-server protocol
- support for manipulating parameters of job groups is temporarily broken
- a new -d option can be used to remove document files stored
on a server
CHANGES TO FAXCOVER:
- faxcover automatically writes the BreakIntoLines
macro in the
cover sheet prologue so that user-defined cover sheet templates
do not need to include it
CHANGES IN THE SUPPORT LIBRARY:
- a bug was fixed in the Dispatcher that caused delays in
recognizing when a child process had completed (on some systems)
- the dialstring rules support now provides a mechanism for tracing
the application of rules; this is especially useful together with
the dialtest program for debugging dialstring rules
- the client-server protocol classes have been totally rewritten for
the new client-server protocol; any application that made use of
them will need to be revised
- zlib version 0.95 was added; it is used in the new client-server
protocol for communicating compressed data
CHANGES IN THE HTML MATERIALS:
- the FAQ is no longer included; it is distributed separately
- information on binary distributions for SVR4 systems was added
HylaFAX table
of contents.
Sam Leffler / sam@engr.sgi.com
Last updated $Date: 1996/08/16 21:03:37 $.