1HFAXD(8C)                                                            HFAXD(8C)
2
3
4

NAME

6       hfaxd - HylaFAX client-server protocol server
7

SYNOPSIS

9       /usr/sbin/hfaxd [ -d ] [ -D secs ] [ -q dir ] [ -c config ] [ -o port ]
10       [  -O  ]  [  -f  bindaddressfamily  ]  [  -l   bindaddress   ]   [   -p
11       pasv_min_port:pasv_max_port ] [ -i port ] [ -I ] [ -s port ] [ -S ]
12

DESCRIPTION

14       hfaxd is the HylaFAX program that implements the server portion of:
15
16       •  the client-server protocol and
17
18       •  the  Simple  Network  Paging  Protocol (SNPP) used to submit message
19          pager jobs to the IXO/TAP and UCP support.
20
21       Additional client-server protocols are planned and hfaxd is intended to
22       be the ``carrier'' through which they are supported.
23
24       hfaxd  is  typically  used  in one of two ways; either as a stand-alone
25       process that is started at system boot time to listen for  client  con‐
26       nections  on  one or more ports (in which case the -i, -o, or -s option
27       must be used), or as a subservient process to  the  inetd(8C)  program.
28       The  two  forms of use may however be combined so long as the same ser‐
29       vice is not provided both by the stand-alone hfaxd and through inetd.
30

HYLAFAX CLIENT-SERVER PROTOCOL SUPPORT

32       If hfaxd is started with the -i option it will  service  clients  using
33       the  HylaFAX client-server protocol.  This protocol is strongly related
34       to the Internet File Transfer Protocol (FTP); so much so in  fact  that
35       FTP client programs that include support for ``quoted commands'' may be
36       used to communicate with hfaxd using the new protocol.  (It should also
37       be possible to use FTP-aware World Wide Web browsers such as Mosaic and
38       Netscape Navigator to access HylaFAX servers through the new  protocol;
39       but  the  current format for information returned in directory listings
40       confuses them.)
41
42       The hfaxd server currently recognizes the following protocol  requests;
43       case  is  not  distinguished.  Entries marked with a ¹ can be used only
44       when the client has established administrative privileges with ADMIN.
45
46       Request         Description
47       ABOR            abort previous command
48       ACCT            specify account (ignored)
49       ADMIN           specify password for administrative privileges
50       ALLO            allocate storage (vacuously)
51       ANSWER¹         request that call be answered
52       APPE            append to a file
53       CDUP            change to parent of current working directory
54       CHMOD           change mode of a file
55       CHOWN¹          change owner of a file
56       CWD             change working directory
57       DELE            delete a file
58       DISABLE¹        disable outbound use of modem
59       ENABLE¹         enable outbound use of modem
60       HELP            give help information
61       FILEFMT         specify/query format for returning file status
62       FORM            specify data transfer format
63       IDLE            set idle-timer (in seconds)
64       JDELE           delete done or suspended job
65       JINTR           interrupt job
66       JKILL           kill job
67       JNEW            create new job
68       JOB             set/query current job
69       JOBFMT          specify/query format for returning job status
70       JPARM           specify/query job state parameter
71       JREST           reset current job state
72       JSUBM           submit job to scheduler
73       JSUSP           suspend job from scheduling
74       JWAIT           wait for job to complete
75       JGDELE          delete group of jobs
76       JGKILL          kill group of jobs
77       JGINTR          interrupt group of jobs
78       JGNEW           place current job in a new job group
79       JGPARM          set state parameter in a group of jobs
80       JGREST          reset current state for a group of jobs
81       JGRP            set/query current job group
82       JGSUBM          submit group of jobs to scheduler
83       JGSUSP          suspend group of jobs from scheduling
84       JGWAIT          wait for group of jobs to complete
85       LIST            list files in a directory
86       MDTM            show last modification time of file
87       MODE            specify data transfer mode
88       MDMFMT          specify/query format for returning modem status
89       NLST            give name list of files in directory
90       NOOP            do nothing
91       PASS            specify password
92       PASV            prepare for server-to-server transfer
93       PORT            specify data connection port
94       PWD             print the current working directory
95       QUIT            terminate session
96       RCVFMT          specify/query format for returning received facsimile status
97       REIN            reinitiate server state
98       REST            restart incomplete transfer
99       RETP            retrieve the next page in a file
100       RETR            retrieve a file
101       SHUT            schedule server shutdown
102       SITE            non-standard commands (see next section)
103       SIZE            return size of file
104       STAT            return status of server or file
105       STOR            store a file
106       STOT            store a temporary file with a unique name
107       STOU            store a file with a unique name
108       STRU            specify data transfer structure
109       SYST            show operating system type of server system
110       TYPE            specify data transfer type
111       TZONE           specify timezone handling for dates and times
112       USER            specify user name
113       VRFY            verify dialstring handling and/or least-cost routing
114
115       The following  non-standard  or  experimental  commands  are  supported
116       through the SITE request.
117
118       Request          Description
119       ADDMODEM¹        add/configure new modem for use
120       ADDUSER¹         add client access control entry
121       CONFIG¹          send configuration parameter setting to server
122       DELMODEM¹        deconfigure/remove modem
123       DELUSER¹         remove client access control entry
124       TRIGGER          register real-time event trigger
125       HELP             give help information, e.g., SITE HELP
126
127       In addition FTP requests that are specified in Internet RFC 959 but not
128       listed here are recognized, but not implemented.
129
130       The hfaxd server will abort an active data transfer only when the  ABOR
131       command  is  preceded by a Telnet "Interrupt Process" (IP) signal and a
132       Telnet "Synch" signal in the command Telnet stream, as described in In‐
133       ternet  RFC 959.  If a STAT command is received during a data transfer,
134       preceded by a Telnet IP and Synch, transfer status will be returned.
135

