atdialer is a configurable dialer program
for modems. UUCP comes with a selection of dialers for popular
modems, but to get the maximum performance out of some devices
you may want to create a customized dialer. Alternatively, if
you are using a non-standard modem you may have to create a dialer
for it.
Dialer configuration files can also be created using the script
/usr/lib/uucp/make.dialer. This script prompts for
information on the commands recognized by the modem or dialer, then
saves them in an appropriately-named file.
As shipped, there exist
several atdialname
symbolic links to atdialer
for which configuration files exist in
/usr/lib/uucp/default.
The atdialer binary works out which
configuration file to use by checking the
name that was used to invoke it.
It then looks for the configuration file
atdialname in
/usr/lib/uucp/default.
When
cu(C),
uucico(ADM),
or
getty(M)
run on a given line, they read the file
/usr/lib/uucp/Devices. This specifies the dialer to use for
controlling a given modem. Using the configuration strings specified
in its current configuration file, atdialer attempts to
contact the modem on
the specified tty at the specified speed, and dials the specified
telephone number. It returns either an error string from the modem
(for example, NO CARRIER or BUSY) or if
successful, the speed of the connection (for example, 19200
for a 19,200-baud connection).
Note that a proper /etc/gettydefs file for the modem must
exist before atdialer will work properly. The modem must use
RTS/CTS flow control if UUCP is selected;
/etc/inittab and /etc/conf/init.d/sio should be
set up to permit this.
The -f option selects call discrimination and selection
for modems that support this functionality. This sends the commands
MDM_SETUP,
MDM_SPEAKER,
MDM_DSBLESC,
MDM_DIALIN, and
MDM_CDS to the modem.
The atdialer will expect either the response RTC_DATA
or RTC_FAX from the modem. If RTC_FAX is received,
a FAX connection has been detected, and atdialer
will exit with a value of RCE_FAXMODE.
If RTC_DATA is received, atdialer sends
MDM_ONLINE (if defined) to the modem, and then waits for
RTC_CONNECT. When it receives RTC_CONNECT,
atdialer will exit with a value of RCE_DATAMODE.
If other strings are returned (such as ``ERROR''),
atdialer will exit with a value of RCE_FAIL.
If the -h option is specified, the line is disconnected
when the last process holding the line open either closes it or terminates.
getty calls the dialer program with this
option whenever it starts up on a line enabled in
/etc/inittab
and listed in /usr/lib/uucp/Devices with this dialer.
Using make.dialer to create a new atdialer file
To create a dialer using make.dialer:
Log in as root and change directory to /usr/lib/uucp.
Run make.dialer.
This displays some help text about modem setup strings, choosing suitable
dialer names, and how to use the program.
You should be prepared to enter the modem setup strings and (optionally)
register settings: refer to your modem documentation for further
information about suitable values.
make.dialer prompts you in turn for
the modem setup, special option, dial prefix,
escape, hangup, reset, autoanswer, modem
attention, and disable escape strings. It offers the
standard Hayes AT command set as default selections.
It then prompts you for the strings the modem emits in response to various
error conditions or in response to a connection: respectively,
OK, NO CARRIER, ERROR, NO
DIALTONE, BUSY, NO ANSWER, and
CONNECT speed (where CONNECT speed
indicates that the modem has made a connection at a baud rate of
speed. (Refer to your modem documentation for these
settings).
After accepting the default or changed dialer settings,
make.dialer creates a dialer file and places it in
/usr/lib/uucp/default. It then
offers to create an appropriately-named
symbolic link to the atdialer binary which you should
accept, and then exits.
atdialer configuration parameters
An atdialer configuration file
in /usr/lib/uucp/default
can contain the parameters listed in the following table:
Parameter
Default
Description
MDM_ATSPEED
0
Control delay in milliseconds between sending AT commands
MDM_ATTN
This parameter is no longer supported and is ignored
MDM_CDS
AT+FAA=1;+FCR=1
Select call discrimination and selection
MDM_DIALCMD
ATDT
Dial command
MDM_DIALIN
ATS0=1
Answer after 1 ring
MDM_DSBLESC
ATS2=128
Disable modem escape
MDM_ESCAPE
+++
Escape to command mode
MDM_FAXBAUD
19200
Select speed of 19,200bps between DCE and DTE
MDM_HANGUP
ATQ0H0
Hangup
MDM_MODE
DATA
Answer mode DATA or AUTO
MDM_ONLINE
Command to go online after a DATA
connection has been established
MDM_OPTION
Commands which enable line speed to be varied
MDM_QUIET
ATQ1
Inhibit sending of result codes to DTE
MDM_RESET
This parameter is no longer supported and is ignored
MDM_SETUP
AT&F0
This parameter must be supplied
MDM_SPEAKER
ATM0
Speaker control command
RTC_BUSY
BUSY
Message to expect for busy line
RTC_CONNECT
Message to expect for connection at any speed
RTC_DATA
DATA
Message to expect for DATA connection
RTC_ERROR
ERROR
Message to expect on command error
RTC_FAX
FAX
Message to expect for FAX connection
RTC_NOANS
NO ANSWER
Message to expect for no answer
RTC_NOCARR
NO CARRIER
Message to expect for no carrier
RTC_NOTONE
NO DIALTONE
Message to expect for no dialtone
RTC_OK
OK
Message to expect on command success
RTC_speed
Message to expect when connection set to speed;
set to ``not used'' for unused speeds
STTY
-ortsflow rtsflow ctsflow
stty settings; default is to use hardware flow control
MDM_OPTION allows you to set up special registers
on the modem. To enable these settings,
put an X or an x at the end of the phone number in a
Systems file entry. For example:
some modems allow you to send
a ATSP command to perform UUCP spoofing
some high-speed modems that communicate
with the serial port at a fixed speed, while they vary the
connection speed to the remote modem as needed.
Put the appropriate commands in the MDM_OPTION entry,
and modify /usr/lib/uucp/Devices,
/etc/inittab and /etc/conf/init.d/sio to
use the highest available serial line speed.
You must also edit the configuration file so that
the RTC_speed definitions all
read ``not used'' except for the serial line speed chosen
The MDM_OPTION feature is only
valid for a Systems file entry; it
cannot be used with cu.
Setting any of the RTC_speed
parameters is unnecessary for modern modems that
can perform speed conversion. If hardware flow
control is used between the computer and the modem,
the modem can use the fastest speed that it can negotiate with
the remote modem. In this case, set
RTC_CONNECT to ``CONNECT''.
MDM_SETUP must be present and defined.
A ``'' at the start of a line indicates a comment.
Examples
This is an example of an atdialer configuration
for a V.32bis modem that supports automatic FAX/DATA
selection:
Enable FAX/DATA detection:
MDM_MODE=AUTO
MDM_SETUP=AT&F+FAA=1
NOTE: automatic FAX/DATA selection may not be available.
Setup commands:
&D2 Computer must raise DTR for modem to accept commands
&C1 Modem raises CD while a connection is present
&B1 Use fixed line speed between computer and modem
&R2 Use hardware flow control for received data
&H1 Use hardware flow control for transmitted data
MDM_SETUP=AT&FX4Q0&D2&C1&B1S0=1S2=043M0&R2&H1
Use fastest connection speed available;
atdialer sets the line speed between computer and modem.
RTC_CONNECT=CONNECT
Use bidirectional hardware flow control.
STTY=-ortsfl rtsflow ctsflow