DONEQ(5)

๐Ÿฆ‹ DONEQ ๐Ÿ’… โ€” the doneq/q* files, aka HylaFAX's outbound job descriptions

okay bestie, welcome to the DONEQ(5) page, filed under File Formats Manual ๐Ÿ“โœจ this is the whole lore on how HylaFAX keeps track of fax jobs it's about to yeet into the world.


โœจ NAME โœจ

doneq/q* โ€” the HylaFAX outbound job description files ๐ŸŽ€


๐ŸŒธ DESCRIPTION ๐ŸŒธ

so like. the files sitting in the doneq directory? they're literally the transmission job requests themselves. each one is a whole job, described in text. these files get created by hfaxd(8) when it's submitting a job on behalf of sendfax(1) or sendpage(1) ๐Ÿซถ

and bestie, job description files also chill in the sendq directory โ€” they get moved from there over to doneq by faxq(8) once a job completes. so sendq is like the waiting room and doneq is the "we did it, we're done" lounge ๐Ÿ’…

these job description files are ASCII files, and every line looks like this:

tag: value

where a tag is one of the identifiers listed below, and a value is either a string or a number. the value starts at the first non-blank character after the :, and it runs all the way to the end of the line ๐ŸŒˆ

oh and a line that ends with a backslash character \? it's continued onto the next line. multi-line realness, we love to see it.

numeric values are decimal integers โ€” except for chophreshold, which is a floating point value ๐Ÿ‘‘

here's the full table of possible tags and the type each one's value has to be, no skips, no skimming:

  • chopthreshold (float) โ€” page chopping threshold (inches)
  • commid (string) โ€” communication identifier for last call
  • company (string) โ€” receiver's company
  • client (string) โ€” host that submitted the job
  • cover (string) โ€” continuation coverpage file
  • data (string) โ€” unprocessed document of indeterminate type
  • !data (string) โ€” processed document of indeterminate type
  • dataformat (string) โ€” data format used to transmit a facsimile
  • desiredbr (integer) โ€” desired transmit speed
  • desireddf (integer) โ€” desired page data format
  • desiredec (integer) โ€” desired use of Error Correction Mode (ECM)
  • desiredst (integer) โ€” desired minimum scanline time
  • desiredtl (integer) โ€” whether or not to use tagline parameter
  • doneop (string) โ€” operation to perform when job is reaped
  • external (string) โ€” external form of dialstring
  • fax (string) โ€” document ready for transmission
  • groupid (integer) โ€” HylaFAX job group identifier
  • jobid (integer) โ€” HylaFAX job identifier
  • jobtag (string) โ€” user-specified job identifier
  • jobtype (string) โ€” job type identification string
  • killtime (integer) โ€” time to give up trying to send job
  • location (string) โ€” receiver's location
  • mailaddr (string) โ€” email address of sender
  • maxdials (integer) โ€” max number of times to dial
  • maxtries (integer) โ€” max number of attempts to send job
  • minsp (integer) โ€” minimum required transmit speed
  • modem (string) โ€” outgoing modem to use
  • ndials (integer) โ€” number of consecutive failed attempts to place call
  • notify (string) โ€” email notification specification
  • npages (integer) โ€” number of pages transmitted
  • ntries (integer) โ€” number of attempts to send current page
  • number (string) โ€” dialstring to use in placing call
  • owner (string) โ€” user that owns the job
  • page (string) โ€” PIN in a page operation
  • pagechop (string) โ€” whitespace truncation handling
  • pagehandling (string) โ€” page analysis information
  • pagelength (integer) โ€” facsimile page length (millimeters)
  • pagewidth (integer) โ€” facsimile page width (millimeters)
  • passwd (string) โ€” info to send in HDLC PWD frame
  • pcl (string) โ€” unprocessed PCL document
  • !pcl (string) โ€” processed PCL document
  • poll (string) โ€” polling request
  • postscript (string) โ€” unprocessed POSTSCRIPT document
  • !postscript (string) โ€” processed POSTSCRIPT document
  • priority (integer) โ€” user-specified scheduling priority
  • receiver (string) โ€” receiver's identity
  • resolution (integer) โ€” vertical resolution of facsimile
  • retrytime (integer) โ€” time to use between job retries
  • returned (integer) โ€” indicates status return value for the job
  • schedpri (integer) โ€” current scheduling priority
  • sender (string) โ€” identity of sender
  • signalrate (string) โ€” signalling rate at which a facsimile was sent
  • state (integer) โ€” job scheduling state
  • status (string) โ€” job status
  • subaddr (string) โ€” info to send in HDLC SUB frame
  • tagline (string) โ€” tagline format string
  • tiff (string) โ€” unprocessed TIFF/F document
  • !tiff (string) โ€” processed TIFF/F document
  • totdials (integer) โ€” total number of phone calls
  • totpages (integer) โ€” total pages to transmit
  • tottries (integer) โ€” total number of attempts to send job
  • tts (integer) โ€” time to send job
  • useccover (integer) โ€” whether or not to use a continuation cover page
  • usexvres (integer) โ€” whether or not to use highest vertical resolution

