hylafax-server man page on BSDOS

Man page or keyword search:  
man Server   6284 pages
apropos Keyword Search (all sections)
Output format
BSDOS logo
[printable version]



HYLAFAX(5F)					      HYLAFAX(5F)

NAME
       HylaFAX	-  introduction	 to  HylaFAX server operation and
       file formats

DESCRIPTION
       HylaFAX is a system for sending and  receiving  facsimile.
       It supports queued transmission and asynchronous reception
       of facsimile.  Ancillary programs are invoked by the  sys-
       tem for flexibility and configurability.	 HylaFAX includes
       client and server programs to support remote submission of
       jobs  for transmission, remote removal of queued jobs, and
       to remotely query the status of jobs queued for	transmis-
       sion.   This  document  describes  the organization of the
       filesystem spooling  area  in  which  HylaFAX  server  and
       server-related processes operate, and introduces the vari-
       ous files that reside in the spooling area.

OVERVIEW
       The spooling area is typically located under the directory
       /var/spool/fax.	 Ancillary  command  scripts  used by the
       server programs faxq(8C), faxsend(8C),  pagesend(8C),  and
       faxgetty(8C) are located in the bin subdirectory.  Config-
       uration, access control, and  accounting	 information  are
       maintained in the etc and config subdirectories.	 Outgoing
       jobs are described by files  in	the  sendq  subdirectory,
       while received facsimile are deposited in the recvq subdi-
       rectory.	 The docq and temp subdirectories are  also  used
       in  the	preparation  of	 outbound  jobs; the latter holds
       files that may be freely purged	while  the  former  holds
       client  files that may reside on the server independent of
       an associated job.  The doneq subdirectory holds jobs that
       have  completed	but have not yet been purged or archived.
       On systems with job archival support, completed jobs  that
       have been archived are placed in the archive subdirectory.
       The pollq subdirectory holds documents that are	available
       for  polled retrieval from the server.  The info subdirec-
       tory contains files that describe the capabilities of fac-
       simile  machines	 that HylaFAX has called-this information
       is used in preparing documents for transmission.	 The sta-
       tus  subdirectory  contains  files  that	 server processes
       write their current status to.  The log subdirectory  con-
       tains logging information about send and receive sessions.
       The client subdirectory contains FIFO special  files  used
       for communication with faxq.

       HylaFAX supports multiple modems on a host.  A single pro-
       cess acts as central queueing agent for all outbound jobs.
       Typically  each modem also has a server process that moni-
       tors the modem status and  handles  inbound  phone  calls.
       Per-modem  server  processes  communicate with the central
       queueing agent using FIFO special files; see  mknod(2)  or
       mkfifo(2).   Any other synchronization between server pro-
       cesses is done using file-level locking.	 The faxq process
       listens for commands written to the file named FIFO, while

			 January 18, 1996			1

HYLAFAX(5F)					      HYLAFAX(5F)

       each faxgetty process listens for commands  written  to	a
       per-device  file named FIFO.devid (where devid is an iden-
       tifier derived from the name of the device special file to
       which  the modem is connected; e.g.  ttym2 for /dev/ttym2,
       term_10 for /dev/term/10.)   To	send  a	 command  to  the
       queueing	 agent,	 one writes to FIFO.  This is useful, for
       example, for submitting a job for transmission.	To send a
       command	to  a  specific	 faxgetty process, the FIFO.devid
       file is used.

       Client applications interact with a HylaFAX server machine
       using   a   communications  protocol  implemented  by  the
       hfaxd(8C) program.  The hfaxd program is typically started
       at system startup; it listens for client requests for ser-
       vice and creates a process for each  client.   hfaxd  sup-
       ports the submission of outbound jobs, querying the status
       of the send and receive queues, and altering parameters of
       previously  submitted  jobs.  The hfaxd processes communi-
       cate with the faxq process  through  FIFO  special  files.
       Commands	 sent  to faxq are sent to FIFO and responses are
       received on FIFO files that  each  hfaxd	 creates  in  the
       client subdirectory.

SETUP
       Each HylaFAX server machine must run the faxsetup(8C) com-
       mand  prior  to	starting  up  HylaFAX  server  processes.
       faxsetup	 verifys  that	the  HylaFAX  software	has  been
       installed correctly and	that  any  parameters  that  were
       specified at the time the software was built are appropri-
       ate for the system.

