X.32 Dial-up Facility

1. Overview
Netcom II supports three different mechanisms for addressinga telephone network in order to connect with a remote X.25 device:

- V.25 bis, a synchronous dialing protocol defined
by the CCITT (added in Netcom Release 3.2.0).

- "AT command" set dialing - an asynchronous dialing
protocol originally developed by Hayes
Microcomputer products (added in Netcom Release 4.2.2).

- DTR dialing - dialing a preprogrammed telephone
number by raising the RS-232-C DTR signal that
Netcom controls (added in Netcom Release 4.2.2).

The details of dial-up operation are invisible to users, except for some delay setting up the first X.25 Switched Virtual Circuit to the remote. Once set up, the use of Netcom II is the same for both dial-up and direct connect X.25 access.

With release 4.4.3, dialup support is available on the Link #1 port of the following platforms:
SGX (ISA)
RB15 (ISA)
RB75 (MCA)
AT6SE (ISA)

The SGX also supports V.25bis dialing on link #0.


2. Modem Requirements
To use Netcom II with a dialup modem, some of the modem's options must be preprogrammed to correct values. For both V.25 bis operation, and when the telephone line is idle for both AT and DTR dialing, the EIA signal DSR (pin 6) indicates the presence of an incoming telephone call. Therefore, you must set the modem up so that DSR follows the state of the telephone call. This is especially important for AT-dial and DTR-dial operation, as Netcom concludes there's a remote device connected whenever DSR is on. Netcom will never attempt to make a telephone call under these circumstances.

Whenever Netcom is using a dialup modem, it assumes that the external modem provides clocks on EIA signals TxClk and RxClk (pins 15 & 17). If these clocks are not present after the telephone call gets established, Netcom will never be able to transmit the control frames which bring the HDLC link (Level II of X.25) up.

For asynchronous dialing, you need to configure the modem so that it presents results as english text, rather than as numeric result codes, as Netcom uses result codes under certain circumstances (by redialing a busy number, for example). In addition, before it tries to send the dial string, it goes through a process of sending AT<CR> until it receives the "OK" response, followed by an ATH<CR>, in order to put the modem and telephone line into a known state before attempting to dial. If the modem provides result codes and not verbal responses (0 instead of OK), Netcom will never successfully dial a call.

3. Parameter Setup
To use X.32 facilities of Netcom II, you need to identify the modem type that you're using and a telephone number / dialing string in the link configuration information that Netcom uses when starting the X.25 controllers. This is the file pointed to by /usr/lib/x25/utils/fld.opts (the file specified as "-1 filename" under "-f0" for FEP 0; eg link.telenet).

There are three parameters which affect dialup operation:

modemid
DXEsupport
dial_defn

3.1 modemid
The modemid parameter identifies the type of dialing mechanism you're using. The default value for modemid is 0, which represents a dedicated (X.25) line. When modemid is nonzero, Netcom understands you're using an X.32 connection, and uses the modemid value to decide what dialing mechanism to use.

Valid values for modemid are:
Value Modem type
0 X.25: Dedicated line
1 X.32: V.25bis dialer
2 X.32: AT command set dialer
3 X.32: AT&T STU-III dialer
4 X.32: DTR dialing

When you are using the AT command set, you use the speed parameter of Netcom's link parameters file to specify the speed at which you need the asynchronous interaction to take place. For other types of dialer (DTR and V.25 bis, speed should be 0.

3.2 DXEsupport
As part of our X.32 support, we have implemented the CCITT T.70 standard for X.25 DTE/DCE operation so that Netcom-equipped machines can telephone each other without regard for which is DTE and which is not. Under this arrangement, the calling device operates as DTE, whether it is a true DTE (i.e.: Customer-Provided Equipment) or a packet switch attempting to place a call to a remote terminal.

To use T.70, set the DXEsupport parameter to 1. The default value is 0. Most environments do not implement the T.70 algorithm, so it's safe to use the default value unless explicitly directed not to.

3.3 dial_defn
The dial_defn data structure must be present in the link configuration file for any modemid > 0. Samples are contained in the file /usr/lib/x25/utils/link.defaults.

3.3.1 CCITT V.25bis Netcom II can interoperate with any modem which conforms to the CCITT V.25bis standard for modem dialing and control. Use the following link initialization file line to select this protocol:
     modemid   1

To select the telephone number, you define it in the dial_defn structure of the link initialization file:

dial_defn
{
dial_string      (max 80 characters, default = null string) number_of_retries      number of attempts = 1 + number_of_retries, default = 0)
timeout_between_retry      (time in seconds, default = 0)
}

for example, to dial the number 555-1111 with 2 retry attempts and a 30 second delay between retries.
dial_defn
{
dial_string 5551111
number_of_retries 2
timeout_between_retry 30
}

The telephone number must be all digits, and may be up to 80 characters long. Some V.25bis modems allow selection of tone or pulse dialing by preceding the telephone number with a code indicating how to dial:
`T' for tone (DTMF) dialing
`P' for pulse dialing


3.3.2 Hayes AT command set Netcom II can interoperate with any modem which uses the Hayes-AT command set and is capable through software commands to switch between asynchronous and synchronous mode. Use the following link initialization file line to select this protocol:
     modemid   2

