Modem Description Files

Novell's most recent products, and those in development, are designed to be modem independent. This enables new modems to be supported by these Novell products without a new version of the software being released. All that is required is to load the appropriate modem description file onto the specified system.

Novell products can interpret modem description files and execute script commands in the files to perform modem operations as the application requires. Neither the modem control components nor the software products themselves are specific to any one modem or set of modems. Any details specific to modems are contained in the modem description files.

When Novell products are installed, modem description files are copied along with other product files. As users configure the software, they identify the modems to be used from lists of modem names. Any modem that has a modem description is presented in these lists for the user to select.

When a port is configured from the Network Interfaces screen of the Novell Internet Access Server Configuration utility (NIASCFG), the type of modem attached to the port is specified in the Modem/DCE Device field. This option enables you to select a modem initialization script that is specified in the compiled NIASCERT.MDC, NIASMDM1.MDC, and NIASMDM2.MDC files in the SYS:SYSTEM directory.

Because these files are compiled, they require a special modem script editing tool, WMDMMGR, to read them and make changes to them. Multiple *.MDC (Modem Definition Compiled) files can exist in SYS:SYSTEM; however, if a description of a particular type of modem appears in multiple *.MDC files, there is no guarantee as to which description is used. To avoid confusion, a modem description should appear in only one *.MDC file. When Novell Internet Access Server 4.1 is installed, any previously installed *.MDC files are moved to the SYS:SYSTEM\BACKUP directory. Only files included in Novell Internet Access Server 4.1 remain in the SYS:SYSTEM directory.

If you create new modem description files, copy them to the SYS:SYSTEM directory so that they are available to the routing software. If the routing software is running, issue the REINITIALIZE SYSTEM command to have the modem script changes take effect

This section discusses the format and content of the information present in the modem description files. The method of defining the capabilities of a modem is specified, and the process of constructing scripts to accomplish modem operations is outlined. Several examples illustrate uses of the details presented.


Modem Description File Information

A modem description file includes information describing both a modem vendor and individual modems. The information about the modem vendor is specified first, with from one to many descriptions of modems following.

One way to organize modem descriptions is to collect information about all modems from one vendor into a single file. This makes it easy to register the single filename with Novell. Another possibility is to group modems by "family," as might be done with all the XYZ Xxxx sample models. We suggest that all modems manufactured by a vendor be located in a small number of files.

A typical modem description file includes the following:


Modem Description File Components

This section describes the components that can be used in modem description files.


Vendor Description

The following fields are part of the vendor description:

The manufacturer and copyright string values can be up to 80 characters long. The version numbers can have numeric values from 0 to 99. Currently, the values are not used directly by modem control components, but they are provided for use by modem vendors.


Modem Description

This section explains the modem keywords and how to use them.


Modem Name

The modem name string value can be up to 39 characters and must be unique within the entire set of modem names known to Novell.

There can be multiple descriptions for the same modem, with each appropriate for distinct circumstances. For instance, it might be found that most revisions of a particular modem can be initialized quickly, but that some ROM levels require delays between output characters. Rather than force all users to wait for a lengthy initialization operation, it is possible to create two descriptions, as follows:

"XYZ Modem Xxxx""XYZ Modem Xxxx (Slow Init)"


Rate Options

The following rate options require values to be defined:


Other Options

Depending on how your modem is being used, two of the following options might have to be configured. The first two of the following options are configurable; the last two options are not configurable. These options are described as follows:


Modem Scripts (Control Strings)

Modem scripts are text strings that are sent to the modem to cause a particular behavior. They are associated with a particular modem capability and are transmitted to the modem when the application software wants to invoke that operation.

More information on the content and creation of modem scripts is given later in "Script Operations.” Individual scripts are summarized here:


Script Operations

A modem script contains a sequence of nano-operations that inform modem control about which actions to perform. These actions include output of ASCII characters, controlling interface signals, checking for expected input, and so forth. There is no facility for conditional execution of nano-operations; the entire script is executed unless an error occurs.

Each nano-operation consists of an alphabetic character optionally followed by parameters for that operation. These values can be string or time values, or other modifiers for that basic operation.

Following are the operations summaries:


Modem Responses

The response strings in a modem description allow recognition and interpretation of data sent from the modem to the DTE. Response strings inform the modem control software of the success or failure of a command. These strings also let modem control detect when a call is arriving.

As the responses generated differ between modems, the modem vendor must supply information to allow modem control to recognize responses. Response strings contain from one to many pairs of substrings, the first giving the input string to be recognized and the second representing the standard "meaning" of the string.

With the ever more complex responses found in newer modems, it is sometimes necessary to perform multistage matching of response strings. An example would be when the modem is using negotiation progress monitoring to capture added information about connections. When the PROTOCOL response is received, the first stage of recognition would identify the input as the PROTOCOL message. The second stage of recognition would then identify the particular substrings that might be present in this message. This progression from one stage to the next is called chaining.

Modem control accumulates ASCII characters received from a modem until a carriage return character (\x0D or decimal 13) is received; all other control characters are ignored. The accumulated string is then compared to the match strings in the RESPONSES keyword string. When a match is found, the meaning is interpreted and the appropriate action is taken.


Modem Response Strings

Modem response strings can comprise two string elements: the match string and the meanings string.


Status Meaning

Status information is used to notify modem control when something of significance has been discovered in a response, or to report that scanning should continue. Possible status types are as follows:

NONE

CONNECT

RESERVED 1

BUSY

RESERVED 2

NO_ANSWER

RESERVED 3

NO_CARRIER

RESERVED 4

ERROR

RESERVED 5

NO_DIALTONE

OK

VOICE

RING

UNKNOWN

RRING

 


Rate Meaning

The rate meaning tells modem control what the current line data rate is in bits per second. For most modems that implement negotiation progress messages, this rate value can be captured from the CARRIER response by using the <R> construct, as in CARRIER <R> or CONNECT <R>. This construct matches any speed response from the modem and captures that value to return it in the rate definition command.


Feature Meaning

The feature values indicate to modem control when optional connection features have been enabled on the current connection. Information about which features are enabled or disabled is made available to applications. Applications can use this information to determine whether they must independently perform error control or data compression for a connection. The features are as follows:.

NONE

V.42BIS

ERROR_CONTROL

UNBALANCED

MNP5

SYNCHRONOUS


Match Chaining

The match chaining directs modem control to continue matching using the remainder of the input string (after the initially matched portion) and using a different modem response string. This permits the multistage matching that is so useful with complex sets of responses, such as negotiation progress messages. The following example illustrates this approach:

RESPONSE = "PROTOCOL"RESPONSES STRING 1 = "ERROR-CONTROL"                     Input from modem: "PROTOCOL: ERROR-CONTROL/LAP-B"

The first string is part of the first stage matching string formed from all the RESPONSES keyword strings. Modem control interprets it to mean that the response beginning with PROTOCOL is not a final response; rather, that additional matching must be performed using RESPONSES STRING 1.

Modem control begins checking the remainder of the input string repeatedly against the RESPONSES STRING 1 match strings. Each time the match strings are used up, modem control advances to the next character in the input string and tries again. This process continues until all the characters in the input string have been exhausted. In this manner, modem control finds the ERROR-CONTROL substring and notes that feature one, ERROR CONTROL, is enabled for this connection.