HYLAFAX 3.0 INFORMATION
[
HYLAFAX
is the new name for FlexFAX; check
here for the reason for the name change.]
This note describes the features and changes expected to be part
of of HylaFAX Version 3.0.
The software has been in production use for almost 6 months so it
should be reasonably stable by the time of the first beta distribution.
HylaFAX v3.0beta??? is expected to be available for public ftp
in early February, 1995.
As usual the announcement of its availability will be posted to the
flexfax-announce@sgi.com mailing list (which is also fed to the
flexfax@sgi.com list).
Information on subscribing to these mailing lists is available
here.
NEW FUNCTIONALITY
The following is an abbreviated list of new functionality that
is to be part of the released version of HylaFAX 3.0.
All items not marked as incomplete will be present in the first
beta distribution.
- Redesigned server architecture with a single scheduler
process and optional per-modem ``front door'' processes
- Revamped scheduler with time-of-day restrictions, priority-based
scheduling of jobs, and per-destination controls
- Optimal imaging of broadcast documents
- IXO/TAP protocol support for communicating
with pager service providers
- Distinctive ring support
- Caller-ID support
- Support for Class 2/2.0 modems that implement Error Correction Mode (ECM)
- Job groups
Folks interested in defining a revised client-server protocol
should contact me by electronic mail at
sam@engr.sgi.com.
NEW SERVER ARCHITECTURE
HylaFAX 3.0 is a significant rearchitecture of the old FlexFAX software.
Specifically, the server-side software has been redesigned to support:
- High-volume transmission of facsimile.
- Effective load-balancing and sharing of
modem equipment for fax, data, and voice use.
- Sophisticated queueing management and control.
- Better integration with existing system facilities.
The redesign splits the old faxd server process into three
separate components:
- faxq, a centralized queueing agent,
- faxgetty, an optional ``getty-frontdoor''
process that handles incoming phone calls and monitors modem usage, and
- faxsend, a fax transmit program invoked by the faxq program
to process an outbound job.
Send-only configurations can be implemented by not running the
faxgetty program on ports where fax modems reside (though doing
this can reduce the effectiveness of the load-balancing work done by
the queuer).
Receive-only configurations can be implemented by running only the
faxgetty program on ports where fax modems reside.
High-volume transmission of facsimile is possible because of the
improved central queueing agent and because
outbound documents are imaged only as required by the capabilities
of the receiving facsimile equipment.
In addition the queueing agent supports priority-based scheduling
of outbound jobs, so broadcast jobs can be scheduled ahead
or behind other jobs simply be assigning or adjusting their
transmit priority.
Effective load-balancing of modem equipment is done in the queuer
by assigning modems according to transmit characteristics and the
current status of each modem.
faxgetty
processes notify the central queuer when a modem is in use for
inbound or outbound use and also communicate each modem's capabilities.
This makes it possible for jobs to be scheduled so that
they are not blocked waiting for modems to be available and so that
the best modem for the job is assigned; e.g. if a fax receiver
supports the V.17 high speed facsimile communication protocol, then the
queuer will try to assign a modem that is capable of transmitting V.17
data.
There are also provisions in the queuer for scheduling modems for
non-fax use; however this functionality is not expected to be
fully developed by the time of the 3.0 release.
Future versions will be capable of doing
optimal scheduling of modems for batch-oriented communication
protocols such as UUCP.
The new queueing agent has extensive support for administrative control
and monitoring of jobs.
Jobs are scheduled using a priority assigned when the job
is submitted.
This priority permits
administrators to run important jobs ahead of less-important jobs
such as broadcasts.
Per-destination parameters can be defined to control:
- the time of day that outbound jobs will be processed,
- the maximum number of concurrent jobs processed,
- the maximum number of pages that can be transmitted in a job,
- the maximum number of calls that will be made on behalf of a job, and
- whether or not jobs should be rejected out-of-hand.
The configuration database is designed so that
parameters can easily be applied to groups of destinations
with a single specification and yet have a parameter for a single
destination ``override'' a previous group-oriented definition.
Optimizing phone usage by scheduling long distance
calls to off-peak hours, for example, is simple with the new controls.
Likewise disallowing outbound jobs to sensitive phone
numbers (such as 911) is also easy.
Because the faxgetty process is not required for a send-only
configuration, the HylaFAX software can be more easily configured for
use on systems that support bidirectional modem use through device
pairs (one device for outbound use and one for inbound use).
Similarly, the faxq program can be combined with other
``Smart Getty'' software, albeit with some loss in effectiveness of
load-balancing algorithms implemented in the central queuer process.
NOTEWORTHY CHANGES
The following is an abbreviated list of the changes between
the last public distribution of FlexFAX,
v2.3beta036special,
and the
first beta distribution of HylaFAX 3.0.
- Prototype modem configuration files have been split out into a
separate directory and now reflect the DTE-DCE flow control
scheme they support. This simplifies the task of configuring
a modem according to a specific flow control regimen.
- There is a new configuration file for the faxq process.
- All modem configuration parameters that specify command
strings to send to the modem are now fully specified.
This means, in particular, that the fax software no longer
prepends AT or AT+F strings.
This change was made so that non-AT-prefix strings,
such as the modem escape sequence, can be specified in modem
configuration parameters.
- The Class 2 and 2.0 device drivers now enable the use of
the optional Error Control Mode (ECM) protocol, if possible.
The Class 1 driver does not support ECM.
- Protocol errors recognized during the initial protocol
exchanges when sending and receiving are now more precisely
identified; the old driver lumped all such errors together.
- A bug was fixed in the Class 1 driver that caused it to
prematurely give up when a certain type of recoverable
error was encountered while sending the post-page message.
- The Class 2 driver can now be configured to append RTC to
the end of each page of transmitted facsimile data. This
can be used to work around modem firmware that incorrectly
fails to append RTC to each page as specified in the
``Ersatz Class 2 Standard''.
- The software no longer writes rejectNotice
records in the info database when encountering a
receiver that appears to not be a fax machine. This
change was made because it was too easy to misrecognize
valid receivers as non-fax entities and because users were
too easily confused by the result.
- The modem configuration parameter strings can now include
escape codes that force the host to pause for a period of time
(the delay value is specified in the string).
- Support has been added for distinctive ring: a feature
where the modem presents different RING status messages
for different types of calls.
- Support has been added to accept/reject calls based on
Caller ID: a feature where
the modem presents identification information of the caller
before the phone is placed off-hook.
Caller ID information is also logged.
- There is improved support for controlling the number of
tries to make to transmit a facsimile, as opposed to
the number of times to dial the phone.
- The diagnostic messages returned to a user when jobs are
rejected have been improved.
- Almost all configuration parameters that were previously specified
at compile-time are now configurable at runtime.
In particular, all UUCP-locking-related parameters can now be
specified in the configuration files.
- There is improved support for external voice-oriented programs
that handle inbound calls.
- The software can be configured to use SVR4-style
Dynamic Shared Objects (DSOs); this
can significantly reduce the amount of disk space used by the
various client and server applications.
- The UUCP locking support now understands
the peculiarities of SCO systems.
- It is now possible to dynamically alter jobs' kill time
and assigned modem using the faxalter program.
- The TIFF library included with the fax distribution
has been updated to the latest version.
This is interesting mainly because it incorporates
performance enhancements in the Group 3 decoder and many
portability changes for 64-bit platforms.
DISTRIBUTION PLANS
HylaFAX will be distributed in source and binary form by public
ftp on the Internet.
Full binary distributions for all ``supported platforms''
are intended to be available at the same time as the source distribution.
Source distributions that are built with the GNU gcc compiler
must use gcc version 2.6.1 or later.
As noted above, availability of distributions will be posted to the
flexfax-announce and flexfax mailing lists.
HylaFAX
table of contents.
Sam Leffler / sam@engr.sgi.com.
Last updated: $Date: 1998/10/12 20:47:51 $