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
pagesend(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
character 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, otherwise
decimal), except for a few parameters, such as
RecvFileMode,
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 process 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 otherwise 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
AdminGroup string faxadmin System user group for administration (if PAM enabled)
AllowIgnoreModemBusy¹ boolean No honor job requests to ignore modem busy status
AnswerRotary string Any alternatives for answering calls
AnswerBias integer - bias to apply to successful rotary answer
AreaCode² string - local area code
AuditHook¹ string - command to run for faxq event auditing
BadPageHandlingMethod string RTN-SAVE bad page received handling method
BatchLogs¹ boolean Yes keep all session logs of a batch in a single log
CallIDAnswerLength integer - answer call when CallIDPattern received
CallIDDisplay boolean No display match in modem status
CallIDLabel string - label to use in presentation of the match
CallIDPattern string - call identification pattern string
CallIDRecord boolean Yes record match in recvq image file
CallIDType string - type identifier for the CallIDPattern match
CIDName string - equivalent to CallIDPattern (2)
CIDNameAnswerLength integer 0 equivalent to CallIDAnswerLength (2)
CIDNumber string - equivalent to CallIDPattern (1)
CIDNumberAnswerLength integer 0 equivalent to CallIDAnswerLength (1)
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¹ obsolete - Obsoleted by JobControl
DeviceMode octal 0600 protection mode to use for modem device
DialStringRules² string - dial string rules file
DistinctiveRings string - configuration for distinctive ring cadences
DRingOff string - distinctive ring ``off'' cadence indicator
DRingOn string - distinctive ring ``on'' cadence indicator
DynamicConfig string - script for dynamic receive configuration
EGettyArgs string - arguments passed to external getty program
FAXNumber string - facsimile modem phone number
FaxRcvdCmd string bin/faxrcvd notification script for received facsimile
GettyArgs string - arguments passed to getty program
Include² string - include another config file
InternationalPrefix² string - dialing prefix for international calls
JobControlCmd¹ string - job control command
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
JobRetryBusy integer - number of retries for BUSY dial result
JobRetryDataConn integer - number of retries for data connection dial result
JobRetryNoAnswer integer - number of retries for NO ANSWER dial result
JobRetryNoCarrier integer 1 number of retries for NO CARRIER dial result
JobRetryNoFCon integer - number of retries for carrier without +FCON dial result
JobRetryOther integer - number of retries for ``other'' problems
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
LogCalls boolean Yes Log all incoming calls as CALL records in xferfaxlog
LogFacility² string daemon syslog facility name for ServerTracing messages
LogFileMode octal 0600 protection mode to use for session log files
LogRecv boolean Yes Log recieved faxes as RECV records in xferfaxlog
LogSend boolean Yes Log sent faxes as SEND records in xferfaxlog
LocalIdentifier string - local station identification string
LongDistancePrefix string - dialing prefix for long distance calls
MaxBatchJobs¹ integer 64 max jobs in a batch
MaxConcurrentCalls¹ integer 1 max concurrent jobs to process for a destination
MaxConcurrentPreps¹ integer 1 maximum number of simultaneous job preparations
MaxConsecutiveBadLines integer 5 max consecutive bad rows for OK page quality
MaxDials¹ integer 12 max phone calls to make to transmit a job
MaxProxyJobs¹ integer 64 max number of concurrent proxy jobs
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
MaxTraversal¹ integer 256 max traversal into queue for batching
MaxTries¹ integer 3 max attempts to transmit a job
MinAcceptedLineCount integer 10 min number of rows for OK page quality
ModemGroup¹ 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
ModemRingResponse string - command to respond after hearing RING
ModemRingsBeforeResponse integer 0 the number of rings before ModemRingResponse
NoAnswerVoice boolean false disable the answering of voice-indicated calls
NoCarrierRetrys integer - Deprecated - See JobRetryNoCarrier
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
PollLockPokeModem boolean false check on modem every time the lock is polled
PollLockWait² integer 30 polling interval for lockfile presence/removal (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)
PriorityScheduling boolean see below use available priority job scheduling mechanism
PS2FaxCmd¹ string bin/ps2fax POSTSCRIPT RIP command script
QualifyCID obsolete - See DynamicConfig and RejectCall for rejecting calls
QualifyPWD string - file of PWD patterns for qualifying senders
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
RejectCall boolean false Reject the current call
RingData string - distinctive ring data call identifier
RingExtended string - extended ring message identifier
RingFax string - distinctive ring fax call identifier
RingsBeforeAnswer integer 0 rings to wait before answering phone
RingTimeout integer 6000 timeout in ms after RING before reset
RingVoice string - distinctive ring voice call identifier
RTNHandlingMethod string Retransmit-Ignore RTN signal handling method
SaveUnconfirmedPages boolean true save or delete unconfirmed pages
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 0xFFF send and receive session tracing
ShareCallFailures² string none which call failures should be shared
SpeakerVolume string Quiet volume level for modem speaker
StaggerCalls¹ integer 0 time to delay between starting outbound calls
TagLineFont string - tag line font filename
TagLineFormat string see below tag line format string
TagLineLocale string see below tag line format locale
TIFF2FaxCmd² string bin/tiff2fax TIFF converter command script
TimeOfDay¹ string Any default time-of-day restrictions
TSIRecvdCmd string - script executed after TSI receipt, can drop calls
Use2D¹ boolean Yes restrict/permit use of 2D-encoded fax data
UseJobTSI boolean No use job-specified TSI instead of LocalIdentifier
UseJobTagLine boolean Yes Allow use of job-specified Tagline instead of TagLineFormat
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
ModemAnswerAgainCmd string <delay:50>ATA command for answer recovery
ModemAnswerDataBeginCmd string - command for start of answered data call
ModemAnswerDataCmd string ATA command for answering data call
ModemAnswerDialCmd string ATA command for answering dialed 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 10 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)
ModemDoPhaseCDebug boolean No query modem responses during Phase C transmit
ModemDTRDropDelay integer 75 delay (ms) between DTR OFF and DTR ON
ModemEchoOffCmd string ATE0 command for disabling command echo
ModemFlowControl string XONXOFF 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
ModemNoAutoAnswerCmdDelay integer 0 time, in ms, to pause after a 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)
ModemRaiseATCommands boolean Yes raise AT commands in configuration to upper-case
ModemRate integer 19200 baud rate to use for DCE-DTE communication
ModemReadyCmds string - additional final commands when resetting modem
ModemRecvFillOrder string see below bit order for received facsimile data
ModemRecvSuccessCmd string - command to send after a successful reception
ModemResetCmds string - additional commands when resetting modem
ModemResetDelay integer 2600 delay (ms) after placing DTR ON
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
ModemSetOriginCmd string - command to set call origin information
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
ModemSoftResetCmdDelay integer 3000 time, in ms, to pause after a soft reset
ModemSoftRTFCC boolean Yes enable software-driven real-time fax compression conversion
ModemType string see below 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
Class1Cmd string AT+FCLASS=1.0 Class 1.0: command to enter class 1
Class1AdaptRecvCmd string - Class 1/1.0: command for adaptive reception support
Class1ColorJPEGSupport boolean No Class 1/1.0: to enable color JPEG fax support
Class1EnableV34Cmd string - Class 1/1.0: command to enable V.34-fax support
Class1ECMCheckFrameLength boolean No Class 1/1.0: require complete ECM frame lengths
Class1ECMSupport boolean Yes Class 1/1.0: enable T.30-A ECM support
Class1PersistentECM boolean Yes Class 1/1.0: to continue to correct while in ECM
Class1ECMFrameSize integer 256 Class 1/1.0: image frame size in ECM protocol
Class1ExtendedRes boolean - Class 1/1.0: enable extended resolution support
Class1HasRHConnectBug boolean No Class 1/1.0: modem can report CONNECT incorrectly
Class1HFLOCmd string - Class 1/1.0: command to set hardware flow control
Class1FrameOverhead integer 4 Class 1/1.0: extra bytes in a received HDLC frame
Class1GreyJPEGSupport boolean No Class 1/1.0: to enable grey JPEG fax support
Class1HookSensitivity integer 0 Class 1/1.0: times to ignore on-hook detection
Class1JBIGSupport string see below Class 1/1.0: to enable monochrome JBIG fax support
Class1MRSupport boolean Yes Class 1/1.0: enable 2-D MR support
Class1MMRSupport boolean Yes Class 1/1.0: enable 2-D MMR support
Class1NFLOCmd string - Class 1/1.0: command to set no flow control
Class1PageLengthSupport integer 7 Class 1/1.0: coded value for modem page length support
Class1PageWidthSupport integer 7 Class 1/1.0: coded value for modem page width support
Class1RecvAbortOK integer 200 Class 1/1.0: max wait (ms) for ``OK'' after recv abort
Class1RecvIdentTimer integer 40000 Class 1/1.0: max wait (ms) for initial ident frame
Class1RestrictPoorDestinations¹ integer 0Class 1/1.0: restrict features for destinations with poor quality
Class1RestrictPoorSenders integer 0 Class 1/1.0: restrict features for senders with poor quality
Class1RMPersistence integer 2 Class 1/1.0: times to attempt high-speed carrier recv
Class1SFLOCmd string - Class 1/1.0: command to set software flow control
Class1PPMWaitCmd string AT+FTS=7 Class 1/1.0: command to stop and wait before PPM
Class1ResponseWaitCmd string - Class 1/1.0: command to wait before TCF response
Class1Resolutions integer 0x7F Class 1/1.0: bitmap of supported resolutions
Class1RMQueryCmd string AT+FRM=? Class 1/1.0: command to query modem data reception rates
Class1TCFWaitCmd string AT+FTS=7 Class 1/1.0: command to stop and wait before TCF
Class1TMQueryCmd string AT+FTM=? Class 1/1.0: command to query modem data transmission rates
Class1EOPWaitCmd string AT+FTS=9 Class 1/1.0: command to stop and wait before EOP
Class1ModemHasDLEBug boolean No Class 1/1.0: modem fails to double DLE in V.21
Class1MsgRecvHackCmd string "" Class 1/1.0: command to avoid +FCERROR before image data
Class1SSLFaxCert string etc/ssl.pem Class 1/1.0: PEM certificate file for SSL Fax
Class1SSLFaxClientTimeout integer 5000 Class 1/1.0: timeout waiting for client connection
Class1SSLFaxInfo string - Class 1/1.0: hostname and port number for SSL Fax
Class1SSLFaxSupport boolean Yes Class 1/1.0: support for SSL Fax
Class1SSLFaxServerTimeout integer 2000 Class 1/1.0: timeout waiting for server connection
Class1TCFRecvHackCmd string "" Class 1/1.0: command to avoid +FCERROR before TCF
Class1TCFMaxNonZero integer 10 Class 1/1.0: max% of non-zero data in good TCF
Class1TCFMinRun integer 1000 Class 1/1.0: minimum zero run in good TCF
Class1TCFMinRunECMMod integer 2 Class 1/1.0: modify minimum zero run in ECM by this factor
Class1TCFRecvTimeout integer 4500 Class 1/1.0: max wait (ms) for TCF
Class1TMConnectDelay integer 0 Class 1/1.0: delay between +FTM CONNECT and data transmission
Class1SwitchingCmd string AT+FRS=7 Class 1/1.0: command to ensure silence after HDLC reception
Class1ValidateV21Frames boolean No Class 1/1.0: check FCS against received frames
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
Class2APCmd string AT+FAP Class 2: enable support for sending and receiving SUB, SEP, and PWD frames
Class2APQueryCmd string AT+FAP=? Class 2: query capabilities for sending and receiving SUB, SEP, and PWD frames
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
Class2DisableV17Cmd string - Class 2: command to disable V.17 support
Class2DISCmd string AT+FDIS Class 2: command to set session parameters
Class2DDISCmd string - Class 2: command to set session parameters before dialing
Class2ECMType string ``2'' Class 2: ECM specification type to follow
Class2HexNSF boolean Yes Class 2: parse NSF strings as hex values
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
Class2PACmd string AT+FPA Class 2: set polling address string
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
Class2PWCmd string AT+FPW Class 2: set password string
Class2RecvDataTrigger string ``\21'' Class 2: character to send to trigger recv
Class2RELCmd string - Class 2: command to enable byte-aligned EOL codes
Class2SACmd string AT+FSA Class 2: set destination subaddress string
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
Class2UseLineCount boolean No Class 2: use the line count from the firmware decoder
Class2UseHex boolean No Class 2: parse capabilities strings as hex values
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
Class2APCmd string AT+FAP Class 2.0: enable support for sending and receiving SUB, SEP, and PWD frames
Class2APQueryCmd string AT+FAP=? Class 2.0: query capabilities for sending and receiving SUB, SEP, and PWD frames
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
Class2CQQueryCmd string AT+FCQ=? Class 2.0: command to query modem copy quality capabilities
Class2DCCCmd string AT+FCC Class 2.0: command to set modem capabilities
Class2DCCQueryCmd string AT+FCC=? Class 2.0: command to query modem capabilities
Class2DisableV17Cmd string - Class 2.0: command to disable V.17 support
Class2DisableV34Cmd string - Class 2.0: command to disable V.34 support
Class2DISCmd string AT+FIS Class 2.0: command to set session parameters
Class2ECMType string ``2.0'' Class 2.0: ECM specification type to follow
Class2HexNSF boolean Yes Class 2.0: parse NSF strings as hex values
Class2HFLOCmd string AT+FLO=2 Class 2.0: command to set hardware flow control
Class2JBIGSupport string see below Class 2.0: to enable monochrome JBIG fax support
Class2JPEGSupport boolean No Class 2.0: use modem JPEG support
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
Class2PACmd string AT+FPA Class 2.0: set polling address string
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
Class2PWCmd string AT+FPW Class 2.0: set password string
Class2PTSCmd string AT+FPS Class 2.0: command to set received page status
Class2PTSQueryCmd string AT+FPS? Class 2.0: command to query 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
Class2RTFCC boolean No Class 2.0: enable real-time fax compression conversion
Class2SACmd string AT+FSA Class 2.0: set destination subaddress string
Class2SendRTC boolean No Class 2.0: append RTC to page data on transmit
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
Class2UseLineCount boolean No Class 2.0: use the line count from the firmware decoder
Class2UseHex boolean No Class 2.0: parse capabilities strings as hex values
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
operation of the fax server.
- AdaptiveAnswer
-
Control whether or not an adaptive answering
strategy is used whereby an incoming call is
answered in multiple ways according to the list specified in the
AnswerRotary
parameter.
For example, if adaptive answering is enabled and
AnswerRotary
specifies ``fax data'', then an incoming call will
first be answered as fax using
ModemAnswerFaxCmd
and then, if that fails, as data using
ModemAnswerDataCmd.
If the adaptive answer strategy is not enabled, then calls
are answered using the appropriate
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 subsequent
answer for data be done before the caller times out and hangs
up the telephone
(for this reason
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.
- AdminGroup
-
Tells PAM what user group is allowed to administer the fax server.
Only useful if the server is compiled with PAM enabled.
- AllowIgnoreModemBusy¹
-
Whether or not to honor job requests to ignore modem busy status when
allocating jobs to a modem. The intended use for this feature is to
allow configurations whereby a
DynamicConfig
script can send a fax to an incoming caller (contrary to T.30 protocol
for sending or polling).
- 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 successfully, 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
AnswerRotary
is ``fax data'',
then the calls will initially 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 unsuccessful
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 successful incoming phone call.
List indices are numbered starting at zero.
For example, if
AnswerRotary
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
DialStringRules
below.)
- AuditHook¹
-
Specifies a program command and an interest specification indicating which events as
described in
faxwatch(8C)
should trigger the execution of the program. For example, this configuration:
AuditHook: "bin/hook: J*S*M*R*"
would cause bin/hook to be executed upon every event. The arguments passed to the
hook program are respectively
<class>,
<mask>,
<id>,
and optionally
[info]
where...
<class> = JOB | SEND | MODEM | RECV
<mask> = the specific event
<id> = id of the job/modem with which the event is associated
[info] = additional information
- BadPageHandlingMethod
-
(Class 1/1.0 only) Specifies how to react to a bad page received from the remote sender:
one of ``RTN'', ``DCN'', or ``RTN-SAVE''.
If a page is received in non-ECM mode with unacceptable quality
according to
PercentGoodLines
or
MaxConseutiveBadLines
then it can be somewhat difficult to inform the sender of the problem.
Historically, HylaFAX has assumed that signalling RTN to the sender will
accomplish this. However, some senders are incapable of retransmitting
pages, and to reduce burden they treat an RTN signal as a receipt
confirmation and proceed to the next page without notifying the sending
user of the potential problem in readability on the receive-end. (The
assumption there being that the receiving user will notify the sending
user if there actually is a readability problem.)
A setting of ``RTN'' is the historic behavior and assumes that
an RTN signal will be enough to get the sender to retransmit or be
otherwise informed of a potential readability problem on the receive-end.
The previously-received page data is marked to be overwritten by the next page
data received from the sender.
A setting of ``DCN'' tells HylaFAX to transmit a DCN signal in
response to the post-page message and should trigger a call abortion by
the sender. This should clearly indicate a problem in page readability
to the sender, although the receipt of any following pages in a later
call cannot be guaranteed.
A setting of ``RTN-SAVE'' more closely approximates the behavior
of other fax receivers (especially fax machines). It causes HylaFAX to
send the RTN signal but it saves the previously received page data and places
the next transmitted page data in another page. This is the default
setting. However, this could result in multiple copies of the same page
image being saved in the same file - if the sender does indeed retransmit
the unacceptable pages during the same call.
- BatchLogs¹
-
When sending or receiving multiple documents (denoted by EOM), this
value determines if the session logs span the entire batch or, if set
to no, only contain a single document.
- CallIDPattern
-
A string that identifies the caller's identity in any call
identification messages provided by the modem (such as Caller*ID or DNIS/DID).
The specified string is compared against any
unrecognized status messages received from the modem before
ModemAnswerCmd
is sent to the modem.
If there is a match, then the remainder
of the message is returned as
CallIDn
where n corresponds to the n'th instance that this
CallIDPattern
is from the top in the modem configuration file.
For example, for the ZyXEL U-1496 this parameter would be set to
CallIDPattern: ``CALLER NAME: '' (note the trailing space).
If more than one message matches between instances of "RING" messages, then the message remainders are
concatenated.
The special
CallID
value of "SHIELDED_DTMF" is used in conjunction with
ModemRingResponse
and
CallIDAnswerLength.
After executing
ModemRingResponse,
HylaFAX will expect
DTMF data (usually DLE-shielded) for
CallIDn
until
CallIDAnswerLength
is reached. Note that if the modem is in voice mode to hear these
DTMF digits, then it must be returned to fax mode in the
ModemAnswerCmd.
In order to prevent this feature from losing incoming fax calls, if
fax sender CNG is detected while waiting for DTMF or if ten seconds
elapse without sufficient DTMF then the remaining expected digits
will be populated by whitespace, triggering fax answering.
For example, the following settings will cause HylaFAX to enter
voice mode and go off-hook when a RING is detected. It will then
expect four DTMF digits (presumably for routing), and then it will
pause for 100 ms before returning to fax mode and answering the call.
ModemRingResponse: AT+FCLASS=8;H1
CallIDPattern: SHIELDED_DTMF
CallIDAnswerLength: 4
ModemAnswerCmd: <delay:100>AT+FCLASS=1;A
For modems that do not support AT+FCLASS=8 (such as some USR modems) this
may be an appropriate equivalent:
ModemRingResponse: "AT#CLS=8\nAT#VLS=4\nATA"
CallIDPattern: SHIELDED_DTMF
CallIDAnswerLength: 4
ModemAnswerCmd: "<delay:100>AT+FCLASS=1\nATA"
Multiple entries of
CallIDPattern
are used together in one modem configuration file in order to capture multiple
CallID
responses. For example, the following settings would capture "NDID" responses
from the modem as CallID1, "NMBR" responses from the modem as CallID2, "NAME"
responses as CallID3, and it would trigger
ModemAnswerCmd
whenever CallID1 or CallID2 were longer than 7 or 10 characters, respectively.
CallIDPattern: "NDID="
CallIDAnswerLength: 7
CallIDPattern: "NMBR="
CallIDAnswerLength: 10
CallIDPattern: "NAME="
Note that this example is only given as an example, and probably would cause unexpected
results. Because pattern-matching ends when
ModemAnswerCmd
is sent to the modem, if "NDID", "NMBR", and "NAME" responses came from the modem in
that order, and the "NDID" response was at least 7 characters long, then
ModemAnswerCmd
would be sent to the modem immediately following the "NDID" response, and the "NMBR" and
"NAME" responses would be ignored. Generally only one
CallIDAnswerLength
item should be in a modem configuration file.
Call identification data is usually only sent once by the telco or PBX, and the timing of
its arrival varies upon the telco or PBX and the type of line. If HylaFAX is configured
to answer via
RingsBeforeAnswer
prior to the arrival of the data, then all CallID values will be null. For example, on US
analog lines, caller-ID data is usually sent between RINGs 1 and 2. In this situation,
RingsBeforeAnswer
should be set to ``2'' or greater.
- CallIDAnswerLength
-
An integer indicating the minimum number of characters in a
CallID
matching the previous
CallIDPattern
to be received when
ModemAnswerCmd
is sent to the modem irrespective of any
RingsBeforeAnswer
value greater than zero. This allows the answering of calls
which deliver CID/DID data but not RINGs.
For example,
CallIDAnswerLength: ``7''
would cause the call to be answered
when
CallID2
reached a length of seven digits.
A value of zero for
CallIDAnswerLength
disables this feature.
- CallIDDisplay
-
Whether or not to display the
CallIDPattern
match in the modem status line.
- CallIDLabel
-
The label to use in the presentation of any
CallIDPattern
match. (For example, when
CallIDDisplay
or
CallIDRecord
indicate to diplay or record the match.)
- CallIDRecord
-
Whether or not to record the
CallIDPattern
match in the received image file.
- CallIDType
-
Identifies the type of indicator in the associated
CallIDPattern
match. The special type ``calling-number'' enables the
faxgetty
process to utilize an associated entry in the info database for
items such as
senderDataSent,
senderDataMissed,
senderHasV17Trouble,
and
senderSkipsV29.
See
hylafax-info(5F).
- 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 canonical phone numbers for dialing (among
other things.)
- 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.
dialrules(5F).
The specified pathname must be relative to the top of the fax server's
spooling area; e.g.
etc/dialrules.
- DistinctiveRings
-
Modern distinctive ring support on most modems indicates the ring cadence
rather than the older style of ``RING1'', ``RING2'', etc. To indicate
the ring cadence,
DRingOn
and
DRingOff
values are presented by the modem to the
faxgetty
process. The modem indicates the entire cadence between ``RING'' indications
Like this:
RING
DROF=40
DRON=8
DROF=4
DRON=8
RING
The corresponding
DistinctiveRings
parameter for this ring cadence would be:
DistinctiveRings: F-8-4-8
where ``F'' tells the
faxgetty
process that the ring cadence is for a facsimile (``V'' for voice
and ``D'' for data), and the other values describe the ring cadence
with leading and ending
DRingOff
values ignored. Multiple ring cadences are indicated by delimiting
them with commas in this fashion:
DistinctiveRings: V-20,F-8-4-8,D-4-2-4-8
- DRingOff
-
A string that identifies the ``off'' value in any distinctive
ring cadence, for example ``DROF=''.
See also
DRingOn
and
DistinctiveRings.
- DRingOn
-
A string that identifies the ``on'' value in any distinctive
ring cadence, for example ``DRON=''.
See also
DRingOff
and
DistinctiveRings.
- DynamicConfig
-
The pathname of the optional program, e.g. ``etc/localid'', that
makes dynamic configuration changes, i.e., to
LocalIdentifier,
based on device ID and call identification. The program is passed those
values as the parameters ($1 = device id, $2 = CallID1, $3 = CallID2, $4 = CallID3, ...),
when answering an incoming call. The program can then
perform local processing as desired to send on standard output the
configuration items to change in a ``parameter:value'' format, i.e.
``LocalIdentifier: +1.800.555.1212''. If there are multiple parameters
to be changed, then each item must be on its own line.
This is commonly used to dynamically alter the local identification
of systems which use DID/DNIS, but it can also be used to allow different
modem configurations for different senders. This program can also set the
RejectCall
options to cause the current call to be rejected instead of answered.
Note that this file must be marked as executable by the faxgetty process.
- EGettyArgs
-
A string that indicates whether or not the server should use an
an external getty application (egetty) to perhaps deduce and possibly handle an incoming call.
If the string value is not null, then it is interpreted
as a set of arguments to pass to egetty.
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).
Any appearance of escaped numbers 1 through 9 (``%1'' through ``%9'') are replaced
by the match to the corresponding
CallIDPattern,
if present.
The ``%'' character can be specified with ``%%''.
If the
EGettyArgs
parameter is not specified in the configuration file or if
the string value is null, then ``extern'' connections will be rejected.
Note that in addition to the specified command line arguments, egetty
is invoked with its standard input, output, and error
descriptors directed to the controlling tty device.
When egetty completes, its exit status is evaluated
and is interpreted to indicate what, if anything, should be done with the call.
An exit status of ``0'' indicates an unknown call type and that the call should
be handled as if egetty had not been used. An exit status
of ``1'' indicates a data connection and that the
getty(8C)
program should be used to handle the call if configured (see
GettyArgs),
otherwise it will assume that the call has been answered and that a data
connection is established and that it should proceed by issuing
ModemAnswerDataBeginCmd
(if configured) to the modem.
An exit status of ``2'' indicates a fax connection is established and that it
should proceed by issuing
ModemAnswerFaxBeginCmd
(if configured) to the modem.
An exit status of ``3'' indicates a voice call and
that the
vgetty
program should be used to handle the call if configured (see
VGettyArgs),
otherwise it will assume that the call has been answered and that a voice
connection is established and that it should proceed by issuing
ModemAnswerVoiceBeginCmd
(if configured) to the modem.
An exit status of ``4'' is considered to be an error condition. The session
will be terminated. An exit status of ``5'' is used to indicate that
egetty handled the call entirely, is not an error condition, and
that the session is to be considered terminated.
Exit status values of ``11'', ``12'', and ``13'' correspond to values ``1'',
``2'', and ``3'' respectively except that values ``11'', ``12'', and ``13''
indicate that the call has not been answered yet with a data, fax, or voice
connection. So if
GettyArgs
is not configured then
ModemAnswerDataCmd
is first issued to the modem for an exit status of ``11'',
ModemAnswerFaxCmd
is first issued to the modem for an exit status of ``12'', and if
VGettyArgs
is not configured then
ModemAnswerVoiceCmd
is first issued to the modem for an exit status of ``13''.
- FAXNumber
-
The phone number associated with the facsimile modem.
This string is used to generate the
Transmitter 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
hylafax-log(5F).
If this phone number is not a fully qualified number
the values of
AreaCode
and
CountryCode
are used to generate the transmitted
CSI
and
TSI.
- Include²
-
Include the specified config file as if it were part of this config file.
- 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.
- JobControlCmd¹
-
The command to invoke to which provides Job Control information for a
job. See
jobcontrol(8C).
- 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 facsimile 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 facsimile 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
JobReq*
parameters.
- JobReqProto
-
The delay in seconds to wait before retrying a facsimile job that
failed because of a fax protocol error.
- JobRetryBusy
-
The number of times to redial a phone number after receiving
a ``BUSY'' result code when the number has not
been successfully dialed before.
- JobRetryDataConn
-
The number of times to redial a phone number after the
dialing attempt failed because a data modem answered the phone when
the number has not been successfully dialed before.
- JobRetryNoAnswer
-
The number of times to redial a phone number after the
dialing attempt failed because of NO ANSWER when
the number has not been successfully dialed before.
- JobRetryNoCarrier
-
The number of times to redial a phone number after the
dialing attempt failed because of NO CARRIER when
the number has not been successfully dialed before.
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 necessary to increase the
value of this parameter to compensate.
It is strongly recommended, however, that this value
not be set to a large number.
- JobRetryOther
-
The number of times to redial a phone number after the
dialing attempt failed for a reason not already covered
by one of the other JobRetry* parameters when
the number has not been successfully dialed before.
- 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).
Any appearance of escaped numbers 1 through 9 (``%1'' through ``%9'') are replaced
by the match to the corresponding
CallIDPattern,
if present.
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 connections 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 program.
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 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 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
informational/debugging messages requested through the
ServerTracing
parameter.
The list of facility names is standardized; it can be found
in the system include file
<syslog.h>;
comparisons are case-insensitive.
- LogCalls
-
Log all incoming calls into xferfaxlog as CALL records. This allows
a quick check of all incoming calls, regardless of fax completion or
not in a unified manner with other fax logs.
- 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 information
such as calling card access codes are logged.
If log files are to be publicly accessible, this
value may be set, for example, to 0644.
See also
chmod(2).
- LogRecv
-
Log all recieved faxes into xferfaxlog as RECV records.
- LogSend
-
Log all sent faxes into xferfaxlog as SEND records.
- LongDistancePrefix²
-
The string to use to place a long distance phone call.
In the United States, this is ``1''.
- MaxConcurrentCalls¹
-
The default value to use for the maximum number of jobs for the
same destination that are processed concurrently.
Thus this parameter defines the maximum number of concurrent phone calls
to the same destination.
Unless all of your fax destinations have multiple fax lines
using the same fax number per destination then
MaxConcurrentCalls
is probably best left as the default of 1 and exceptions should
be accommodated by the
JobControl
mechanism. However, for high-throughput applications the special value of ``0''
may be used; this configuration instructs the server to permit limitless concurrent
calls to the same destination provided that all existing calls to that destination
have connected. In this configuration if a busy signal is encountered for a
concurrent call then the various ``dials'' counters are not incremented, and further
concurrent calls are temporarily stalled.
- MaxConcurrentPreps¹
-
The maximum number of jobs preparations that may be run simultaneously.
This is designed to prevent the scheduler from initiating so many job
preparations that the system resources become constrained in the operations.
- MaxBatchJobs¹
-
The maximum number of jobs to batch together in a single call.
- 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.
Facsimile received with error-correction do not have copy quality
checking performed.
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
JobControl
mechanism. This feature is completely distinct from the identically-named
feature in the client-server communication, and jobs triggering these
limits will be handled differently for each.
See also
MaxTries.
- MaxProxyJobs¹
-
The maximum number of jobs which can be concurrently delivered to a proxy
for transmission. This limit is to prevent proxy use from overwhelming
available system processes.
- MaxRecvPages
-
The maximum number of pages the server will accept in a received
facsimile before it aborts the session.
- 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
JobControl
mechanism.
- MaxSetupAttempts
-
The maximum number of times a HylaFAX server program will attempt
to initialize a modem before considering it ``wedged''.
- MaxTraversal¹
-
The maximum depth into the job queues that the scheduler will traverse
in attempts to batch jobs together in a single call. This is intended
to prevent the scheduler from wasting a lot of CPU in batching attempts
when the job queues get very long (where batching is unlikely to be
useful anyway).
- 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
JobControl
mechanism. This feature is completely distinct from the identically-named
feature in the client-server communication, and jobs triggering these
limits will be handled differently for each.
See also
MaxDials.
- MinAcceptedLineCount
-
The minimum number of received scanlines allowed on an ``OK'' page.
The use of this setting prevents confirmation from being sent for
very short pages.
- ModemGroup¹
-
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>:<definition>'' where
<name>
is the name for the group and
<definition>
is of the syntax ``[<limit>:]<regex>'' where
<limit>
is an optional formatted expression of the limits for this
ModemGroup
and
<regex>
is a regular expression that
faxq(8C)
matches against known modems.
Presently
<limit>
only refers to a number that is the minimum number of modems in
the group that must be left to stay idle (for receiving) after assigning
an active job to the
ModemGroup.
The default for
<limit>
is 0.
Thus for example, the default modem to use for a job,
any,
is defined as ``any:0:.*''.
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.
Priority values are in the range 0 to 255 with lesser values signifying
higher (more desirable) priority.
The HylaFAX scheduler process assigns the highest
priority modem that is ready for use when scheduling an outbound job.
If multiple available modems in a job's selected
ModemGroup
have the same
ModemPriority
value, then the HylaFAX scheduler assigns jobs to them in
a round-robin fashion.
- NoAnswerVoice
-
Whether or not to disable the answering of calls indicated as
voice (e.g. by
DistinctiveRings
).
- NoCarrierRetrys
-
This is mapped onto JobRetryNoCarrier
- ModemReadyState
-
Define the
state
transmitted to the HylaFAX scheduler process each time a modem
is made ready by a
faxgetty
process.
State is one of: ``R'' (ready for use), ``B'' (busy), ``D'' (down), or ``E'' (exempt).
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. The HylaFAX scheduler process will not assign jobs to a modem with a
ModemReadyState
of anything other than ``R''. The differences between ``B'', ``D'', and ``E'' are that
``B'' refers to a temporary condition that will automatically clear in
the passing of time (as if the modem were in-use with receiving a fax); ``D'' refers
to a condition that will not automatically clear (such as a wedged condition);
and ``E'' refers to a permanent condition as configured by the administrator (as for a
receive-only modem). If a user submits a job to a specific modem that has a
ModemReadyState
of ``B'' or ``D'' then the job will wait in the queue until the modem is made available
or until the job times out. In contrast, jobs submitted to a specific modem with a
ModemReadyState
of ``E'' will be rejected outright. Exempt modems should be removed from any
ModemGroup
to which they belong (i.e. ``any'').
- ModemRingResponse
-
This can be used
to cause the command defined by
ModemRingResponse
to be sent to the modem after hearing at least
ModemRingsBeforeResponse
RINGs in order to receive DID-DTMF data, for example.
- ModemRingsBeforeResponse
-
This defines the minimum number of RINGs that must be heard before
ModemRingResponse
is first sent to the modem.
- 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.
- 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.
Facsimile received with error-correction do not have copy quality
checking performed.
See also
MaxConsecutiveBadLines.
- PollLockPokeModem
-
When polling for the presence/removal of a
UUCP
lockfile, also test to make sure the modem is still reachable.
This is useful for scenarios where the modem is apt to become
disconnected while the modem is idle, such as an external modem
that may lose power, where the administrator wants notification
of this (as a ``wedged'' condition).
- PollLockWait
-
When polling for the presence/removal of a
UUCP
lockfile, the time (in seconds) to wait between checks.
Lockfile polling occurs to ensure the fax server doesn't collide
with another process using the modem.
- 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.
- PriorityScheduling
-
Indicates whether the HylaFAX scheduler should utilize available
priority job scheduling mechanisms to enhance realtime execution,
particularly with Class 1 configurations on older or slower
systems.
Currently
PriorityScheduling
is available for IRIX, SVR/4, HP-UX, and POSIX-compliant
(i.e. Linux) operating systems. The default value
varies to maintain traditional HylaFAX behavior. On IRIX,
SVR/4, and HP-UX systems where the configure script detects one of the
functions schedctl(), priocntl() or rtprio() the default is true.
The only other supported priority mechanism
is POSIX sched_setscheduler(), which is used on Linux, OpenServer and possibly
other systems. On such systems, as well as on systems where no priority
scheduling mechanism exists, the default is false."
- PS2FaxCmd¹
-
The command to invoke to convert a POSTSCRIPT document submitted
for transmission to
TIFF/F,
suitable for transmission;
see
ps2fax(8C).
- QualifyPWD
-
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
QualifyPWD
is non-null, then only messages from facsimile machines identified
in the file specified by the string (typically etc/passwd)
will be accepted; similar to
QualifyTSI.
- 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 performed on the host.
(When copy quality checking is not done by the server, for example when
error correction protocol is used, the received
facsimile data is written exactly as it is received from the modem.)
The format may be one: ``1-D MH'', ``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).
- RejectCall
-
If this is set to true, the current call will not be answered, and will
be rejected. This option has no effect if set in the configuration file,
but when set by the
DynamicConfig
program, controls the current call. This options supersedes the obsolete
QualifyCID
option.
- 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
distinctive ring service.
See also
RingFax
and
RingVoice.
- RingExtended
-
An identifier which matches the initial portion of an extended RING
message sent by the modem to relay CID and/or DNIS data instead of
sending it formatted on separate lines.
- 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).
- RingTimeout
-
If a ring is heard and the call is not answered, the time in
ms to wait before reinitializing the modem for the next call.
- 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
distinctive ring service.
See also
RingData
and
RingFax.
- RTNHandlingMethod
-
Specifies how to react to an RTN signal received from the remote:
one of ``Retransmit'', ``Giveup'',``Ignore'',
or ``Retransmit-Ignore''.
``Retransmit'' assumes that the page is not received successfully.
HylaFAX will make up to two additional attempts to send the page,
decreasing signalling rate and retraining. If RTN continues,
up to 2 additional calls will be placed. The downside is that if the remote
always responds with RTN, the page will be sent 9 times and no following
pages will be sent. Many fax machines will not behave this way, although
T.30 specification seems clear that this is the intent of the RTN signal.
Some fax machines will interpret RTN as meaning to not send the same data
again. That is because RTN may indicate problems with flow control,
incorrectly encoded T.4 data, or some incompatibility other than line noise.
Fax machines that interpret RTN this way will disconnect and require a manual
retransmission. This ``over and out'' behavior can be activated by the
``Giveup'' value. The advantage to this behavior is that the same
page of image data will not be sent multiple times, but the downside is that
the following pages will not be sent.
``Ignore'' is similar to ``Giveup'' in that it makes the
assumption the data cannot be automatically accepted by the receiver. However,
rather than disconnecting the page of image data is abandoned and processing moves
on to the next. The remote is left to decide what to do with the unacceptable
page of image data. The downside to this behavior, is that the remote may or may
not have kept the page, depending on its interpretation of the RTN signal - but
it does allow us to continue on to the next page.
``Retransmit-Ignore'' is a combination of ``Retransmit'' and
``Ignore''. The page of image data is retransmitted up to two additional
times, but rather than disconnecting after a third RTN signal for the same page,
processing then continues on to the next page. This approach is an effort to
satisfy both interpretations of an RTN signal. It allows the receiver to hopefully
receive a better copy of the image data while not failing to send subsequent pages.
If the receiver saves or prints a copy of pages for which it transmits RTN, then it
could save or print up to three copies of every page.
- SaveUnconfirmedPages
-
Whether or not to save a received facsimile image page if the sender disconnects
without sending the post-page message, without hearing our message confirmation,
without retraining as requested, or otherwise breaks fax protocol following such
pages for which the sender should not have a ``receipt confirmation''.
- 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 commands 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
262144 (0x40000) TIFF library any messages produced by the TIFF library
524288 (0x80000) ECM Frames binary T.30-A HDLC ECM frames
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
configuration parameter.
Note that
syslogd(8C)
must be configured to capture
facility.info,
facility.debug,
facility.warning,
and
facility.err
messages.
See
hylafax-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
hylafax-log(5F)
for more information.
- ShareCallFailures²
-
A string which indicates the types of call failures that should be shared
to blocked jobs (in the scheduler
config
file) or to batched jobs (in the per-device configuration files). The
purpose of this configuration is to prevent a large set of jobs to the
same destination from stalling for long periods of time in the queue
and repeatedly initiating failed delivery attempts due to call-related
errors (such as an incorrectly-entered destination number). Jobs which
are batched or blocked (depending on which configuration file is used)
will receive the same failure indication and ``dials'' increment as the
job which was active and running at the time (or lead the batch).
ShareCallFailures
may contain the following key words in any order with any deliniation:
Key Word Meaning
busy Busy signal detected
nocarrier No carrier detected
noanswer No answer from remote
nodialtone No local dialtone
Alternatively,
ShareCallFailures
may be set exactly to ``always'' which makes it apply to all of the
call failure types listed above and is synonymous with
``busy nocarrier noanswer nodialtone''.
- 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
ModemSetVolumeCmd.
- StaggerCalls¹
-
The time, in seconds, to delay between initiating outbound job calls. If HylaFAX
is using a single phone line shared for both sending and receiving of faxes using a
StaggerCalls
setting of, for example, 300 would ensure that outbound calls be made in succession
no more frequently than every 5 minutes, thus allowing time between jobs for incoming
calls to be received.
- 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.
Filenames are specified relative to the root of the spooling area;
e.g. etc/lutRS18.pcf or etc/LiberationSans-25.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.
Note that the etc/lutRS18.pcf
TagLineFont
that has historically been the default with HylaFAX does not have glyphs
available beyond basic ASCII, and to show non-ASCII characters
a different file must be used that has characters matching those
characters found in
TagLineFormat
as decoded by the
TagLineLocale
setting. For this reason, the etc/LiberationSans-25.pcf is now considered the
default as it has unicode support for Latin, Greek, and Cyrillic characters.
- 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)
(which use a single ``%'')
may be used as well as the following server-implemented codes:
Escape Description
%%a destination subaddress
%%c destination company name
%%C sender's company name
%%d destination phone number
%%g sender's geographic location
%%G destination geographic location
%%i job identifier
%%I group identifier
%%j user-specified job tag
%%l job TSI or LocalIdentifier or canonicalized FAXNumber
%%m sender's electronic mail address
%%n canonicalized FAXNumber
%%p current page number of session
%%P current page number of job
%%r receiver's name
%%s sender's name
%%S subject
%%t total pages in session
%%T total pages in job
%%v sender's voice number
%%V destination voice number
%%% ``%''
There are numerous date and time format options available through
strftime(3C).
Users are encouraged to refer to its documentation for elaboration.
Used by default, ``%c'' is defined as
``The preferred date and time representation for the current locale.''
-
In addition, the format string may indicate that
text is to be broken into multiple equal-sized
fields
by separating text with ``|'' characters. If the first character in
the field is a ``{'' then the text is left-aligned; if the first character in
the field is a ``}'' then the text is right-aligned; otherwise, the text is
centered in the field.
For example, ``{a|b|}c'' would cause the tag line to be broken up into
three equal-sized areas with the string ``a'' left-aligned in the first region,
``b'' centered in the second region, and ``c'' right-aligned in the third region.
The default tag line format string is ``From %%n|%c|Page %%P of %%T''.
The differences between the %%p or %%P and the %%t or %%T options are noticed
when a fax job is retried after an incomplete attempt and only the previously
unsent pages are then queued in a successive session.
See also
TagLineFont.
- TagLineLocale
-
The locale setting for handling
TagLineFormat,
for example, ``en_US.UTF-8''. If
TagLineFormat
is encoded via UTF-8 then the correct setting of
TagLineLocale
is requisite for proper decoding by the parser. By
default the environment settings are used.
- TIFF2FaxCmd²
-
The command to invoke to convert a TIFF submitted
for transmission to
TIFF/F,
suitable for transmission; see
tiff2fax(8C).
In the scheduler configuration file this is used in
outbound job preparation. In the per-device configuration
files this is used in conjunction with RTFCC features for
comparing relative data sizes between different formats.
- 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
JobControl
mechanism.
- TSIRecvdCmd
-
The pathname of the optional program, e.g. ``etc/tsirecvd'', that similar
to
DynamicConfig
can set the
RejectCall
option to cause the current call to be rejected instead of continued.
TSIRecvdCmd
should provide a more capable mechanism than
QualifyTSI
for those wishing to screen calls based on received TSI.
Note that this file must be marked as executable by the faxgetty process.
Note also that any configuration modifications made by the
TSIRecvdCmd
script other than
RejectCall
is unsupported and has undefined results.
- Use2D¹
-
Control the use of 2D-encoded data for transmitted facsimile.
- UseJobTagLine
-
Allow the use of the job-specified tagline instead of the configured
TaglineFormat
- 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
lockfiles 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 conversion is useful for systems such as
SCO
where the convention is to name devices with upper-case letters, 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).
Any appearance of escaped numbers 1 through 9 (``%1'' through ``%9'') are replaced
by the match to the corresponding
CallIDPattern,
if present.
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 specified 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 specific
to the setup and operation of the modem.
All
commands
must be specified exactly as they are to be transmitted 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+FBADMUL=20\nAT+FBADLIN=10''.
Command strings sent to the modem may include command
escapes that force the host to alter the
DTE-DCE
communication 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 following 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)
<play:C> play the etc/playC.raw audio file (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
behavior 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
VCON voice connection indicator
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).
The ``<play:C>'' escape can be used to play a raw audio file with
a voice modem. The files are named etc/playC.raw where ``C'' is
any character. This feature can be used, for example, to play a brief
audio message after picking up the line but before answering. A
configuration example may be:
ModemRingResponse: "AT+FCLASS=8;H1\nAT+VSM=131\nAT+VLS=1\nAT+VTX\n<waitfor:CONNECT><play:1><waitfor:OK>AT+VTS=[933,,150]"
ModemAnswerCmd: "<delay:100>AT+FCLASS=1;A"
CallIDPattern: SHIELDED_DTMF
CallIDAnswerLength: 4
In this example using an IS-101 voice-compliant modem, a RING indication from
the modem will cause the modem to be placed in voice mode, set ulaw audio
compression, and via the connected phone line play back the etc/play1.raw
audio file, which may say, "After the tone enter a four-digit extension, then
start the fax." Following the message a tone is played.
- ModemAnswerCmd
-
The command to answer the phone.
If possible, this command should generate a result string that
identifies whether the incoming call is from a facsimile, 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'' column 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.
- ModemAnswerAgainCmd
-
The command to answer the phone if
ModemAnswerCmd
appears to have been ignored. Typically this should include a delay escape
in order to set the timing of the answer away from the ring in case the
modem is incapable of answering so closely following the ring.
- ModemAnswerDataBeginCmd
-
The command to send to the modem once a data
connection 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 specified or is null, then the value of
ModemAnswerCmd
is used instead.
See also
AdaptiveAnswer
and
AnswerRotary.
- ModemAnswerDialCmd
-
The command to explicitly answer the phone for a dialed 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.
- 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
AdaptiveAnswer
and
AnswerRotary.
- ModemAnswerVoiceBeginCmd
-
The command to send to the modem once a voice
connection 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
ModemAnswerCmd.
Note that you may want to shorten this value when using the
server-based adaptive answer strategy; 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 is only needed for hosts and modems (such as USRs) where
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 ``,'' modifier 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.
The command may include a single ``%d'' where the origin number
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.
- ModemDoPhaseCDebug
-
Whether or not to query the modem for responses during image data
transmission. Normally the modem should not produce any responses
during Phase C data transmission. However, in some debugging
scenarios (i.e. some Class 2.1 modems may show debugging information)
it may be appropriate to query the modem for responses during
the data transmission.
- ModemDTRDropDelay
-
The time, in milliseconds, to pause between placing
DTR
OFF and
DTR
ON while resetting a modem. This value should be at
least equal to the time-value of the analogous S-register,
usually S25. This so-called DTR drop can be bypassed
entirely by setting
ModemDTRDropDelay
to 0, but this should likely only be used for debugging purposes.
- 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
communication.
However, beware that many modems only support software
flow control when sending or receiving facsimile.
-
Note that modems usually support software flow control even
if they have no explicit AT-command to activate it; in this case
it is switched on when the modem enters fax mode, having
AT+FCLASS=... from DTE.
- 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-significant-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 control between
DTE
and
DCE.
- ModemMinSpeed
-
The minimum acceptable signalling rate for transmitting facsimile
page data.
Possible values are: 2400, 4800, 7200, 9600, 12200, and 14400.
- ModemMfrQueryCmd
-
The command to send to the modem to get the manufacturer
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, or
to ``ATI3'' for Class 1 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, or
to ``ATI0'' for Class 1 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.
- ModemNoAutoAnswerCmdDelay
-
The time, in milliseconds, to pause after receiving the OK following
ModemNoAutoAnswerCmd
before any further commands are sent to the modem. All input from
the modem is flushed after pausing.
- 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).
- ModemRaiseATCommands
-
Indicates whether or not all configuration AT commands for the modem should
be raised to upper-case automatically. The standard is for all upper-case
to be used in AT commands, and indeed, some rare modems have been known
to malfunction with lower-case commands. However, sometimes an administrator
may want to use lower-case commands in a rare condition such as to work
around modem blacklisting of dialed numbers.
- 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 available rates on your system.
- ModemReadyCmds
-
A string of commands to issue to the modem during reception initialization.
This string is sent to the modem
after
the standard set of configuration commands required by the fax server. This
is done, for example, to un-busy a DID line so that calls can come through.
- 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-significant-bit (as in the
CCITT
specification) or
MSB2LSB
when bits are ordered in the reverse direction.
According to the various specifications all modems should return
data in
LSB2MSB
order.
However most Class 2 modems (except maybe only Multitech) use
MSB2LSB
for compatibility with modems that were built with
Rockwell hardware/firmware that included a bug
that was too widespread to correct.
-
If this parameter is not set, then it is autodetected and set to
LSB2MSB
for Class 1 and Class 2.0 modems and
MSB2LSB
for non-Multitech Class 2 modems. However this may be wrong for
your modem, so you will have to specify this parameter explicitly.
- ModemRecvSuccessCmd
-
A string of commands to issue to the modem after a successful
receive session before the call is disconnected.
- 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 commands should not include normal
reset commands that are specified through other parameters.
For example, 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 explicitly.
- ModemResetDelay
-
The time, in milliseconds, to pause after setting
DTR
ON, while resetting a modem.
DTR
ON does not respond with ``OK'', so this parameter should
be long enough to allow the modem time to be ready for
ModemSoftResetCmd
successively.
- 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 parameter 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.
- ModemSetOriginCmd
-
The command to use to set the call origin information before placing
a call. The command may include a single ``%d'' where the job request
``faxnumber'' string is to be substituted. The command may also include
a single ``%s'' where the job request ``faxname'' string is to be
subsituted.
- 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 ATL1M1 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 necessary
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 ensure 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 ensure that modems
are not left in a ``locked up'' state.
- ModemSoftFlowCmd
-
The command to setup software (XON/XOFF)
flow control between
DTE
and
DCE.
- ModemSoftResetCmd
-
The command to force a soft reset of the modem.
- ModemSoftResetCmdDelay
-
The time, in milliseconds, to pause after receiving the OK following
ModemSoftResetCmd
before any further commands are sent to the modem.
- ModemSoftRTFCC
-
Whether or not to enable software-driven Real-Time Fax Compression Conversion.
RTFCC allows HylaFAX to convert the image compression between MH MR and MMR
formats regardless of how faxq formatted the image file.
Note that when using RTFCC, the
compression format of the file will be ignored, thus the ``-1'', ``-2'',
and ``-3'' options for sendfax, ps2fax, and others will only influence how the
document is prepared by faxq and will not influence the
actual negotiated session parameters.
Class2RTFCC
takes precedence over
ModemSoftRTFCC
and if both are enabled, then software-driven RTFCC will not be performed
in favor of the firmware-driven RTFCC.
- ModemType
-
This parameter must be set to one of: ``Class2'', ``Class2.0'',
``Class1'', or ``Class1.0'';
to indicate that the modem is a Class 2-,
Class 2.0-, Class 1-, or Class 1.0-style modem, respectively.
If this parameter is not set, then HylaFAX detects which classes
are supported by the modem and makes an internal decision on which to use.
Historically this decision chooses Class 2.1 over Class 2.0 over Class 2
over Class 1.0 over Class 1. However, some exceptions are made, for instance,
with US Robotics modems where Class 2.0 support is avoided.
- 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
messages before sending ``CONNECT''.
- ModemWaitTimeCmd
-
The command to set the
number of seconds to wait for a carrier signal
when placing a call or answering 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 understanding 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 contact;
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.
- Class1AdaptRecvCmd
-
The command used to enable adaptive reception support (usually
``AT+FAR=1''). This feature is new in T.31, and many modems
will not support it. This feature may reduce the number of
reception failures due to errors cascading from +FCERROR messages.
- Class1ColorJPEGSupport
-
Whether or not to enable support for T.30-E full-color facsimile
with JPEG compression. Enabling this automatically enables
Class1GreyJPEGSupport.
- Class1EnableV34Cmd
-
The command to enable V.34-fax support with at least the desired
maximum primary channel rate.
- Class1ECMCheckFrameLength
-
Whether or not to require the frame length for ECM data frames to
be complete when checking for frame integrity. Normally this is not
beneficial (and can be problematic for some senders), but in some
cases the frame CRC is not reliable because of modem behavior.
- Class1ECMSupport
-
Whether or not to support T.30-A error correction protocol. Use of
ECM will require 64 kilobytes of free memory per modem in active use.
- Class1PersistentECM
-
Whether or not to continue to retransmit and allow to continue to
receive image data in ECM protocol
which is not accepted as valid after four successive attempts.
- Class1ECMFrameSize
-
The size in bytes of image frames to transmit during ECM protocol.
This setting will also indicate a preference in receive sessions.
The only acceptable values are 64 and 256. A setting of 64 may
be useful on high-load systems and possibly environments with
extremely poor line quality.
- Class1ExtendedRes
-
Whether or not to support resolutions other than normal and fine.
This option has been deprecated by
Class1Resolutions.
- 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).
- Class1GreyJPEGSupport
-
Whether or not to enable support for T.30-E greyscale facsimile
with JPEG compression. This is always enabled if
Class1ColorJPEGSupport
is enabled.
- Class1HookSensitivity
-
The number of times to ignore on-hook detections and merely treat them
as command or modem errors.
- Class1JBIGSupport
-
Whether or not to enable support for T.85 monochrome facsimile
with JBIG compression. Options are ``true'' for support in both
sending and receiving, ``false'' for no support, ``send'' for
support only in sending, and ``receive'' for support only in
receiving. If, during the build process a compatible JBIG library
was found then send support is enabled by default. If, during
the build process the TIFF tools are found to support JBIG then
receive support is enabled by default.
- Class1MRSupport
-
Whether or not to enable support for two-dimensional Modified Read
(MR) image data format compression.
- Class1MMRSupport
-
Whether or not to enable support for two-dimensional Modified Modified Read
(MMR) image data format compression. Note that MMR support requires also
ECM support to be enabled.
- Class1HasRHConnectBug
-
A Class 1 modem should only report CONNECT after AT+FRH=3 when
V.21 HDLC data is detected. However, some modems will incorrectly
report CONNECT after AT+FRH=3 whenever any carrier is present. In
such cases
Class1HasRHConnectBug
should be set to ``true''.
- Class1HFLOCmd
-
The command to setup hardware (RTS/CTS)
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.
- 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.
- Class1PageLengthSupport
-
The coded value for page lengths supported by the modem. The only
correct values and meanings are these: ``1'', A4 page length; ``3'', both
A4 and B4 page length; ``7'', unlimited page length.
- Class1PageWidthSupport
-
The coded value for page widths supported by the modem. The only
correct values and meanings are these: ``1'', A4 page width; ``3'', both
A4 and B4 page width; ``7'', all of A4, B4, and A3 page widths.
- Class1PPMWaitCmd
-
The command used to stop and wait before sending the post page message,
except before sending EOP, when
Class1EOPWaitCmd
is used instead. We must ensure that the high-speed carrier has
stopped completely.
According to T.30, Chapter 5, Note 4, this delay should be 75 +/- 20 ms.
- Class1ResponseWaitCmd
-
The command used to stop and wait after sending TCF, before attempting to
receive a training response from the remote. Set this to ``AT+FTS=1'' if
the modem responds ``OK'' before actually dropping the high-speed TCF carrier.
- Class1Resolutions
-
A bitmapped (bit-or'd) value indicating the resolutions to be supported during facsimile
operation. Individual resolutions follow Table 21/T.32 and are defined as follows:
Bit Description
0 (0x00) R8 x 3.85 l/mm, Normal
1 (0x01) R8 x 7.7 l/mm, Fine
2 (0x02) R8 x 15.4 l/mm, Superfine
4 (0x04) R16 x 15.4 l/mm, Hyperfine
8 (0x08) 200 dpi x 100 l/inch
16 (0x10) 200 dpi x 200 l/inch
32 (0x20) 200 dpi x 400 l/inch
64 (0x40) 300 dpi x 300 l/inch
Thus, a value of 3 would indicate support for normal, fine, and superfine resolutions.
- Class1RMQueryCmd
-
The command to send to the modem to get the list of supported reception bit-rates.
If the parameter begins with a ``!'', then the remainder of the
string is taken to be the modem response and no command is issued to the modem.
- Class1TCFWaitCmd
-
The command used to stop and wait before sending TCF, similar to
Class1PPMWaitCmd.
According to T.30, Chapter 5, Note 3, this delay should be 75 +/- 20 ms.
- Class1TMQueryCmd
-
The command to send to the modem to get the list of supported transmission bit-rates.
If the parameter begins with a ``!'', then the remainder of the
string is taken to be the modem response and no command is issued to the modem.
- Class1EOPWaitCmd
-
The command used to stop and wait before sending the post page message
similar to
Class1PPMWaitCmd.
We allow a different setting in the case of EOP, however, because
empirically some machines may need more time.
- Class1ModemHasDLEBug
-
Used to indicate that the modem does not correctly duplicate DLE characters
in the V.21 communication to the DTE.
- Class1MsgRecvHackCmd
-
If receive failures occur due to +FCERROR just prior to image data
reception, setting
Class1MsgRecvHackCmd
to AT+FRS=1 may help.
- 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
recommendation
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.
- Class1RestrictPoorDestinations¹
-
The threshold of destination audio quality corruption at which resolution support
should be restricted to ``normal'' and color support should be disabled.
This is intended to reduce the amount of image data that will be attempted to
be sent to a destination with poor audio quality, thus reducing the call duration, and
should improve the likelihood of successful session completion.
The threshold is the ratio, expressed as an integer percentage, of data indicated as
corrupt by the destination compared to total data sent to the destination in the
previous three fax sessions. Although
Class1RestrictPoorDestinations
is functional for destinations with a history of both ECM and non-ECM sessions, the
ECM session history is preferred and weighted considerably higher than non-ECM session
history.
- Class1RestrictPoorSenders
-
The threshold of sender audio quality corruption at which resolution support
should be restricted to ``normal'' and color support should be disabled.
This is intended to reduce the amount of image data that a sender with poor
audio quality will attempt to transmit, thus reducing the call duration, and
should improve the likelihood of successful session completion.
The threshold is the ratio, expressed as an integer percentage, of corrupt data
received compared to total data received from the current sender in the
previous three fax sessions.
Class1RestrictPoorSenders
requires that a
CallIDType
of ``calling-number'' be configured in order to match a sender with an entry in
the info database.
- Class1RMPersistence
-
The number of times that an attempt to receive the high-speed data carrier
should be made, resulting in +FCERROR, before the low-speed message carrier
reception is attempted. Some modems are quick to (perhaps incorrectly)
return +FCERROR, and for those modems a value of 2 or 3 should be used.
For modems that are not quick to return +FCERROR, a value of 1 should be used.
Proper tuning of this can provide a type of "adaptive reception control"
for modems that accurately return +FCERROR without supporting
Class1AdaptRecvCmd.
For those modems that support
Class1AdaptRecvCmd,
Class1RMPersistence
should probably not be set at 1, although +FCERROR should almost never occur
with such modems.
-
If the modem does not support the reporting of +FCERROR or adaptive reception
control, then
Class1RMPersistence
should probably be set at 0, which causes the timeout looking for the high-speed
data carrier to be shortened, thus increasing the likelihood of recovery from
any dissynchronization. When
Class1RMPersistence
is other than 0 it is assumed that the +FCERROR reporting or
Class1AdaptRecvCmd
is functional and therefore the timeout looking for the high-speed data carrier
is lengthened.
- Class1SwitchingCmd
-
The command used to ensure that the sending facsimile device has turned
off its modulator (i.e. loss-of-carrier)
as recommended by T.31: Appendix II.1.
- Class1SFLOCmd
-
The command to setup software (XON/XOFF) 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.
- Class1SSLFaxCert
-
The relative path to the PEM certificate file for SSL Fax use. This is
normally created by
faxsetup(8C).
- Class1SSLFaxClientTimeout
-
The time, in milliseconds, that the SSL Fax server should wait for the
client connection to complete before abandoning SSL Fax and proceeding
with a traditional fax operation.
- Class1SSLFaxInfo
-
The formatted hostname and port number for SSL Fax connection for this
modem. (Each modem should use a different port number.) This instructs
the remote system on how to connect through the IP network to this
system as an SSL Fax server. Firewalling and port forwarding should be
carefully addressed prior to using this configuration. The format for
Class1SSLFaxInfo
is ``<hostname>:<port>''. During fax protocol this information will be
made into a URL by prepending ``ssl://<passcode>@'' and communicated as
part of CSA and TSA signals for SSL Fax. (``<passcode>'' is a string
of random characters.)
-
``<hostname>'' may be specified as an IP address; however, in such cases
it should be bracketed, for example: ``[<address>]:<port>''. This
prevents confusion, especially with IPv6 addresses.
-
Either the sender or the receiver (or
both) must signal an SSL Fax URL in order for SSL Fax to operate. If no
Class1SSLFaxInfo
is configured for one system, then it is always dependent on the remote
systems to operate as the SSL Fax server.
- Class1SSLFaxServerTimeout
-
The time, in milliseconds, that the SSL Fax client should wait for the
connection to the server to complete before abandoning SSL Fax and proceeding
with a traditional fax operation. Usually this must be shorter than
3 seconds.
- Class1SSLFaxSupport
-
Whether or not to enable SSL Fax support.
- Class1TCFMaxNonZero
-
The maximum percentage of non-zero data bytes
permitted in an acceptable received
TCF.
Note that this number does not include any leading non-zero data
in the received data.
See also
Class1TCFMinRun.
- 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
and
Class1TCFMinRunECMMod.
- Class1TCFMinRunECMMod
-
The factor by which
Class1TCFMinRun
should be modified in the case of an ECM session. As ECM protocol
allows retransmissions it is commonly faster to accept a lesser-quality
data stream and the subsequent retransmisisons than it is to allow
the communication speed to slow down (where the demodulation may still
not produce an ideal data stream, anyway).
- Class1TCFRecvHackCmd
-
If receive failures occur due to +FCERROR just prior to TCF data
reception, setting
Class1TCFRecvHackCmd
to AT+FRS=1 may help.
- Class1TCFRecvTimeout
-
The maximum time to wait, in milliseconds, for the first byte and
again for the entirety of
the Training Check (TCF) message data that is received during the
training phase of the facsimile reception protocol.
- Class1TMConnectDelay
-
The time, in milliseconds, to delay after receiving CONNECT following +FTM
before sending image data. T.31 8.3.3 requires the modem to respond with
CONNECT before the modulation training pattern. If transmission begins
before the remote has successfully completed its own modulation training
pattern then data, especially during TCF, could be lost. Many modems do
not follow T.31 in this regard, and thus the default is zero; however its
use with such modems would likely have a negligible effect.
- Class1ValidateV21Frames
-
Whether or not to use the FCS bits of received V.21 HDLC frames to check
the validity of the frame itself. Most Class 1 modems perform this
check independently (per T.31 7.4) and do not require this feature to be
enabled.
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 operation.
- 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 .
- Class2APCmd
-
A largely unused option for modems supporting ITU-T.32, Class 2.1,
standards. This command would be used to enable sending and receiving
SUB, SEP, and PWD frames.
- Class2APQueryCmd
-
A largely unused option for modems supporting ITU-T.32, Class 2.1,
standards. This command would be used to query the capabilities of
sending and receiving SUB, SEP, and PWD frames.
The value ``none'' may be used if the modem does not support any
Class2APQueryCmd.
- 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
ModemRecvFillOrder
parameters.
- Class2BUGCmd
-
The command to use to enable or disable the tracing of
HDLC
frames sent and received by the modem.
This tracing information should be returned to the host in ``+FHR:''
and ``+FHT:'' status strings.
Note that many Class 2 modems do not support this facility,
which is largely used for diagnostic purposes.
The value ``none'' may be used if the modem does not support any
Class2BUGCmd.
- Class2CIGCmd
-
The command used to set a polling identifier.
This string is inserted into the format ``%s="<id>"''.
- 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''.
Class2CQCmd
should be configured to set-up all available copy quality services
available per
Class2CQQueryCmd.
To disable features that are available, configure
Class2CQQueryCmd
with a ``!'', and then set
Class2CQCmd
accordingly.
- 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
MaxConsecutiveBadLines
for parameters used to do server copy quality checking. If copy quality
checking is configured to be done by the modem then it is not done by the server.
- Class2CRCmd
-
The command to use to enable the reception of facsimile.
- 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 dialing.
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 parameters.
This string is inserted into the format
``%s=vr,br,wd,ln,df,ec,bf,st''.
- Class2ECMType
-
The interpretation of the EC parameter in the modem DCC response varies
between the Class 2, ``2'', and Class 2.0, ``2.0'', specifications. This
configuration parameter allows the administrator to specify which type to
use. The corresponding specification type is used by default.
- Class2HexNSF
-
Whether or not to parse the NSF strings reported by the modem
using hexadecimal values. By default, they are parsed as hexadecimal values.
- Class2HFLOCmd
-
The command to setup hardware (RTS/CTS)
flow control 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''.
- Class2JBIGSupport
-
Whether or not to enable support for T.85 monochrome facsimile
with JBIG compression. Options are ``true'' for support in both
sending and receiving, ``false'' for no support, ``send'' for
support only in sending, and ``receive'' for support only in
receiving. If the modem supports JBIG, and during the build process
a compatible JBIG library was found then send support is enabled by
default. If the modem supports JBIG, and during the build process
the TIFF tools are found to support JBIG then receive support is
enabled by default.
- Class2JPEGSupport
-
Whether or not to enable and utilize the JPEG support found in the modem.
- 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 command 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.
- Class2PACmd
-
A largely unused option for modems supporting ITU-T.32, Class 2.1,
standards. This command would be used to set up the polling address
string enabled by the
Class2APCmd.
- Class2PHCTOCmd
-
The command to use to set the Phase C timeout parameter (in seconds).
The value ``none'' may be used if the modem does not support any
Class2PHCTOCmd.
- Class2PIECmd
-
(Class 2.0 only)
The command to use to control procedure 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.
- Class2PTSQueryCmd
-
The command to use to query the received page status code.
This command may be used to determine the post-page response returned from
the receiver.
Beware that some modems do not properly implement this command
in which case this setting should be set to ``none''.
- Class2PWCmd
-
A largely unused option for modems supporting ITU-T.32, Class 2.1,
standards. This command would be used to set up the password
string enabled by the
Class2APCmd.
- 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 (necessarily) having byte-aligned codes.
- Class2RTFCC
-
Whether or not to enable MultiTech's Real-Time Fax Compression Conversion
which is available in later firmware revisions for the MT5634ZBA-V92,
MT5634ZPX-PCI-V92, and other models. RTFCC allows HylaFAX to convert the
image compression between MH MR and MMR formats regardless of how faxq
formatted the image file. If RTFCC is available with your firmware, then
the response to ``AT+FFC=?'' is non-zero. Note that when using RTFCC, the
compression format of the file will be ignored, thus the ``-1'', ``-2'',
and ``-3'' options for sendfax, ps2fax, and others will not influence the
actual negotiated session parameters.
- Class2SACmd
-
A largely unused option for modems supporting ITU-T.32, Class 2.1,
standards. This command would be used to set up the destination
subaddress string enabled by the
Class2APCmd.
- Class2SendRTC
-
Whether or not to append an explicit ``Return To Control'' (RTC)
signal to the page data when transmitting.
The Class 2 and Class 2.0 specs (i.e. SP-2388-A and TIA/EIA-592) state
that 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 control 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.
The value ``none'' may be used if the modem does not support any
Class2SPLCmd.
- Class2TBCCmd
-
The command to use to enable stream-mode communication between the
host and modem.
The value ``none'' may be used if the modem does not support any
Class2TBCCmd.
- Class2UseLineCount
-
Whether or not to use the line count reported to HylaFAX by the
modem firmware decoder.
- Class2UseHex
-
Whether or not to parse the capabilities strings reported by the modem
using hexadecimal values. By default, they are parsed as decimal values.
- 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.
Typically these commands place direct the modem to communicate
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
hylafax-info(5F).
- PagerMaxMsgLength
-
The maximum length for a pager text message.
Messages longer than this number are truncated.
Per-service provider message lengths can be setup in the
info database; see
hylafax-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 hang up the phone.
- IXOIDProbe
-
(IXO/TAP only)
The time, in seconds, between sending 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)
integer 30 IXO: 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 prototype 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 command
``
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?'', respectively, 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 querying 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 configuration 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
parameters.
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-server(5F)