TAPI and UniModem Considerations
The Modem Manager does not interface directly with modems. Instead, it uses the system-provided telephony interface, TAPI. This enables VTScada to share modems with other TAPI-compliant applications, such as RAS services, FAX services, and so forth.
All TAPI modems share the same driver called UniModem. When a modem manufacturer's driver is installed, what actually happens is that an .inf file is processed, and a number of registry entries, understandable by UniModem, are added.
The Modem Manager has no knowledge of modem initialization strings. These come from the system registry where they are entered when the modem manufacturer's driver is installed. The Windows Control Panel's Phone and Modems option (or Modems option) provides a mechanism for adding extra initialization strings.
At first sight, it would appear from the Modem Manager's MakeCall method that the baud rate and other communications parameters can be set in the parameters to this method. However, what is being set is actually the parameters pertaining to local communication with the modem, not parameters for communication between the local and remote modem.
The only way that particular parameters for the modem - modem link can be set is by setting a specific initialization string for the modem.
If you want to use specific parameters for different destination locations, then it is necessary to define cloned "ghost" modems in the system configuration. This is discussed in the section that follows.
It is possible to define multiple modem entries that refer to the same physical modem. Different initialization strings can then be associated with the different clones. Note that if using this method, you probably have to reboot the system after adding each modem before you can add another.
In order to use these cloned modems from VTScada, you have to be able to specify which modem (or type of modem) to use for a particular call. This is achieved using the Area parameter to the modem tag, and the MakeCall method. Normally, the area parameter to a modem tag is unused. If it is used, then the Modem Manager will only select that modem for an outgoing call if the area matches the area parameter supplied to MakeCall.
Note that since a set of cloned modems actually map to one physical modem, only one of them can be in use at any time.
Further, only one of the clones may have incoming calls enabled. Failure to observe this will result in an error opening any of the modems in the clone set.
TAPI Errors
If you find that VTScada reports a modem as permanently unavailable, you may find that the modem event log indicates that a TAPI error is occurring. While a full list of such errors is given in Call Progress and Error Codes, in the vast majority of cases, this will be caused by one of two things:
- The system has not been rebooted since the modems were last reconfigured. While a reboot is not always required, after some reconfiguration actions the system cannot enumerate the resources correctly until a reboot has occurred.
- Some non-TAPI-compliant application has opened the serial port associated with the modem. Note that this includes VTScada's ComPort function and the system's HyperTerminal application (commonly used in troubleshooting modems).