FAXADDMODEM(8C)

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

πŸ’– FAXADDMODEM πŸ’–

okay bestie, this is the faxaddmodem page from section 8C of the HylaFAX manual, and it's literally the "get ur modem set up for HylaFAX" tutorial. sit down, grab a strawberry drink πŸ“, we're doing this.


✨ NAME ✨

faxaddmodem β€” configure a modem for use with HylaFAX


πŸŽ€ SYNOPSIS πŸŽ€

/usr/bin/faxaddmodem [ -s speed ] [ -f ] [ -nointeractive ] [ -skel=file ] [ tty ]

πŸ¦‹ DESCRIPTION πŸ¦‹

so faxaddmodem is an interactive shell script β€” yes, a script, she's humble β€” and she does the necessary setup work to configure a modem for use by the HylaFAX software. the way that she just handles it for you?? iconic.

to actually enable use of the modem you just configured, you've gotta do one of two things, bestie, pick ur fighter:

  • use the faxmodem(8C) program, or
  • configure the init(8C) program to startup a faxgetty(8C) process for the newly configured modem.

and in either case, the faxq(8C) program must also be running if outbound services are to be provided. no faxq, no outbound, periodt.

if the serial port name is not specified on the command line, faxaddmodem will prompt for it. she's not gonna guess, she's gonna ask. πŸ’…

the two main areas of work 🌸

the configuration work done by faxaddmodem falls into two main areas:

  1. creating the necessary files to run a facsimile server process, and
  2. defining the contents of the configuration database file.

the hylafax-config(5F) manual page has an in-depth description of the contents of the configuration file and should be consulted when installing a modem. fr fr, read it.

the faxsetup dependency 🧚

many aspects of configuring a modem are operating system-specific; faxaddmodem uses a collection of support routines and parameters that are generated by the faxsetup(8C) program.

if faxsetup has not been run on a machine prior to running, then faxaddmodem will abort. like, hard stop. no vibes, no setup, no modem. run faxsetup first bestie.

new modem vs. glow-up πŸ’–

faxaddmodem can be used to install a new modem or re-configure an existing modem.

in the re-configure case, she will propagate all the server-related configuration parameters from the existing configuration file to the new configuration file. these parameters include items such as the phone number, area code, and tracing control parameters.

modem-related configuration parameters are, however, not propagated. instead faxaddmodem deduces the type of modem attached to the specified serial port and then sets up the configuration parameters using a set of prototype configuration files that have been tested with like modems.

and if a modem is to be installed for which there is no existing prototype file? faxaddmodem will work from a comprehensive template of parameters that can be edited either during or after the installation process. main character fallback energy.

how she sniffs out ur modem πŸ”

faxaddmodem deduces the type of modem attached to the serial port by sending commands to the modem at a fixed speed.

by default, this speed is deduced by sending commands to the modem at successively decreasing speeds until a valid response is received. alternatively, a fixed speed can be specified from the command line with the -s option.

locking, and the -f thing πŸ”’

because faxaddmodem needs to read and write the modem that is to be installed, she will not proceed with an installation if the modem is locked for use by another process.

if the modem is not locked and the -f option is used, then the system's fuser(1) command will be invoked to ensure that faxaddmodem is the only process using the modem. exclusive access, as she deserves. πŸ‘‘

the panic button 🫢

finally, note that an installation can be safely aborted at any time by hitting the interrupt key. faxaddmodem delays making installation-related changes until after everything has been setup. so like, breathe. you can bail. it's fine. 😭


πŸ’… OPTIONS πŸ’…

  • -s speed β€” Communicate with the modem at a fixed speed; this may be any value recognized by the stty(1) command.
  • -f β€” Use the fuser(1) command for exclusive access to the device.
  • -nointeractive β€” Do not prompt for any input whenever a default option is available. she just picks the default and moves on. no questions, no small talk.
  • -skel=file β€” Use file as the skeleton configuration file (used when there is no existing modem config file).

🌈 PROTOTYPE CONFIGURATION FILES 🌈

faxaddmodem uses prototype configuration files that have been created for known modems. these prototype files are kept in the config subdirectory and, by convention, have names that identify a brand or type of modem and the DTE-DCE flow control scheme the prototype files configures.

the faxaddmodem(8C) program that is used to configure a modem for use with HylaFAX selects a prototype configuration file using information retrieved from the modem and comments embedded in the prototype files.

how each class gets matched 🎯

  • for Class 1 and Class 1.0 modems, the product ID code returned by the command ATI0 and the response from the command ATI3 are used to select a prototype configuration file.
  • for Class 2 modems, the manufacturer and model as returned by AT+FMFR? and AT+FMDL?, respectively, are used (or AT+FMI? and AT+FMM? for Class 2.0 and Class 2.1 modems).

Class 1 prototype files 🌸

a Class 1 prototype configuration file is identified for use by faxaddmodem by searching for a comment of the form:

# CONFIG:CLASS1:144:.*:RTSCTS: Manufacturer='AT&T' Model=Dataport

in this example:

  • 144 is the product ID code for an AT&T DataPort modem,
  • .* is a regular expression matched against the result string returned by the ATI3 command, and
  • RTSCTS indicates the modem is configured to use hardware flow control during fax operation.

the remainder of the line is evaluated by the sh(1) and used to specify the modem's manufacturer and model (since Class 1 modems do not have standard commands to query this information). lowkey tragic, but we cope. πŸ™ˆ

Class 2, 2.0 and 2.1 prototype files πŸ¦‹

Class 2, 2.0, and 2.1 prototype configuration files match the string manufacturer-model-flowcontrol against a sh(1) glob pattern specified in the configuration file, where manufacturer and model are the strings returned by querying the modem and flowcontrol is either RTSCTS for hardware flow control or XONXOFF for software flow control.

for example:

# CONFIG: CLASS2: ZyXEL*-RTSCTS
# CONFIG: CLASS2.0: USRobotics*-XONXOFF

are configuration comments that appear in the prototype file for a ZyXEL 1496E with Class 2 support, and for a US Robotics Courier modem with Class 2.0 firmware.

the merge rules ⭐

the faxaddmodem program merges server-specific configuration parameters into a prototype configuration according to comments placed in the prototype file. all lines between BEGIN-SERVER and END-SERVER comments are placed with the appropriate server configuration parameters.

note: this means modem-related configuration parameters must be placed outside this area of the file. respect the boundary, bestie. πŸ’–

πŸŽ€ FILES πŸŽ€

  • /var/spool/hylafax/etc/setup.cache β€” master configuration parameters
  • /var/spool/hylafax/etc/setup.modem β€” modem-related configuration support
  • /var/spool/hylafax/config β€” prototype configuration files
  • /usr/bin/ondelay β€” program to open device without waiting for carrier
  • /usr/bin/lockname β€” SVR4 UUCP lockfile name generator

consult hylafax-server(5F) for a complete discussion of the structure and content of the spooling area. 🫢


πŸ‘‘ SEE ALSO πŸ‘‘

hylafax-server(5F), hylafax-config(5F), faxsetup(8C), faxq(8C), faxgetty(8C), faxmodem(8C), faxconfig(8C), faxsend(8C)


and that's the whole page, bestie!! πŸ’–βœ¨ this one's dated May 12, 1996 and it lives in the FAXADDMODEM(8C) corner of the manual β€” go configure ur modem, you've got this, slay πŸŽ€πŸ¦‹πŸ’…

πŸ“¦ where this page comes from