SIMPLE NETWORK PAGING PROTOCOL (SNPP) SUPPORT

137       If hfaxd is started with the -s option it will  service  clients  using
138       the  Simple  Network  Pager  Protocol  (SNPP)  as specified in RFC 1861
139       (which obsoletes RFC 1645).
140
141       The hfaxd server currently recognizes the SNPP protocol requests listed
142       below.   Requests  marked  with  a ¹ are non-standard extensions to RFC
143       1861 that may be added to SNPP at some future time.  Case is  not  dis‐
144       tinguished  and  only the first four characters of requests are used in
145       identifying commands.
146
147       Request      Description
148       2WAY         preface a 2-way transaction
149       ABOR¹        abort previous command
150       ACKR         set read acknowledgement handling for subsequent requests
151       ALER         set the alter-level for subsequent requests
152       CALL         set the caller-ID for subsequent requests
153       COVE         set the alternate coverage area for subsequent requests
154       DATA         specify a multi-line message
155       EXPT         set the expiration time for subsequent requests
156       HELP         give help information
157       HOLD         set the time at which subsequent requests are to be delivered
158       KTAG         kill a previously submitted request
159       LEVE         set the service level for subsequent requests
160       LOGI         login to server
161       MCRE         specify multiple response text and code
162       MESS         specify a single-line message
163       MSTA         return the status of a previously submitted request
164       NOQU         disable message queueing
165       PAGE         specify the destination pager
166       PING         locate/validate a pager
167       QUIT         terminate session
168       RESE         reset server state
169       RTYP         set the reply type code for subsequent requests
170       SEND         send message(s)
171       SITE¹        site-specific commands (see next section)
172       STAT¹        return server status
173       SUBJ         set the message text for subsequent requests
174
175       The hfaxd server will abort an active SEND operation when an ABOR  com‐
176       mand is preceded by a Telnet "Interrupt Process" (IP) signal and a Tel‐
177       net "Synch" signal in the command Telnet stream.
178
179       The following non-standard or experimental commands are also  supported
180       through the SITE request.
181
182       Request        Description
183       FROMUSER       specify the sender's identity
184       IDLE           set idle-timer (in seconds)
185       JPARM          query job parameter status
186       JQUEUE         control whether or not job is queued
187       LASTTIME       set the time to terminate an unfinished job
188       MAILADDR       set the e-mail address to use for notification
189       MAXDIALS       set the maximum number of times to dial the phone
190       MAXTRIES       set the maximum number of times to try sending the page
191       MODEM          set the modem or class of modems to use
192       NOTIFY         set the e-mail notification
193       RETRYTIME      set the time to delay between job retries
194       SCHEDPRI       set the scheduling priority for the job [0-255]
195       HELP           give help information, e.g., SITE HELP
196
197       Note  that  hfaxd  requires that SNPP clients login first with the LOGI
198       directive while RFC 1861 permits clients to submit pages anonymously.
199

CLIENT ACCESS CONTROL

201       hfaxd controls client access according to the information in  the  file
202       /var/spool/hylafax/etc/hosts.hfaxd.  This file defines the set of users
203       and machines that may receive service and, optionally, defines password
204       challenges  to use in authenticating clients.  Clients may be permitted
205       access to services with or without a password  challenge.   Access  may
206       also be restricted based on the host machine that a request for service
207       originates from.  Consult hosts.hfaxd(5F) for information on the format
208       and  content  of  this file.  The SITE ADDUSER protocol request is pro‐
209       vided for adding new users to a server (available only to clients  with
210       administrative privileges).
211
212       Server resources are controlled based on clients' identities.  Jobs and
213       documents, both received and submitted, are protected  by  the  server.
214       Typically  clients are permitted access to anything they own or that is
215       publicly accessible.  There are  also  administrative  privileges  that
216       clients  may  acquire and which permit them wide access to objects that
217       reside on the server.
218
219       A complete client-server protocol specification is still outstanding.
220
221       hfaxd operates with its root directory set to the top  of  the  HylaFAX
222       spooling  area; /var/spool/hylafax.  This is done so that clients see a
223       virtual file hierarchy that is completely contained within the  HylaFAX
224       operating  environment  on  the server machine.  Administrators however
225       must be aware of this action when specifying files in the hfaxd config‐
226       uration  file:  absolute pathnames relative to the root of the spooling
227       should be used to specify filenames.
228

SERVER ACCESS CONTROL

230       The file /var/spool/hylafax/etc/shutdown, when present, specifies  when
231       to  restrict access to a server machine.  When this file is present and
232       contains valid information hfaxd will permit only users  with  adminis‐
233       trative  privileges to access the server.  Any other users that request
234       service will be denied access and negative server  responses  will  in‐
235       clude any shutdown message specified in the shutdown file.  Consult hy‐
236       lafax-shutdown(5F) for information on the format and  content  of  this
237       file.
238
239       The SHUT protocol request can be used to schedule a server shutdown; it
240       is available only to clients with administrative privileges.  To make a
241       shutdown  server  available again the shutdown file can be deleted with
242       the DELE protocol request (this is to be replaced  with  an  ``unshut''
243       protocol  request  so  that  implementation details are not part of the
244       protocol).
245

CONFIGURATION FILES

