HYLAFAX-INFO(5F)

πŸ’– NAME πŸ’–

okay so bestie, this is info β€” the remote device capability database. and yes we're folding the manual name in right here at the top because that's the vibe: it's the HYLAFAX-INFO(5F) page, and it's all about that little database of who-called-what and what-that-machine-can-actually-do. πŸŽ€


✨ DESCRIPTION ✨

So the info subdirectory inside the HylaFAX spooling area? That's where all the ✨receipts✨ live β€” information about the capabilities and status of devices that have been called. One file per device, and the filename is literally made from the remote device's fully-qualified phone number. iconic behaviour, honestly.

The files are a simple ASCII format (lowkey retro of them but we respect it). Each line looks like this:

[&]tag: value

Where a tag identifies a capability and a value is either a string, a number, or a boolean. And bestie, listen β€” there's an optional & at the front of the line, and that little guy means the tag's value is locked down and should NOT be updated by the server. This is genuinely useful for restricting the capabilities used with a particular machine. periodt. πŸ”’

Here's everything that gets recorded, no cap:

  • calledBefore (boolean) β€” device has previously answered at this number
  • dialFailures (number) β€” count of consecutive failed dial operations
  • hasV34Trouble (boolean) β€” there is difficulty sending to this destination with V.34
  • hasV17Trouble (boolean) β€” there is difficulty sending to this destination with V.17
  • lastDialFailure (string) β€” reason for last failed dial operation
  • lastSendFailure (string) β€” reason for last failed send attempt
  • maxPageWidth (number) β€” maximum page width in pixels in normal resolution
  • maxPageLength (number) β€” maximum page length in millimeters
  • maxSignallingRate (string) β€” maximum signalling rate (bits/sec) to use
  • minScanlineTime (string) β€” minimum scanline time
  • pagerMaxMsgLength (number) β€” length of longest allowed text message
  • pagerPassword (string) β€” password string send to service provider
  • pagerSetupCmds (string) β€” commands for setting up modem for a specific service provider
  • pagerTTYParity (string) β€” parity & # bits configuration for IXO/TAP communication
  • pageSource (string) β€” parameter to tell the paging central who we are
  • pagingProtocol (string) β€” protocol (IXO or UCP) for this provider
  • remoteCSI (string) β€” remote device Called Subscriber Identification
  • remoteNSF (string) β€” remote equipment Non-Standard Facilities information
  • remoteDIS (string) β€” remote Digital Identification Signal: capabilities
  • sendFailures (number) β€” count of consecutive failed send attempts
  • dataSent (number) β€” units of data sent to the destination in the last session
  • dataSent1 (number) β€” units of data sent to the destination in the session previous to the last
  • dataSent2 (number) β€” units of data sent to the destination in the session previous, previous to the last
  • dataMissed (number) β€” units of data sent to the destination which were missed or corrupt in the last session
  • dataMissed1 (number) β€” units of data sent to the destination which were missed or corrupt in session previous to the last
  • dataMissed2 (number) β€” units of data sent to the destination which were missed or corrupt in session previous, previous to the last
  • senderConfusesPIN (boolean) β€” this caller does not return to Phase B and resend the same page after PIN
  • senderConfusesRTN (boolean) β€” this caller does not return to Phase B and resend the same page after RTN
  • senderDataSent (number) β€” units of data sent by the sender in the last session
  • senderDataSent1 (number) β€” units of data sent by the sender in the session previous to the last
  • senderDataSent2 (number) β€” units of data sent by the sender in the session previous, previous to the last
  • senderDataMissed (number) β€” units of data sent by the sender which were missed or corrupt in the last session
  • senderDataMissed1 (number) β€” units of data sent by the sender which were missed or corrupt in session previous to the last
  • senderDataMissed2 (number) β€” units of data sent by the sender which were missed or corrupt in session previous, previous to the last
  • senderFumblesECM (boolean) β€” there is difficulty receiving from this caller with ECM
  • senderHasV17Trouble (boolean) β€” there is difficulty receiving from this caller with V.17
  • senderSkipsV29 (boolean) β€” this caller does not use V.29 in the presence of V.17
  • supportsBatching (boolean) β€” accepts batching protocol
  • supportsHighRes (boolean) β€” accepts 196 line/inch images (obsolete)
  • supportsVRes (number) β€” vertical resolution support bitmask
  • supports2DEncoding (boolean) β€” accepts Group 3 2D encoding
  • supportsMMR (boolean) β€” accepts Group 4 encoding
  • supportsPostScript (boolean) β€” accepts Adobe POSTSCRIPT transfer protocol