SENDING
       Each outgoing facsimile job has	a  job	description  file
       that is located in the sendq subdirectory.  This file con-
       tains all the information necessary to manage  the  trans-
       mission;	 c.f.	sendq(5F).  The actual documents that are
       to be sent are usually located in  the  docq  subdirectory
       (though	it  is	also possible to reference documents from
       the recvq directory).  HylaFAX  accepts	POSTSCRIPT,  PCL,
       and  TIFF  documents  for transmission (though support for
       PCL documents is not  currently	implemented).	Documents
       are  automatically  converted to TIFF/F documents prior to
       transmission according to the capabilities of  the  remote
       facsimile  machine: maximum page width and length, ability
       to handle 2D-encoded data, and ability to handle high res-
       olution	(7 line/mm) data.  This remote machine capability
       information is stored in files in the  info  subdirectory.
       If  a  machine has not been called before, HylaFAX assumes
       the remote machine has the requested capabilities.   If	a
       capabilities  mismatch is detected while sending a facsim-
       ile HylaFAX will disconnect and	reconvert  the	submitted
       documents  according to the newly discovered capabilities.
       Users may also restrict the  session  parameters	 used  to
       format documents on a per-job basis.

			 January 18, 1996			2

HYLAFAX(5F)					      HYLAFAX(5F)

       The  actual  transmission is handled by a faxsend(8C) pro-
       cess that is initiated by the scheduler.	 This program may
       be substituted for by specifying the FaxSendCmd configura-
       tion parameter in the faxq configuration file.

       While a job is being processed by a  server  process,  its
       job  description	 file  is  locked  for exclusive use with
       flock(2).  The hfaxd(8C) program uses this information  to
       tell if a job is actively being processed.

       If  the	SessionTracing parameter in a server's configura-
       tion file is non-zero, then  tracing  information  for  an
       outgoing job will be logged in a file in the log subdirec-
       tory.  Each destination machine has a  separate	log  file
       named by its canonical phone number.

       The  remote job submission facility includes host and user
       access control.	The file etc/hosts.hfaxd must be  present
       and list those hosts and users that are permitted to queue
       jobs for transmission or do other  operations  that  alter
       the status of a job.  Note that it is necessary to include
       the ``local host'' definition (usually 127.0.0.1) if local
       submission  is to be permitted.	For more information con-
       sult hosts.hfaxd(5F).

       There are a number of controls on outbound calls that  can
       be  specified using the etc/destcontrols file (or whatever
       file is specified in a DestControls configuration  parame-
       ter in the faxq configuration file).  This file, described
       in destctrls(5F),  allows  an  administrator  to	 restrict
       calls  by phone number and to control the time of day that
       calls may be placed.  In addition, operational  parameters
       such  as the maximum number of pages in a facsimile trans-
       mission can be constrained on a per-destination basis.

       If an error is encountered during transmission and a  sub-
       sequent	retransmission	would  not  include  the original
       cover page, then HylaFAX can be configured to  generate	a
       continuation  cover page that is prepended to the retrans-
       mitted pages.  Such cover pages are usually  generated  by
       the  bin/mkcover	 command; though the exact command to use
       can be specified in the configuration file read by faxq.

       HylaFAX can be configured to generate  a	 line  of  status
       information  across  the	 top  of each page of an outbound
       facsimile.  This information, termed a ``tagline'',  typi-
       cally  includes the sender's identity (i.e. phone number),
       the time and date of the transmission, and the  page  num-
       ber.   The exact format of the tagline is configurable and
       applications can override the default configuration param-
       eters  on a per-job basis.  Note that in the United States
       the law	requires  that	a  tagline  that  identifies  the
       sender's phone number must appear on each transmitted page
       of facsimile.

			 January 18, 1996			3

HYLAFAX(5F)					      HYLAFAX(5F)

       Facsimile transmitted to receivers that	accept	variable-
       length  pages  may have short pages ``chopped''.	 That is,
       if a page has a significant amount of trailing  whitespace
       and  the	 receiver accepts variable-length pages then only
       the top part of the page will be transmitted.  faxq can be
       configured  so that only the last page of each document is
       potentially chopped, all pages are potentially chopped, or
       chopping is disabled.  The minimum whitespace threshold is
       also configurable.  Applications can override the  default
       configuration parameters on a per-job basis.