iconic. ate. periodt. ๐Ÿ‘‘


๐ŸŽ€ PARAMETERS ๐ŸŽ€

โš ๏ธ okay so before we go any further, two things, and they're not optional: every file must be owned by the fax user, and pathnames for document files have to be relative to the top of the HylaFAX spooling directory โ€” and they must not include ... no sneaky escaping the spool, bestie ๐Ÿ™ˆ

chopthreshold

the minimum trailing whitespace (in inches) that has to show up on a page before it's even considered for "page chopping" โœ‚๏ธ if this parameter isn't specified, then the value from the PageChopThreshold configuration parameter gets used instead โ€” go look at hylafax-config(5) for that one ๐Ÿ’–


commid

the communication identifier for the last outbound call placed for this job ๐Ÿ“ž it's a string shaped like XXXXXXXX, where XXXXXXXX is a decimal sequence number in the range 1-99999999. cute little ID, no cap.


client

the fully qualified hostname of the machine the job was submitted from ๐Ÿ–ฅ๏ธ and if the hostname isn't known at submit time? then the host address in Internet standard . (dot) notation gets supplied instead. either way, we know where you came from.


company

the receiver's company name, exactly as given with the -x option to sendfax(1) ๐Ÿข heads up: this value is only used when creating continuation cover pages. that's it, that's the whole job.


cover

the pathname of a continuation cover page to send ๐Ÿ“„ the file has to be TIFF/F (aka it must already be prepared for transmission, no last-minute glow-ups). this document gets transmitted before any other documents listed in the file. see ContCoverPage and ContCoverCmd in hylafax-config(5) for the tea ๐Ÿต


data

the pathname of a document to send ๐Ÿ“Ž once a document has been processed, it gets marked as !data so that later retries don't reprocess it. efficient queen behavior โœจ


dataformat

the format used to transmit facsimile data ๐Ÿ“  this item gets recorded by faxsend(8) so that notify(8) can hand it back in a notification message. teamwork, fr fr ๐Ÿซถ


desiredbr

the desired signalling rate to use for page data transmissions ๐Ÿš€ here's the full menu:

  • 0 โ€” 2400 bps
  • 1 โ€” 4800 bps
  • 2 โ€” 7200 bps
  • 3 โ€” 9600 bps
  • 4 โ€” 12000 bps
  • 5 โ€” 14400 bps (default)

desireddf

the desired data format to use for page data transmissions ๐ŸŒˆ options are:

  • 0 โ€” 1-D MH
  • 1 โ€” 2-D MR
  • 3 โ€” 2-D MR with uncompressed data
  • 4 โ€” 2-D MMR (default)

desiredec

which type of Error Correction Mode (ECM) to use ๐Ÿ› ๏ธ:

  • 0 โ€” disable it
  • 1 โ€” 64-byte ECM
  • 2 โ€” 256-byte ECM (default)

desiredst

the desired minimum scanline time to use for page data transmissions โฑ๏ธ the full list:

  • 0 โ€” 0 ms (default)
  • 1 โ€” 5 ms
  • 2 โ€” 10ms/5ms
  • 3 โ€” 10ms
  • 4 โ€” 20ms/10ms
  • 5 โ€” 20ms
  • 6 โ€” 40ms/20ms
  • 7 โ€” 40ms

this value gets used when selecting the negotiated session parameters ๐Ÿค


desiredtl

whether or not to use the format string given by the tagline job parameter when imaging taglines on document pages ๐Ÿท๏ธ if this value is non-zero, then the per-job format string is used; otherwise the tagline format string from the server configuration file is used instead. see TagLineFormat in hylafax-config(5).


doneop

the treatment the job should get when it's processed by the faxqclean(8) job cleaner program ๐Ÿงน it may be one of:

  • remove โ€” to expunge the job description file and all associated documents that aren't referenced by another job
  • archive โ€” to request that the job and associated documents be archived on the server machine

go consult faxqclean for more details on other information that may be included in this string ๐Ÿ“š


external

