Modem in Data Mode

Note: The italicized words below are configuration variables. Information on each of these may be found in Config.ini [SYSTEM] Section Variables for the Modem Manager.

When a call is answered, the Modem Manager starts a configurable noise suppression phase as follows:

1.  Wait for SquelchDetectDelay seconds, then go to step 3. If while waiting, data is received, then go immediately to step 2.

2.  Throw away data until either:

a)  An idle period equal to SquelchIdleTime seconds occurs, in which case go to step 3; or

b)  Data received exceeds SquelchPacketLength, in which case the call is disconnected.

3.  Wait for data to start arriving. When it does, go to step 4. If the wait exceeds InitialDataDelay seconds, disconnect the call. Alternatively, if InitialDataDelay1 is specified, go to step 4 after the defined period of time. This allows for RTUs that don't speak until they are spoken to.

4.  Every DataIdleTime seconds, monitor the total amount of data received in this step. If it is at least HelloPacketLength bytes, or does not change between two successive DataIdleTime periods, go to step 5.

5.  Offer the received data packet to each registered driver.

The data is offered to the registered driver(s) by calling the module discriminator in the driver's scope. The data received so far is passed in a buffer as a parameter to the discriminator module. This subroutine examines the data and returns Invalid if the data is not recognized, or the station identifier of the driver instance that should handle the call. If the call is accepted, then Modem Manager will call the driver's Connect() module, passing the station identifier and the stream as parameters.

Note: An example of a data discriminator can be found in Example Data Discriminator.

Factors to Consider for the Configuration of Incoming Calls

      Will incoming calls be answered (AnswerCalls)?

      Set up modems (on a per modem basis) to answer on a specific number of rings (see "VTS Developer's Guide: 5: Tags: Modem Tag Type Properties: Settings Tab (Ring Count Property)").

      Decide how many modems should be kept free to accept incoming calls (MinModemsFree).

      Specify noise filtering conditions to ensure that good connections are appropriately detected.

      Register the driver (provide a module) (see Modem Manager Programming Interface).

      Decide whether to hand-off unaccepted calls (MaxHandOffCount).