247       hfaxd  reads  configuration  information   from   the   file   /etc/hy‐
248       lafax/hfaxd.conf  each  time  a new server process is started (i.e. for
249       each new client).  This file uses the same conventions  used  by  other
250       HylaFAX  configuration  files; as described in hylafax-config(5F).  The
251       following  configuration  parameters  are  recognized;   items   marked
252       ``(SNPP)'' are used only by the SNPP support.
253       Tag                      Type       Default                             Description
254       FaxContact               string     see below                           contact address to show in help text
255       FileFmt                  string     see below                           format string for file status results
256       IdleTimeout              integer    900                                 client idle timeout in seconds
257       JobFmt                   string     see below                           format string for job status results
258       JobHostID                string                                         identification information for job hosts
259       JobProtection            octal      0644                                permissions for job qfiles in sendq/doneq
260       KillTimeMap              string     see below                           mapping from service level to job kill time (SNPP)
261       LDAPServerURI            string                                         URI of the ldap server including port number
262       LDAPBaseDN               string                                         LDAP context where user objects can be found
263       LDAPBindQuery            string                                         format for the LDAP bind query
264       LDAPGroupAttribute       string     groupMembership                     LDAP group attribute label
265       LDAPReqGroup             string                                         LDAP context of the users group
266       LDAPSearchDN             string                                         format for the UserDN in LDAP search
267       LDAPSearchQuery          string     uid=%s                              format for the LDAP search query
268       LDAPVersion              integer    3                                   LDAP protocol version to use
269       LogFacility              string     daemon                              syslog facility name for tracing messages
270       MaxAdminAttempts         integer    5                                   maximum admin attempts before disconnecting
271       MaxConsecutiveBadCmds    integer    10                                  maximum invalid commands before disconnecting
272       MaxIdleTimeout           integer    7200                                maximum client idle timeout permitted
273       MaxLoginAttempts         integer    5                                   maximum login attempts before disconnecting
274       MaxMsgLength             integer    128                                 maximum pager message length (SNPP)
275       ModemFmt                 string     see below                           format string for modem status results
276       PagerIDMapFile           string     /var/spool/hylafax/etc/pagermap     name of file for mapping pager IDs (SNPP)
277       PriorityMap              string     see below                           mapping from service level to job priority (SNPP)
278       RcvFmt                   string     see below                           format string for received facsimile status results
279       RecvqProtection          octal      0444                                permissions for client access to recvq
280       RetryTimeMap             string     see below                           mapping from service level to job retry time (SNPP)
281       ServerTracing            integer    1                                   server tracing control vector
282       ShutdownFile             string     /var/spool/hylafax/etc/shutdown     name of shutdown control file
283       UserAccessFile           string     /var/spool/hylafax/etc/hosts.hfaxd  name of access control file
284       XferLogFile              string     /var/spool/hylafax/etc/clientlog    name of file for logging client data transfers
285
286       The configuration parameters are explained below:
287
288       FaxContact
289                 The  e-mail  address  to display as a point of contact in the
290                 help text returned to a client in response  to  the  HELP  or
291                 SITE  HELP  commands.   By  default this is ``FaxMaster@host‐
292                 name'', where hostname is the fully qualified  name  for  the
293                 machine where the server is running.
294
295       FileFmt   The  format string to use when returning file status informa‐
296                 tion with the LIST and STAT commands.  Formats are  specified
297                 using  printf(3S) style conventions but using the field iden‐
298                 tifiers listed below.  Each item  can  include  field  width,
299                 precision,  left-justification,  0-filling,  etc. just as for
300                 printf; e.g. %-8p for an  8-character  wide,  left-justified,
301                 blank-padded field containing the file protection flags.
302
303                 Format    Description
304                 a         Last access time
305                 c         Creation time
306                 d         Device number (octal)
307                 f         Filename
308                 g         Group identifier (decimal)
309                 i         Inode number (decimal)
310                 l         Link count (decimal)
311                 m         Last modification time
312                 o         Owner (based on file GID)
313                 p         Fax-style protection flags (no group bits)
314                 q         UNIX-style protection flags
315                 r         Root device number (octal)
316                 s         File size in bytes (decimal)
317                 u         User identifier (decimal)
318
319                 The  default  format  string  is  ``%-7p %3l %8o %8s %-12.12m
320                 %.48f''.  It is recommended that all items  include  a  field
321                 width so that client applications that construct headers from
322                 the format string can constrain the  width  of  column  title
323                 strings.
324
325       IdleTimeout
326                 The  initial/default  timeout  to  use  in  timing  out  idle
327                 clients.  This value defines the maximum amount of  time  (in
328                 seconds) that hfaxd will wait for a command from a client be‐
329                 fore terminating the connection.   Unprivileged  clients  may
330                 alter  the  idle  timeout  up to the value of MaxIdleTimeout;
331                 privileged clients may set the timeout to any value.
332
333       JobFmt    The format string to use when returning job  status  informa‐
334                 tion  for  jobs  in the sendq and doneq directories.  Formats
335                 are specified using printf(3S) style  conventions  but  using
336                 the  field  identifiers  listed below.  Each item can include
337                 field width, precision, left-justification,  0-filling,  etc.
338                 just  as  for printf; e.g. %-3j for a 3-character wide, left-
339                 justified, blank-padded field containing the job state.
340
341                 Format    Description
342                 A         Destination SubAddress
343                 B         Destination Password
344                 C         Destination company name
345                 D         Total # dials/maximum # dials
346                 E         Desired signalling rate
347                 F         Client-specific tagline format string
348                 G         Desired min-scanline time
349                 H         Desired data format
350                 I         Client-specified scheduling priority
351                 J         Client-specified job tag string
352                 K         Desired use of ECM
353                 L         Destination geographic location
354                 M         Notification e-mail address
355                 N         Desired use of private tagline (one-character symbol)
356                 O         Whether to use continuation cover page (one-character symbol)
357                 P         # pages transmitted/total # pages to transmit
358                 Q         Client-specified minimum acceptable signalling rate
359                 R         Destination person (receiver)
360                 S         Sender's identity
361                 T         Total # tries/maximum # tries
362                 U         Page chopping threshold (inches)
363                 V         Job done operation
364                 W         Communication identifier
365                 X         Job type (one-character symbol)
366                 Y         Scheduled date and time
367                 Z         Scheduled time in seconds since the UNIX epoch
368                 a         Job state (one-character symbol)
369                 b         # consecutive failed tries
370                 c         Client machine name
371                 d         Total # dials
372                 e         Public (external) format of dialstring
373                 f         # consecutive failed dials
374                 g         Group identifier
375                 h         Page chop handling (one-character symbol)
376                 i         Current scheduling priority
377                 j         Job identifier
378                 k         Job kill time
379                 l         Page length in mm
380                 m         Assigned modem
381                 n         E-mail notification handling (one-character symbol)
382                 o         Job owner
383                 p         # pages transmitted
384                 q         Job retry time (MM::SS)
385                 r         Document resolution in lines/inch
386                 s         Job status information from last failure
387                 t         Total # tries attempted
388                 u         Maximum # tries
389                 v         Client-specified dialstring
390                 w         Page width in mm
391                 x         Maximum # dials
392                 y         Total # pages to transmit
393                 z         Time to send job
394
395                 The default format string is ``%-4j %3i  %1a  %6.6o  %-12.12e
396                 %5P %5D %7z %.25s''.  This string constrains each status line
397                 to be less than 80 characters.  It is  recommended  that  all
398                 items include a field width so that client applications, such
399                 as faxstat(1) that construct headers from the  format  string
400                 can constrain the width of column title strings.
401
402       JobHostID A  formatted  string  of  the  format  ``<id>[:<host>[:<user‐
403                 name>:<password>:<adminwd>]]'' that identifies  a  job  host.
404                 Multiple instances of JobHostID are used in the configuration
405                 file to identify multiple job hosts.  ``<id>'' is  a  numeric
406                 identification  for  the host which is prepended onto job ids
407                 created by that host.  This is used by a  client  to  distin‐
408                 guish between jobs created on different hosts when it may not
409                 initially know to which server it connected. ``<id>'' must be
410                 the  same number of digits for all configured job hosts.  For
411                 compatibility with all clients ``<id>'' must be numeric only.
412                 If  the  instance of JobHostID only includes ``<id>'' then it
413                 is understood to refer to the local host  and  not  a  remote
414                 host.   It  is  this  configuration  entry  that  causes  the
415                 prepending of the ``<id>'' number  onto  the  job  ids.   The
416                 other values for the formatted string refer to connection de‐
417                 tails for user-level and admin-level login at the  identified
418                 remote host.  If only ``<host>'' is provided then the current
419                 user's login credentials are used for the chained connection.
420                 This configuration will cause hfaxd to connect as a client to
421                 the specified remote host for the requested action  when  the
422                 job id provided by its client refers to that remote host (the
423                 provided job id matches the ``<id>'' value in the host's Job‐
424                 HostID  configuration).   To do this the hfaxd client connec‐
425                 tion to the remote host requires administrative privileges or
426                 synchonized  user accounts on both hosts.  Be aware that when
427                 providing  ``<username>'',  ``<password>'',  and   especially
428                 ``<adminwd>''  in  the configuration that this may compromise
429                 job security on the remote host since users  from  this  host
430                 will  be  connecting  to  the remote host as a different user
431                 (and possibly with administrative  privileges).   As  a  null
432                 value for ``<adminwd>'' is permissible, administrative privi‐
433                 leges may be omitted by using ``*'' for  ``<adminwd>''.   Be‐
434                 cause  of the chroot under which the client instance of hfaxd
435                 operates it may be necessary to copy or link  at  least  some
436                 system files to the HylaFAX spool directory structure so that
437                 the chained client connection can be made to the  remote  job
438                 host.  This operation may need to be revisited after upgrades
439                 or changes to those system files.  To  identify  which  files
440                 may  need  to  be  included one may examine strace output for
441                 faxstat and look for which files it opens in the operation.
442
443       JobProtection
444                 The default setting of ``0644'' allows all users to view  all
445                 job parameters in the send and done queues.   The mode deter‐
446                 mines the permissions of the clients to see the jobs, follow‐
447                 ing  the  HylaFAX permission model of the group bits control‐
448                 ling uid permissions and the  other  bits  controlling  other
449                 permissions.  A setting of ``0640'' allows only the job owner
450                 and the administrator to view jobs.  If a user  doesn't  have
451                 permissions  on  the job, the job will not be visible to them
452                 when viewing the queues.
453
454       KillTimeMap
455                 The mapping from SNPP service level (0-11) to job  expiration
456                 time  (kill  time).   A  mapping  is specified as a string of
457                 space-separate numbers where each value is the number of min‐
458                 utes  to permit a job to run.  The default mapping is ``5 5 5
459                 15 60 240 720 1440 1440 1440 1440 1440'' which expires a  job
460                 in  5  minutes  for  service levels 0-2, 15 minutes for level
461                 three, 60 minutes for level four, etc.
462
463       LDAPServerURI
464                 The full address of the ldap server  including  port  number,
465                 i.e.:   ldaps://1.2.3.4:636   (for   secure  connections)  or
466                 ldap://1.2.3.4:389 (for insecure connections)
467
468       LDAPBaseDN
469                 The full LDAP context where user objects can be found,  i.e.:
470                 ou=users,dc=example,dc=com   for   Active  Directory/LDAP  or
471                 ou=users,o=organization for Novell eDirectory
472
473       LDAPBindQuery
474                 The format for the LDAP bind query  (ldap_sasl_bind_s)  where
475                 ``%s''  is  replaced  with the username.  If LDAPBindQuery is
476                 not configured, then the  bind  query  will  use  the  format
477                 ``cn=%s,<BaseDN>''   where   ``%s''   is  the  username,  and
478                 ``<BaseDN>'' is the configured LDAPBaseDN string.
479
480       LDAPGroupAttribute
481                 The label for the group membership data.  On  older  OpenLDAP
482                 servers  this should probably be ``groupMembership''.  On Ac‐
483                 tiveDirectory this should probably be ``memberOf''.
484
485       LDAPReqGroup
486                 The full LDAP context of the group users have to be a  member
487                 of  to gain HylaFAX access for sending faxes.  If this is not
488                 set then no group membership is required.
489
490       LDAPSearchDN
491                 The   format   for   the   UserDN   in   the   LDAP    search
492                 (ldap_search_ext_s)  where  ``%s'' is replaced with the user‐
493                 name.  By default this is the same as LDAPBindQuery .
494
495       LDAPSearchQuery
496                 The format for  the  LDAP  search  query  (ldap_search_ext_s)
497                 where  ``%s'' is replaced with the username.  By default this
498                 is ``uid=%s''.  On ActiveDirectory this  should  probably  be
499                 set to ``cn=%s''.
500
501       LDAPVersion
502                 Version number of the LDAP Protocol to use (default is '3')
503
504       LogFacility
505                 The symbolic name for the syslog(3) facility to use when log‐
506                 ging error messages and informational/debugging messages  re‐
507                 quested through the ServerTracing parameter.  The list of fa‐
508                 cility names is found in the system include file  <syslog.h>;
509                 comparisons are case-insensitive.
510
511       MaxAdminAttempts
512                 The  maximum number of unsuccessful attempts gain administra‐
513                 tive privileges with the ADMIN command that hfaxd will permit
514                 a  client  before  terminating the connection.  Note that the
515                 count of attempts is reset if/when  the  client  successfully
516                 gains administrative privileges.
517
518       MaxConsecutiveBadCmds
519                 The  maximum  number  of  consecutive  unrecognized, unimple‐
520                 mented, syntactically incorrect,  or  otherwise  unacceptable
521                 commands  to  permit  a client before terminating the connec‐
522                 tion.  This control has two purposes: to handle naive or  ma‐
523                 licious  clients  from  sending long streams of nonsense com‐
524                 mands to a server, and to ensure that  clients  are  forcibly
525                 terminated when a server is marked shutdown.
526
527       MaxIdleTimeout
528                 The  maximum value that a client may set the idle timeout to.
529                 This value is not enforced if the client  has  administrative
530                 privileges.
531
532       MaxLoginAttempts
533                 The maximum number of unsuccessful attempts to login with the
534                 USER and PASS commands that hfaxd will permit a client before
535                 terminating the connection.
536
537       MaxMsgLength
538                 The maximum number of characters to accept in a pager message
539                 specified with the DATA or MESS  commands.   Messages  longer
540                 than this value are rejected.
541
542       ModemFmt  The format string to use when returning modem status informa‐
543                 tion for modems listed in the status directory.  Formats  are
544                 specified  using  printf(3S)  style conventions but using the
545                 field identifiers listed below.  Each item can include  field
546                 width, precision, left-justification, 0-filling, etc. just as
547                 for printf; e.g. %-8h for an  8-character  wide,  left-justi‐
548                 fied,  blank-padded field containing the name of the host the
549                 server is running on.
550
551                 Format    Description
552                 h         Server hostname
553                 l         Local identifier string
554                 m         Canonical modem name
555                 n         FAX phone number
556                 r         Maximum pages that can be received in a single call
557                 s         Status information string
558                 t         Server and session tracing levels (xxxxx:yyyyy)
559                 v         Modem speaker volume as one-character symbol
560                 z         A ``*'' if a faxgetty(8C) process is running; otherwise `` '' (space)
561
562                 The default format string is ``Modem %m (%n): %s''.
563
564       PagerIDMapFile
565                 The absolute pathname of the file  that  contains  directions
566                 for  mapping  pager  identifiers  to  IXO/TAP  or UCP service
567                 providers (and optionally  a  pager  identification  number).
568                 Consult  pagermap(5F)  for information on the format and con‐
569                 tent of this file.  (Note that absolute pathnames  are  rela‐
570                 tive to the root of the spooling area).
571
572       PriorityMap
573                 The  mapping from SNPP service level (0-11) to job scheduling
574                 priority.  A mapping is specified as a string of  space-sepa‐
575                 rate  numbers where each value is the priority to assign to a
576                 job.  The default mapping is ``63 127 127 127 127 127 127 127
577                 127  127  127  127'' which assigns a high priority to service
578                 level zero and normal (default) priority to all other service
579                 levels.
580
581       RcvFmt    The  format  string  to use when returning status information
582                 for received facsimile in the recvq directory.   Formats  are
583                 specified  using  printf(3S)  style conventions but using the
584                 field identifiers listed below.  Each item can include  field
585                 width, precision, left-justification, 0-filling, etc. just as
586                 for printf; e.g. %-3b for a 3-character wide, left-justified,
587                 blank-padded field containing the signalling rate.
588
589                 Format    Description
590                 X         Reception indicator (1=yes, 0=no)
591                 Y         Received date and time
592                 Z         Received time in seconds since the UNIX epoch
593                 a         SubAddress received from sender (if any)
594                 b         Signalling rate used during receive
595                 d         Data format used during receive
596                 e         Error description if an error occurred during receive
597                 f         Document filename (relative to the recvq directory)
598                 h         Time spent receiving document (HH:MM:SS)
599                 l         Page length in mm
600                 m         Fax-style protection mode string (``-rwxrwx'')
601                 n         File size (number of bytes)
602                 o         File owner
603                 p         Number of pages in document
604                 q         UNIX-style protection flags
605                 r         Resolution of received data
606                 s         Sender identity (TSI)
607                 t         Compact representation of the time when the receive happened
608                 w         Page width in mm
609                 z         A ``*'' if receive is going on; otherwise `` '' (space)
610
611                 The default format string is ``%-7m %4p%1z %-8.8o %14.14s %7t
612                 %f''.  This string constrains each status  line  to  be  less
613                 than 80 characters.  It is recommended that all items include
614                 a field width so that client applications, such as faxstat(1)
615                 that  construct  headers from the format string can constrain
616                 the width of column title strings.
617
618       RecvqProtection
619                 The permissions setting for administrator, owners, and  users
620                 for  viewing files in the HylaFAX receive queue.  The default
621                 setting of ``0444'' allows all users to view all files in the
622                 queues.   A setting of ``0440'' allows only the job owner and
623                 the administrator to view files.  A setting of  ``0040''  al‐
624                 lows  only  the  administrator  to view the files.  If a user
625                 doesn't have permissions on the file, the file  will  not  be
626                 visible to them when viewing the queue.
627
628       RetryTimeMap
629                 The mapping from SNPP service level (0-11) to job retry time.
630                 A mapping is specified as a string of space-separate  numbers
631                 where  each  value  is the number of seconds to delay between
632                 delivery attempts.  A value of  zero  causes  retries  to  be
633                 scheduled using the default algorithm used by the HylaFAX job
634                 scheduler.  The default mapping is ``30 60 60 180 0 0 0 0 0 0
635                 0  0''  which  retries a level 0 job after a 30 second delay,
636                 levels 1 and 2 after 60 seconds, level 3 after 3 minutes, and
637                 other  jobs are retried according to the usual scheduling al‐
638                 gorithm.
639
640       ServerTracing
641                 A number that controls the generation of tracing  information
642                 by a server.  areas that are individually controlled.  To en‐
643                 able tracing of multiple areas of operation, the flag associ‐
644                 ated  with each area should be bit-or'd to form the value for
645                 this tag.
646                 Flag             Description
647                 1 (0x00001)      General server operation
648                 2 (0x00002)      Client-server protocol requests and responses
649                 4 (0x00004)      File transfers from client to server
650                 8 (0x00008)      File transfers from server to client
651                 16 (0x00010)     Client logins
652                 32 (0x00020)     All network connections
653                 64 (0x00040)     FIFO messages to and from faxq(8C)
654                 128 (0x00080)    TIFF Library errors and warnings
655                 256 (0x00100)    Configuration file processing
656
657                 Tracing messages are directed to syslog(3) using the facility
658                 specified with the LogFacility configuration parameter.  Note
659                 that syslogd(8C) must be configured to capture facility.info,
660                 facility.debug, facility.warning, and facility.err messages.
661
662       ShutdownFile
663                 The  absolute  pathname  of the server shutdown file; see hy‐
664                 lafax-shutdown(5F) for information on the format and  content
665                 of  this file.  (Note that absolute pathnames are relative to
666                 the root of the spooling area).
667
668       UserAccessFile
669                 The absolute pathname of the user access  control  file;  see
670                 hosts.hfaxd(5F)  for information on the format and content of
671                 this file.  (Note that absolute pathnames are relative to the
672                 root of the spooling area).
673
674       XferLogFile
675                 The  absolute pathname of the file to use for logging client-
676                 server file transfers (when enabled through the ServerTracing
677                 parameter).   (Note  that  absolute pathnames are relative to
678                 the root of the spooling area).
679

