PAGERMAP(5F)
π PAGERMAP π
okay bestie, so this is the SNPP pager identifier mapping file β and yes it's exactly as niche and iconic as it sounds π
β¨ NAME β¨
pagermap β the SNPP pager identifier mapping file π¦
πΈ DESCRIPTION πΈ
The file etc/pagermap (by default, anyway) is what the SNPP support inside hfaxd(8C) reads to map pager identifiers β the ones you specify with the PAGE directive β onto IXO/TAP or SMS service providers, and optionally a Pager Identification Number (PIN). The whole PIN thing is what makes it possible to define aliases for pagers, which is lowkey the moment π
π«Ά heads up though:etc/pagermapmight go by a totally different name. The filename gets specified with thePagerIDMapFileconfiguration parameter thathfaxd(8C)reads. so don't come for me if yours is named something else.
The pagermap file is literally just one or more lines, all in this format:
<pattern> <dialstring>[/<pin>]
Every line gives you a <pattern> that gets matched against a client-specified pager identifier string. A pattern can be either a plain string or a POSIX 1003.2 extended regular expression. Plain strings have to compare exactly, while regular expressions are unanchored and any substring match counts as a "hit" π Regular expressions get told apart from plain strings by the presence of one or more of the magic characters:
[]*.^$-+{}()
The <dialstring> is the one that says which IXO/TAP or SMS service provider to hit up for delivery. UNLESS <dialstring> is the string reject (case insensitive, bestie) β in which case the pager identifier just gets rejected. periodt. And if you do specify that optional <pin>, then it's used to deliver the page instead of the client-specified identifier π
Now if the matching expression is a regular expression, the optional <pin> can reference the entire string matched by the regex using the & character. And substrings matched with the (...) constructs? Those get referenced with \n, where n is a single numeric digit between 1 and 9 that refers to the n-th matched substring. c.f. re_format(7), sed(1), etc. iykyk π
hfaxd processes the lines in the mapping file sequentially, and the first line with a pattern that matches the pager identifier is the one used to deliver or reject the page. Lines that begin with a # are treated as comments and discarded. Leading whitespace on a line is also ignored, slay π
π¦ EXAMPLES π¦
Okay so this next bit defines an alias for sam, submits all destinations with a leading Sky to a particular IXO/TAP service provider, and otherwise rejects the pager ID. Obsessed.
π note that using alphabetics in dial strings requires a dialstring rules file that understands how to map alphabetics to key codes β or one that passes them through verbatim. no cap.
# a simple mapping example
sam 5551212/99
Sky(.*) 1800SkyTel/\1
.* reject
π SEE ALSO π
hfaxd(8C)hylafax-server(5F)
and that's the whole vibe bestie β¨ this little gem comes from the HylaFAX crew, dated May 8, 1996 β yeah she's vintage, and she ate π π π
π¦ where this page comes from
- alpine 3.24: hylafaxplus-doc 7.0.11-r0 Β· MIT
- 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
- nixos 26.05: hylafaxplus 7.0.11
- nixpkgs unstable: hylafaxplus 7.0.11
- 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) 1995-1996 Sam Leffler
- Copyright (c) 1995-1996 Silicon Graphics, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms