SENDPAGE(1)

🌸 NAME 🌸

sendpage β€” submit a pager job for transmission πŸ’–


✨ SYNOPSIS ✨

sendpage [ -O config ] [ options ] [ message...  ]

πŸŽ€ DESCRIPTION πŸŽ€

okay bestie, so sendpage submits a pager transmission request to a server using the Simple Network Paging Protocol (SNPP) described in RFC 1861. Pager requests you specify with sendpage are normally processed immediately, although they may also be queued for transmission at a later time using a syntax that's literally identical to the at(1) command. For each job that gets queued, sendpage prints a job identifier on the standard output. A job identifier is the token by which jobs are identified within HylaFAX. Job identifiers can be handed to the faxrm(1) command to remove the jobs, or to the faxalter(1) command to alter job parameters. no cap 🫢

Pages may be sent to one or more destination paging terminals and, optionally, include a text message (this depends on the capability of the receiving device, so don't @ me). Each destination is identified by a Pager Identification Number (PIN) specified with the -p option; for example,

sendpage -p 12345 ``Help, the fax machine is on fire!''

A PIN is typically a numeric string, though it may also be an alpha-numeric alias β€” it just depends on the capabilities of the SNPP server. πŸ’…

Text messages can be specified on the command line or taken from standard input. The -n option must be used if no text message is to be supplied with the page request β€” as for a numeric-only pager. Text supplied to the paging system is sent exactly as submitted, including any newline, carriage return, or non-ASCII data. Message preparation β€” filtering and formatting β€” has to be done prior to submitting the data to sendpage. And heads up: text supplied on the command line does not include a trailing newline character. ⚠️

The order of options on the command line is significant. Each page to be transmitted is assigned the current value of parameters specified on the command line; e.g. whether or not to queue the request. This means that options that specify parameters for a particular destination must precede the pager ID specified with the -p option. For example,

sendpage -l 2 -p sam Your network is hosed

submits a page to ``sam'' that has service level 2, while

sendpage -p sam -l 2 Your network is hosed

submits the same page but with the default service level (1). And note also that parameter values persist across -p options, so the following

sendpage -l 0 -p sam -p 5551212 Your network is hosed

submits two pages, both of which have service level 0. it's giving "order matters, bestie" energy fr fr 🧚


πŸ’– OPTIONS πŸ’–

  • -a time β€” Schedule transmission at the indicated time. Times are specified using the syntax of the at(1) command; e.g. now + 30 minutes'' to schedule transmission 30 minutes in the future. By default, `sendpage` schedules pages for now''. (In SNPP parlance this option specifies the ``hold time'' for the page; and it may result in the page being delivered to the paging terminal but not delivered to the user until the specified time.) ⏰
  • -D β€” Enable notification by electronic mail when the page has been delivered to the service provider. This option is meaningful only when communicating with a HylaFAX server. πŸ“§
  • -f from β€” Use from as the identity of the message sender. Otherwise the sender is the user that invoked sendpage. The sender is an account name to which the HylaFAX software should direct email notification messages. The from identity may be a full-blown From:'' line, e.g. Joe Blow <joe@foo.com>'' and ``joe@foo.com (Joe Blow)'' are acceptable. If no host-part is specified in the from string the local hostname is used. This option is useful when sendpage is invoked on behalf of another user, such as in the implementation of an electronic mail to pager gateway. πŸ‘‘
  • -h [modem@]host[:port] β€” Force the jobs to be processed on a specific host and, optionally, using a particular modem. The host may be either a symbolic name or a network address. IPv6 addresses are given in ``[xx:xx::x]:port'' format. If no -h option is supplied, sendpage uses the SNPPSERVER environment variable to identify the SNPP server to which the pages should be directed. If no server is specified then sendpage attempts to contact a server on the local host. If no modem is specified, the job will be submitted to any available modem. πŸ¦‹
  • -I time β€” If a job must be requeued because of a communication failure, schedule the retry according to the specified time. Times are given in seconds. Minutes, hours, and days can be specified with min'', hour'', and ``day'' suffixes, respectively. By default HylaFAX reschedules jobs using retry times that depend on the manner in which the job failed; this interface permits a user to override this algorithm and specify a single fixed retry time for all communication failures. This option is meaningful only when communicating with a HylaFAX server. πŸ”
  • -l level β€” Specify a particular service level to use in delivering a page. A service level defines both a scheduling priority and the time that a client is willing to wait to find out if delivery is successful or not. Normal delivery is obtained with level 1 (default). The SNPP specification identifies level 0 as the highest priority service level, with levels 1-7 lower priority and levels 8-11 vendor/server-specific. For HylaFAX server machines the mapping between service level and scheduling priority is defined by the configuration of the SNPP server process; see the PriorityMap parameter in hfaxd(8C) πŸ’…
  • -n β€” Send to a numeric-only paging device; i.e. do not send a text message in the paging request. 🚫
  • -N β€” Do not notify the sender by electronic mail when the page has been delivered to the service provider (this is the default). This option is meaningful only when communicating with a HylaFAX server. πŸ™ˆ
  • -O config β€” Treat config as a configuration parameter specification that is interpreted after reading the configuration file. For example, -O Host:fax.example.com'' would set the `Host` configuration parameter to fax.example.com'', overriding any setting in the configuration file. πŸŽ€
  • -p PIN β€” The Pager Identification Number (PIN) for a terminal that is to receive the message. A message can be sent to multiple destinations by specifying multiple -p options. πŸ“Ÿ
  • -q β€” Mark pages to be queued on the server and do not wait for their delivery. By default sendpage conforms to the SNPP spec by synchronously waiting for each page to be delivered. This option instructs sendpage to submit one or pages and then terminate immediately without waiting for their completion. When pages are queued it is advisable to enable email notification with the -D or -R options. Job queueing is a non-standard function of the SNPP implementation in HylaFAX and is not available when submitting pages to non-HylaFAX servers. πŸ’€
  • -R β€” Enable notification by electronic mail when the message has been delivered and when it is requeued for retransmission. HylaFAX will always notify the sender by electronic mail if there is problem delivering a page (irregardless of the email notification setting). This option is meaningful only when communicating with a HylaFAX server. ✨
  • -s subject β€” Set the ``subject'' for the specified pages according to subject. For HylaFAX, subject is used as the identifier string returned in any email notification messages (instead of the usual job identifier number). This option is useful for applications that cross reference notification messages against job submissions. 🏷️
  • -t tries β€” Make no more than tries attempts to send the page. By default, HylaFAX will terminate a job if: 3 consecutive attempts to send a particular message fail, or it appears the receiver is not a service provider. Otherwise HylaFAX places no limit on the number of attempts to send a page, instead terminating a job if it is not completed within a fixed period of time specified by the service level. Note that a try is a phone call in which carrier is established and the IXO/TAP or UCP protocol is commenced; this is contrasted with a call attempt that might have failed because the line was busy. This option is meaningful only when communicating with a HylaFAX server. πŸ”₯
  • -T dials β€” Make no more than dials phone calls when attempting to send a page. By default, HylaFAX will terminate a job if: 12 attempts to reach a service provider fail, or it appears the receiver is not a service provider. Otherwise HylaFAX terminates a job if it is not completed within a fixed period of time specified by the service level. This option is meaningful only when communicating with a HylaFAX server. ☎️
  • -v β€” Trace the protocol between sendpage and the SNPP server process that does the delivery work on the remote machine. This information is directed to the standard output. πŸ‘€

✨ CONFIGURATION PARAMETERS ✨

okay so sendpage is nosy in the best way β€” it reads its config from these files, in this exact order:

/etc/hylafax/hyla.conf
/etc/hylafax/sendpage.conf
~/.hylarc

and those files do the whole hylafax-client(1) conventions thing, iykyk. here's every single parameter it recognizes, no gatekeeping:

  • HoldTime β€” type string, default - β€” hold time to assign to pages
  • Host β€” type string, default localhost β€” host to contact for service
  • MailAddr β€” type string, default - β€” mail address for notification messages
  • MaxDials β€” type integer, default 12 β€” times to retry dialing
  • MaxTries β€” type integer, default 3 β€” times to retry transmission
  • Notify β€” type string, default none β€” control email notification
  • Port β€” type integer, default 444 β€” port to use in contacting server
  • Protocol β€” type string, default tcp β€” protocol to use in contacting server
  • QueueSend β€” type boolean, default No β€” whether or not to queue pages
  • RetryTime β€” type string, default - β€” delay between failed attempts to send
  • ServiceLevel β€” type integer, no default listed β€” SNPP service level for pages
  • Verbose β€” type boolean, default No β€” whether or not to enable protocol tracing

πŸ’… the parameters, explained (bestie edition)

  • HoldTime β€” the hold time you're assigning to your pages. (same energy as the -a option, literally the same thing.)
  • Host β€” the host you're contacting for service. (equivalent to -h.)
  • MailAddr β€” the electronic mail address that notification messages from the server get directed to. and here's the tea πŸ«–: if you write this string with no `@hostname` part on the end, then the local hostname just gets automatically appended for you. (equivalent to -f.)
  • MaxDials β€” the max number of times it'll dial the phone for each job. (equivalent to -T.)
  • MaxTries β€” the max number of times it'll retry sending a job. (equivalent to -t.)
  • Notify β€” controls the email notification messages from the server. this string can be one of `done`, `none`, `requeued` or `default`, optionally with a `when ` in front of it (like `when done`). heads up: `when requeued` implies `when done` β€” they're a package deal, no cap. (equivalent to the -D, -R, and -N options.)
  • Port β€” the network port to contact for service. (equivalent to -h.)
  • Protocol β€” the name of the communication protocol to use when contacting a server. (equivalent to the SNPPSERVICE environment variable, so yes, they're connected πŸ‘€.)
  • QueueSend β€” controls whether or not it waits for the pages to actually be delivered. (equivalent to -q.)
  • RetryTime β€” how long to delay between job retries when it's failing because of a communication failure. (equivalent to -I.)
  • ServiceLevel β€” the SNPP service level assigned to each page. (equivalent to -l.)
  • Verbose β€” controls protocol tracing. (equivalent to -v.)

🌸 ENVIRONMENT 🌸

these are the env vars sendpage is out here using:

  • SNPPSERVER β€” the identity of the SNPP server you're contacting for service. you write this value as `[modem@]host[:port]` where host is either a host name or the Internet `.` (dot) address of the host; port is the TCP port number or service name to use (default is `snpp` or 444); and modem is an optional modem name or class on the server machine to use when processing the requests β€” and this one is meaningful only when the server is running HylaFAX. periodt.
  • SNPPSERVICE β€” the communication service specification for talking to the SNPP server. you write this value as `port[/protocol]`; by default it's `444/tcp`.

πŸŽ€ FILES πŸŽ€

  • /var/spool/hylafax/tmp/sndpageXXXXXX β€” temporary files

πŸ‘‘ NOTES πŸ‘‘

the phone number of the pager service provider? yeah, that lives on the server machine and is not specified by the user. this is a whole departure from the pager support that came with HylaFAX version 3.0. different era, different rules πŸ’…

and speaking of HylaFAX version 3.0 β€” it used to recognize a null text message and just assume the destination paging device was numeric-only. that is no longer true. if a null text message gets submitted now, then a null message gets included in the paging request. which means paging requests submitted to `real SNPP` servers may get rejected if the paging device is actually numeric-only 😭. so when you're sending to a numeric-only paging device, you should be using the -n option. do not skip it, fr fr.


πŸ’€ BUGS πŸ’€

you cannot page text- and non-text devices together. like, at all. sendpage has to be run twice β€” once to send to text-capable devices and once to send to non-text devices. it's giving "two trips, no shortcuts", sorry bestie πŸ™ˆ


πŸ¦‹ SEE ALSO πŸ¦‹

at(1), hylafax-client(1), faxalter(1), faxrm(1), faxstat(1), faxq(8C), hfaxd(8C), hylafax-server(5F)


and that's the whole page, bestie β€” this one's from May 12, 1996, and it's page SENDPAGE(1) in the manual. vintage but still slaying ✨🫢 go page somebody.

πŸ“¦ where this page comes from