OPTIONS

681       -q dir    The specified directory is treated as the spooling area.  The
682                 default  spooling area, /var/spool/hylafax, is defined at the
683                 time the software is built.
684
685       -d        Stop hfaxd from detaching itself from the controlling  termi‐
686                 nal.   This  option  is normally used only when running hfaxd
687                 under a debugger or when hfaxd is started  up  from  the  in‐
688                 etd(8C) process.
689
690       -D secs   Sleep  for  the  specified  number of seconds before actually
691                 processing the client to allow a debugger to attach.
692
693       -f bindaddressfamily
694                 Bind to the specified bindaddressfamily tcp port. Options are
695                 ``IPv4'',  ``IPv6'', or ``all''.  Please note that this argu‐
696                 ment needs to be specified before -i otherwise it will be ig‐
697                 nored.
698
699       -l bindaddress
700                 Bind  to the specified bindaddress tcp port. Please note that
701                 this argument needs to be specified before  -i  otherwise  it
702                 will  be ignored. A better approach to improve security would
703                 be to run hfaxd from xinetd, binding its service to the  spe‐
704                 cific  port.  This  will  also make hylafax benefits from tcp
705                 wrappers and other options provided by xinetd.
706
707       -p port:port
708                 Restrict the range of TCP ports used when binding the  socket
709                 for PASV/EPSV mode data transfers.  Without this option, bind
710                 will be called with a port of 0, allowing the kernel to allo‐
711                 cate  an  ephemeral port.  To be useful, -p MUST be specified
712                 BEFORE -i due to the way command line arguments are parsed.
713
714       -i port   Listen on the specified port for service requests and respond
715                 with  the  client-server protocol.  The port may be specified
716                 either symbolically, e.g. ``hylafax'' or  numerically.   This
717                 flag  may  be  specified multiple times to request service on
718                 multiple different ports.
719
720       -s port   Listen on the specified port for service requests and respond
721                 with the Simple Network Paging (SNPP) protocol.  The port may
722                 be specified either symbolically, e.g.  ``snpp''  or  numeri‐
723                 cally.   This flag may be specified multiple times to request
724                 service on multiple different ports.
725
726       -I        Service the client-server protocol using the  standard  input
727                 and  output.   This option is useful when hfaxd is started up
728                 by inetd(8C).
729
730       -S        Service the Simple Network Paging (SNPP) protocol  using  the
731                 standard  input and output.  This option is useful when hfaxd
732                 is started up by inetd(8C).
733