RECEIVING
       faxgetty	 server	 processes  can	 be  configured to answer
       incoming phone calls and automatically receive  facsimile.
       Received documents are placed in the recvq subdirectory as
       TIFF Class F files.  The faxgetty processes can be config-
       ured  to make these files publicly accessible, or they can
       be made private in which case an administrator must manage
       their  delivery and/or the assignment of ownership to par-
       ticular users.  When a facsimile is received, the faxgetty
       process	usually	 invokes  the bin/faxrcvd command; though
       the exact command to invoke can be specified in	the  per-
       modem configuration file.  The default notify command is a
       shell script that sends a mail message  to  a  well  known
       user,  the  FaxMaster,  but  one	 might also, for example,
       automatically spool the document for printing.

       HylaFAX supports a  simple  form	 of  access  control  for
       receiving facsimile.  Each faxgetty process may be config-
       ured to	check  the  Transmission  Subscriber  Identifiers
       (TSI)  of the remote fax machine against an access control
       list, typically etc/tsi.	 Only if the TSI is matched by	a
       regular	expression  pattern  in	 the  file, is the remote
       machine permitted to transmit a document.  This	mechanism
       can be used, for example, to guard against junk fax.

       HylaFAX	can  be configured to do copy quality checking on
       received facsimile data.	 When  this  feature  is  enabled
       faxgetty	 decodes and analyzes the received facsimile data
       as it is received.  If data  is	received  with	too  many
       errors, according to the setting of the MaxConsecutiveBad-
       Lines and PercentGoodLines configuration parameters,  then
       the sender will be told to retransmit the page.	When copy
       quality checking is enabled it is also possible	to  force
       received	 facsimile data to be saved with a different com-
       pression scheme than  was  used	for  transmission.   This
       function	 is  known  as	transcoding and can significantly
       reduce the space needed to store received facsimile.

POLLING
       HylaFAX supports the polled retrieval of	 facsimile  docu-
       ments.	Documents  that	 are  received	because of a poll
       request are stored in  the  recvq  subdirectory	and  also
       delivered directly to the requester using the bin/pollrcvd

			 January 18, 1996			4

HYLAFAX(5F)					      HYLAFAX(5F)

       command; though the exact command to invoke can be  speci-
       fied  with  the	PollRcvdCmd configuration parameter.  The
       pollrcvd script typically  encodes  the	binary	facsimile
       data and returns it to the user via electronic mail.

INBOUND CALL HANDLING
       In  environments where Caller-ID information is available,
       HylaFAX also supports a call screening facility similar to
       the  TSI access control facility.  faxgetty can be config-
       ured to check the phone number of each caller  against  an
       access  control list, typically etc/cid.	 Only if the num-
       ber is matched by a regular expression pattern in the file
       is  the	call  answered.	  All  Caller  ID  information is
       logged, irregardless of whether	or  not	 it  is	 used  to
       screen incoming calls.

       faxgetty	 is also capable of using distinctive ring infor-
       mation to identify whether an inbound call is voice, data,
       or  fax.	  Consult  the	RingData,  RingFax, and RingVoice
       parameters in config(5F) for a description of this  facil-
       ity.

DATA CALLS
       Most  fax modems also support non-facsimile communication.
       HylaFAX uses the locking mechanism employed  by	uucp(1C),
       cu(1C),	slip(8C),  and	ppp(8C).   Any faxgetty processes
       will transparently ``get out of the way'' when an applica-
       tion  wants to use a modem for an outgoing call.	 In addi-
       tion, HylaFAX can  be  configured  to  deduce  whether  an
       incoming	 call  is  for	facsimile or data use.	If a call
       from a data modem is recognized and the GettyArgs  parame-
       ter  is specified in the configuration file, faxgetty will
       invoke the getty(8C) program so that caller may	login  to
       the  system.   Similar functionality is also available for
       invoking a ``voice getty'' process, though  auto-detection
       of inbound voice calls is less extensive.

STATUS
       HylaFAX	maintains  status  information	in several forms.
       General status information  for	each  server  process  is
       maintained  in  the  status  subdirectory  and returned to
       users by the faxstat(1) program.	 The  syslog(3)	 facility
       is  used	 by  all  server processed for logging status and
       error diagnostics.  The server processes may also be  con-
       figured	to  log	 various  kinds	 of debugging and tracing
       information; c.f.  the ServerTracing parameter description
       in config(5F).

       Any problems encountered when transmitting a facsimile are
       described in messages returned to the user  by  electronic
       mail.  A user may also request notification by mail when a
       job is requeued;	 for  example,	because	 a  call  failed.
       Notification  by	 electronic  mail  is  implemented by the
       bin/notify command script; though the name of  the  script

			 January 18, 1996			5

HYLAFAX(5F)					      HYLAFAX(5F)

       may be overridden with the NotifyCmd configuration parame-
       ter.

       The faxstat  utility  provides  (remote)	 status	 of  jobs
       queued  for  transmission,  jobs received, and the general
       status of server processes.

       The file etc/xferfaxlog contains status information  about
       all  facsimile  sent and received on a machine.	This file
       is in a simple ASCII format that	 is  easy  to  manipulate
       with  programs  such  as	 awk(1),  to  generate accounting
       information.  See xferfaxlog(5F) for information about the
       format.	 See xferfaxstats(8C) and recvstats(8C) for exam-
       ple scripts that print summarized accounting  information.

       Finally,	 the  hfaxd  process  supports a event monitoring
       facility that can be access via the faxwatch(8C)	 program.
       This facility permits clients to register interest in var-
       ious events and	receive	 ``realtime  notification''  when
       such  events  occur on the server.  Using this facility it
       is/should-be simple  to	construct  applications	 that  do
       things like monitor modem status and use.

MODEM STATE CHANGES
       In  normal  operation  each  modem is managed by a HylaFAX
       server process such as faxgetty.	 These processes communi-
       cate  with the central scheduler process to notify it when
       a modem is ready for use, busy for outbound use, or possi-
       bly in an unusable state (either purposely marked unavail-
       able or potentially found to be wedged).	 Modem usage  can
       be  explicitly  controlled  with the faxstate(8C) program.
       The faxconfig(8C) program can also be used to  dynamically
       make  changes to configuration parameters that may cause a
       modem to be treated differently	(e.g.	setting	 RingsBe-
       foreAnswer  to  zero  will  cause  faxgetty  to not answer
       incoming calls).

       When HylaFAX is used in a  send-only  configuration  there
       are  no	faxgetty processes and communication must be done
       directly with the faxq process.	The faxstate program  can
       still  be  used	to manipulate modem use for outbound jobs
       but the faxconfig program is not frequently needed.

JOB SCHEDULING
       Outbound jobs are scheduled by  a  single  process.   Jobs
       have  a	``scheduling  priority''  that is assigned at the
       time the job is submitted.  This priority can  be  changed
       at  any time the job is not actively being processed using
       the faxalter(8C) program.  A job's scheduling priority may
       also  be	 raised by faxq in response to certain scheduling
       events (e.g. after a failed attempt to send  the	 priority
       may be raised).

       Modems  are  assigned  to outbound jobs if they are deemed

			 January 18, 1996			6

HYLAFAX(5F)					      HYLAFAX(5F)

       ready for use.  Modem readiness is usually communicated to
       faxq  by	 per-modem  faxgetty  processes.   In a send-only
       environment however this is not possible;  instead  modems
       configured  for	use  with  faxmodem are considered always
       ready for use unless they are  presently	 assigned  to  an
       outbound	 job or their state is explicitly changed through
       the faxstate(8C) program (faxstate can also be used  in	a
       send-recv environment).

       Each modem has a ``modem priority'' in the range [0..255].
       Modems with a lower priority number are assigned	 to  out-
       bound jobs first.  Modem priority is statically configured
       through configuration files, the faxmodem program, and the
       faxconfig program.

JOB MANAGEMENT
       Outbound	 jobs  are  considered	to  be	in one of several
       states  that  reflect  their  treatment	by  the	  central
       scheduling  process.  Jobs are initially created in a sus-
       pended state, and may be returned to  this  state  at  any
       time  that  they	 are not actively being processed (e.g. a
       faxsend program is running to process the job).	Jobs that
       are  suspended  are  not	 processed  by the scheduler; and
       their internal state may be safely altered by the owner or
       a  system administrator.	 Jobs that are ready for process-
       ing by the scheduler are ``submitted'' and their state  is
       changed to be either pending (delayed waiting for a future
       time to send), sleeping (delayed waiting for  a	scheduled
       timeout),  blocked  (delayed by concurrent activity to the
       same destination), or ready (ready for transmission, wait-
       ing only for available resources).  When a job is actively
       processed by the	 faxsend  program  its	state  is  marked
       active.	 Jobs that have completed, either successfully or
       unsuccessfully are placed in a done state  and  their  job
       description  files  are	moved  to the doneq subdirectory.
       Clients may still access the state of jobs that are  done;
       until  a	 ``cleaner  process'' either purges them from the
       system or archives their state.	This delayed removal of a
       completed  job's	 state permits clients to resubmit failed
       jobs using previously transmitted documents and other  job
       state  information.   The  exact mechanics of how and when
       done jobs are processed is system-dependent; for	 example,
       how  long  a  job  is  left in the done queue before being
       purged, and whether job archival support is present.

