CONFIG(5F)
NAME
config - HylaFAX configuration database
DESCRIPTION
HylaFAX uses a configuration file for the central queueing
agent and for each facsimile modem attached to a machine.
These files contain information about the modems and about
how the HylaFAX server processes that service these modem
should operate. Configuration files are located in the
etc subdirectory. The configuration file for the faxq(8C)
program is named config. The per-modem configuration
files used by the faxgetty(8C), faxsend(8C), and page-
send(8C) programs have names of the form config.devid,
where devid is an identifier derived from the name of the
modem's device file; for example ttym2 for /dev/ttym2,
term_10 for /dev/term/10.
Configuration files have a simple format and are entirely
ASCII. A configuration parameter is of the form
tag: value
where a tag identifies a parameter and a value is either a
string, number, or boolean value. Comments are introduced
by the ``#'' character and extend to the end of the line.
String values start at the first non-blank character after
the ``:'' and continue to the first non-whitespace charac-
ter or, if whitespace is to be included, may be enclosed
in quote marks (``"''). String values enclosed in quote
marks may also use the standard C programming conventions
for specifying escape codes; e.g. ``\n'' for a newline
character and ``\xxx'' for an octal value. Numeric values
are specified according to the C programming conventions
(leading ``0x'' for hex, leading ``0'' for octal, other-
wise decimal), except for a few parameters, such as Recv-
FileMode, whose value is interpreted strictly as an octal
number and PageChopThreshold whose value is interpreted
strictly as a floating point number. Boolean values are
case insensitive. For a true value, either ``Yes'' or
``On'' should be used. For a false value, use ``No'' or
``Off''.
The following table itemizes the tags and the expected
type of their value. The first part lists items specific
to the operation of each server, while the second part has
items related to the servicing of the modem. Parameters
marked with a are used only by the HylaFAX scheduler pro-
cess and should appear only in the file named config.
Parameters marked with a are used by both the scheduler
and the per-device applications and so should appear in
all appropriate configuration files (i.e. config and any
per-device files that make sense). Parameters not other-
wise marked should appear only in per-device configuration
files. More detailed information about each item is given
following the table.
Tag Type Default Description
AdaptiveAnswer boolean No enable adaptive answer of inbound calls
AnswerRotary string Any alternatives for answering calls
AnswerBias integer - bias to apply to successful rotary answer
AreaCode string - local area code
CIDName string - Caller ID name pattern string
CIDNumber string - Caller ID number pattern string
ClocalAsRoot boolean No set CLOCAL using root UID
ContCoverCmd string bin/mkcover continuation cover page generation script
ContCoverPage string - continuation cover page template filename
CountryCode string - local country code
DestControls string - per-destination controls file
DeviceMode octal 0600 protection mode to use for modem device
DialStringRules string - dial string rules file
FAXNumber string - facsimile modem phone number
FaxRcvdCmd string bin/faxrcvd notification script for received facsimile
GettyArgs string - arguments passed to getty program
InternationalPrefix string - dialing prefix for international calls
JobReqBusy integer 180 requeue interval for BUSY dial result
JobReqDataConn integer 300 requeue interval for data connection dial result
JobReqNoAnswer integer 300 requeue interval for NO ANSWER dial result
JobReqNoCarrier integer 300 requeue interval for NO CARRIER dial result
JobReqNoFCon integer 300 requeue interval for carrier without +FCON dial result
JobReqOther integer 300 requeue interval for ``other'' problems
JobReqProto integer 60 requeue interval after fax protocol error
LockDataCalls boolean Yes lock modem for the duration of an inbound data call
LockVoiceCalls boolean Yes lock modem for the duration of an inbound voice call
LogFacility string daemon syslog facility name for ServerTracing messages
LogFileMode octal 0600 protection mode to use for session log files
LocalIdentifier string - local station identification string
LongDistancePrefix string - dialing prefix for long distance calls
MaxConcurrentJobs integer 1 max concurrent jobs to process for a destination
MaxConsecutiveBadLines integer 5 max consecutive bad rows for OK page quality
MaxDials integer 12 max phone calls to make to transmit a job
MaxRecvPages integer unlimited max pages to permit in a receive
MaxSendPages integer unlimited max pages to permit in a send
MaxSetupAttempts integer 2 max attempts to initialize a modem
MaxTries integer 3 max attempts to transmit a job
ModemClass string - define a name for a set of modems
ModemPriority integer 255 scheduling priority for outbound jobs
ModemReadyState string R ``ready state'' sent by faxgetty
NoCarrierRetrys integer 1 number of times to retry dialing on ``NO CARRIER''
NotifyCmd string bin/notify user notification command script
PageChop string last control automatic truncation of trailing whitespace
PageChopThreshold float 3.0 whitespace truncation threshold (inches)
PCL2FaxCmd string bin/pcl2fax PCL RIP command script
PercentGoodLines integer 95 percentage of good rows for OK page quality
PollLockWait integer 30 polling interval when in ``lock wait'' state (secs)
PollModemWait integer 30 polling interval when in ``modem wait'' state (secs)
PollRcvdCmd string bin/pollrcvd delivery script for facsimile received by polling
PostScriptTimeout integer 300 timeout on POSTSCRIPT interpreter runs (secs)
PS2FaxCmd string bin/ps2fax POSTSCRIPT RIP command script
QualifyCID string - file of Caller-ID patterns for checking inbound calls
QualifyTSI string - file of TSI patterns for qualifying senders
RecvDataFormat string adaptive format for received facsimile data
RecvFileMode octal 0600 protection mode to use for received facsimile files
RingData string - distinctive ring data call identifier
RingFax string - distinctive ring fax call identifier
RingsBeforeAnswer integer 0 rings to wait before answering phone
RingVoice string - distinctive ring voice call identifier
SendFaxCmd string bin/faxsend fax transmit command script
SendPageCmd string bin/pagesend pager transmit command script
SendUUCPCmd string bin/uucpsend UUCP transmit command script
ServerTracing integer 1 non-session server tracing
SessionTracing integer 1 send and receive session tracing
SpeakerVolume string Quiet volume level for modem speaker
TagLineFont string - tag line font filename
TagLineFormat string see below tag line format string
TIFF2FaxCmd string bin/tiff2fax TIFF converter command script
TimeOfDay string Any default time-of-day restrictions
Use2D boolean Yes restrict/permit use of 2D-encoded fax data
UUCPLockMode octal 0600 protection mode for UUCP lock files
UUCPLockDir string see below UUCP lockfile directory
UUCPLockTimeout integer 30 time before removing stale UUCP lockfile
UUCPLockType string see below UUCP lockfile type
VGettyArgs string - arguments passed to voice getty program
WedgedCmd string bin/wedged command to run when modem is wedged
ModemAnswerCmd string ATA command for answering phone
ModemAnswerDataBeginCmd string - command for start of answered data call
ModemAnswerDataCmd string ATA command for answering data call
ModemAnswerFaxBeginCmd string - command for start of answered fax call
ModemAnswerFaxCmd string ATA command for answering fax call
ModemAnswerResponseTimeout integer 180000 answer command timeout (ms)
ModemAnswerVoiceBeginCmd string - command for start of answered voice call
ModemAnswerVoiceCmd string ATA command for answering voice call
ModemATCmdDelay integer 0 delay before sending modem an AT cmd (ms)
ModemBaudRateDelay integer 0 delay (ms) after setting baud rate
ModemClassQueryCmd string AT+FCLASS=? command for querying modem services
ModemCommaPauseTimeCmd string ATS8=2 command for setting time to pause for ``,'' in dialing string
ModemDialCmd string ATDT%s command for dialing (%s for number to dial)
ModemDialResponseTimeout integer 180000 dialing command timeout (ms)
ModemEchoOffCmd string ATE0 command for disabling command echo
ModemFlowControl string None DTE-DCE flow control scheme
ModemFrameFillOrder string LSB2MSB bit order for HDLC frames
ModemHardFlowCmd string - command for setting hardware flow control between DTE and DCE
ModemMinSpeed string 2400 minimum acceptable transmit speed
ModemMfrQueryCmd string - command for querying modem manufacturer
ModemModelQueryCmd string - command for querying modem model
ModemNoAutoAnswerCmd string ATS0=0 command for disabling auto-answer
ModemNoFlowCmd string - command for disabling hardware flow control between DTE and DCE
ModemOnHookCmd string ATH0 command for placing phone ``on hook''
ModemPageDoneTimeout integer 180000 page send/receive timeout (ms)
ModemPageStartTimeout integer 180000 page send/receive timeout (ms)
ModemRate integer 19200 baud rate to use for DCE-DTE communication
ModemRecvFillOrder string LSB2MSB bit order for received facsimile data
ModemResetCmds string - additional commands when resetting modem
ModemResetDelay integer 2600 delay (ms) after sending modem reset commands
ModemResultCodesCmd string ATQ0 command for enabling result codes
ModemRevQueryCmd string see below command for querying modem firmware revision
ModemSendBeginCmd string - command to send on establishing carrier
ModemSendFillOrder string LSB2MSB bit order for sending facsimile data
ModemSetVolumeCmd string see below commands for setting modem speaker volume level
ModemSetupAACmd string - command for setting up adaptive answer
ModemSetupDCDCmd string - command for setting up DCD handling
ModemSetupDTRCmd string - command for setting up DTR handling
ModemSoftFlowCmd string - command for setting software flow control between DTE and DCE
ModemSoftResetCmd string ATZ command for doing a soft reset
ModemType string - modem type
ModemVerboseResultsCmd string ATV1 command for enabling verbose result codes
ModemWaitForConnect boolean No force server to wait for ``CONNECT'' response on answer
ModemWaitTimeCmd string ATS7=60 command for setting time to wait for carrier when dialing
FaxT1Timer integer 35000 CCITT T.30 T1 timer (ms)
FaxT2Timer integer 7000 CCITT T.30 T2 timer (ms)
FaxT4Timer integer 3100 CCITT T.30 T4 timer (ms)
Class0Cmd string AT+FCLASS=0 Class 0: command to enter class 0
Class1Cmd string AT+FCLASS=1 Class 1: command to enter class 1
Class1HFLOCmd string - Class 1: command to set hardware flow control
Class1FrameOverhead integer 4 Class 1: extra bytes in a received HDLC frame
Class1NFLOCmd string - Class 1: command to set no flow control
Class1RecvAbortOK integer 100 Class 1: max wait (ms) for ``OK'' after recv abort
Class1RecvIdentTimer integer 35000 Class 1: max wait (ms) for initial ident frame
Class1SFLOCmd string - Class 1: command to set software flow control
Class1TCFMaxNonZero integer 10 Class 1: max% of non-zero data in good TCF
Class1TCFMinRun integer 1000 Class 1: minimum zero run in good TCF
Class1TCFRecvTimeout integer 4500 Class 1: max wait (ms) for TCF
Class1TCFResponseDelay integer 75 Class 1: delay between TCF and ack/nak
Class1SendPPMDelay integer 75 Class 1: delay before sending post-page message
Class1SendTCFDelay integer 75 Class 1: delay between sending DCS and TCF
Class1TrainingRecovery integer 1500 Class 1: delay after failed training
Class2Cmd string AT+FCLASS=2 Class 2: command to enter class 2/2.0
Class2AbortCmd string AT+FK Class 2: command to abort active session
Class2BORCmd string AT+FBOR=0 Class 2: command to setup bit order
Class2BUGCmd string AT+FBUG=1 Class 2: command to enable HDLC frame tracing
Class2CIGCmd string AT+FCIG Class 2: command to set polling identifier
Class2CRCmd string AT+FCR=1 Class 2: command to enable receive capability
Class2CQCmd string - Class 2: command to setup copy quality parameters
Class2CQQueryCmd string AT+FCQ=? Class 2: command to query modem copy quality capabilities
Class2DCCCmd string AT+FDCC Class 2: command to set modem capabilities
Class2DCCQueryCmd string AT+FDCC=? Class 2: command to query modem capabilities
Class2DISCmd string AT+FDIS Class 2: command to set session parameters
Class2DDISCmd string - Class 2: command to set session parameters before dialing
Class2HFLOCmd string - Class 2: command to set hardware flow control
Class2LIDCmd string AT+FLID Class 2: command to set local identifier string
Class2MINSPCmd string AT+FMINSP Class 2: command to set minimum transmit speed
Class2NFLOCmd string - Class 2: command to set no flow control
Class2PHCTOCmd string AT+FPHCTO=30 Class 2: command to set Phase C timeout parameter
Class2PTSCmd string AT+FPTS Class 2: command to set received page status
Class2RecvDataTrigger string ``\21'' Class 2: character to send to trigger recv
Class2RELCmd string - Class 2: command to enable byte-aligned EOL codes
Class2SendRTC boolean No Class 2: append RTC to page data on transmit
Class2SFLOCmd string - Class 2: command to set software flow control
Class2SPLCmd string AT+FSPL Class 2: command to set polling request
Class2TBCCmd string AT+FTBC=0 Class 2: command to enable stream mode
Class2XmitWaitForXON boolean Yes Class 2: wait for XON before sending facsimile data
Class2Cmd string AT+FCLASS=2.0 Class 2.0: command to enter class 2/2.0
Class2AbortCmd string AT+FKS Class 2.0: command to abort active session
Class2BORCmd string AT+FBO=0 Class 2.0: command to setup bit order
Class2BUGCmd string AT+FBU=1 Class 2.0: command to enable HDLC frame tracing
Class2CIGCmd string AT+FPI Class 2.0: command to set polling identifier
Class2CRCmd string AT+FCR=1 Class 2.0: command to enable receive capability
Class2CQCmd string - Class 2.0: command to setup copy quality parameters
Class2DCCCmd string AT+FCC Class 2.0: command to set modem capabilities
Class2DCCQueryCmd string AT+FCC=? Class 2.0: command to query modem capabilities
Class2DISCmd string AT+FIS Class 2.0: command to set session parameters
Class2HFLOCmd string AT+FLO=2 Class 2.0: command to set hardware flow control
Class2LIDCmd string AT+FLI Class 2.0: command to set local identifier string
Class2MINSPCmd string AT+FMS Class 2.0: command to set minimum transmit speed
Class2NFLOCmd string AT+FLO=0 Class 2.0: command to set no flow control
Class2NRCmd string AT+FNR=1,1,1,1 Class 2.0: command to set negotiation message reporting
Class2PHCTOCmd string AT+FCT=30 Class 2.0: command to set Phase C timeout parameter
Class2PIECmd string AT+FIE=0 Class 2.0: command to set procedure interrupt handling
Class2PTSCmd string AT+FPS Class 2.0: command to set received page status
Class2RecvDataTrigger string ``\22'' Class 2.0: character to send to trigger recv
Class2RELCmd string - Class 2.0: command to enable byte-aligned EOL codes
Class2SFLOCmd string AT+FLO=1 Class 2.0: command to set software flow control
Class2SPLCmd string AT+FSP Class 2.0: command to set polling request
Class2TBCCmd string AT+FPP=0 Class 2.0: command to enable stream mode
PagerSetupCmds string - commands for setting up modem for a pager call
PagerMaxMsgLength integer 128 max length of a text message
IXOService string ``PG'' IXO: service identification string
IXODeviceID string ``1'' IXO: device identification string
IXOMaxUnknown integer 3 IXO and UCP: max unknown responses before abort
IXOIDProbe integer 2 IXO: time between sending \r during ID sequence (secs)
IXOIDTimeout integer 20 IXO: max time to wait for ID= response (secs)
IXOLoginRetries integer 3 IXO: max attempts to login
IXOLoginTimeout integer 15 IXO: max time to complete login (secs)
IXOGATimeout integer 30 IXO: max time to wait for Go-Ahead response (secs)
IXOXmitRetries integer 3 IXO and UCP: max retries to send text msg block
IXOXmitTimeout integer 15 IXO and UCP: max time to transmit text msg block
IXOAckTimeout integer 30 IXO: max time to wait for msg block ack (secs)
SERVER-ORIENTED CONFIGURATION PARAMETERS
These configuration parameters affect the general opera-
tion of the fax server.
AdaptiveAnswer
Control whether or not an adaptive answering strat-
egy is used whereby an incoming call is answered in
multiple ways according to the list specified in
the AnswerRotary parameter. For example, if adap-
tive answering is enabled and AnswerRotary speci-
fies ``fax data'', then an incoming call will first
be answered as fax using ModemAnswerFaxCmd and
then, if that fails, as data using ModemAnswerDat-
aCmd. If the adaptive answer strategy is not
enabled, then calls are answered using the appro-
priate ModemAnswer*Cmd parameter (normally
ModemAnswerCmd for unattended operation). Note
that the adaptive answer strategy depends on many
factors that limit its usefulness. When calls are
answered first as fax, it typically only works with
a Class 1 modem because it is important that the
sequence of operations related to answering as fax
be completed in a short enough time that a subse-
quent answer for data be done before the caller
times out and hangs up the telephone (for this rea-
son Class1RecvIdentTimer should be set to a value
that is shorter than FaxT1Timer.) Also, note that
it is sometimes necessary to arrange that the phone
be placed on-hook between successive answers; this
can typically be done by inserting the appropriate
command at the start of the second and subsequent
ModemAnswer*Cmds.
AnswerRotary
The sequence of answering techniques the server
should ``rotate through'' when answer incoming
calls. Answering techniques are:
Name Description
fax answer a fax call
data answer a data call
voice answer a voice call
extern use the vgetty application to answer a call
any answer a call of any/unknown type
When a call is not answered succesfully, the server
advances the rotary to the next specified answering
technique. If AdaptiveAnswer is enabled, the
server will try all the answering techniques for
each incoming call. Otherwise, the rotary is
advanced between unsuccessful phone calls. For
example, if AdaptiveAnswer is disabled and Answer-
Rotary is ``fax data'', then the calls will ini-
tially be answered as fax until the first call is
received that does not appear to be from a fax
machine; after that calls will be answered as if
they were from a data modem until the next unsuc-
cessful call; after which they will one again be
answered as fax. Only the first three techniques
listed are used; any additional ones are (silently)
ignored. See also AnswerBias.
AnswerBias
The index into the AnswerRotary list that the
server should rotate the list to after each suc-
cessful incoming phone call. List indices are num-
bered starting at zero. For example, if AnswerRo-
tary is ``fax data'' and AnswerBias is 1, then
after each successful inbound call, the next call
will be answered as data.
AreaCode
The local area code in which the facsimile modem
resides. This value is passed to the dial string
rules that are used, for example, to formulate
canonical phone numbers for dialing (see Dial-
StringRules below.)
CIDName
A string that identifies the caller's identity in
any Caller-ID status messages. The specified
string is compared against any unrecognized status
messages received from the modem before the phone
is placed off-hook. If there is a match, then the
remainder of the message is returned as the
``caller name''. For example, for the ZyXEL U-1496
this parameter would be set to ``CALLER NAME: ''
(note the trailing space). See also CIDNumber and
QualifyCID.
CIDNumber
A string that identifies the caller's phone number
in any Caller-ID status messages. The specified
string is compared against any unrecognized status
messages received from the modem before the phone
is placed off-hook. If there is a match, then the
remainder of the message is returned as the phone
number of the caller. For example, for the ZyXEL
U-1496 this parameter would be set to ``CALLER NUM-
BER: ''. See also CIDName and QualifyCID.
ClocalAsRoot
Control whether operations that set the CLOCAL bit
on the modem device special file are done with the
effective user-ID set to the super-user or the
``fax'' user. By default such operations are done
as the fax user, except under IRIX where they are
done as the super-user (because IRIX disallows
manipulation of CLOCAL by anyone but the super-
user).
ContCoverCmd
The command to invoke to generate a continuation
cover page; see ContCoverPage and mkcover(8C).
ContCoverPage
A template file to use in creating continuation
cover pages. If this parameter is non-null, then
the server will pass the filename to the command
specified by ContCoverCmd to generate cover pages
for outbound jobs that are continued after protocol
errors. These cover pages identify the receiver
and indicate that the document is a continued
transmission. If this parameter is not specified
or is null, then the server will not generate
continuation cover pages. The specified pathname
must be relative to the top of the fax server's
spooling area.
CountryCode
The local country code in which the facsimile modem
resides. As for AreaCode, this value is passed to
the dial string rules for use in formulating canon-
ical phone numbers for dialing (among other
things.)
DestControls
An optional file containing rules for controlling
parameters on a per-destination basis; see destc-
trls(5F) The following parameters may be controlled
with this mechanism: MaxConcurrentJobs, MaxDials,
MaxSendPages, MaxTries, RejectNotice, SessionTrac-
ing, and TimeOfDay. If no DestControls parameter
is specified, or if the controls file does not
specify default values for these parameters, then
any settings in the config file used by faxq(8C)
are used for default settings. Note that faxq
automatically rereads the contents of a DestCon-
trols file if it is modified while the server is
running.
DeviceMode
The file protection mode that the server should set
for the modem device file. Note that this value is
given in octal. The default value of 0600 implies
that only the facsimile user (usually uucp) can
access the modem. See also chmod(2).
DialStringRules
The pathname of the file that holds the rules for
processing user-specified dial strings; c.f. dial-
rules(5F). The specified pathname must be relative
to the top of the fax server's spooling area; e.g.
etc/dialrules.
FAXNumber
The phone number associated with the facsimile
modem. This string is used to generate the Trans-
mitter Subscriber Identification (TSI) and Caller
Subscriber Identification (CSI) information passed
to remote machines--unless the LocalIdentifier
parameter is explicitly set. The FAXNumber is also
used to name the session log file where information
for incoming phone calls is recorded; see log(5F).
If this phone number is not a fully qualified num-
ber the values of AreaCode and CountryCode are used
to generate the transmitted CSI and TSI.
InternationalPrefix
The string to use to place an international phone
call. In the United States, this is ``011''. This
string is passed to the dial string rules.
JobReqBusy
The delay in seconds to wait before retrying a job
whose dialing attempt failed with a ``BUSY'' status
result.
JobReqDataConn
The delay in seconds to wait before retrying a fac-
simile job whose dialing attempt failed because a
data modem answered the phone.
JobReqNoAnswer
The delay in seconds to wait before retrying a job
whose dialing attempt failed with a ``NO ANSWER''
status result.
JobReqNoCarrier
The delay in seconds to wait before retrying a job
whose dialing attempt failed with a ``NO CARRIER''
status result.
JobReqNoFCon
The delay in seconds to wait before retrying a fac-
simile job whose dialing attempt failed because the
initial facsimile protocol handshake failed (i.e.
no ``+FCON:'' result was received from a Class
2/2.0 modem).
JobReqOther
The delay in seconds to wait before retrying a job
that failed for a reason not already covered by one
of the Job* parameters.
JobReqProto
The delay in seconds to wait before retrying a fac-
simile job that failed because of a fax protocol
error.
GettyArgs
A string that indicates whether or not the server
should invoke the getty(8C) program in response to
an incoming call from a data modem. If the string
value is not null, then it is interpreted as a set
of arguments to pass to the getty program. Before
supplying the arguments, the string is first
scanned for ``%''-escape sequences: any appearance
of ``%l'' is replaced with the tty name and any
appearance of ``%s'' is replaced with the serial
port speed (in decimal). The ``%'' character can
be specified with ``%%''. If the GettyArgs
parameter is not specified in the configuration
file or if the string value is null, then data con-
nections will be rejected. Note that in addition
to the specified command line arguments, the getty
program is invoked with its standard input, output,
and error descriptors directed to the controlling
tty device.
LocalIdentifier
The local station identification string to use when
transmitting TSI and CSI strings (see FAXNumber
above). NB: while this string may contain any
printable ASCII characters; beware that CCITT T.30
specifies a restricted character set and some fax
modems and machines may reject or not display non-
conforming strings. If the local identifier is not
specified, a canonical form of the FAXNumber is
used instead.
LockDataCalls
Hold the UUCP lockfile during the time an inbound
data call is processed by the external getty pro-
gram. If this is disabled then the lockfile will
be removed just before the getty program is
invoked. Note however that doing this introduces a
race condition whereby an outbound program may
sneak in and take control of the modem after the
inbound call has been accepted, but before the
getty program has started up and installed it's own
lockfile.
LockVoiceCalls
Hold the UUCP lockfile during the time an inbound
data call is processed by the external voice getty
program. If this is disabled then the lockfile
will be removed just before the voice getty program
is invoked. Note however that doing this intro-
duces a race condition whereby an outbound program
may sneak in and take control of the modem after
the inbound call has been accepted, but before the
voice getty program has started up and installed
it's own lockfile.
LogFacility
The symbolic name for the syslog(3) facility to use
when logging error messages and informa-
tional/debugging messages requested through the
ServerTracing parameter. The list of facility
names is found in the system include file <<sys-
log.h>>; comparisons are case-insensitive.
LogFileMode
The file protection mode that should be used when
creating files to hold session logs. Note that
this value is given in octal. The default value of
0600 implies that the log files are not generally
accessible, which is important if sensitive infor-
mation such as calling card access codes are
logged. If log files are to be publicly accessi-
ble, this value may be set, for example, to 0644.
See also chmod(2).
LongDistancePrefix
The string to use to place a long distance phone
call. In the United States, this is ``1''.
MaxConcurrentJobs
The default value to use for the maximum number of
jobs for the same destination that are processed
concurrently. Note that each job is processed with
a separate phone call; job batching is not cur-
rently supported. Thus this parameter defines the
maximum number of concurrent phone calls to the
same destination. This value may be overridden by
rules in the DestControls file.
MaxConsecutiveBadLines
The maximum number of consecutive erroneous rows of
image data that the server will receive before it
deems a page to have unacceptable copy quality.
Setting this parameter to zero causes the server to
not check the quality of received facsimile. See
also PercentGoodLines.
MaxDials
The default value for the maximum number of times
the server will place a call for an outbound job.
This value may be overridden by rules in the Dest-
Controls file. See also MaxTries.
MaxRecvPages
The maximum number of pages the server will accept
in a received facsimile before it aborts the ses-
sion.
MaxSendPages
The default value for the maximum number of pages
the server will permit in a transmitted facsimile.
Outbound jobs that exceed this limit are rejected.
This value may be overridden by rules in the Dest-
Controls file.
MaxSetupAttempts
The maximum number of times a HylaFAX server pro-
gram will attempt to initialize a modem before con-
sidering it ``wedged''.
MaxTries
The default value for the maximum number of times
the server will attempt to communicate with a
remote site. Note that for a call to be counted
against this limit, carrier must be established;
this is in contrast to the value of MaxDials which
limits the number of calls that will be placed on
behalf of a job. This value may be overridden by
rules in the DestControls file. See also MaxDials.
ModemClass
Define a logical name for a set of modem devices.
This parameter can be used to define a name that
clients can use to refer to a collection of modems.
The syntax is ``<name>:<regex>'' where <name> is
the name for the class and <regex> is a regular
expression that faxq(8C) matches against known
modems. Thus for example, the default modem to use
for a job, any, is defined as ``any:.*''. This
parameter may be specified multiple times to define
multiple modem classes. Modem classes may overlap.
The actual set of modems in a modem class that are
considered for use may vary based on which modems
are believed to be ready for use.
ModemPriority
The scheduling priority to use for a modem. Prior-
ity values are in the range 0 to 255 with greater
values signifying higher (more desirable) priority.
The HylaFAX scheduler process assigns the highest
priority modem that is ready for use when schedul-
ing an outbound job.
NoCarrierRetrys
The number of times to redial a phone number after
receiving a ``NO CARRIER'' result code. In normal
operation the fax server will treat this result
code to mean that a facsimile modem/machine did not
answer the phone and reject the transmit job. This
is done to avoid repeatedly dialing wrong phone
numbers and depends on the modem distinguishing
between no carrier and no answer. However, some
modems are not capable of reliably distinguishing
between no carrier and no answer, or when
instructed to do so do not identify a busy signal
correctly. For these modems one may find it neces-
sary to increase the value of this parameter to
compensate. It is strongly recommended, however,
that this value not be set to a large number.
ModemReadyState
Define the state transmitted to the HylaFAX sched-
uler process each time a modem is made ready by a
faxgetty process. State is one of: ``R'' (ready
for use), ``B'' (busy), or ``D'' (down). The modem
state can be used to control whether or not modems
are assigned to outbound jobs. A modem's state is
initially set to ``R'' (ready). Modem state can be
dynamically changed with the faxstate(8C) program
or by setting this configuration parameter with the
faxconfig(8C) program.
NotifyCmd
The command to invoke to notify a client of a job
status change; see notify(8C).
PageChop
Whether or not to automatically truncate trailing
whitespace on pages of outbound facsimile (when
possible). If page chopping is enabled, then pages
with at least PageChopThreshold trailing whitespace
on a page will be transmitted as a ``short page''
if the receiver is capable of accepting variable-
length pages. The possible values are: ``last'' to
enable chopping of the last page of each document,
``all'' to enable chopping of all pages, or
``none'' to disable page chopping.
PageChopThreshold
The minimum amount of trailing whitespace that must
be present on a page before page chopping will be
attempted; see PageChop. Note that this value is
specified in inches.
PCL2FaxCmd
The command to invoke to convert a HP-PCL document
submitted for transmission to TIFF/F, suitable for
transmission (for future use).
PercentGoodLines
The minimum percentage of good rows of image data
required for a received facsimile page to be deemed
to have acceptable copy quality. Setting this
parameter to zero causes the server to not check
the quality of received facsimile. See also Max-
ConsecutiveBadLines.
PollLockWait
When polling for the presence/removal of a UUCP
lockfile, the time (in seconds) to wait between
checks. Lockfile polling occurs when the fax
server collides with another process using the
modem for outbound use.
PollModemWait
The time (in seconds) to wait between checks for a
modem to become ready for use. Modem polling
occurs when a modem fails to reset cleanly.
PS2FaxCmd
The command to invoke to convert a POSTSCRIPT docu-
ment submitted for transmission to TIFF/F, suitable
for transmission; see ps2fax(8C).
QualifyCID
A string that specifies whether or not Caller-ID
information should be checked against an access
control list before accepting an inbound call. If
QualifyCID is non-null and there is Caller-ID ser-
vice, then only calls from phone numbers identified
in the file specified by this string (typically
etc/cid) will be accepted; see cid(5F). If Quali-
fyCID is not specified in the configuration file,
or the value is null, then all incoming calls will
be answered. Note that Caller-ID screening is only
available when this service is enabled on the phone
line and the modem is capable of presenting Caller-
ID status information to the host. The CIDNumber
and CIDName parameters must also be setup to
reflect the manner in which the modem returns
Caller-ID status information to the host.
QualifyTSI
A string that specifies whether or not the identity
of calling facsimile machines should be checked
against an access control list before receiving
facsimile. If QualifyTSI is non-null, then only
messages from facsimile machines identified in the
file specified by the string (typically etc/tsi)
will be accepted; see tsi(5F). If QualifyTSI is
not specified in the configuration file, or the
value is null, then all incoming facsimile messages
will be accepted.
RecvDataFormat
The data format (compression scheme) to write
received facsimile data when copy quality checking
is enabled on the host. (When copy quality check-
ing is not done by the server the received facsim-
ile data is written exactly as it is received from
the modem.) The format may be one: ``1-D MR'',
``2-D MR'', ``2-D MMR'', or ``adaptive''. An
``adaptive'' format causes the received data to be
written using the data format negotiated by the
sender and receiver. Note that while 2-D MMR is
the most space-efficient data format the resultant
file may not be viewable (certain commonly used
programs do not properly read multi-strip TIFF with
2-D MMR data).
RecvFileMode
The file protection mode that should be used when
creating files to hold incoming facsimile. Note
that this value is given in octal. The default
value of 0600 implies that only the facsimile user
can read received facsimile. If incoming facsimile
are to be publicly accessible, this value may be
set, for example, to 0644. See also chmod(2).
RingData
A modem status string that identifies that an
incoming call is for data use. This string should
be set when a phone line has been setup with dis-
tinctive ring service. See also RingFax and
RingVoice.
RingFax
A modem status string that identifies that an
incoming call is for facsimile use. This string
should be set when a phone line has been setup with
distinctive ring service. See also RingData and
RingVoice.
RingsBeforeAnswer
The number of rings to wait before answering the
phone. If this value is set to 0, then the phone
will only be answered in response to an explicit
answer command; see faxanswer(8C).
RingVoice
A modem status string that identifies that an
incoming call is for voice use. This string should
be set when a phone line has been setup with dis-
tinctive ring service. See also RingData and Ring-
Fax.
SendFaxCmd
The command to use to process outbound facsimile
jobs; see faxsend(8C).
SendPageCmd
The command to use to process outbound pager jobs;
see pagesend(8C).
SendUUCPCmd
The command to use to process outbound UUCP jobs.
This parameter is not currently used, it is for
future development.
ServerTracing
A number that controls the generation of tracing
information by a server when not actively sending
or receiving facsimile. Tracing is divided into
areas that are individually controlled. To enable
tracing of multiple areas of operation, the flag
associated with each area should be bit-or'd to
form the value for this tag.
Flag Area Description
1 (0x00001) Server Operation queue management and general operation
2 (0x00002) FAX/IXO Protocol T.30 facsimile protocol or IXO/TAP protocol
4 (0x00004) Modem Operations modem hardware manipulation
8 (0x00008) Modem Communications comands passed between host and modem
16 (0x00010) Timeouts timer operations
32 (0x00020) Modem Capabilities modem capabilities
64 (0x00040) HDLC Frames binary T.30 HDLC frames
128 (0x00080) Binary Modem I/O binary communication between host and modem
256 (0x00100) Server State Transitionsserver program state transitions
512 (0x00200) Queue Management job queue management
1024 (0x00400) Copy Quality copy quality checking of received facsimile
2048 (0x00800) Job Management low-level job management
4096 (0x01000) IXO Protocol low-level IXO protocol
8192 (0x02000) Config File Parsing unknown configuration file parameters
16384 (0x04000) FIFO Messages inter-application messages
32768 (0x08000) Modem State Transitions modem state changes (down, busy, ready)
65536 (0x10000) Dial Rules dialstring rules parsing and execution
131072 (0x20000) Docq Changes document reference handling
For example, to enable tracing of server operations
and protocol operations, a value of 1+2=3 should be
specified. NB: tracing timeouts and/or binary
modem I/O can adversely affect the operation of the
fax server; enabling these areas should be done
with extreme care.
Server tracing is directed to syslog(3) using the
facility specified with the LogFacility configura-
tion parameter. Note that syslogd(8C) must be con-
figured to capture facility.info, facility.debug,
facility.warning, and facility.err messages. See
log(5F) for a description of the logged messages.
SessionTracing
A number that controls the generation of tracing
information by a server while sending or receiving
facsimile. The number is interpreted identically
to ServerTracing. Note that session tracing is
placed in log files in the log subdirectory; see
log(5F) for more information.
SpeakerVolume
The volume level that the in-modem speaker should
be adjusted to while in command mode. The possible
values are:
Value Description
Off silent
Quiet almost inaudible
Low tolerable in privacy
Medium loud enough to hear in the next room
High intolerable
Note that the speaker is always turned off once
carrier is established. Also beware that some
modems support fewer volume settings; see Modem-
SetVolumeCmd.
TagLineFont
The filename of the font to use in imaging tag
lines across the top of each transmitted page.
Fonts must be stored in the Portable Compiled Font
(PCF) format used by the X11 Window System. File-
names are specified relative to the root of the
spooling area; e.g. etc/lutRS18.pcf. If no font is
specified, if a null filename is specified, or if
the specified font file is not readable, then tag
lines will not be generated. See also TagLineFor-
mat.
TagLineFormat
The format string to use when imaging tag lines
across the top of each transmitted page. This
string may include escape codes that cause various
items to be interpolated into the imaged tag line.
Any escape code supported by strftime(3C) may be
used as well as the following server-implemented
codes:
Escape Description
%%d destination phone number
%%i job identifier
%%j user-specified job tag
%%l LocalIdentifier or canonicalized FAXNumber
%%m sender's electronic mail address
%%n canonicalized FAXNumber
%%p current page number
%%s sender's name
%%t total pages in job
%%% ``%''
In addition, the format string may indicate that
text is to be centered in multiple equal-sized
fields by separating text with ``|'' characters.
For example, ``a|b|c'' would cause the tag line to
be broken up into three equal-sized areas with the
strings ``a'', ``b'', and ``c'' centered within
each region. The default tag line format string is
``From %%n|%c|Page %%p of %%t''. See also TagLine-
Font.
TIFF2FaxCmd
The command to invoke to convert a TIFF submitted
for transmission to TIFF/F, suitable for transmis-
sion; see tiff2fax(8C).
TimeOfDay
The default time-of-day restrictions to apply to
outbound jobs. Outbound jobs will be processed
only during the specified time. Any jobs submitted
outside this time period will be held until the
start of this time. The syntax for time-of-day
restrictions is designed to be compatible with the
syntax used by the UUCP software. The following
BNF describes the syntax:
Syntax = tod ["," tod]
tod = <days><timerange>
days = "Any" | "Wk" | <dayname>+ | nothing
dayname = "Sun" | "Mon" | "Tue" | "Wed" | "Thu" | "Fri" | "Sat"
timerange = <start> "-" <end> | nothing
start = <24hrtime>
end = <24hrtime>
24hrtime = {0-9}{0-9}{0-9}{0-9}
nothing =
where start and end are 24-hour times, day names
can be either 2- or 3-characters, and a null day or
time specification means any time or day. White
space and other syntactic sugar may be freely
inserted between tokens but may not be inserted
between 24-hour times in the time range.
This value may be overridden by rules in the Dest-
Controls file.
Use2D Control the use of 2D-encoded data for transmitted
facsimile.
UUCPLockMode
The file protection mode that should be used when
creating UUCP lockfiles. Note that this value is
given in octal.
UUCPLockDir
The pathname of the directory in which UUCP lock-
files are to be created.
UUCPLockTimeout
The time in seconds to wait before removing a stale
UUCP lockfile (i.e. a lockfile whose owner does not
appear to exist). If this value is set to 0, then
the fax server will never remove a stale lockfile.
UUCPLockType
A string that specifies the type of UUCP lockfile
to create. The string may be one of ``ascii'' or
``binary'' depending on whether the process-ID of
the lock owner is written to the file as an ascii
string or as a binary value, respectively. In
addition, two prefixes may be used to control the
format of the lock filename. If the type string is
prefixed with a ``+'', then SVR4-style filenames
are generated using the major device number of the
tty device and the major and minor device numbers
for the filesystem on which the tty device resides.
If the type string is prefixed with a ``-'', then
any upper case letters in the device part of the
lockfile name are converted to lower case letters;
for example, ``LCK..ttyA01'' is converted to
``LCK..ttya01''. This upper-to-lower case conver-
sion is useful for systems such as SCO where the
convention is to name devices with upper-case let-
ters, but create lockfiles with lower-case letters.
VGettyArgs
A string that indicates whether or not the server
should invoke a voice getty program in response to
an incoming voice call. If the string value is not
null, then it is interpreted as a set of arguments
to pass to the vgetty program. Before supplying
the arguments, the string is first scanned for
``%''-escape sequences: any appearance of ``%l'' is
replaced with the tty name and any appearance of
``%s'' is replaced with the serial port speed (in
decimal). The ``%'' character can be specified
with ``%%''. If the VGettyArgs parameter is not
specified in the configuration file or if the
string value is null, then voice connections will
be rejected. Note that in addition to the speci-
fied command line arguments, the vgetty program is
invoked with its standard input, output, and error
descriptors directed to the controlling tty device.
WedgedCmd
The command to invoke when a modem is deemed
``wedged''; see wedged(8C).
MODEM-ORIENTED CONFIGURATION PARAMETERS
This section lists configuration parameters that are spe-
cific to the setup and operation of the modem. All com-
mands must be specified exactly as they are to be trans-
mitted to the modem (note that this is a departure from
previous versions of this software that automatically
prepended ``AT'' to each line of commands sent to the
modem). When multi-line commands are required, enclose
the commands in quote marks (``"'') and insert a newline
character ``\n'' where lines should be broken. An example
of a multi-line command string is ``AT+FCQ=1\nAT+FBAD-
MUL=20\nAT+FBADLIN=10''.
Command strings sent to the modem may include command
escapes that force the host to alter the DTE-DCE communi-
cation rate, the flow control scheme used between the host
and modem, delay for a period of time, flush input data,
and wait for a specific response from the modem. The fol-
lowing escape codes are interpreted:
Escape Effect
<none> enable no flow control between DTE and DCE
<xon> enable software flow control between DTE and DCE
<rts> enable hardware flow control between DTE and DCE
<2400> set the DCE-DTE baud rate to 2400 bps
<4800> set the DCE-DTE baud rate to 4800 bps
<9600> set the DCE-DTE baud rate to 9600 bps
<19200> set the DCE-DTE baud rate to 19200 bps
<38400> set the DCE-DTE baud rate to 38400 bps
<57600> set the DCE-DTE baud rate to 57600 bps
<76800> set the DCE-DTE baud rate to 76800 bps
<115200> set the DCE-DTE baud rate to 115200 bps
<delay:N> delay N x 10 ms on the host (0 <= N <= 255)
<flush> flush any pending input data from the modem
<waitfor:R> wait for the response R from the modem (see below)
Note that commands to the left of an escape code are sent
to the modem before the associated actions are carried out
on the host. This may be important when changing baud
rates, as the result code from a command may be returned
at the new baud rate. Also, beware that not all baud
rates are supported by all systems and modems; the set of
baud rates supported by a host is usually listed in
stty(1).
The ``<waitfor:..>'' escape can be used to override the
default behaviour which is to wait for an ``OK'' response
to a command sent to the modem. The possible response
codes are:
NOTHING a null response
OK the default response
CONNECT ``CONNECT...''
NOANSWER ``NO ANSWER...''
NOCARRIER ``NO CARRIER...''
NODIALTONE ``NO DIALTONE...''
BUSY ``BUSY''
OFFHOOK ``PHONE OFF-HOOK''
RING ``RING...''
ERROR error status from modem
OTHER any unrecognized modem response
For example ``ATO\r<waitfor:CONNECT>'' would send
``ATO\r'' to the modem and then wait for a response with a
leading ``CONNECT'' in it; and
``ATS99=2\r<delay:2><flush><waitfor:NOTHING>'' would send
``ATS99=2\r'' to the modem, delay 20 ms, flush any input
from the modem, and then continue (not wait for any
response).
ModemAnswerCmd
The command to answer the phone. If possible, this
command should generate a result string that iden-
tifies whether the incoming call is from a facsim-
ile, voice, or data modem. Typically this auto-
detection is configured ahead of time; e.g. for
Class 2 modems with the ``AT+FAA=1'' command.
The following table describes how the result codes
are interpreted by the facsimile server.
Result String Default Class 1 Class 2 Class2.0
CONNECT FAX Fax - - --
CONNECT Data Unknown - -
NO ANSWER No Answer - - -
NO CARRIER No Carrier - - -
NO DIALTONE No Dialtone - - -
ERROR Error - - -
FAX Fax - - -
DATA Data - - -
+FCON - - Fax Fax
+FCO - - Fax Fax
+FDM - - Data Data
+FHNG: - - Error Error
VCON - - Voice Voice
The ``Default'' column indicates the interpretation
made for the result string in either class 1 or 2
unless explicitly overridden. The ``Class 1'' col-
umn indicates result strings handled specially for
modems operating in class 1, the ``Class 2'' column
indicates special handling for modems operating in
class 2, and the ``Class 2.0'' column indicates
special handling for modems operating in class 2.0.
Unknown entries imply that interpretation is based
on the way in which the call was answered; if
answering is done for an explicit call type, that
type is assumed, otherwise a Fax call is presumed.
ModemAnswerDataBeginCmd
The command to send to the modem once a data con-
nection has been established.
ModemAnswerDataCmd
The command to explicitly answer the phone for a
data connection. This command must generate a
result string that identifies the incoming call is
from a data modem. If this parameter is not speci-
fied or is null, then the value of ModemAnswerCmd
is used instead. See also AdaptiveAnswer and
AnswerRotary.
ModemAnswerFaxBeginCmd
The command to send to the modem once a facsimile
connection has been established.
ModemAnswerFaxCmd
The command to explicitly answer the phone for a
facsimile connection. This command must generate a
result string that identifies the incoming call is
from a facsimile modem. If this parameter is not
specified or is null, then the value of
ModemAnswerCmd is used instead. See also Adap-
tiveAnswer and AnswerRotary.
ModemAnswerVoiceBeginCmd
The command to send to the modem once a voice con-
nection has been established.
ModemAnswerVoiceCmd
The command to explicitly answer the phone for a
voice connection. This command must generate a
result string that identifies the incoming call is
for voice. If this parameter is not specified or
is null, then the value of ModemAnswerCmd is used
instead. See also AdaptiveAnswer and AnswerRotary.
ModemAnswerResponseTimeout
The maximum time, in milliseconds, to wait for a
response from the modem after sending ModemAnswer-
Cmd. Note that you may want to shorten this value
when using the server-based adaptive answer strat-
egy; see AdaptiveAnswer.
ModemATCmdDelay
A delay, in milliseconds, that should be performed
before each ``AT'' command string is sent to the
modem.
ModemBaudRateDelay
The amount of time, in milliseconds, to pause after
setting the baud rate on the serial line. This
parameter is only needed for hosts where (appar-
ently) setting the serial line parameters does not
take effect immediately.
ModemCommaPauseTimeCmd
The command to set the time, in seconds, that the
modem should pause when encountering a ``,'' modi-
fier in the dialing string.
ModemDialCmd
The command to place a phone call. The string is
assumed to be suitable for use as a parameter to
the sprintf(3S) function; so the ``%'' character
should be escaped as ``%%''. The dial command must
include a single ``%s'' where the number that is to
be dialed is to be substituted. Facilities such as
tone or pulse dialing, outgoing prefixes to route
though a PBX, and so on should be included in the
dialing command string. It is also important that,
if possible, a trailing ``@'' symbol should be
included so that the modem returns result codes
that distinguish between no answer and no carrier.
Use of the ``@'' permits the server to reduce the
probability that a wrong number is continually
redialed. If the modem does not support this
facility, then it may be necessary to raise the
number of retries done when a ``NO CARRIER'' result
is returned.
ModemDialResponseTimeout
The maximum time to wait, in milliseconds, for a
response from the modem after sending This value
should be longer than the timeout programmed into
the modem through the ModemWaitTimeCmd parameter.
This additional server-based timeout is provided to
guard against modems that can ``lock up'' when
dialing the telephone.
ModemEchoOffCmd
The command to disable echoing of commands sent to
the modem.
ModemFlowControl
The type of flow control to use between DTE and
DCE; one of ``NONE'', ``XONXOFF'' and ``RTSCTS''.
This value is used to select the string sent to the
modem to initially establish DTE-DCE flow control;
one of ModemNoFlowCmd, ModemSoftFlowCmd, and
ModemHardFlowCmd. The current flow control setting
is also used to select the appropriate flow control
command to send to the modem when the software
switches to Class 1, 2, or 2.0; see Class1HFLOCmd,
Class1NFLOCmd, Class1SFLOCmd, Class2HFLOCmd,
Class2NFLOCmd, and Class2SFLOCmd.
The server supports both software and hardware flow
control for Class 1, Class 2, and Class 2.0 modems.
Whether to use hardware or software flow control
depends on the capabilities of the modem and the
host hardware and operating system. Communication
rates above 9600 baud often require that hardware
flow control be used for reliable DTE-DCE communi-
cation. However, beware that many modems only sup-
port software flow control when sending or receiv-
ing facsimile.
ModemFrameFillOrder
The bit order to expect for received HDLC frames
and to use when formulating HDLC frames to send.
This value may be either LSB2MSB when bits are
ordered from least-significant-bit to most-signifi-
cant-bit (as in the CCITT specification) or MSB2LSB
when bits are ordered in the reverse direction.
ModemHardFlowCmd
The command to setup hardware (RTS/CTS) flow con-
trol between DTE and DCE.
ModemMinSpeed
The minimum acceptable signalling rate for trans-
mitting facsimile page data. Possible values are:
2400, 4800, 7200, 9600, 12200, and 14400.
ModemMfrQueryCmd
The command to send to the modem to get the manu-
facturer identification string. If this parameter
is not set, then it is initialized to ``AT+FMFR?''
for Class 2 modems, or to ``AT+FMI?'' for Class 2.0
modems. If the parameter begins with a ``!'', then
the remainder of the string is taken to be the
identification string and no command is issued to
the modem.
ModemModelQueryCmd
The command to send to the modem to get the model
identification string. If this parameter is not
set, then it is initialized to to ``AT+FMDL?'' for
Class 2 modems, or to ``AT+FMM?'' for Class 2.0
modems. If the parameter begins with a ``!'', then
the remainder of the string is taken to be the
identification string and no command is issued to
the modem.
ModemNoAutoAnswerCmd
The command to stop the modem from automatically
answering when the phone rings.
ModemNoFlowCmd
The command to disable flow control between DTE and
DCE.
ModemOnHookCmd
The command to place the phone ``on hook'' (i.e.
hangup).
ModemPageDoneTimeout
The maximum time to wait, in milliseconds, for a
response from the modem after sending a page of
facsimile data (e.g. the time to wait for a
response to a Class 2/2.0 AT+FET command).
ModemPageStartTimeout
The maximum time to wait, in milliseconds, for an
initial response from the modem when sending a page
of facsimile data (e.g. the time to wait for a
response to a Class 2/2.0 AT+FDR command).
ModemRate
The baud rate to use for DCE-DTE communication.
This value may be one of: 115200, 76800, 57600,
38400, 19200, 9600, 4800, 2400, 1200. The default
value is 19200 because many modems lock the rate at
19200 when sending or receiving facsimile. Note
that not all values are supported by all operating
systems and modems; consult stty(1) for the avail-
able rates on your system.
ModemRecvFillOrder
The bit order to expect for received facsimile
data. This value may be either LSB2MSB when bits
are ordered from least-significant-bit to most-sig-
nificant-bit (as in the CCITT specification) or
MSB2LSB when bits are ordered in the reverse direc-
tion. According to the various specifications all
modems should return data in LSB2MSB order. How-
ever many Class 2 modems use MSB2LSB for compati-
bility with modems that were built with Rockwell
hardware/firmware that included a bug that was too
widespread to correct.
ModemResetCmds
A string of commands to issue to the modem during
initialization. This string is sent to the modem
before the standard set of configuration commands
required by the fax server. Note that these com-
mands should not include normal reset commands that
are specified through other parameters. For exam-
ple, commands to setup flow control, DCD handling,
DTR handling, etc. should be specified through the
appropriate configuration parameters and not
through this parameter. In addition the soft reset
command (usually ``ATZ'') should not be included in
this string; the servers issue this command explic-
itly.
ModemResetDelay
The time, in milliseconds, to pause after resetting
a modem either by dropping the DTR signal, or
through a software reset command. This parameter
should be long enough to permit the modem to do any
reset-related processing it requires.
ModemResultCodesCmd
The command to enable result codes.
ModemRevQueryCmd
The command to send to the modem to get a firmware
revision identification string. If this parameter
is not set, then it is initialized to ``AT+FREV?''
for Class 2 modems, or to ``AT+FMR?'' for Class 2.0
modems. If the parameter begins with a ``!'', then
the remainder of the string is taken to be the
identification string and no command is issued to
the modem.
ModemSendBeginCmd
The command to send to the modem upon establishing
carrier during a transmit operation. This parame-
ter is useful for systems that are incapable of
enabling hardware flow control without DCD
asserted.
ModemSendFillOrder
The bit order the modem expects for transmitted
facsimile data. This value may be either LSB2MSB
or MSB2LSB (see also ModemRecvFillOrder above.)
Virtually all modems expect transmitted facsimile
data in LSB2MSB bit order.
ModemSetVolumeCmd
The commands to use to set the modem speaker volume
levels. There should be five whitespace-separated
commands, one each for setting the volume to
``Off'', ``Quiet'', ``Low'', ``Medium'', and
``High''; the default is ``"ATM0 ATL0M1 ATL8C1
ATL2M1 ATL3M1"''. See also SpeakerVolume.
ModemSetupAACmd
The command to setup adaptive answer support in the
modem-if available. Adaptive answer is the term
used for the ability to distinguish between calls
from facsimile, voice, and data sources. Note that
this string is the last command issued by the
device drivers during setup, so the command string
may, if necessary, switch to a different operating
mode (e.g. on some Rockwell-based modems it is nec-
essary to issue the ``AT+FAA=1'' command in Class
0).
ModemSetupDCDCmd
The command to setup DCD handling. On most systems
the facsimile server will enable the CLOCAL flag on
the tty device to which the modem is connected.
This should insure that the system does not close
an open file descriptor associated with the modem
if carrier is dropped. Thus, for most systems and
modems ModemSetupDCDCmd should setup DCD to reflect
carrier.
ModemSetupDTRCmd
The command to setup DTR handling so that the modem
is reset when the DTR signal is lowered by the
host. The facsimile server uses this facility to
insure that modems are not left in a ``locked up''
state.
ModemSoftFlowCmd
The command to setup software (XON/XOFF) flow con-
trol between DTE and DCE.
ModemSoftResetCmd
The command to force a soft reset of the modem.
ModemType
This parameter must be set to one of: ``Class2'',
``Class2.0'', or ``Class1''; to indicate that the
modem is a Class 2-, Class 2.0-, or Class 1-style
modem, respectively.
ModemVerboseResultsCmd
The command to enable verbose, as opposed to
numeric, result codes.
ModemWaitForConnect
If enabled, the facsimile server will not consider
a connection established when answering an incoming
call until a ``CONNECT'' status string is received.
This is useful mainly for Rockwell RC32ACL-based
modems that send ``FAX'' and ``DATA'' status mes-
sages before sending ``CONNECT''.
ModemWaitTimeCmd
The command to set the number of seconds to wait
for a carrier signal when placing a call or answer-
ing the phone.
T.30 PROTOCOL CONFIGURATION PARAMETERS
The following parameters apply to the implementation of
the CCITT T.30 facsimile protocol in the Class 1 device
driver. They should not be changed without full under-
standing of the operation of the server.
FaxT1Timer
The value of the T1 timer in milliseconds. This
timer is used to time out the initial session con-
tact; i.e. receipt of DIS/DCS.
FaxT2Timer
The value of the T2 timer in milliseconds. This
timer is used to time out receiving responses and
commands.
FaxT4Timer
The value of the T4 timer in milliseconds. This
timer is used to time out the reception of HDLC
frames and, usually, trigger frame retransmissions.
CLASS 1 MODEM CONFIGURATION PARAMETERS
The following parameters are specific to the configuration
of Class 1-style modems; they should not be changed
lightly:
Class1Cmd
The command to set the modem into Class 1
operation.
Class1FrameOverhead
The number of extraneous bytes in HDLC frames sent
to the host in response to an ``AT+FRH'' command.
For modems that properly implement the Class 1
interface, this number should be 4 (the default).
Class1HFLOCmd
The command to setup hardware (RTS/CTS) flow con-
trol between DTE and DCE when operating in Class 1.
This command is issued immediately after sending
the Class1Cmd to switch the modem to Class 1 opera-
tion.
Class1NFLOCmd
The command to setup no flow control between DTE
and DCE when operating in Class 1. This command is
issued immediately after sending the Class1Cmd to
switch the modem to Class 1 operation.
Class1RecvAbortOK
The time, in milliseconds, to wait for an ``OK''
result code from the modem after aborting an HDLC
frame receive (``AT+FRH=3''). If this number is
zero, then the modem is assumed to not correctly
implement aborting and instead the driver will wait
200ms, flush any input, and then send ``AT\n'' and
wait 100ms for an ``OK'' result.
Class1RecvIdentTimer
The time, in milliseconds, to wait for an initial
DCS when receiving a facsimile. CCITT recommenda-
tion T.30 specifies this as the value of the T1
timer. However, adaptive answering schemes such as
that described above under the AdaptiveAnswer
parameter may require that this timer be shortened.
Class1SendPPMDelay
The time, in milliseconds, to delay between drop-
ping the high speed message carrier and sending the
post-page message/command.
Class1SendTCFDelay
The time, in milliseconds, to delay between sending
DCS and TCF.
Class1SFLOCmd
The command to setup software (XON/XOFF) flow con-
trol between DTE and DCE when operating in Class 1.
This command is issued immediately after sending
the Class1Cmd to switch the modem to Class 1 opera-
tion.
Class1TCFMaxNonZero
The maximum percentage of non-zero data bytes per-
mitted in an acceptable received TCF. Note that
this number does not include any leading non-zero
data in the received data. See also Class1TCFMin-
Run.
Class1TCFMinRun
The duration, in milliseconds, of the minimum run
of zero data in an acceptable received TCF. This
value should be specified according to a 1.5 second
transmission of zero data (i.e. it should be
between 0 and 1500). See also Class1TCFMaxNonZero.
Class1TCFRecvTimeout
The maximum time to wait, in milliseconds, for the
first byte of the Training Check (TCF) message data
that is received during the training phase of the
facsimile reception protocol.
Class1TCFResponseDelay
The time, in milliseconds, to delay between receiv-
ing TCF and sending a response on the v.21 carrier
to indicate whether or not training was successful.
Class1TrainingRecovery
The time, in milliseconds, to delay after a failed
training session. This time is used when sending
training and when waiting for DCS and subsequent
training during receive.
CLASS 2 AND 2.0 MODEM CONFIGURATION PARAMETERS
The following parameters are specific to the configuration
of Class 2- and Class 2.0-style modems:
Class2Cmd
The command to set the modem into Class 2/2.0 oper-
ation.
Class2AbortCmd
The command to use to abort an established session.
After using this command to abort a session, the
fax software will send ModemOnHookCmd and then
reset the modem by dropping DTR .
Class2BORCmd
The command to setup the bit order of sent and
received facsimile data. Usually the command
``AT+FBOR=0'' is used so that data is sent and
received in direct bit order (LSB2MSB). Some
modems, such as the Everex 24/96D, must use
reversed bit order for Phase B and D data exchanges
to avoid a bug that results in garbage data being
placed in the padding of EOL codes. The bit order
specified by this command must correspond to the
settings of the ModemSendFillOrder and ModemRecv-
FillOrder parameters.
Class2BUGCmd
The command to use to enable the tracing of HDLC
frames sent and received by the modem. This trac-
ing information should be returned to the host in
``+FHR:'' and ``+FHT:'' status strings. Note that
many Class 2 modems do not support this facility.
Class2CIGCmd
The command used to set a polling identifier. This
string is inserted into the format ``%s="<id>"''.
Class2CQQueryCmd
The command to send to the modem to get the copy
quality capabilities string. If the parameter
begins with a ``!'', then the remainder of the
string is taken to be the capabilities string and
no command is issued to the modem; this can be used
together with the Class2CQCmd to force copy quality
checking to be done in the server instead of in the
modem. See also PercentGoodLines and MaxConsecu-
tiveBadLines for parameters used to do server copy
quality checking.
Class2CRCmd
The command to use to enable the reception of fac-
simile.
Class2CQCmd
The command to use to set up parameters for copy
quality checking. For example, for an Everex
24/96D modem this parameter might be set to
``AT+FCQ=1\nAT+FBADMUL=20\nAT+FBADLIN=10''.
Class2DCCCmd
The command used to set modem capabilities. This
string is inserted into the format
``%s=vr,br,wd,ln,df,ec,bf,st''.
Class2DCCQueryCmd
The command to send to the modem to get the Class
2/2.0 capabilities. If the parameter begins with a
``!'', then the remainder of the string is taken to
be the capabilities string and no command is issued
to the modem.
Class2DDISCmd
The command to set session parameters before dial-
ing. This string is inserted into the format
``%s=vr,br,wd,ln,df,ec,bf,st''. Setting this
parameter enables support for Class 2 modems that
do not properly implement the ``AT+FDIS'' command
by setting up session parameters before dialing the
telephone.
Class2DISCmd
The command used to set the current session parame-
ters. This string is inserted into the format
``%s=vr,br,wd,ln,df,ec,bf,st''.
Class2HFLOCmd
The command to setup hardware (RTS/CTS) flow con-
trol between DTE and DCE when operating in Class
2/2.0. This command is issued immediately after
sending the Class2Cmd to switch the modem to Class
2/2.0 operation. For Class 2.0 operation the
default is ``AT+FLO=2''.
Class2LIDCmd
The command used to set the local identifier
string. This string is inserted into the format
``%s="<id>"''
Class2MINSPCmd
The command used to set the minimum acceptable
speed to be negotiated for transmitting page data.
This string is inserted into the format
``%s=<speed>''
Class2NFLOCmd
The command to setup no flow control between DTE
and DCE when operating in Class 2/2.0. This com-
mand is issued immediately after sending the
Class2Cmd to switch the modem to Class 2 operation.
For Class 2.0 operation the default is
``AT+FLO=0''.
Class2NRCmd
(Class 2.0 only) The command to setup negotiation
message reporting. For the correct operation of
the Class 2.0 driver this command must enable the
reporting of: receiver parameters, transmitter
parameters, and ID strings. It is not necessary to
enable reporting of non-standard frames for correct
operation of the Class 2.0 driver.
Class2PHCTOCmd
The command to use to set the Phase C timeout
parameter (in seconds).
Class2PIECmd
(Class 2.0 only) The command to use to control pro-
cedure interrupt handling. Procedure interrupts
should be disabled because HylaFAX does not provide
a mechanism for dispatching procedure interrupts to
an administrator.
Class2PTSCmd
The command to use to set the received page status
code. When copy quality checking is done in the
host, this command may be used to control the post-
page response delivered to the sender. Beware that
some modems do not properly implement this command
in which case the server should be configured to
not do copy quality check: see the PercentGoodLines
and MaxConsecutiveBadLines parameters to understand
how to defeat copy quality checking.
Class2RecvDataTrigger
The character to send to the modem to trigger the
transmission of received data from the modem to the
host. This character is specified to be DC1 (octal
21) in the draft specification 2388-A and DC2
(octal 22) in the 2388-B specification. Most Class
2 modems accept DC1 or both DC1 and DC2. Some
modems however only accept DC2. Note that string
parameters may use C-style escape sequences, so
DC2, for example, would be specified as ``"\022"''.
Class2RELCmd
The command to use to enable the delivery of byte-
aligned EOL codes in received facsimile. If this
parameter is defined, then received facsimile data
will be marked to indicate that EOL codes are byte-
aligned; otherwise they will be marked as not (nec-
essarily) having byte-aligned codes.
Class2SendRTC
Whether or not to append an explicit ``Return To
Control'' (RTC) signal to the page data when trans-
mitting. The Class 2 spec (i.e. SP-2388-A) states
the modem will append RTC when it receives the
post-page message command from the host; this
parameter is provided in case the modem does not
correctly implement this.
Class2SFLOCmd
The command to setup software (XON/XOFF) flow con-
trol between DTE and DCE when operating in Class
2/2.0. This command is issued immediately after
sending the Class2Cmd to switch the modem to Class
2/2.0 operation. For Class 2.0 operation the
default is ``AT+FLO=1''.
Class2SPLCmd
The command to use to enable a polling request.
Class2TBCCmd
The command to use to enable stream-mode
communication between the host and modem.
Class2XmitWaitForXON
Whether or not to wait for an XON character from
the modem before sending facsimile data to the
modem for transmission. Note that this is only
relevant for modems that conform to the Class 2
spec (i.e. SP-2388-A). The Class 2.0 specification
states that the host may transmit data immediately
upon receiving CONNECT and that no XON character
will be sent to the host.
PAGER-RELATED CONFIGURATION PARAMETERS
The following parameters are specific to the configuration
and operation of the IXO/TAP and UCP support for sending
pager messages and GSM SM. Parameter not used for UCP are
marked with ``(IXO/TAP only)''.
PagerSetupCmds
The commands to send to a modem to prepare the
modem for a call to pager service provider. Typi-
cally these commands place direct the modem to com-
municate with the service provider at 300 bps using
the V.21 protocol. Per-service provider command
strings can be setup in the info database; see
info(5F).
PagerMaxMsgLength
The maximum length for a pager text message. Mes-
sages longer than this number are truncated. Per-
service provider message lengths can be setup in
the info database; see info(5F).
IXOService
(IXO/TAP only) The service identification string
transmitted as part of the IXO/TAP protocol.
IXODeviceID
(IXO/TAP only) The terminal device identification
string transmitted as part of the IXO/TAP protocol.
IXOMaxUnknown
The maximum number of unrecognized messages that
will be accepted at various stages of the IXO/TAP
protocol before the sender will abort and hangup
the phone.
IXOIDProbe
(IXO/TAP only) The time, in seconds, between send-
ing a ``\r'' during the initial ID recognition
sequence of the IXO/TAP protocol.
IXOIDTimeout
(IXO/TAP only) The maximum time, in seconds, to
wait for the initial ID response from the service
provider.
IXOLoginRetries
(IXO/TAP only) The maximum number of attempts to
login to a service provider.
IXOLoginTimeout
(IXO/TAP only) The maximum time, in seconds, to
wait to complete the login procedure.
IXOGATimeout
(IXO/TAP only) The maximum time, in seconds, to
wait for a Go-Ahead message from the service
provider.
IXOXmitRetries
The maximum number of times to try sending a text
message block in a single call.
IXOXmitTimeout
The maximum time, in seconds, to try transmitting a
text message block.
IXOAckTimeout
(IXO/TAP only) integer30IXO: max time to wait for
msg block ack (secs) The maximum time, in seconds,
to wait for an acknowledgement to a transmitted
message.
PROTOTYPE CONFIGURATION FILES
Per-modem configuration files are typically derived from
prototype files that have been created for known modems.
These prototype files are kept in the config subdirectory
and, by convention, have names that identify a brand or
type of modem and the DTE-DCE flow control scheme the pro-
totype files configures. The faxaddmodem(8C) program that
is used to configure a modem for use with HylaFAX selects
a prototype configuration file using information retrieved
from the modem and comments embedded in the prototype
files. For Class 1 modems the product ID code returned by
the command ``ATI0'' and the response from the comannd
``ATI3'' are used to select a prototype configuration
file, while for Class 2 modems the manufacturer and model
as returned by ``AT+FMFR?'' and ``AT+FMDL?'', respec-
tively, are used (or ``AT+FMI?'' and ``AT+FMM?'' for Class
2.0 modems).
A Class 1 prototype configuration file is identified for
use by faxaddmodem by searching for a comment of the form:
# CONFIG:CLASS1:144:.*:RTSCTS: Manufacturer='AT&T' Model=Dataport
In this example ``144'' is the product ID code for an AT&T
DataPort modem, ``.*'' is a regular expression matched
against the result string returned by the ``ATI3''
command, and ``RTSCTS'' indicates the modem is configured
to use hardware flow control during fax operation. The
remainder of the line is evaluated by the sh(1) and used
to specify the modem's manufacturer and model (since Class
1 modems do not have standard commands to query this
information).
Class 2 and 2.0 prototype configuration files match the
string ``manufacturer-model-flowcontrol'' against a sh(1)
glob pattern specified in the configuration file, where
manufacturer and model are the strings returned by query-
ing the modem and flowcontrol is either ``RTSCTS'' for
hardware flow control or ``XONXOFF'' for software flow
control. For example:
# CONFIG: CLASS2: ZyXEL*-RTSCTS
# CONFIG: CLASS2.0: USRobotics*-XONXOFF
are configuration comments that appear in the prototype
file for a ZyXEL 1496E with Class 2 support, and for a US
Robotics Courier modem with Class 2.0 firmware.
The faxaddmodem program merges server-specific configura-
tion parameters into a prototype configuration according
to comments placed in the prototype file. All lines
between ``BEGIN-SERVER'' and ``END-SERVER'' comments are
placed with the appropriate server configuration parame-
ters. Note that this means modem-related configuration
parameters must be placed outside this area of the file.
SEE ALSO
faxaddmodem(8C) faxq(8C) faxgetty(8C) faxsend(8C)
hylafax(5F)