XFERFAXLOG(5F)
π XFERFAXLOG β aka xferfaxlog, section 5F, bestie π
okay so this is the HylaFAX activity log page and honestly? it's the receipts page. every fax that goes out, every fax that comes in, it's all getting written down. let's get into it π«Ά
β¨ NAME β¨
xferfaxlog β the HylaFAX activity log, fr fr
πΈ DESCRIPTION πΈ
so the file etc/xferfaxlog is where all the tea gets spilled about inbound and outbound activities. it holds one line per inbound facsimile document or outbound job. it ALSO holds one line per expired job, and one line per job submitted. and if the modem config setting LogCalls is set to true, then you also get one line per received call, no cap.
the lines are fixed-format, tab-separated ASCII strings. literally, that's the whole vibe.
each record of a facsimile transmission goes like this:
date SEND commid modem jobid jobtag sender ``dest-number'' ``CSI'' params #pages jobtime conntime ``reason'' ``faxname'' ``faxnumber'' <null> ``owner'' ``dcs'' jobinfo
a facsimile document reception record goes like this:
date RECV commid modem qfile <null> fax ``local-number'' ``TSI'' params #pages jobtime conntime ``reason'' ``CIDName'' ``CIDNumber'' ``callid'' <null> ``dcs'' <null>
call records go like this:
date CALL commid modem <null> <null> fax ``local-number'' ``<null>'' 0 0 jobtime conntime ``<null>'' ``CIDName'' ``CIDNumber'' ``callid'' ....
each facsimile document retrieved by polling gets a record like this:
date POLL commid modem jobid jobtag sender ``dest-number'' ``TSI'' params #pages jobtime conntime ``reason'' ``faxname'' ``faxnumber'' <null>
an alphanumeric pager request gets a record like this:
date PAGE commid modem jobid jobtag sender ``dest-number'' ``<null>'' 0 0 jobtime conntime ``reason'' <null> <null> ``owner'' <null> jobinfo
expired job records go like this:
date UNSENT ``<null>'' ``<null>'' jobid ....
and job submission records go like this:
date SUBMIT ``<null>'' ``<null>'' jobid ....
π the fields, explained π
okay now the part where we decode all of that, because yes there are a LOT of fields. slay, let's go one by one:
dateβ the date and time of the transaction, formatted likeMM/DD/YY HH:MM. soMMis the numeric month,DDis the numeric day,YYis the last two digits of the year, andHH:MMis the time in 24-hour format. iconic.commidβ the communication identifier for the call.modemβ the device identifier for the modem that was used to do the send or receive.jobidβ the job number for outbound calls.jobtagβ the client-specified job tag for outbound calls.qfileβ the associated queue file for the event.senderβ the sender/receiver's electronic mailing address. and bestie, heads up: facsimile receptions are always attributed to thefaxuser.dest-numberβ the phone number dialed for outgoing calls.TSIβ the Transmitter Subscriber Identification string (as received) for incoming calls.CSIβ the Caller Subscriber Identification string of the remote machine (as reported) for outgoing calls.local-numberβ the local phone number on which the data was received.paramsβ the negotiated facsimile session parameters used for transferring data, encoded as described below.#pagesβ the total number of pages transferred.jobtimeβ the duration of the session, in the formatHH:MM:SS. this time includes setup overhead AND any time spent cleaning up after a call. it's giving "we count everything" energy.conntimeβ the time spent on the phone, in the formatHH:MM:SS. this should be the time used by the PTT to calculate usage charges. πΈreasonβ a string that indicates if any problem occurred during the session.CIDNameβ the received CIDName value for the session.CIDNumberβ the received CIDNumber value for the session.ownerβ the login name of the job owner.callidβ the CallID values other thanCIDNameandCIDNumber, formatted by::delimiters.dcsβ the T.30 DCS string that was used in the facsimile communication.jobinfoβ other formatted information about the job:totpages,ntries,ndials,totdials,maxdials,tottries, andmaxtries, separated by slashes (/).
ngl, note that fields may have embedded blanks. do with that what you will.
session parameters are encoded as a decimal number that contains a packed set of Class 2 session parameter values. the format lives in the source code in the Class2Params::decode function. the page counts are always integral numbers, and partial pages that are to be retransmitted are not included in the page count. periodt.
the whole simple ASCII format was designed to be easy to process with programs like awk(1). so cute, so practical. π¦
and now the fun part: if an executable named /var/spool/hylafax/etc/FaxAccounting exists, then it will be executed every time a record is written to etc/xferfaxlog. the record fields will each serve as separate command arguments. this is designed to allow attachment to external databases and other accounting mechanisms. and in earlier versions of HylaFAX, FaxAccounting would block the HylaFAX process invoking it β but bestie, that is no longer the case. glow up achieved. β¨
π NOTES π
the sender field does not necessarily represent the submitter's actual identity. for example, it reflects the value given by the sendfax(8C) -f option. so be cautious β do not use this field for auditing if the fax user base is not trusted. use owner instead, if possible. iykyk, this is important. π
π BUGS π
okay so the date format will "break" in the year 2000. π and information should be recorded on a per-page basis for facsimile communications.
π SEE ALSO π
faxq(8C) faxsend(8C) faxgetty(8C)
and that's the whole page, bestie! π«Ά this one's from June 5, 1996, and it's the XFERFAXLOG(5F) page β go forth and read your logs like the main character you are. πβ¨π
π¦ where this page comes from
- fedora 43: hylafax+ 7.0.11-4.fc43 Β· libtiff AND LicenseRef-Callaway-BSD-with-advertising
- fedora 43: hylafax+ 7.0.11-4.fc43 Β· libtiff AND LicenseRef-Callaway-BSD-with-advertising
- fedora 44: hylafax+ 7.0.11-5.fc44 Β· libtiff AND LicenseRef-Callaway-BSD-with-advertising
- fedora 44: hylafax+ 7.0.11-5.fc44 Β· libtiff AND LicenseRef-Callaway-BSD-with-advertising
- opensuse-leap 16.0: hylafax+ 7.0.10-bp160.1.20 Β· BSD-3-Clause
- opensuse-leap 16.0: hylafax+ 7.0.10-bp160.1.20 Β· BSD-3-Clause
- opensuse-leap 16.0: hylafax+ 7.0.10-bp160.1.20 Β· BSD-3-Clause
- opensuse-leap 16.0: hylafax+ 7.0.10-bp160.1.20 Β· BSD-3-Clause
- 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