CONFIGURATION
       HylaFAX server  programs	 read  configuration  information
       from  a	configuration file.  Multiple files are used, one
       for the faxq program and one for each modem.  Long-running
       server programs all automatically re-read their configura-
       tion file if it is modified.  Typically this re-reading is
       done  frequently enough that administrators do not need to
       be aware of exactly when it takes place.	 However in  some
       esoteric cases the file may not be read when expected (the

			 January 18, 1996			7

HYLAFAX(5F)					      HYLAFAX(5F)

       one important case is that the faxgetty process reads  its
       configuration  file  only  when	answering  a call or when
       resetting a modem; this means that it will  not	recognize
       changes when the modem is idle).

       In  addition  to	 the  static configuration files, HylaFAX
       server programs accept  commands	 on  their  FIFO  special
       files  to  alter	 configuration	parameters in the running
       executable (the	faxconfig(8C)  program	can  be	 used  to
       dynamically  change configuration parameters).  Values set
       in this way however are lost when the process exits or  if
       the configuration file is re-read.

NOTES
       Automatic routing of incoming facsimile is desirable.

FILES
       FIFO		     fifo for job submission
       FIFO.<devid>	     fifo for communicating with a faxgetty process
       /usr/contrib/bin/faxinfocommand that prints information about received facsimile
       /usr/contrib/bin/faxquitcommand to force server to quit
       bin/faxrcvd	     faxd command for handling newly received facsimile
       bin/mkcover	     faxd command for generating continuation cover pages
       bin/notify	     faxd command for doing user notification
       bin/pollrcvd	     faxd command for delivering facsimile received by poll
       bin/ps2fax	     faxd command for converting POSTSCRIPT to TIFF
       docq/doc*	     documents available for transmission
       etc/setup.cache	     server setup file created by faxsetup
       etc/cid		     caller id access control list
       etc/config.<devid>    configuration data for <devid>
       etc/hosts.hfaxd	     hosts that may submit jobs for transmission
       etc/tsi		     fax machine receive access control list
       etc/xferfaxlog	     log of facsimile sent and received
       info/*		     data base of remote fax machine capabilities
       client/*		     FIFO special files created by client processes
       config/*		     prototype configuration files used by faxaddmodem
       log/*		     session logging records
       recvq/fax*	     received facsimile
       sendq/q*		     descriptions of jobs queued for transmission
       doneq/q*		     descriptions of jobs that are done
       status/*		     server status information
       tmp/*		     temporary files created when submitting a job
       archive/*	     database of archived jobs

SEE ALSO
       faxsetup(8C),	 faxq(8C),    faxgetty(8C),    hfaxd(8C),
       faxsend(8C),  faxrcvd(8C),  faxconfig(8C),   faxmodem(8C),
       faxstate(8C),   notify(8C),  pollrcvd(8C),  recvstats(8C),
       xferfaxstats(8C), archive(5F), config(5F),  dialrules(5F),
       doneq(5F),  hosts.hfaxd(5F),  info(5F),	log(5F), tsi(5F),
       recvq(5F), sendq(5F), status(5F), xferfaxlog(5F),

       Extensive  documentation	 is  available	 in   online   at
       http://www.vix.com/hylafax/.   Many of these materials are

			 January 18, 1996			8

HYLAFAX(5F)					      HYLAFAX(5F)

       also included in the software distribution.

			 January 18, 1996			9

[top]
                             _         _         _ 
                            | |       | |       | |     
                            | |       | |       | |     
                         __ | | __ __ | | __ __ | | __  
                         \ \| |/ / \ \| |/ / \ \| |/ /  
                          \ \ / /   \ \ / /   \ \ / /   
                           \   /     \   /     \   /    
                            \_/       \_/       \_/ 
More information is available in HTML format for server BSDOS

List of man pages available for BSDOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net