hfaxd.1m
上传用户:weiyuanprp
上传日期:2020-05-20
资源大小:1169k
文件大小:32k
源码类别:

传真(Fax)编程

开发平台:

C/C++

  1. ." $Id: hfaxd.1m,v 1.19 2009/09/29 11:10:13 faxguy Exp $
  2. ."
  3. ." HylaFAX Facsimile Software
  4. ."
  5. ." Copyright (c) 1995-1996 Sam Leffler
  6. ." Copyright (c) 1995-1996 Silicon Graphics, Inc.
  7. ." HylaFAX is a trademark of Silicon Graphics
  8. ." 
  9. ." Permission to use, copy, modify, distribute, and sell this software and 
  10. ." its documentation for any purpose is hereby granted without fee, provided
  11. ." that (i) the above copyright notices and this permission notice appear in
  12. ." all copies of the software and related documentation, and (ii) the names of
  13. ." Sam Leffler and Silicon Graphics may not be used in any advertising or
  14. ." publicity relating to the software without the specific, prior written
  15. ." permission of Sam Leffler and Silicon Graphics.
  16. ." 
  17. ." THE SOFTWARE IS PROVIDED "AS-IS" AND WITHOUT WARRANTY OF ANY KIND, 
  18. ." EXPRESS, IMPLIED OR OTHERWISE, INCLUDING WITHOUT LIMITATION, ANY 
  19. ." WARRANTY OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.  
  20. ." 
  21. ." IN NO EVENT SHALL SAM LEFFLER OR SILICON GRAPHICS BE LIABLE FOR
  22. ." ANY SPECIAL, INCIDENTAL, INDIRECT OR CONSEQUENTIAL DAMAGES OF ANY KIND,
  23. ." OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
  24. ." WHETHER OR NOT ADVISED OF THE POSSIBILITY OF DAMAGE, AND ON ANY THEORY OF 
  25. ." LIABILITY, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
  26. ." OF THIS SOFTWARE.
  27. ."
  28. .if n .po 0
  29. .ds Fx fIHylas-1FAXs+1fP
  30. .ds Ps Ps-2OSTs+2Ss-2CRIPTs+2
  31. .TH HFAXD ${MANNUM1_8} "July 12, 1996"
  32. .SH NAME
  33. hfaxd - *(Fx client-server protocol server
  34. .SH SYNOPSIS
  35. .B ${LIBEXEC}/hfaxd
  36. [
  37. .B -d
  38. ] [
  39. .B -D
  40. .I secs
  41. ] [
  42. .B -q
  43. .I dir
  44. ] [
  45. .B -c
  46. .I config
  47. ] [
  48. .B -o
  49. .I port
  50. ] [
  51. .B -O
  52. ] [
  53. .B -f
  54. .I bindaddressfamily
  55. ] [
  56. .B -l
  57. .I bindaddress
  58. ] [
  59. .B -i
  60. .I port
  61. ] [
  62. .B -I
  63. ] [
  64. .B -s
  65. .I port
  66. ] [
  67. .B -S
  68. ]
  69. .SH DESCRIPTION
  70. .I hfaxd
  71. is the *(Fx program that implements the server
  72. portion of:
  73. .IP (bu 3
  74. the client-server protocol and
  75. .IP (bu 3
  76. the Simple Network Paging Protocol (s-1SNPPs+1) used to submit
  77. message pager jobs to the IXO/TAP and UCP support.
  78. .PP
  79. Additional client-server protocols are planned and 
  80. .I hfaxd
  81. is intended to be the ``carrier'' through which they are supported.
  82. .PP
  83. .I hfaxd
  84. is typically used in one of two ways; either as a stand-alone
  85. process that is started at system boot time to listen
  86. for client connections on one or more ports (in which case the
  87. -i, -o, or -s option must be used),
  88. or as a subservient process to the
  89. .IR inetd (${MANNUM1_8})
  90. program.
  91. The two forms of use may however be combined so long as the same
  92. service is not provided both by the stand-alone
  93. .I hfaxd
  94. and through
  95. .IR inetd .
  96. .SH "HYLAFAX CLIENT-SERVER PROTOCOL SUPPORT"
  97. If
  98. .I hfaxd
  99. is started with the
  100. .B -i
  101. option it will service clients using the *(Fx client-server
  102. protocol.
  103. This protocol is strongly related to the Internet File Transfer
  104. Protocol (s-1FTPs+1); so much so in fact that s-1FTPs+1
  105. client programs that include support for ``quoted commands''
  106. may be used to communicate with
  107. .I hfaxd
  108. using the new protocol.
  109. (It should also be possible to use s-1FTPs+1-aware World Wide
  110. Web browsers such as Mosaic and Netscape Navigator to access *(Fx
  111. servers through the new protocol; but the current format for
  112. information returned in directory listings confuses them.)
  113. .PP
  114. The
  115. .I hfaxd
  116. server currently recognizes the following protocol requests; case
  117. is not distinguished.
  118. Entries marked with a 鹿 can be used only when the client has
  119. established administrative privileges with s-1ADMINs+1.
  120. .PP
  121. .nf
  122. .ta w'DISABLE鹿        'u
  123. fBRequest DescriptionfP
  124. ABOR abort previous command
  125. ACCT specify account (ignored)
  126. ADMIN specify password for administrative privileges
  127. ALLO allocate storage (vacuously)
  128. ANSWER鹿 request that call be answered
  129. APPE append to a file
  130. CDUP change to parent of current working directory
  131. CHMOD change mode of a file
  132. CHOWN鹿 change owner of a file
  133. CWD change working directory
  134. DELE delete a file
  135. DISABLE鹿 disable outbound use of modem
  136. ENABLE鹿 enable outbound use of modem
  137. HELP give help information
  138. FILEFMT specify/query format for returning file status
  139. FORM specify data transfer fIformatfP
  140. IDLE set idle-timer (in seconds)
  141. JDELE delete done or suspended job
  142. JINTR interrupt job
  143. JKILL kill job
  144. JNEW create new job
  145. JOB set/query current job
  146. JOBFMT specify/query format for returning job status
  147. JPARM specify/query job state parameter
  148. JREST reset current job state
  149. JSUBM submit job to scheduler
  150. JSUSP suspend job from scheduling
  151. JWAIT wait for job to complete
  152. JGDELE delete group of jobs
  153. JGKILL kill group of jobs
  154. JGINTR interrupt group of jobs
  155. JGNEW place current job in a new job group
  156. JGPARM set state parameter in a group of jobs
  157. JGREST reset current state for a group of jobs
  158. JGRP set/query current job group
  159. JGSUBM submit group of jobs to scheduler
  160. JGSUSP suspend group of jobs from scheduling
  161. JGWAIT wait for group of jobs to complete
  162. LIST list files in a directory
  163. MDTM show last modification time of file
  164. MODE specify data transfer fImodefP
  165. MDMFMT specify/query format for returning modem status
  166. NLST give name list of files in directory 
  167. NOOP do nothing
  168. PASS specify password
  169. PASV prepare for server-to-server transfer
  170. PORT specify data connection port
  171. PWD print the current working directory
  172. QUIT terminate session
  173. RCVFMT specify/query format for returning received facsimile status
  174. REIN reinitiate server state
  175. REST restart incomplete transfer
  176. RETP retrieve the next page in a file
  177. RETR retrieve a file
  178. SHUT schedule server shutdown
  179. SITE non-standard commands (see next section)
  180. SIZE return size of file
  181. STAT return status of server or file
  182. STOR store a file
  183. STOT store a temporary file with a unique name
  184. STOU store a file with a unique name
  185. STRU specify data transfer fIstructurefP
  186. SYST show operating system type of server system
  187. TYPE specify data transfer fItypefP
  188. TZONE specify timezone handling for dates and times
  189. USER specify user name
  190. VRFY verify dialstring handling and/or least-cost routing
  191. .fi
  192. .PP
  193. The following non-standard or experimental commands are supported
  194. through the s-1SITEs+1 request.
  195. .PP
  196. .nf
  197. .ta w'ADDMODEM鹿        'u
  198. fBRequest DescriptionfP
  199. ADDMODEM鹿 add/configure new modem for use
  200. ADDUSER鹿 add client access control entry
  201. CONFIG鹿 send configuration parameter setting to server
  202. DELMODEM鹿 deconfigure/remove modem
  203. DELUSER鹿 remove client access control entry
  204. TRIGGER register real-time event trigger
  205. HELP give help information, e.g., SITE HELP
  206. .fi
  207. .PP
  208. In addition s-1FTPs+1 requests that are specified in Internet 
  209. RFC 959 but not listed here are recognized, but not implemented.
  210. .PP
  211. The 
  212. .I hfaxd
  213. server will abort an active data transfer only when the
  214. s-1ABORs+1 command is preceded by a Telnet "Interrupt Process" (IP)
  215. signal and a Telnet "Synch" signal in the command Telnet stream,
  216. as described in Internet s-1RFCs+1 959.
  217. If a s-1STATs+1 command is received during a data transfer,
  218. preceded by a Telnet IP and Synch, transfer status will be returned.
  219. .SH "SIMPLE NETWORK PAGING PROTOCOL (SNPP) SUPPORT"
  220. If
  221. .I hfaxd
  222. is started with the
  223. .B -s
  224. option it will service clients using the Simple Network Pager
  225. Protocol (s-1SNPPs+1) as specified in s-1RFCs+1 1861
  226. (which obsoletes
  227. .SM RFC
  228. 1645).
  229. .PP
  230. The
  231. .I hfaxd
  232. server currently recognizes the s-1SNPPs+1
  233. protocol requests listed below.
  234. Requests marked with a 鹿 are non-standard extensions to
  235. .SM RFC
  236. 1861 that may be added to
  237. .SM SNPP
  238. at some future time.
  239. Case is not distinguished and only the
  240. first four characters of requests are used in identifying
  241. commands.
  242. .PP
  243. .nf
  244. .ta w'ABOR鹿        'u
  245. fBRequest DescriptionfP
  246. 2WAY preface a 2-way transaction
  247. ABOR鹿 abort previous command
  248. ACKR set read acknowledgement handling for subsequent requests
  249. ALER set the alter-level for subsequent requests
  250. CALL set the caller-ID for subsequent requests
  251. COVE set the alternate coverage area for subsequent requests
  252. DATA specify a multi-line message
  253. EXPT set the expiration time for subsequent requests
  254. HELP give help information
  255. HOLD set the time at which subsequent requests are to be delivered
  256. KTAG kill a previously submitted request
  257. LEVE set the service level for subsequent requests
  258. LOGI login to server
  259. MCRE specify multiple response text and code
  260. MESS specify a single-line message
  261. MSTA return the status of a previously submitted request
  262. NOQU disable message queueing
  263. PAGE specify the destination pager
  264. PING locate/validate a pager
  265. QUIT terminate session
  266. RESE reset server state
  267. RTYP set the reply type code for subsequent requests
  268. SEND send message(s)
  269. SITE鹿 site-specific commands (see next section)
  270. STAT鹿 return server status
  271. SUBJ set the message text for subsequent requests
  272. .fi
  273. .PP
  274. The
  275. .I hfaxd
  276. server will abort an active 
  277. .SM SEND
  278. operation when an
  279. .SM ABOR
  280. command is preceded by a Telnet "Interrupt Process" (s-1IPs+1)
  281. signal and a Telnet "Synch" signal in the command Telnet stream.
  282. .PP
  283. The following non-standard or experimental commands are also
  284. supported through the
  285. .SM SITE
  286. request.
  287. .PP
  288. .nf
  289. .ta w'RETRYTIME      'u
  290. fBRequest DescriptionfP
  291. FROMUSER specify the sender's identity
  292. IDLE set idle-timer (in seconds)
  293. JPARM query job parameter status
  294. JQUEUE control whether or not job is queued
  295. LASTTIME set the time to terminate an unfinished job
  296. MAILADDR set the e-mail address to use for notification
  297. MAXDIALS set the maximum number of times to dial the phone
  298. MAXTRIES set the maximum number of times to try sending the page
  299. MODEM set the modem or class of modems to use
  300. NOTIFY set the e-mail notification
  301. RETRYTIME set the time to delay between job retries
  302. SCHEDPRI set the scheduling priority for the job
  303. HELP give help information, e.g., SITE HELP
  304. .fi
  305. .PP
  306. Note that
  307. .I hfaxd
  308. requires that
  309. .SM SNPP
  310. clients login first with the
  311. .SM LOGI
  312. directive while
  313. .SM RFC
  314. 1861 permits clients to submit pages anonymously.
  315. .SH "CLIENT ACCESS CONTROL"
  316. .I hfaxd
  317. controls client access according to the information in the file
  318. .BR ${SPOOL}/etc/hosts.hfaxd .
  319. This file defines the set of users and machines that may receive
  320. service and, optionally, defines password challenges to use in
  321. authenticating clients.
  322. Clients may be permitted access to services with or without a password
  323. challenge.
  324. Access may also be restricted based on the host machine that a
  325. request for service originates from.
  326. Consult
  327. .IR hosts.hfaxd (${MANNUM4_5})
  328. for information on the format and content of this file.
  329. The s-1SITE ADDUSERs+1
  330. protocol request is provided for adding new users to a server
  331. (available only to clients with administrative privileges).
  332. .PP
  333. Server resources are controlled based on clients' identities.
  334. Jobs and documents, both received and submitted, are protected
  335. by the server.
  336. Typically clients are permitted access to anything they own or
  337. that is publicly accessible.
  338. There are also administrative privileges that clients may acquire
  339. and which permit them wide access to objects that reside on the
  340. server.
  341. .PP
  342. A complete client-server protocol specification is still outstanding.
  343. .PP
  344. .I hfaxd
  345. operates with its root directory set to the top of the
  346. *(Fx spooling area; ${SPOOL}.
  347. This is done so that clients see a virtual file hierarchy that
  348. is completely contained within the *(Fx operating environment on
  349. the server machine.
  350. Administrators however must be aware of this action when specifying
  351. files in the
  352. .I hfaxd
  353. configuration file: absolute pathnames relative to the root of the 
  354. spooling should be used to specify filenames.
  355. .SH "SERVER ACCESS CONTROL"
  356. The file
  357. .BR ${SPOOL}/etc/shutdown ,
  358. when present, specifies when to restrict access to a server machine.
  359. When this file is present and contains valid information
  360. .I hfaxd
  361. will permit only users with administrative privileges to access
  362. the server.
  363. Any other users that request service will be denied access and
  364. negative server responses will include any
  365. shutdown message specified in the shutdown file.
  366. Consult
  367. .IR hylafax-shutdown (${MANNUM4_5})
  368. for information on the format and content of this file.
  369. .PP
  370. The s-1SHUTs+1
  371. protocol request can be used to schedule a server shutdown;
  372. it is available only to clients with administrative privileges.
  373. To make a shutdown server available again the shutdown file
  374. can be deleted with the s-1DELEs+1
  375. protocol request (fIthis is to be replaced with an ``unshut''
  376. protocol request so that implementation details are not part of the
  377. protocolfP).
  378. .SH "CONFIGURATION FILES"
  379. .I hfaxd
  380. reads configuration information from the file
  381. .BR ${LIBDATA}/hfaxd.conf
  382. each time a new server process is started (i.e. for each new client).
  383. This file uses the same conventions used by other *(Fx configuration
  384. files; as described in 
  385. .IR hylafax-config (${MANNUM4_5}).
  386. The following configuration parameters are recognized; items marked
  387. ``(s-1SNPPs+1)'' are used only by the s-1SNPPs+1 support.
  388. .sp .5
  389. .nf
  390. .ta w'MaxConsecutiveBadCmds    'u +w'integer    'u +w's-1${SPOOL}/etc/clientlogs+1    'u
  391. fBTag Type Default DescriptionfP
  392. FaxContact string s-1fIsee belowfPs+1 contact address to show in help text
  393. FileFmt string s-1fIsee belowfPs+1 format string for file status results
  394. IdleTimeout integer s-1900s+1 client idle timeout in seconds
  395. JobFmt string s-1fIsee belowfPs+1 format string for job status results
  396. JobProtection octal s-10644s+1 permissions for job qfiles in sendq/doneq
  397. KillTimeMap string s-1fIsee belowfPs+1 mapping from service level to job kill time (s-1SNPPs+1)
  398. LDAPServerURI string URI of the ldap server including port number
  399. LDAPBaseDN string LDAP context where user objects can be found
  400. LDAPReqGroup string LDAP context of the users group
  401. LDAPVersion integer 3 LDAP protocol version to use
  402. LogFacility string s-1daemons+1 fIsyslogfP facility name for tracing messages
  403. MaxAdminAttempts integer s-15s+1 maximum admin attempts before disconnecting
  404. MaxConsecutiveBadCmds integer s-110s+1 maximum invalid commands before disconnecting
  405. MaxIdleTimeout integer s-17200s+1 maximum client idle timeout permitted
  406. MaxLoginAttempts integer s-15s+1 maximum login attempts before disconnecting
  407. MaxMsgLength integer 128 maximum pager message length (s-1SNPPs+1)
  408. ModemFmt string s-1fIsee belowfPs+1 format string for modem status results
  409. PagerIDMapFile string s-1${SPOOL}/etc/pagermaps+1 name of file for mapping pager IDs (s-1SNPPs+1)
  410. PriorityMap string s-1fIsee belowfPs+1 mapping from service level to job priority (s-1SNPPs+1)
  411. RcvFmt string s-1fIsee belowfPs+1 format string for received facsimile status results
  412. RecvqProtection octal s-10444s+1 permissions for client access to recvq
  413. RetryTimeMap string s-1fIsee belowfPs+1 mapping from service level to job retry time (s-1SNPPs+1)
  414. ServerTracing integer s-11s+1 server tracing control vector
  415. ShutdownFile string s-1${SPOOL}/etc/shutdowns+1 name of shutdown control file
  416. UserAccessFile string s-1${SPOOL}/etc/hosts.hfaxds+1 name of access control file
  417. XferLogFile string s-1${SPOOL}/etc/clientlogs+1 name of file for logging client data transfers
  418. .fi
  419. .PP
  420. The configuration parameters are explained below:
  421. .TP 10
  422. .B FaxContact
  423. The e-mail address to display as a point of contact in the help text
  424. returned to a client in response to the s-1HELPs+1 or
  425. s-1SITE HELPs+1 commands.
  426. By default this is ``FaxMaster@fIhostnamefP'', where
  427. .I hostname
  428. is the fully qualified name for the machine where the server is running.
  429. .TP 10
  430. .B FileFmt
  431. The format string to use when returning file status information with the
  432. s-1LISTs+1 and s-1STATs+1 commands.
  433. Formats are specified using 
  434. .IR printf (3S)
  435. style conventions but using the field identifiers listed below.
  436. Each item can include field width, precision, left-justification,
  437. 0-filling, etc. just as for 
  438. .IR printf ;
  439. e.g. %-8p for an 8-character wide, left-justified, blank-padded
  440. field containing the file protection flags.
  441. .IP
  442. .nf
  443. .ta w'Format    'u +w'Description    'u
  444. fBFormat DescriptionfP
  445. a Last access time
  446. c Creation time
  447. d Device number (octal)
  448. f Filename
  449. g Group identifier (decimal)
  450. i Inode number (decimal)
  451. l Link count (decimal)
  452. m Last modification time
  453. o Owner (based on file s-1GIDs+1)
  454. p Fax-style protection flags (no group bits)
  455. q s-1UNIXs+1-style protection flags
  456. r Root device number (octal)
  457. s File size in bytes (decimal)
  458. u User identifier (decimal)
  459. .fi
  460. .IP
  461. The default format string is ``%-7p %3l %8o %8s %-12.12m %.48f''.
  462. It is recommended that all items include a field width so that client
  463. applications
  464. that construct headers from the format string can constrain the width of
  465. column title strings.
  466. .TP 10
  467. .B IdleTimeout
  468. The initial/default timeout to use in timing out idle clients.
  469. This value defines the maximum amount of time (in seconds) that
  470. .I hfaxd
  471. will wait for a command from a client before terminating the connection.
  472. Unprivileged clients may alter the idle timeout up to the value of
  473. .IR MaxIdleTimeout ;
  474. privileged clients may set the timeout to any value.
  475. .TP 10
  476. .B JobFmt
  477. The format string to use when returning job status information for
  478. jobs in the 
  479. .B sendq
  480. and
  481. .B doneq
  482. directories.
  483. Formats are specified using 
  484. .IR printf (3S)
  485. style conventions but using the field identifiers listed below.
  486. Each item can include field width, precision, left-justification,
  487. 0-filling, etc. just as for 
  488. .IR printf ;
  489. e.g. %-3j for a 3-character wide, left-justified, blank-padded
  490. field containing the job state.
  491. .IP
  492. .nf
  493. .ta w'Format    'u +w'Description    'u
  494. fBFormat DescriptionfP
  495. A Destination SubAddress
  496. B Destination Password
  497. C Destination company name
  498. D Total # dials/maximum # dials
  499. E Desired signalling rate
  500. F Client-specific tagline format string
  501. G Desired min-scanline time
  502. H Desired data format
  503. I Client-specified scheduling priority
  504. J Client-specified job tag string
  505. K Desired use of ECM
  506. L Destination geographic location
  507. M Notification e-mail address
  508. N Desired use of private tagline (one-character symbol)
  509. O Whether to use continuation cover page (one-character symbol)
  510. P # pages transmitted/total # pages to transmit
  511. Q Client-specified minimum acceptable signalling rate
  512. R Destination person (receiver)
  513. S Sender's identity
  514. T Total # tries/maximum # tries
  515. U Page chopping threshold (inches)
  516. V Job done operation
  517. W Communication identifier
  518. X Job type (one-character symbol)
  519. Y Scheduled date and time
  520. Z Scheduled time in seconds since the UNIX epoch
  521. a Job state (one-character symbol)
  522. b # consecutive failed tries
  523. c Client machine name
  524. d Total # dials
  525. e Public (external) format of dialstring
  526. f # consecutive failed dials
  527. g Group identifier
  528. h Page chop handling (one-character symbol)
  529. i Current scheduling priority
  530. j Job identifier
  531. k Job kill time
  532. l Page length in mm
  533. m Assigned modem
  534. n E-mail notification handling (one-character symbol)
  535. o Job owner
  536. p # pages transmitted
  537. q Job retry time (MM::SS)
  538. r Document resolution in lines/inch
  539. s Job status information from last failure
  540. t Total # tries attempted
  541. u Maximum # tries
  542. v Client-specified dialstring
  543. w Page width in mm
  544. x Maximum # dials
  545. y Total # pages to transmit
  546. z Time to send job
  547. .fi
  548. .IP
  549. The default format string is ``%-4j %3i %1a %6.6o %-12.12e %5P %5D %7z %.25s''.
  550. This string constrains each status line to be less than 80 characters.
  551. It is recommended that all items include a field width so that client
  552. applications, such as
  553. .IR faxstat (1)
  554. that construct headers from the format string can constrain the width of
  555. column title strings.
  556. .TP 10
  557. .B JobProtection
  558. The file mode setting for job qfiles in the *(Fx queues (sendq and doneq).
  559. The default setting of ``0644'' allows all users to view all job parameters in
  560. the send and done queues.   The mode determines the permissions of the clients to
  561. see the jobs, following the *(Fx permission model of the group bits
  562. controlling uid permissions and the other bits controlling other permissions.
  563. A setting of ``0640'' allows only the job owner and the administrator to view jobs.
  564. If a user doesn't have permissions on the job, the job will not be visible 
  565. to them when viewing the queues.
  566. .TP 10
  567. .B KillTimeMap
  568. The mapping from s-1SNPPs+1 service level (0-11) to job expiration time
  569. (kill time).
  570. A mapping is specified as a string of space-separate numbers where each
  571. value is the number of minutes to permit a job to run.
  572. The default mapping is ``5 5 5 15 60 240 720 1440 1440 1440 1440 1440''
  573. which expires a
  574. job in 5 minutes for service levels 0-2, 15 minutes for level three, 60
  575. minutes for level four, etc.
  576. .TP 10
  577. .B LDAPServerURI
  578. The full address of the ldap server including port number, i.e.: ldaps://1.2.3.4:636 
  579. (for secure connections) or ldap://1.2.3.4:389 (for insecure connections)
  580. .TP 10
  581. .B LDAPBaseDN
  582. The full LDAP context where user objects can be found, i.e.: 
  583. ou=users,dc=example,dc=com for Active Directory/LDAP or ou=users,o=organization for Novell eDirectory
  584. .TP 10
  585. .B LDAPReqGroup
  586. The full LDAP context of the group users have to be a member of to gain HylaFAX 
  587. access for sending faxes
  588. .TP 10
  589. .B LDAPVersion
  590. Version number of the LDAP Protocol to use (default is '3')
  591. .TP 10
  592. .B LogFacility
  593. The symbolic name for the 
  594. .IR syslog (3)
  595. facility to use when logging error messages and
  596. informational/debugging messages requested through the
  597. .B ServerTracing
  598. parameter.
  599. The list of facility names is found in the system include file
  600. .BR <syslog.h> ;
  601. comparisons are case-insensitive.
  602. .TP 10
  603. .B MaxAdminAttempts
  604. The maximum number of unsuccessful attempts
  605. gain administrative privileges with the s-1ADMINs+1 command that
  606. .I hfaxd
  607. will permit a client before terminating the connection.
  608. Note that the count of attempts is reset if/when the client
  609. successfully gains administrative privileges.
  610. .TP 10
  611. .B MaxConsecutiveBadCmds
  612. The maximum number of consecutive unrecognized, unimplemented, syntactically
  613. incorrect, or otherwise unacceptable commands to permit a client
  614. before terminating the connection.
  615. This control has two purposes: to handle naive or malicious clients
  616. from sending long streams of nonsense commands to a server, and to
  617. ensure that clients are forcibly terminated when a server is marked shutdown.
  618. .TP 10
  619. .B MaxIdleTimeout
  620. The maximum value that a client may set the idle timeout to.
  621. This value is not enforced if the client has administrative privileges.
  622. .TP 10
  623. .B MaxLoginAttempts
  624. The maximum number of unsuccessful attempts
  625. to login with the s-1USERs+1 and s-1PASSs+1 commands that
  626. .I hfaxd
  627. will permit a client before terminating the connection.
  628. .TP 10
  629. .B MaxMsgLength
  630. The maximum number of characters to accept in a pager message specified
  631. with the s-1DATAs+1 or s-1MESSs+1 commands.
  632. Messages longer than this value are rejected.
  633. .TP 10
  634. .B ModemFmt
  635. The format string to use when returning modem status information
  636. for modems listed in the 
  637. .B status
  638. directory.
  639. Formats are specified using 
  640. .IR printf (3S)
  641. style conventions but using the field identifiers listed below.
  642. Each item can include field width, precision, left-justification,
  643. 0-filling, etc. just as for 
  644. .IR printf ;
  645. e.g. %-8h for an 8-character wide, left-justified, blank-padded
  646. field containing the name of the host the server is running on.
  647. .IP
  648. .nf
  649. .ta w'Format    'u +w'Description    'u
  650. fBFormat DescriptionfP
  651. h Server hostname
  652. l Local identifier string
  653. m Canonical modem name
  654. n FAX phone number
  655. r Maximum pages that can be received in a single call
  656. s Status information string
  657. t Server and session tracing levels (xxxxx:yyyyy)
  658. v Modem speaker volume as one-character symbol
  659. z A ``*'' if a fIfaxgettyfP|(${MANNUM1_8}) process is running; otherwise `` '' (space)
  660. .fi
  661. .IP
  662. The default format string is ``Modem %m (%n): %s''.
  663. .TP 10
  664. .B PagerIDMapFile
  665. The absolute pathname of the file that contains directions for
  666. mapping pager identifiers to s-1IXO/TAPs+1 or s-1UCPs+1 service providers
  667. (and optionally a pager identification number).
  668. Consult
  669. .IR pagermap (${MANNUM4_5})
  670. for information on the format and content of this file.
  671. (Note that absolute pathnames are relative to the root
  672. of the spooling area).
  673. .TP 10
  674. .B PriorityMap
  675. The mapping from s-1SNPPs+1 service level (0-11) to job scheduling priority.
  676. A mapping is specified as a string of space-separate numbers where each
  677. value is the priority to assign to a job.
  678. The default mapping is ``63 127 127 127 127 127 127 127 127 127 127 127''
  679. which assigns
  680. a high priority to service level zero and normal (default) priority to
  681. all other service levels.
  682. .TP 10
  683. .B RcvFmt
  684. The format string to use when returning status information for
  685. received facsimile in the 
  686. .B recvq
  687. directory.
  688. Formats are specified using 
  689. .IR printf (3S)
  690. style conventions but using the field identifiers listed below.
  691. Each item can include field width, precision, left-justification,
  692. 0-filling, etc. just as for 
  693. .IR printf ;
  694. e.g. %-3b for a 3-character wide, left-justified, blank-padded
  695. field containing the signalling rate.
  696. .IP
  697. .nf
  698. .ta w'Format    'u +w'Description    'u
  699. fBFormat DescriptionfP
  700. X Reception indicator (1=yes, 0=no)
  701. Y Received date and time
  702. Z Received time in seconds since the UNIX epoch
  703. a SubAddress received from sender (if any)
  704. b Signalling rate used during receive
  705. d Data format used during receive
  706. e Error description if an error occurred during receive
  707. f Document filename (relative to the fBrecvqfP directory)
  708. h Time spent receiving document (HH:MM:SS)
  709. l Page length in mm
  710. m Fax-style protection mode string (``-rwxrwx'')
  711. n File size (number of bytes)
  712. o File owner
  713. p Number of pages in document
  714. q s-1UNIXs+1-style protection flags
  715. r Resolution of received data
  716. s Sender identity (s-1TSIs+1)
  717. t Compact representation of the time when the receive happened
  718. w Page width in mm
  719. z A ``*'' if receive is going on; otherwise `` '' (space)
  720. .fi
  721. .IP
  722. The default format string is ``%-7m %4p%1z %-8.8o %14.14s %7t %f''.
  723. This string constrains each status line to be less than 80 characters.
  724. It is recommended that all items include a field width so that client
  725. applications, such as
  726. .IR faxstat (1)
  727. that construct headers from the format string can constrain the width of
  728. column title strings.
  729. .TP 10
  730. .B RecvqProtection
  731. The permissions setting for administrator, owners, and users for viewing files in
  732. the *(Fx receive queue.  The default setting of ``0444'' allows all users to view all
  733. files in the queues.  A setting of ``0440'' allows only the job owner and the 
  734. administrator to view files.  A setting of ``0040'' allows only the administrator 
  735. to view the files.  If a user doesn't have permissions 
  736. on the file, the file will not be visible to them when viewing the queue.
  737. .TP 10
  738. .B RetryTimeMap
  739. The mapping from s-1SNPPs+1 service level (0-11) to job retry time.
  740. A mapping is specified as a string of space-separate numbers where each
  741. value is the number of seconds to delay between delivery attempts.
  742. A value of zero causes retries to be scheduled using the default
  743. algorithm used by the *(Fx job scheduler.
  744. The default mapping is
  745. ``30 60 60 180 0 0 0 0 0 0 0 0''
  746. which retries a level 0 job after a 30 second delay, levels 1 and 2
  747. after 60 seconds, level 3 after 3 minutes, and other jobs are
  748. retried according to the usual scheduling algorithm.
  749. .TP 10
  750. .B ServerTracing
  751. A number that controls the generation of tracing
  752. information by a server.
  753. .I areas
  754. that are individually controlled.
  755. To enable tracing of multiple areas of operation, the
  756. flag associated with each area should be bit-or'd to
  757. form the value for this tag.
  758. .ne 1i
  759. .sp .5
  760. .ta w'fB256 (0x04000)    fP'u
  761. .nf
  762. fBFlag DescriptionfP
  763. 1 (0x00001) General server operation
  764. 2 (0x00002) Client-server protocol requests and responses
  765. 4 (0x00004) File transfers from client to server
  766. 8 (0x00008) File transfers from server to client
  767. 16 (0x00010) Client logins
  768. 32 (0x00020) All network connections
  769. 64 (0x00040) s-1FIFOs+1 messages to and from fIfaxqfP|(${MANNUM1_8})
  770. 128 (0x00080) s-1TIFFs+1 Library errors and warnings
  771. 256 (0x00100) Configuration file processing
  772. .sp .5
  773. .fi
  774. .IP
  775. Tracing messages are directed to
  776. .IR syslog (3)
  777. using the fIfacilityfP specified with the
  778. .B LogFacility
  779. configuration parameter.
  780. Note that 
  781. .IR syslogd (${MANNUM1_8})
  782. must be configured to capture
  783. .IR facility.info ,
  784. .IR facility.debug ,
  785. .IR facility.warning ,
  786. and
  787. .I facility.err
  788. messages.
  789. .TP 10
  790. .B ShutdownFile
  791. The absolute pathname of the server shutdown file;
  792. see
  793. .IR hylafax-shutdown (${MANNUM4_5})
  794. for information on the format and content of this file.
  795. (Note that absolute pathnames are relative to the root
  796. of the spooling area).
  797. .TP 10
  798. .B UserAccessFile
  799. The absolute pathname of the user access control file;
  800. see
  801. .IR hosts.hfaxd (${MANNUM4_5})
  802. for information on the format and content of this file.
  803. (Note that absolute pathnames are relative to the root
  804. of the spooling area).
  805. .TP 10
  806. .B XferLogFile
  807. The absolute pathname of the file to use for logging client-server
  808. file transfers (when enabled through the
  809. .B ServerTracing
  810. parameter).
  811. (Note that absolute pathnames are relative to the root
  812. of the spooling area).
  813. .SH OPTIONS
  814. .TP 10
  815. .BI -q " dir"
  816. The specified directory is treated as the spooling area.
  817. The default spooling area,
  818. .IR ${SPOOL} ,
  819. is defined at the time the software is built.
  820. .TP 10
  821. .B -d
  822. Stop
  823. .I hfaxd
  824. from
  825. .I detaching
  826. itself from the controlling terminal.
  827. This option is normally used only when running 
  828. .I hfaxd
  829. under a debugger or when
  830. .I hfaxd
  831. is started up from the
  832. .IR inetd (${MANNUM1_8})
  833. process.
  834. .TP 10
  835. .BI -D " secs"
  836. Sleep for the specified number of seconds before actually processing the
  837. client to allow a debugger to attach.
  838. .TP 10
  839. .BI -f " bindaddressfamily"
  840. Bind to the specified 
  841. .I bindaddressfamily
  842. tcp port. Options are ``IPv4'', ``IPv6'', or ``all''.  
  843. Please note that this argument needs to be specified before 
  844. .BI -i
  845. otherwise it will be ignored.
  846. .TP 10
  847. .BI -l " bindaddress"
  848. Bind to the specified 
  849. .I bindaddress
  850. tcp port. Please note that this argument needs to be specified before
  851. .BI -i
  852. otherwise it will be ignored. A better approach to improve security would
  853. be to run hfaxd from xinetd, binding its service to the specific port. This
  854. will also make hylafax benefits from tcp wrappers and other options
  855. provided by xinetd.
  856. .TP 10
  857. .BI -i " port"
  858. Listen on the specified 
  859. .I port
  860. for service requests and respond with the client-server protocol.
  861. The port may be specified either symbolically, e.g. ``hylafax''
  862. or numerically.
  863. This flag may be specified multiple times to request service on multiple
  864. different ports.
  865. .TP 10
  866. .BI -s " port"
  867. Listen on the specified
  868. .I port
  869. for service requests and respond with the Simple Network Paging (SNPP)
  870. protocol.
  871. The port may be specified either symbolically, e.g. ``snpp''
  872. or numerically.
  873. This flag may be specified multiple times to request service on multiple
  874. different ports.
  875. .TP 10
  876. .B -I
  877. Service the client-server protocol using the standard input and
  878. output.
  879. This option is useful when
  880. .I hfaxd
  881. is started up by
  882. .IR inetd (${MANNUM1_8}).
  883. .TP 10
  884. .B -S
  885. Service the Simple Network Paging (SNPP) protocol
  886. using the standard input and output.
  887. This option is useful when
  888. .I hfaxd
  889. is started up by
  890. .IR inetd (${MANNUM1_8}).
  891. .SH DIAGNOSTICS
  892. Diagnostics generated by
  893. .I hfaxd
  894. are logged using
  895. .IR syslog (3).
  896. .TP 10
  897. .BI -c " config"
  898. Treat
  899. .I config
  900. as a configuration parameter specification that is interpreted
  901. after reading the configuration file.
  902. For example, ``-c servertracing:0x4f'' would set the
  903. .B ServerTracing
  904. configuration parameter to ``0x4f'', overriding any setting in
  905. the configuration file.
  906. .SH FILES
  907. .ta w'${SPOOL}/config.fIdevicefP    'u
  908. .nf
  909. ${LIBDATA}/hfaxd.conf server configuration file
  910. ${SPOOL} spooling area
  911. ${SPOOL}/FIFO for submitting the job
  912. ${SPOOL}/sendq where job description is placed
  913. ${SPOOL}/sendq/seqf for assigning job identifiers
  914. ${SPOOL}/docq/seqf for assigning document identifiers
  915. ${SPOOL}/tmp temporary location of job-related files
  916. ${SPOOL}/docq where document files are placed
  917. ${SPOOL}/recvq where received facsimile are found
  918. ${SPOOL}/archive where archived jobs are placed
  919. ${SPOOL}/log for server log files
  920. ${SPOOL}/client for s-1FIFOs+1 files used in communicating with fIfaxqfP
  921. ${SPOOL}/status for server status information
  922. ${SPOOL}/config.fIdevicefP for returning server status
  923. ${SPOOL}/etc/hosts.hfaxd host access control list
  924. ${SPOOL}/etc/shutdown server shutdown control
  925. ${SPOOL}/etc/pagermap s-1SNPPs+1 pager ID mapping file
  926. .fi
  927. .SH BUGS
  928. To be filled in.
  929. .SH "SEE ALSO"
  930. .IR sendfax (1),
  931. .IR sendpage (1),
  932. .IR faxalter (1),
  933. .IR faxrm (1),
  934. .IR faxstat (1),
  935. .IR faxq (${MANNUM1_8}),
  936. .IR syslog (3)
  937. .IR hylafax-server (${MANNUM4_5}),
  938. .IR hosts.hfaxd (${MANNUM4_5}),
  939. .IR status (${MANNUM4_5}),
  940. .IR hylafax-shutdown (${MANNUM4_5}),