the external form of the dialstring ๐ŸŒ this string is used instead of the dialstring in any status and log messages. clients can protect private info โ€” like access codes that have to be placed in dialstrings โ€” by supplying a "cleansed" version of the dialstring ๐Ÿ”’ privacy queen behavior, we stan.


fax

the pathname of a TIFF/F document that's ready for transmission ๐Ÿ“ โœจ and if the pathname string has a leading xx:, then xx is interpreted as the index of the first directory in the file to transmit (directories are numbered starting at zero, bestie, don't forget).


groupid

the job group identifier โ€” an integer in the range 1 to 32000, assigned to each group of jobs by the HylaFAX software ๐Ÿ‘ฏ every job in a group of jobs submitted at the same time gets assigned the same value. squad goals.


jobid

the job identifier โ€” a unique integer in the range 1 to 32000, assigned to each job by the HylaFAX software ๐Ÿ†” main character energy, every job gets its own.


jobtag

a user-specified string meant for identification purposes ๐Ÿท๏ธ if this string is defined, it gets returned to the user in notification messages instead of the job identifier. custom name, custom vibes ๐Ÿ’…


killtime

the time to kill this job ๐Ÿ’€ expressed in seconds since 00:00:00 GMT, January 1, 1970. dramatic but necessary.


location

the receiver's location, exactly as given with the -y option to sendfax(1) ๐Ÿ“ heads up again: this value is only used when creating continuation cover pages.


mailaddr

the electronic mail address that notification messages should be directed to ๐Ÿ“ง that's where the "your fax did the thing" emails go, bestie.

  • maxdials โ€” the max number of times the server is even allowed to dial the phone ๐Ÿ“ž. If the job can't be completed within that many calls, bestie, it gets terminated. No more chances ๐Ÿ’€.
  • maxtries โ€” the max number of times the server should attempt to send a job. And ok, an "attempt" here has a very specific meaning: it's a session that makes it past Phase A of the CCITT T.30 protocol (for facsimile), or something similar for other cases ๐Ÿ‘€. If the job can't be completed in this many tries, it's terminated.
  • minsp โ€” the minimum signalling rate to use for transmitting page data ๐ŸŒˆ. The values map like this: 0 for 2400 bps (the default, bestie), 1 for 4800 bps, 2 for 7200 bps, 3 for 9600 bps, 4 for 12000 bps, and 5 for 14400 bps โœจ.
  • modem โ€” the outgoing modem to use to send the job, or any if literally any available modem is acceptable ๐Ÿฆ‹.
  • owner โ€” the identity of the user that owns the job ๐Ÿ‘‘. Usually the owner is whoever created the job, though clients with administrative privileges can change the ownership of jobs. The value is the string specified in the USER command passed to hfaxd(8) when a client logins in to the server.
  • notify โ€” whether the sender wants a notification, and when ๐Ÿ””. The options are: when requeued for whenever the job is requeued after a failed attempt to transmit, when done for when the job is completed, when done+requeued for either of the above, or none for not at all, tyvm ๐Ÿ™…โ€โ™€๏ธ.
  • npages โ€” the number of pages in the facsimile, cover page included, that have been successfully transmitted ๐Ÿ“„โœจ.
  • ntries โ€” the number of unsuccessful attempts that have been made to transmit the current page ๐Ÿ˜ญ.
  • ndials โ€” the number of consecutive unsuccessful attempts to establish carrier with the remote device ๐Ÿ“ก.
  • number โ€” the dialstring to use to call the destination device โ˜Ž๏ธ.
  • page โ€” a string with PIN and to use in processing a page transmit request ๐Ÿ“Œ.
  • pagechop โ€” whether or not to automatically truncate trailing whitespace on pages of outbound facsimile โœ‚๏ธ. See PageChop in hylafax-config(5). The possible values are: default to use the setting of the PageChop configuration parameter, none to disable page chopping, all to enable chopping of all pages, and last to enable chopping of the last page of each document ๐Ÿ’….
  • pagehandling โ€” a string that contains per-page information used during facsimile transmission ๐Ÿ“‹. Most of the information is used in the negotiation of session capabilities, with optional information used in the implementation of page chopping.

The string has three characters โ€” say xxc โ€” for each page to be transmitted:

  • The xx characters are a hex-encoded specification of the session capabilities required to transmit the page.
  • The c character is one of M, S, and P; where:
    • M indicates there is another page to follow and that the page requires different T.30 session parameters be negotiated (an EOM code is to be transmitted).
    • S indicates there is another page to follow, but the page uses the same session parameters (an MPS. code is to be transmitted).
    • P indicates this is the last page to be transmitted (an EOP code is to be transmitted).

