2.4.2.4 Tone Monitoring
Tone monitoring monitors the media stream of a call for specified tones. A tone is described by its component frequencies and cadence. An implementation of the SPI may allow several different tones to be monitored simultaneously. The TSPI uses a two-level identification scheme to identify the tones monitored; there is a "tone group" and an "app specific" identifying a specific tone within a group. The TAPI DLL can request monitoring for multiple concurrent tone groups, which the Service Provider should support if it has sufficient resources. Groups are monitored or canceled as a group; there is no finer granularity. Tone monitoring is enabled/disabled on a per call basis via TSPI_lineMonitorTones.
When tones are detected, the LINE_MONITORTONE callback message notifies the TAPI DLL. This message includes the tone group identifier and the app specific identifier within that tone group to identify the tone that was detected. An application can "tag" each tone in order to be able to distinguish the different tones for which it requests detection.
TSPI_lineMonitorTone
Specifies which tones to detect on a specified call.
LINE_MONITORTONE
Notifies the TAPI DLL about a tone detection.
The scope of tone monitoring is bound by the lifetime of the call. Tone monitoring on a call ends as soon the call disconnects or goes idle.
Note that the monitoring of tones, digits, or media modes often requires the use of resources of which the service provider may only have a finite amount. A request for monitoring may be rejected if resources needed are not available. For the same reason, the TAPI DLL should disable any monitoring that is not needed.