PAGESEND(8C)

πŸ“¦
version 7.0.11 Β· 5 versions
, in fedora 43, fedora 44

πŸ’– PAGESEND β€” the HylaFAX IXO/TAP and UCP transmit program πŸ’–

okay bestie, welcome to pagesend(8C) β€” yes that's section 8C, system administration / communications, we're fancy like that πŸ’…


✨ SYNOPSIS ✨

/usr/bin/pagesend [ -B ] [ -l ] [ -p ] [ -c config ] -m device-ID qfile

that's the whole vibe. one line, five optional flags, two things you literally cannot skip. slay.


🌸 DESCRIPTION 🌸

so like. pagesend is the program that implements the IXO/TAP and the UCP transmission protocol for the HylaFAX system, no cap. it's the pager-sending girlie. it gets invoked by the faxq scheduler process for each pager transmit attempt β€” every single one, she's there, she's ready 🫢

and she has ✨assumptions✨ (iconic of her):

  • she assumes her current working directory is the top of the spooling hierarchy
  • she assumes a suitable modem device has already been allocated for her use
  • in normal use she inherits a lockfile for the modem from the faxq process β€” she doesn't go making her own, that would be rude

the format of the job description file you pass on the command line? that's described over in sendq(5F). go read it, bestie, it's giving essential lore πŸ“–


she initializes the modem before she even attempts to transmit the pager message, using the info in the appropriate modem configuration file. and if the modem doesn't respond to that initialization? she does not give up. she will repeatedly try to initialize the modem πŸ” β€” and lowkey that behavior is required for send-only environments where a faxgetty(8C) process is not run (in those setups the modem would be known to be in a properly initialized state, so somebody's gotta do it, and that somebody is her πŸ’…).

she also catches SIGINT and SIGTERM and cleans up any resources she controls β€” that's literally the mechanism faxq uses to abort a job while it's in progress. so like, she's polite about it. she tidies up before she goes 😭


many aspects of how pagesend operates are controlled through a configuration file. where does it live? in the spooler hierarchy, in the etc subdirectory, and it's named config.device-ID. for the full deets on what goes inside config files, consult hylafax-config(5F).

and the protocol you must use for a specific service provider? that's controlled from the hylafax-info(5F) file. iykyk πŸ¦‹


πŸŽ€ OPTIONS πŸŽ€

  • -B β€” do not increment the various "dials" counters if a busy signal is encountered. she just... lets it go. doesn't count it. moving on πŸ’…
  • -c config β€” treat config as a configuration parameter specification that is interpreted after reading the per-device configuration file. for example, `-c sessiontracing:0x4f` would set the SessionTracing configuration parameter to `0x4f`, overriding any setting in the configuration file. yes she will override. she said what she said πŸ‘‘
  • -m devID β€” the device to use in processing the job. ⚠️ note that this is a device identifier and not the pathname of the tty special file. a device identifier is formed from a device filename by removing any leading `/dev/` and converting any `/` characters to `_` characters. so like, do the transformation, bestie, don't just paste a path in there πŸ™ˆ
  • -l β€” do the UUCP lockfile protocol in pagesend. by default pagesend assumes it is invoked with the device already locked and that it does not need to manage the lockfile. this flag is you saying "no actually, she handles it" 🫑
  • -p β€” do not change the process priority when transmitting. normally pagesend will raise its priority to reduce i/o latency. this option is useful for debugging. so like, if you're poking at things, use this so she doesn't go boosting herself ⭐

πŸ”₯ NOTES πŸ”₯

pagesend returns the new job status to faxq through the exit(2) return value of the process. here's the whole chart, memorize it, it's literally four numbers:

  • send_retry (0) β€” retry job
  • send_failed (1) β€” job finished without success
  • send_done (2) β€” job completed successfully
  • send_reformat (3) β€” job should be retried after documents are reformatted

periodt. that's the whole communication channel, just a little exit code, and honestly? efficient πŸ’€


🌈 FILES 🌈

  • `/var/spool/hylafax/etc/config.devID` β€” device-specific configuration file

and for a complete discussion of the structure and content of the spooling area, consult hylafax-server(5F). go, read, become informed πŸ“š


πŸ’œ SEE ALSO πŸ’œ

  • faxq(8C)
  • hylafax-server(5F)
  • hylafax-config(5F)
  • hylafax-info(5F)

bestie reminder: she's a pager-sending icon, but she needs her environment set up right β€” right cwd, allocated modem, and (unless you pass -l) a device that's already locked. don't set her up to fail, she deserves better πŸ₯Ί

and that's the page, my love 🫢 this one's dated October 3, 1995 β€” yeah, she's a vintage queen and she still eats πŸ’–βœ¨πŸŽ€πŸ¦‹πŸŒΈπŸ’…

πŸ“¦ where this page comes from