Modem Manager Operation

The Modem Manager runs as a server on one system and as a client on others. The server and client Modem Managers cooperate to provide the modem pool management and to set up data paths between modem users and the allocated modem.

Incoming and outgoing calls are referred to as "tasks". When an outgoing call (or task) is requested by a workstation on the network, the Modem Manager will determine if a modem is free, select an unused modem, and dial the call. If the Modem Manager determines that all modems are in use, the call is queued until a modem becomes free.

The queue operates on a time priority basis. If an outgoing call is attempted and fails, the call is not sent to the tail of the queue, but slips into the queue according to configured parameters. For example, if a call is tried and fails, and was configured to redial in one minute, then the call is added to the queue as needed.

The modem selected by the Modem Manager to perform the outgoing call may be on a different workstation from the task requesting the call. The Modem Manager sets up transparent data paths between the modem and the requester. In the event that the Modem Manager fails to complete the connection, it can retry the attempt using alternative modems (if available).

When an incoming call is received, the Modem Manager passes the initial data to tasks that have previously registered an interest in incoming calls. If a task accepts the offered call, then the Modem Manager will set up transparent data paths between the modem and the recipient. If no one accepts the call, then the Modem Manager will return the call to the operating system to allow other applications the opportunity to take the call.

if your system includes more than one modem, and those modems are attached to servers located in regions with different area codes, then use the canonical address formatClosed American Gas Association for each phone number and configure the server's location within the Windows™ Phone and Modem Settings dialog.

Factors to Consider for the Configuration of Incoming Calls

Incoming calls are handled by a discriminator, which will control where to send the call. In most applications, the only audio discriminator is the Alarm Notification System, which appears to the Modem Manager as a driver.

If you wish to create your own audio discriminator, or if you need to manage incoming data calls from any device, write a custom driver using the Modem Manager programming interface.

Consider the following factors for the configuration of incoming calls that are handled by the Modem Manager.

  • Answer incoming calls?
  • Set up modems (on a per modem basis) to answer on a specific number of rings.
  • Decide how many modems to keep free to accept incoming calls.
  • Specify noise filtering conditions to ensure that good connections are detected correctly.
  • Register the driver (provide a module).
  • Decide whether to hand-off unaccepted calls.
  • Specify to the Modem Manager where to route the data.

Factors to Consider for the Configuration of Outgoing Calls

Restrictions of call retries are handled using the CallLength, CycleDelay, and CallInterval1 through CallInterval10 application properties.

Local telecommunications authorities may have regulations regarding the frequency at which call attempts are made to a particular number. Use CallLength, CycleDelay, and CallInterval1 through CallInterval10 parameters to define a redial cycle. CycleLength defines the number of steps in the cycle (with a maximum of 10), CallInterval1 through to CallInterval10 define the delay (in seconds) at each step transition, and CycleDelay defines the final delay (in seconds) before the cycle restarts.

The DialResetTime application property enables you to configure the minimum amount of time in seconds between a hang-up and the next use of the modem. The default value is 10 seconds. During this time, TAPI sends initialization strings to reset the modem. If not granted a long-enough time interval, the modem will not reset properly.

Allocating Modems in a Central Managed Pool for Outgoing Calls

There are situations that require a caller to use only modems with a specific property when making a call, even though those modems are part of the central managed pool. For example, where virtual modems have been set up with special initialization strings, such as for cellular connection.

Use the Area parameter of Modem tags for this purpose. If a Modem tag has an Area defined, then it is selected for an outgoing call only if the call originator has specified the same area name. Additionally, when allocating local modems on a particular system, the allocator will take account of any Area name associated with the Modem tag, and use it to map the physical modem. The actual capabilities of a modem (Data, Voice, Fax, etc.) are handled by matching the physical media mode of the modem.

Selecting Which Modem to use in a Network Application

If you have a networked application with modems available on more than one server, the standard VTScada behavior prior to version 10 was to use only the modem on the primary modem server, so long as it is available. If the modem on the primary server is not available, another modem is selected for use based on which was least recently used. There is a potential drawback to this system in that the modems on backup servers are not used (and therefore not verified to function) until they are needed.

This modem selection behavior is controlled by the application property, MMCycleTime. When not set to any value, modems are selected as just described.

When MMCycleTime is set to zero (0), then for each call, VTScada will select the least recently used of all modems. This ensures that modems are used equally.

You may retain the original behavior, but if so, you should ensure that other modems are used and thereby tested on a regular basis by setting MMCycleTime to a numeric value greater than 0. For example, if MMCycleTime is set to 86400 (the default value, which is the number of seconds in a day) then any modem that has not been used for that length of time is selected for the next alarm. If more than one modem has not been  used in a day, then the least recently used is selected. This system enables you continue using the modem on the primary server while it is available, but once a day (depending on the need to send alarm notifications) modems on backup servers are used.