The file etc/xferfaxlog contains information about inbound and outbound activities. The file contains one line per inbound facsimile document or outbound job. The file also contains one line per expired job and one line per job submitted. If the modem config setting LogCalls is set to true, then the file also contains one line per received call. Lines are fixed-format, tab-separated ASCII strings. Each record of a facsimile transmission is of the form:
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 is of the form:
date RECV commid modem qfile <null> fax “local-number” “TSI” params #pages jobtime conntime “reason” “CIDName” “CIDNumber” “callid” <null> “dcs” <null>
Call records are of the form:
date CALL commid modem <null> <null> fax “local-number” “<null>” 0 0 jobtime conntime “<null>” “CIDName” “CIDNumber” “callid” ....
Each facsimile document retrieved by polling has a record of the form:
date POLL commid modem jobid jobtag sender “dest-number” “TSI” params #pages jobtime conntime “reason” “faxname” “faxnumber” <null>
An alphanumeric pager request has a record of the form:
date PAGE commid modem jobid jobtag sender “dest-number” “<null>” 0 0 jobtime conntime “reason” <null> <null> “owner” <null> jobinfo
Expired job records are of the form:
date UNSENT “<null>” “<null>” jobid ....
Job submission records are of the form:
date SUBMIT “<null>” “<null>” jobid ....
The following describes the fields in the above records:
The date and time of the transaction in the format MM/DD/YY HH:MM , where MM is the numeric month, DD the numeric day, YY the last two digits of the year, and HH:MM is the time in 24-hour format.
The communication identifier for the call.
The device identifier for the modem that was used to do the send or receive.
The job number for outbound calls.
The client-specified job tag for outbound calls.
The associated queue file for the event.
The sender/receiver's electronic mailing address (facsimile receptions are always attributed to the “fax” user).
The phone number dialed for outgoing calls.
The Transmitter Subscriber Identification string (as received) for incoming calls.
The Caller Subscriber Identification string of the remote machine (as reported) for outgoing calls.
The local phone number on which the data was received.
The negotiated facsimile session parameters used for transferring data encoded as described below.
The total number of pages transferred.
The duration of the session; in the format HH:MM:SS. This time includes setup overhead and any time spent cleaning up after a call.
The time spent on the phone; in the format HH:MM:SS. This should be the time used by the PTT to calculate usage charges.
A string that indicates if any problem occurred during the session.
The received CIDName value for the session.
The received CIDNumber value for the session.
The login name of the job owner.
The CallID values other than CIDName and CIDNumber formatted by “::” delimeters.
The T.30 DCS string that was used in the facsimile communication.
Other formatted information about the job: totpages, ntries, ndials, totdials, maxdials, tottries, and maxtries separated by slashes (“/”)
Note that fields may have embedded blanks. Session parameters are encoded as a decimal number that contains a packed set of Class 2 session parameter values. The format is found in the source code in the Class2Params::decode function. The page counts are always integral numbers. Partial pages that are to be retransmitted are not included in the page count.
The simple ASCII format was designed to be easy to process with programs like awk(1).
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. In earlier versions of HylaFAX FaxAccounting would block the HylaFAX process invoking it; however, this is no longer the case.
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. Be cautious that this field is not utilized for auditing if the fax user base is not trusted. Use owner instead, if possible.
The date format will “break” in the year 2000. Information should be recorded on a per-page basis for facsimile communications.
faxq(8C) faxsend(8C) faxgetty(8C)