To select the telephone number, you define it as the dial_string parameter of the link initialization file:

dial_defn
{
init_string     (max 80 characters, default = null string)
dial_string     (max 80 characters, default = null string)
connect_string     (max 20 characters, default = null string)
gosync_command     (max 20 characters, default = null string)
number_of_retries     (number of attempts = 1 + number_of_retries, default = 0)
timeout_between_retry      (time in seconds, default = 0)
}

for example,
dial_defn
{
init_string
dial_string   /ATL1V1Q0X2&M1DT5550001\015
connect_string     CONNECT
gosync_command
number_of_retries
timeout_between_retry
}

The above example will dial the number 5550001 and wait for the modem to return a string containing the word CONNECT. No go sync command was necessary since, in this case, the modem is automatically configured synchronously. This dial_string string includes modem specific commands to place the modem into synchronous mode after connection. The "\015" is the octal representation of "CR", which is normally required to terminate a command line sent to an AT dial modem.

The init_string is used by Netcom II to initially configure the asynchronous modem, each time the board is loaded on reboot or when fld is run from the command line. The init_string is not sent each time the modem is dialed.

The connect string is used by Netcom II to determine that a connection was successful. If a particular baud rate is desired the connect string could be used to check it.

The go sync command is used by modems that do not support an automatic facility to switch from asynchronous to synchronous mode. This field should be filled with modem commands that will force the modem into a synchronous configuration.

Since the dialing portion of the call is made in asynchronous mode, the link configuration file must contain a speed parameter. This is not the link speed but rather the speed required by the modem for dialing purposes. Refer to the modem manual.


3.3.3 DTR high dialing No dial string is necessary in this mode. The modem needs to be pre-set prior to being connected to Netcom II to dial the desired phone number when DTR goes through a low to high transition.

Use the following link initialization file line to select this protocol:
     modemid    4

Netcom II will raise DTR when it attempts to establish a connection (See next section).

Although the number to be dialed is programmed in the modem, a dial_defn is still required (similar to V.25bis). Also, a speed parameter must be included in the link configuration file (as per Hayes AT).


3.3.4 Establishing a Connection Netcom II only establishes a dialup link to a remote (usually a public packet-switched data network providing X.32 services) when a user process attempts to make a virtual circuit connection (tries to make a call). If there's no telephone connection with the remote, the X.25 software stores the request and tries to make the telephone connection to the remote. Netcom starts the HDLC protocol after the telephone connection, then sends the X.25 Call Request packet to the remote.

For V.25bis and Hayes-AT dial modes, Netcom II will allow for alternate numbers to be dialed during dial failures. Alternate dial_defn's should be entered in the order of desired execution in the link configuration file. At most 20 dial_defn's can be configured per link. When CTS is stuck low or the modem could not detect a dialtone, alternate dial_defn's will not be attempted or a number will not be retried. For example,

dial_defn
{
dial_string      /ATL1V1Q0X2&M1DT5550001\015
number_of_retries      1
timeout_between_retry      20
}

dial_defn
{
dial_string     /ATL1V1Q0X2&M1DT5550002\015
number_of_retries     0
timeout_between_retry     20
}

The above example will attempt to dial the number 5550001 a maximum of two times and then if necessary attempt to dial 5550002. Once all dial_defn's have been attempted without success the diagnostic 0x9e is returned. Each new dial attempt will begin using the first dial_defn.

In the case of the Hayes-AT dial mode, Netcom II will initially communicate with the modem in the asynchronous mode of operation. Once the modem connection has been established Netcom II will switch the modem into the synchronous mode. Note that the modem needs to be configured to power on in the asynchronous mode. If for any reason the modem connection is dropped, Netcom II will place the modem back into the asynchronous mode.

There are two EIA modem signals that have special meaning for dialup connections, CTS and DSR. Most modems have configuration options for these two signals. Some typical settings for CTS is "Force high", "Dependent on interface" or "Follow RTS". CTS should typically be configured to follow RTS (request to send) which is forced high by Netcom II. Netcom II will not attempt to dial the modem until CTS is high, a typical error return being:

CTS off - Unable to dial the call. Diagnostic: 0x9a hex.

DSR needs to be configured to be high only when the modem connection is established, thus Force high is not a valid setting for DSR. If DSR is always high Netcom II will assume the modem connection is established and not attempt to dial the call. If DSR does not go high once the modem connection is established Netcom II will assume the call failed and report the following error.

DSR off - Unable to complete the call. Diagnostic: 0x9c hex.

3.4 Avoiding Premature Disconnection
If you're using Netcom II to call other machines, we suggest that you modify the X.25 T21 parameter, as the default value does not take the delay involved in connecting a telephone call into account. Depending on the telephone exchange your Netcom is connected with, it may take as much as 45 seconds before the modems are connected. T21 determines how long Netcom II will wait for an outgoing call request to be connected before abandoning the attempt in error.

To change the length of time that Netcom will wait before clearing a call, set:
T21   90

3.5 References
Further information is contain in the Installer's Guide and the Administrator's Guide of the Netcom II manual. The on-line file /usr/lib/x25/utils/link.defaults also contains examples of dial definitions.