The HylaFAX scheduler, faxq(8C), reads all of this when it's deciding if a call should even be placed and when it's prepping documents for transmission. And here's the tea β˜•: if a remote device's capabilities are known, then document preparation gets constrained and/or optimized according to those capabilities. If they're not known? Documents get prepared with zero regard for what the remote device can do, and if a capability mismatch shows up the session is terminated and the documents get reformatted using the newly discovered capabilities. adaptive queen behaviour, honestly. πŸ’…

The calledBefore item is what faxsend uses to decide whether or not to redial a phone number when it hits certain errors. Like, say a dialing command comes back with a ``NO CARRIER'' result β€” then that number will not be retried unless the number has previously been dialed successfully. fair enough bestie, we're not wasting time on that. πŸ™ˆ

The minScanlineTime item is the minimum scanline time parameter used for facsimile transmissions. The acceptable values are:

  • ``0ms''
  • ``5ms''
  • ``10ms/5ms''
  • ``10ms''
  • ``20ms/10ms''
  • ``20ms''
  • ``40ms/20ms''
  • ``40ms''

(and quick lil note for the girls: values of the form X/Y mean to use X for 98 lpi images and Y for 196 lpi images. iykyk πŸ¦‹)

The pagerTTYParity item specifies the communication parameters to use when talking to the IXO/TAP service provider. Acceptable values are:

  • ``even'' β€” 7 bits, even parity
  • ``odd'' β€” 7 bits, odd parity
  • ``none'' β€” 8 bits, no parity

If nothing is specified then ``even'' is used per the standard. it's giving default-and-proud. ✨

The pagerMaxMsgLength, pagerPassword, and pagerTTYParity items can be set up according to whatever a pager service provider requires; they typically get locked down so their values don't get lost during updates. protect them at all costs. 🫢

The pagerSetupCmds can be used to define AT commands for setting up the modem for a specific service provider. Heads up though: this value overwrites the settings defined in hylafax-config(5F). so like, be aware.

The pageSource parameter can be used to tell the paging central who we are. It usually contains a SMS answerable mobile number. It's only used for the UCP part of sendpage(8C). and oop, here's the caveat bestie β€” Note: This parameter should be used from user-land sendpage(1) and will be removed later. so, y'know. don't get too attached. 😭

The pagingProtocol defines which protocol, UCP or IXO, should be used to send the message to the service provider. It defaults to ixo''; for UCP set ucp''. choose your fighter. πŸ”₯


🌸 NOTES 🌸

faxsend, pagesend, and faxq automatically create and update entries in the info directory, as required. they just do that. no notes. πŸ‘‘

The data in this directory is simply a cache of remote capabilities and β€” except for locked down items β€” can be safely purged at any time. The faxcron(8C) script, for example, periodically purges unlocked entries in this directory that have not been accessed in 30 days. declutter era. 🧚

When the first batching attempt fails then supportsBatching is set to false. And bestie, it must be manually altered in order to re-enable batching to the destination. it's not gonna fix itself. πŸ’€

⚠️ okay this one matters: restricting the capabilities used with a particular machine to a value other than those that are mandatory can cause documents to be sent outside of an acceptable range for the receiver. so like, don't just vibe-edit these numbers. be careful. 😭

🌈 SEE ALSO 🌈

faxcron(8C), faxq(8C), faxsend(8C), pagesend(8C), hylafax-config(5F)


and that's the whole page bestie, we ate and left no crumbs πŸ’… β€” this was the HYLAFAX-INFO(5F) page, dated February 10, 1996, and it's sourced straight from HYLAFAX-INFO(5F). go forth and know your remote devices. mwah. πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from