In addition, if page chopping has been enabled and the page has enough trailing whitespace to be a candidate, then each three character string will be followed by a string of the form ZXXXX, where XXXX is a 4 digit hex-encoded count of the number of bytes of data to send for a chopped page ๐Ÿ”ฅ.

  • pagelength โ€” the desired page length in millimeters ๐Ÿ“.
  • pagewidth โ€” the desired page width in millimeters ๐Ÿ“.
  • pcl โ€” the pathname of a PCL document to send ๐Ÿ–จ๏ธ. Once a PCL document has been processed by faxsend, it is marked as !pcl so that subsequent retries do not reprocess the document.
  • poll โ€” the value is a Caller Identification String (CIS) to use in making a polling request ๐Ÿ“ฒ. If no CIS is specified then faxsend will form one from the FAXNumber configuration parameter.
  • postscript โ€” the pathname of a POSTSCRIPTยฎ document to send ๐Ÿ“„. Once a POSTSCRIPT document has been processed by faxsend, it is marked as !postscript so that subsequent retries do not reprocess the document.
  • receiver โ€” the receiver's name ๐Ÿซถ. This value is used only when creating continuation cover pages.
  • resolution โ€” the desired vertical resolution in lines per inch ๐Ÿ”. This value should be either 98 or 196.
  • retrytime โ€” the time, in seconds, to delay between each attempt to transmit a job that fails because of a communication-oriented problem โณ. Normally jobs are scheduled according to a collection of configuration parameters that are tuned for the specific reason of each failure; e.g. see JobReqProto in hylafax-config(5).
  • returned โ€” used internally to determine the last return value of the send command issued for this job ๐Ÿง .
  • sender โ€” the "full name" of the sender of the facsimile ๐Ÿ’Œ.
  • signalrate โ€” the signalling rate used to transmit facsimile data ๐Ÿ“ถ. This item is recorded by faxsend(8) so that notify(8) can return it in a notification message.
  • state โ€” the job scheduling state ๐ŸŒ€. The recognized values are:
    • 1 โ€” suspended, not being scheduled
    • 2 โ€” pending, waiting for the time to send
    • 3 โ€” sleeping, waiting for a scheduled timeout
    • 4 โ€” blocked, waiting for concurrent activity to the same destination to complete
    • 5 โ€” ready, ready to be processed except for available resources
    • 6 โ€” active, actively being processed by HylaFAX
    • 7 โ€” done, processing completed with success
    • 8 โ€” failed, processing completed with a failure
  • status โ€” status information about the current state of the job ๐Ÿ‘€. Typically this is the reason why the last attempt to send the facsimile failed ๐Ÿ˜ญ.
  • subaddr โ€” the SubAddress information to transmit when sending a facsimile ๐Ÿ“ฎ. This string should be used by the receiver to route received facsimile documents.
  • tagline โ€” the format string to use in imaging taglines on outgoing documents โœ๏ธ. Note that this parameter is only used if the desiredtl parameter is non-zero.
  • tiff โ€” the pathname of a TIFF/F document to send ๐Ÿ–ผ๏ธ. Once a TIFF document has been processed by faxsend, it is marked as !tiff so that subsequent retries do not reprocess the document.
  • totdials โ€” the total number of times the server has placed a call to the receiving phone number ๐Ÿ“ž๐Ÿ”.
  • totpages โ€” the total number of pages to be transmitted ๐Ÿ“š.
  • tottries โ€” the total number of attempts to transmit a job; see maxtries above ๐Ÿ‘†.
  • tts โ€” the time to send the job โฐ. If this value is non-zero, it is number of seconds since 00:00:00 GMT, January 1, 1970. Otherwise, a value of 0 is interpreted to mean process as soon as possible ๐Ÿš€.
  • useccover โ€” 1 if the job should use a continuation cover page during retransmission, 0 otherwise ๐ŸŽ€.
  • usexvres โ€” 1 if the job should use the highest possible vertical resolution, 0 otherwise ๐Ÿฆ‹. See hylafax-server(5) for a description of continuation cover pages.

๐ŸŒˆ SEE ALSO ๐ŸŒˆ

sendfax(1), faxq(8), faxqclean(8), faxsend(8), pagesend(8), hfaxd(8), hylafax-config(5)


and that's the whole vibe check, bestie ๐Ÿ’– you just made it through every single parameter of DONEQ(5) (dated Feb 18, 2001) like an absolute icon ๐Ÿ‘‘โœจ go forth and fax responsibly, mwah ๐Ÿ’…๐Ÿซถ

๐Ÿ“ฆ where this page comes from