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.
An audio discriminator recites voice prompts to the caller, and determines the validity of the caller by received DTMF tones.
When a tag registers an audio discriminator object, that tag should have a DataPort variable and a module called AudioDiscriminator().
When a call is answered, the modem is initially in audio mode. The highest priority AudioDiscriminator() module is called with the tag's DataPort variable set to a useable stream.
• This is a steady state call that times-out after the period of time specified when the discriminator module was registered.
• If the discriminator module returns "0", the call is passed to the next discriminator module.
• If the discriminator module returns a non-zero result, then it is deemed to have accepted the call.
The discriminator may read and write on the DataPort stream.
• Any data written to the stream is converted to speech using the voice identified when the discriminator was registered. The speech device is initialized using the string defined by the DialerSpeechInit Config.ini variable. Data written may include any escape sequences meaningful to the TTS engine.
• If a bookmark is set, when the bookmark is reported back to the Modem Manager, a single character equal to 0x45+Bookmark Number is be inserted into the stream, and may be read by the discriminator module.
• The
only other data that can be received are DTMF tones inputted at the remote
device (in order to receive such tones, this requirement must be specified in
the media mode for the discriminator). This data appears in the stream as the
digits 0..9, the number-hatch character (
), or the asterisk
character (*).
If the discriminator accepts the call, then DataPort remains as a valid stream, and the tag that owns the discriminator now has control.
If the discriminator rejects the call or times out, then the call is passed to the next audio discriminator in priority order. If there are no more audio discriminators, the modem is switched into data mode, and the identification of the call continues as described in Modem in Data Mode (as if a data call had just been received).
Careful consideration needs to be given to the overall time tolerance of this sequence. If, say, a RAS call is received in audio mode, then it must go through all audio discriminators, the switching of the modem to data mode (which typically takes 10 seconds), and all the data discriminators, before the call is handed off to RAS. This is not a deficiency in the Modem Manager, but a necessary consequence of accepting mixed media calls.
Note: An example of an audio discriminator can be found in Example Audio Discriminator.
Factors to Consider for the Configuration of Outgoing Calls
Restrictions of call retries is handled using the CycleLength, CycleDelay, CallInterval1 through CallInterval10 Config.ini configuration file variables. Local telecommunications authorities may have regulations regarding the frequency at which call attempts are made to a particular number. The CycleLength, CycleDelay, and CallInterval1 through CallInterval10 parameters allow a redial cycle to be defined. 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 HangUpDelay variable indicates the number of seconds to wait before hanging up the modem when there are not active attempts to read or write.
The DialWaitTime Config.ini configuration file variable enables you to configure the number of seconds to wait before retrying a failed modem operation after no dial tone or response from the modem has been detected. The default value is 10 seconds. During this time, TAPI sends initialization strings to reset the modem. If not granted an appropriate time interval, the modem will not reset properly.
For a complete listing of the configuration variables related to the Modem Manager, please refer to Config.ini [SYSTEM] Section Variables for the Modem Manager.