DIAGNOSTICS

735       Diagnostics generated by hfaxd are logged using syslog(3).
736
737       -c config Treat config as a configuration parameter specification  that
738                 is interpreted after reading the configuration file.  For ex‐
739                 ample, ``-c servertracing:0x4f'' would set the  ServerTracing
740                 configuration  parameter  to ``0x4f'', overriding any setting
741                 in the configuration file.
742

FILES

744       /etc/hylafax/hfaxd.conf             server configuration file
745       /var/spool/hylafax                  spooling area
746       /var/spool/hylafax/FIFO             for submitting the job
747       /var/spool/hylafax/sendq            where job description is placed
748       /var/spool/hylafax/sendq/seqf       for assigning job identifiers
749       /var/spool/hylafax/sendq/seqf.incrementincrement value for sendq seqf
750       /var/spool/hylafax/docq/seqf        for assigning document identifiers
751       /var/spool/hylafax/docq/seqf.incrementincrement value for docq seqf
752       /var/spool/hylafax/tmp              temporary location of job-related files
753       /var/spool/hylafax/docq             where document files are placed
754       /var/spool/hylafax/recvq            where received facsimile are found
755       /var/spool/hylafax/archive          where archived jobs are placed
756       /var/spool/hylafax/log              for server log files
757       /var/spool/hylafax/client           for FIFO files used in communicating with faxq
758       /var/spool/hylafax/status           for server status information
759       /var/spool/hylafax/config.device    for returning server status
760       /var/spool/hylafax/etc/hosts.hfaxd  host access control list
761       /var/spool/hylafax/etc/shutdown     server shutdown control
762       /var/spool/hylafax/etc/pagermap     SNPP pager ID mapping file
763

BUGS

765       To be filled in.
766

SEE ALSO

768       sendfax(1), sendpage(1), faxalter(1), faxrm(1),  faxstat(1),  faxq(8C),
769       syslog(3)  hylafax-server(5F),  hosts.hfaxd(5F),  status(5F),  hylafax-
770       shutdown(5F),
771
772
773
774                                 July 12, 1996                       HFAXD(8C)
Impressum