CLASS 1 MODEM SUPPORT (CAVEAT EMPTOR)
HylaFAX includes a driver for modems that support the
EIA-578 "Class 1" programming interface.
These modems export a very low level interface
that requires that the CCITT/ITU Recommendation T.30 facsimile communication
protocol be implemented almost entirely in the host. Robust support for
this protocol places two requirements on the host system:
- low latency for serial line input
- near realtime response
In a UNIX environment both these requirements can be problematic. In
particular, some 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 operating system; 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 IRIX and some other
systems this call is automatically done.
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 scheduled fast enough to satisfy the protocol timing requirements.
This can usually be guarded against by assigning the facsimile process
a high scheduling priority. Unfortunately some UNIX systems do not
support 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 processes attempt to raise their scheduling priority while
actively sending or receiving facsimile. At other times, such as when
doing queue management operations, processes run 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 SVR4-derived, HP-UX, and POSIX compliant systems the
``high priority'' is a real-time scheduling priority.
On other systems the server currently always runs at the
same (normal) scheduling priority. For more details consult the
setProcessPriority routine in
faxd/ModemServer.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.
Note that for the vast majority of HylaFAX users using systems with new
versions of UNIX operating systems and a processer-RAM configuration that keeps system processes
from using most of the CPU and memory
on the system at all times, this is not likely to ever be a problem for you,
and using Class 1 will likely be a better choice than using
Class 2
or
Class 2.0
HylaFAX table
of contents.
Last updated $Date: 2002/05/02 22:02:56 $.
Last updated $Date: 2002/05/02 22:02:56 $.
[Download]
[Mailing Lists]
[Developers]
[Support]
|