HYLAFAX-LOG(5)
β¨ HYLAFAX-LOG(5) β¨
okay bestie so this one is from the File Formats Manual and it's literally the tea on your session log files π
πΈ NAME πΈ
log/* β session log files π«Ά
π DESCRIPTION π
So the files in the log directory inside the HylaFAX spooling area? They hold all the logging/tracing info about your transmit and receive sessions. There's one file per inbound or outbound call, and the filename looks like cXXXXXXXX where XXXXXXXX is a decimal sequence number β that's what we call a communication identifier β¨
How much and what kind of tracing gets recorded for a call is decided by the SessionTracing parameter that you set in the modem configuration file β go peek at hylafax-config(5) for that.
Heads up though: logging/tracing info that the server generates outside of a session gets sent to thesyslog(3)service instead, and that is controlled by theLogFacilityandServerTracingparameters in the modem configuration file. no cap.
[NB: The remainder of this manual page is out of date.] β yeah, they said it, not me π
π₯ SERVER OPERATION π₯
These are the messages that may pop up when server operation tracing (bit 1) is enabled:
MODEM: Unknown type "%s" ignored.β theModemTypeconfiguration parameter was not recognized. rude, honestly.MODEM %s %s/%s.β this one shows up every single time the modem is reset and made ready for use. it's giving "fresh start" energy β¨%s: Can not lock device..β the UUCP lockfile for the modem couldn't be created because another process already has a lockfile in place. π%s: Can not open modem (%m).βopen(2)on the special device file for the modem failed; the error status is shown; c.f.intro(2).%s: Can not open modem (timed out)..βopen(2)on the special device file blocked and then timed out. usually this is because the system doesn't support a non-blocking mechanism for opening the device, and the interface it's presenting requires that carrier be present before the open can succeed.%s: setuid root failed (%m).β the server process couldn't establish root privileges. usually this means the server was improperly installed π%s: fcntl: %m.β the server couldn't turn off theO_NDELAYbit on the open modem file descriptor after doing a non-blocking open of the modem device special file.schedctl: %m.β (only on Silicon Graphics systems.) aschedctl(2)system call to set the server process priority failed.sched policy=%d, priority=%d.β (only on POSIX compliant systems.) describes asetscheduler(2)system call to enhance real-time job scheduling.Unable to set %s scheduling parameters: %m.β (only on SVR4-style systems.) apriocntlsystem call to set the server process priority failed.priocntl(%s): %m.β (only on SVR4-style systems.) apriocntlsystem call to get the current process scheduling information failed.sched policy=%d, priority=%d.β (only on POSIX-compliant systems.) indicates a possible change in the system job scheduling due to use ofPriorityScheduling.%s: Can not deduce modem type..β the server couldn't reset and initialize the modem. this can be caused by so many things: wrong device filename, improper cabling, incorrect modem type, incorrect modem configuration, etc. it's giving chaos πͺοΈRECV: Permission denied (unacceptable client TSI).β a receive request was denied because the client got denied access through the TSI access control list mechanism; c.f.tsi(5).RECV: Unable to create file "%s" for received data.β the server couldn't create a file to write the received facsimile data into. check the permission on the recvq subdirectory. also beware: the server usestempnam(3)to create these files, and if theTMPDIRenvironment variable is set, it may cause the server to try to create files in a directory that isn't the recvq directory πRECV data in "%s".β just an info message bestie; the received facsimile is being placed in the specified filename.RECV: empty file "%s" deleted.β a receive operation ended without any good pages being received, so the empty file gets deleted. bye bye π¦ACCEPT TSI "%s".β the TSI received during a receive operation was accepted and the receive will continue. slay β¨REJECT TSI "%s".β the TSI received during a receive operation was rejected and the receive will be aborted at the next opportunity. not slay πPOLL: Unable to create file "%s" for received data.β the server couldn't create a file for the polled data. see also above under ``RECV: Unable...''.POLL: empty file "%s" deleted.β a poll operation ended without any good pages being received, so the empty file gets deleted.internal muckup, lost polling request.β this message should not appear; it means the server went to do a poll but didn't find the user-specified poll request in its job description; c.f.sendq(5).SEND FAILED: %s.β a transmission failed for the reason shown.SEND: Can not open document file "%s", dirnum %d.β the server couldn't open the TIFF document file that was supposed to be transmitted.SEND: Can not set directory in document file "%s", dirnum %d.β the server couldn't access the TIFF directory associated with the next page to transmit. the document file and directory number for the page are shown.SEND: %s "%s", dirnum %d.β a transmission failed because three attempts were made to transmit the same page. the full reason for the failure is displayed along with the document filename and directory number of the page that failed. three strikes fr fr πSEND: Document is not in a Group 3-compatible format (file %s, compression %d).β the TIFF document submitted for transmission was not compressed with CCITT T.4 compression; the TIFF compression code number is shown. this is treated as a fatal error and the job is aborted. periodt.REJECT: Document was encoded with 2DMR, but client does not support this data format.β the document to be transmitted was encoded using the optional 2DMR form of the CCITT T.4 standard, but the client capabilities say this data format isn't supported. this is not a fatal error; the server will disconnect and reimage the document using 1DMH encoding.REJECT: Client does not support document page width, max remote page width %u, image width %lu.β the document to be transmitted was imaged using a page width the client doesn't support. this is not a fatal error; the server will disconnect and reimage the document using the newly discovered client capabilities.REJECT: High resolution document is not supported by client, image resolution %g line/mm.β the document to be transmitted was imaged using 7 line/mm, but the client only supports 3.85 line/mm. this is not a fatal error; the server will disconnect and reimage the document using the newly discovered client capabilities.REJECT: Client does not support document page length, max remote page length %d mm, image length %lu rows (%.2f mm).β the document to be transmitted was imaged using a page length the client doesn't support. this is not a fatal error; the server will disconnect and reimage the document using the newly discovered client capabilities.ABORT: job abort requested.β the server received a request on a command FIFO file to abort the current send/receive job. βANSWER: Can not lock modem device.β the server went to answer an incoming call, but found the device locked for use by another process. this is the usual scenario that happens when an outbound call is made through the modem: the echo from data written to the modem causes the fax server to wake up, only to discover the UUCP lockfile for the outgoing call. the fax server will discard its handle on the modem and wait for the lockfile to be removed. the way that it just waits... iconic patience πANSWER: FAX CONNECTION.β the server is initiating service for an incoming facsimile call.ANSWER: DATA CONNECTION.β the server is initiating service for an incoming data call.ANSWER: Data connections are not permitted.β the server rejected an incoming data call because the configuredGettyArgsparameter is null.ANSWER: Could not switch modem to data service.β the server couldn't initiate service for an incoming data call because of some problem setting up the modem for data use.ANSWER: VOICE CONNECTION.β the server is initiating service for an incoming voice call.ANSWER: Could not switch modem to voice service.β the server couldn't initiate service for an incoming voice call because of some problem setting up the modem for voice use.ANSWER: %s.β an error was detected by the modem layer while setting up an incoming call.GETTY: could not create.β the server couldn't create an internal data structure used to track a getty process.GETTY: can not fork.β the server couldn'tfork(2)a new process in order to start up the getty program.runGetty::setregid: %m.andrunGetty::setreuid: %m.β the server couldn't change the process identity before starting up the getty program.GETTY: start pid %u, "%s".β the server has started up a getty program to service the incoming data call. the getty process identifier is displayed along with the arguments passed to the program.GETTY: terminated, exit status %#o.β the server has reaped a getty process which it started up.Parse error in dial string rules "%s".β the dial string rules in the specified file contain a syntax error. thedialtest(8)program should be used to debug the problem πUnknown answer type "%s".β theAnswerRotaryconfiguration parameter has an invalid answer type string; consulthylafax-config(5).Syntax error, missing ':' in "%s".Syntax error, missing quote mark in "%s".Unknown configuration parameter "%s" ignored.β a syntax error was encountered in the server configuration file or in a message received through the FIFO special file. π
β¨ FAX PROTOCOL β¨
Okay bestie, so when you turn on the facsimile protocol tracing β that's bit 2, iykyk β these messages can pop up. They're like the group chat receipts of your fax session. Let's decode every single one, no skips, periodt. π
%s: %s (Phase B).β Something went sideways in Phase B of the Group 3 protocol processing. Not the vibe. πBad HDLC terminating flag received..β During Class 1 ECM, a terminating flag for an HDLC frame was corrupt. The double dot is in the original, bestie, don't come for me. πDELAY %u ms.β The host took a lil nap for%umilliseconds. A whole host-side pause. β¨DIAL %s.β The phone number%swas dialed. β οΈ Note: this is the number passed as an argument to theModemDialCmdparameter, so it might not include any extra dialing prefixes that get sent to the modem. Just so you know. π«ΆError sending T.30 prologue frames.β Tried to send the T.30 DCS frames and it errored out. The prologue frames said no. πHDLC frame length invalid.β An ECM HDLC protocol message was way too long. It's giving overachiever but in a bad way. πHDLC frame not byte-oriented. Trailing byte: %#x.β Got an ECM HDLC message with a bit count that just doesn't fit byte-orientation. Trailing byte was%#x. Messy. πHDLC frame too short (%u bytes).β An HDLC protocol message was too short β it needs to be at least 3 bytes outside ECM, or at least 5 bytes inside ECM. It was only%ubytes. Not enough. π«HDLC frame with bad address field %#x.β An HDLC message had an address field that wasn't0xff. It was%#x. Wrong address, no cap. πHDLC frame with bad control field %#x.β An HDLC message had an invalid control field:%#x. Control issues, literally. πMODEM ERROR: %s.β While waiting for a modem response/result, an error popped off β like anERRORresult code.%sis the tea. βMODEM protocol botch ("%s"), cannot parse PPR.β The Class 2 modem driver couldn't parse the post-page response code inside a+FPTS:status message. It said%sand just gave up. πMODEM protocol botch, can not parse "%s".β Class 2 modem driver couldn't parse the session capabilities string:%s. Usually this means host-modem communication is acting up, but sometimes it's just bogus modem firmware. πMODEM protocol botch: OK without +FPTS:.β Class 2 modem driver hit an error in the host-modem protocol for receiving fax. While waiting for the post-page status (+FPTS:), it got anOKfirst. This should never happen. π¨MODEM protocol botch: +FET: without +FPTS:.β Class 2 modem driver error again. Waiting for post-page status (+FPTS:), but got a+FET:status message first. Should never happen. Periodt. πPOLL with CIG "%s".β A poll operation is starting! The Calling Subscriber Identification string sent to the peer is%s. πPOLL: begin.β Server is starting a polled receive operation. Let's go. β¨POLL: end.β Server just wrapped a polled receive operation. Done and dusted. πPOLL: %s (begin).β This error happened when kicking off the poll:%s. (begin) πPOLL: %s (end).β This error happened while ending the poll:%s. (end) πProblem receiving post-page HDLC frame.β Error while receiving the HDLC frame that should hold the post-page message. The post-page HDLC frame is not cooperating. π«Problem sending TCF data.β Error while sending TCF data during training. Training arc, but make it messy. π©RECV PPM: %s.β Received this post-page message during a receive:%s. π₯RECV PPR: %s.β Transmitted this post-page response during a receive:%s. π€RECV training at %s %s.β During receive, training starts at modulation%sand signalling rate%s. Lock in. πRECV: begin.β Server is starting a receive operation. Incoming! π¨RECV: end.β Server just finished a receive operation. That's a wrap. π¬RECV: %d bytes of data.β During receive, got%dbytes of fax data for the current page. Data received, slay. πΎRECV: %lu bytes, %lu total rows.β Received%lubytes of fax data, and the running total of rows in the current page is%lu. Keeping count, bestie. π’RECV: %s (begin).β This error hit when starting the receive:%s. (begin) π§RECV: %s (end).β This error hit while ending the receive:%s. (end) πRECV: TCF %u bytes, %u%% non-zero, %u zero-run.β During training receive, the TCF had%ubytes,%u%%were non-zero, and the longest zero-run was%u. Stats check. πRECV: reject TCF (too many non-zero, max %u%%).β TCF rejected: too many non-zero bytes, max allowed is%u%%. TheClass1TCFMaxNonZeroconfig parameter makes this call. π«RECV: reject TCF (zero run too short, min %u).β TCF rejected: zero run too short, minimum is%u. TheClass1TCFMinZeroconfig parameter decides this. πRECV: bad code word 0x%x, len %d, row %lu.RECV: begin page.β During receive, a new page of data is about to be received on the high speed message carrier. New page, who dis? πRECV: end page.β During receive, the page of data on the high speed message carrier just finished coming in. Page complete. βRECV frame FCS check failed.β During ECM, an HDLC frame failed the CRC check and got marked corrupt. FCS said no. πRECV: premature EOF.β Server didn't get<DLE><ETX>to signal the end of a page during receive. Premature EOF, awkward. π¬REMOTE supports POSTSCRIPT transfer./REMOTE does not support POSTSCRIPT transfer.β The peer either does or doesn't support Adobe POSTSCRIPT transfer extensions to T.30. These two messages tell you which. π¨οΈRECV: Missing EOL after 5 seconds.β Server timed out waiting for EOL after 5 seconds while receiving page data. Usually a flow control config issue is stopping data from modem to host. Fix your flow, bestie. πRECV: %u bytes of data, %lu total lines.β While receiving page data, got%ubytes of raw data, and the current total rows in the page is%lu. Raw data go brrr. πRECV: %lu bad lines %lu consecutive bad lines.β After a page receive, this shows%lubad lines and%luconsecutive bad lines. These should always be zero unless copy quality checking runs on the host. Red flag if not. π©RECV received %u frames of block %u of page %u.β When server does Class 1 ECM, a complete block was received:%uframes in block%uof page%u. Block party. πRECV received assumed RCP frame with block end.β Class 1 ECM: got the block-end indicator without a proper RCP frame, so an RCP frame was assumed (or feigned). Fake it till you make it. πRECV received frame number %u.β Class 1 ECM: received image frame number%u. Got it. πΈRECV received RCP frame.β Class 1 ECM: first RCP frame received β that means the image block is done. End of an era. πRECV: REJECT page quality, %u%% good lines (%u%% required).β Copy quality check says no: only%u%%good lines, but%u%%required. ThePercentGoodLinesconfig parameter controls this. Page quality is not giving. πRECV: REJECT page quality, %u-line run (max %u).β Copy quality check rejects the page: bad line run is%ulines, max allowed is%u. TheMaxBadLinesconfig parameter sets that threshold. Too many bad lines, bestie. πRECV sent fourth PPR.β Class 1 ECM: server rejected the same image block four times in a row. Now the sender can either keep retransmitting or just end it. Fourth time's the charm? Or not. πREMOTE HANGUP: %s (code %s).β Modem sent a hangup status code (+FHNG:or+FHS:) to the host:%s(code%s). This means a protocol problem was found inside the modem, and usually the server can't work around it. It's giving internal drama. βοΈREMOTE TSI "%s".β During receive, got this TSI:%s. It gets checked against the TSI access control list intsi(5). Security vibes. πREMOTE best format %s.β Peer's "best" data format from the DIS frame:%s. And "best" here means they think 2DMMR > 2DMR with optional uncompressed data > 2DMR > 1DMH. Ranking tea. πREMOTE best rate %s.β Peer's best signalling rate from the DIS frame:%s. Speed check. β‘REMOTE best vres %s.β Peer's best vertical resolution from the DIS frame:%s. Vertical? More like vertical slay. πREMOTE has document to POLL.β Peer says it has a document ready for retrieval. Polling time. πREMOTE max %s.β Peer's max page width/length from the DIS frame:%s. Size matters. πREMOTE supports error correction.β Peer supports the optional Error Correct Mode (ECM) according to the DIS frame. Error correction? We love to see it. βREMOTE wants %s.β The DCS frame says the peer wants this capability:%s. Give the people what they want. πSEND file "%s".β About to transmit this file:%s. Sending it. π€SEND 1D RTC./SEND 2D RTC.β Sent a 1D or 2D encoded Return To Control (RTC) packet to end the page transmission. RTC said bye. πSEND begin page.β A page of fax data is about to be sent on the high speed message carrier. Page start, let's go. πSEND end page.β Page transmission on the high speed message carrier is done. Page out. πSEND training at %s %s.β About to send training to the peer using modulation%sand signalling rate%s. Training arc begins. πͺSENT %u bytes of data.β Sent%ubytes of raw fax page data on the high speed message carrier. Data delivered. π¦TRAINING failed./TRAINING succeeded.β Peer training either failed or succeeded. When sending, it's based on a message from the peer. When receiving, it's based on analysis of the received TCF data. Training era: success or flop. πUSE %s.β Use this session capability during send or receive:%s. It's based on the peer's best capabilities, the modem's capabilities, and β when transmitting β the document's characteristics. Capability check. β¨
π MODEM OPERATIONS
okay bestie so these messages show up when you turn on modem operation tracing (that's bit 3) π
MODEM set baud rate: %d baud, input flow %s, output flow %s.β the DTE-DCE communication rate got set to%dbits/sec on the host, and the flow control method you specified got set up for data coming in from the modem (input) and data going out to the modem (output) β¨MODEM set baud rate: %d baud (flow control unchanged).β the DTE-DCE communication rate changed but the current flow control setup was left exactly as it was, no touchy πMODEM set XON/XOFF/NOW: input %s, output %s.MODEM set XON/XOFF/DRAIN: input %s, output %s.MODEM set XON/XOFF/FLUSH: input %s, output %s.β the software flow control setup for data moving between host and modem got changed. TheNOW,DRAIN, andFLUSHactions tell you when it happened: immediately, after any pending data is transmitted to the modem, or after pending data is discarded. On input, XON/XOFF characters are either ignored (passed straight through to the server, uninterpreted) or interpreted (by the system's terminal driver, to control the flow of data). Same energy on output: XON/XOFF characters are either disabled (not generated by the terminal driver) or generated (by the terminal driver, to effect flow control of data from the modem to the host). it's giving very particular πMODEM input buffering enabled.MODEM input buffering disabled.β on systems that buffer input data in the operating system before delivering it to applications, the server will enable and disable buffering as best it can in those cases where low input latency is critical. main character behavior frTIMEOUT: %s.β a timeout happened while doing a modem-related operation, typically reading or writing data πError #%u reading from modem.β aread(2)system call returned an error. This usually happens when the modem prematurely drops the DCD signal. not the DCD signal bailing early π
π¦ MODEM COMMUNICATION
these ones pop up when modem communication tracing (bit 4) is enabled:
--> [%d:%s].β a%d-byte line of data was received from the modem. Printable data are displayed β¨<-- data [%d].β%dbytes of unprintable data were sent to the modem, typically facsimile data π<-- [%d:%s].β%dbytes of printable data were sent to the modem. The data are displayed.
β° TIMEOUTS
these show up when timeout tracing (bit 5) is enabled:
start %d second timer,stop timerβ stop the current timeout before it expiresstop timer - timer expiredβ the current timeout expired
periodt β³
π₯ HDLC FRAMES
when tracing of raw HDLC frames (bit 6) is on, every frame sent and received gets logged:
<-- HDLC<%u:%.*s>for sent frames--> HDLC<%u:%.*s>for received frames
These messages mean a %u-byte long HDLC frame was sent or received. The first byte should always be 0xff, the address field specified for dialup communication. The second byte should be a frame control field. The contents of the frame is displayed as a sequence of bytes in hexadecimal. lowkey iconic honestly π
π BINARY I/O
when binary input/output (bit 7) is traced, two types of messages get logged:
<-- <%u:%.*s>for data sent to the modem--> <%u:%.*s>for data received from the modem
Each message means %u bytes of data were transferred. The data is displayed as a sequence of bytes in hexadecimal. hex girl summer fr π§
π SERVER STATE TRANSITIONS
bit 8 controls the tracing of state transitions in the facsimile server. There are currently eight states:
BASEβ during startup and initializationRUNNINGβ normal operationMODEMWAITβ waiting for the modem to come ready after a resetLOCKWAITβ waiting for a UUCP lockfile to be removedGETTYWAITβ waiting for agettyprocess to terminateSENDINGβ transmitting a facsimileANSWERINGβ answering an incoming telephone callRECEIVINGβ receiving a facsimile
and the messages themselves:
STATE CHANGE: %s -> %s (timeout %ld).β the server is changing its internal state. The timeout (in seconds) is used when polling for asynchronous events such as a modem becoming ready.STATE CHANGE: %s -> %s.β the server is changing its internal state without starting a timeout.
glow up moment β¨
π QUEUE MANAGEMENT
bit 9 controls the tracing of the management of the job queue.
SEND NOT READY: "%s" in %s.β it was not time to send the specified job; it will be requeued for the indicated time interval.SEND BLOCKED BY CONCURRENT CALL: "%s" in %s.β the specified job is blocked by another call to the same phone number; it will be requeued for the indicated time interval.SEND BLOCKED BY CONCURRENT JOB: "%s" by "%s".β the specified job is blocked by another job to the same phone number; it will be requeued for the indicated time interval.JOB "%s".β the specified job is about to be processed. go bestie go π«ΆCONVERT POSTSCRIPT: "%s".β the server is about to invoke the POSTSCRIPT interpreter to image a document; the shell command used is displayed.JOB TIMER START %s.β the timer used to control scanning of the job queue is started with the displayed value.JOB TIMER STOP (Q head %s tts %s).β the timer used to control scanning of the job queue is stopped. The job at the head of the queue and that job's time-to-send are displayed.JOB TIMER STOP (Q empty).β the timer used to control scanning of the job queue is stopped. The job queue was found to be empty. no thoughts, queue empty π
π COPY QUALITY
when doing copy quality checking during a receive operation, these messages may get logged if bit 10 is set:
RECV/CQ: adjusting for trailing noise (%lu run).β the total number of rows of data in the received page is adjusted (downward) by%lu. This is done to handle the case where garbage data are received after the RTC, resulting in some number of consecutive bad rows after the page data.RECV/CQ: Invalid %s code word, row %lu, x %d.β an invalid1D- or2D- T.4 code word was encountered on the specified row and horizontal offset within the row. When this occurs the server will scan for an EOL code and then regenerate the bad row with the last good row of data.RECV/CQ: Premature EOL (%s), row %lu, x %d.β an EOL code was encountered before a complete row of pixels was received. When this occurs the server will discard the bad row and replace it with the last good row that was received.RECV/CQ: Bad %s pixel count, row %lu, x %d.β a row of data was received with pixel count greater than the negotiated page width. When this occurs the server will discard the bad row and replace it with the last good row that was received.RECV/CQ: Panic, bad %s decoding state, row %lu, x %d.β the decoder state machine was found in a bad internal state. When this occurs the server will scan for an EOL code and regenerate the row using the last good received row. bestie PANIC?? no it's fine it self-heals π
π SEE ALSO
and that's the whole page, bestie!! π this beauty is from May 12, 1996 and it's the HYLAFAX-LOG(5) manual page β yes she's an elder but she ATE and left no crumbs, we stan a vintage queen ππ mwah, go read your logs β¨
π¦ where this page comes from
- debian bookworm: hylafax-server 3:6.0.7-5
- debian trixie: hylafax-server 3:6.0.7-11.1
- ubuntu jammy: hylafax-server 3:6.0.7-3.1
- ubuntu noble: hylafax-server 3:6.0.7-7
- ubuntu questing: hylafax-server 3:6.0.7-13
- ubuntu resolute: hylafax-server 3:6.0.7-13build1
- ubuntu stonking: hylafax-server 3:6.0.7-13build1
- Copyright (c) 1990-1996 Sam Leffler
- Copyright (c) 1991-1996 Silicon Graphics, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms