TSPI_lineMonitorTones-Funktion (tspi.h)
Die funktion TSPI_lineMonitorTones aktiviert und deaktiviert die Erkennung von Inbandtönen auf dem Aufruf. Jedes Mal, wenn ein angegebener Ton erkannt wird, wird eine Nachricht über TAPI an die Clientanwendung gesendet.
Syntax
LONG TSPIAPI TSPI_lineMonitorTones(
HDRVCALL hdCall,
DWORD dwToneListID,
LPLINEMONITORTONE const lpToneList,
DWORD dwNumEntries
);
Parameter
hdCall
Der Handle für den Aufruf, für den die Tonerkennung durchgeführt werden soll. Der Aufrufstatus von hdCall kann ein beliebiger Zustand mit Ausnahme des Leerlaufs sein.
dwToneListID
Der eindeutige Bezeichner für diese Tonliste. Mehrere Tonlisten können gleichzeitig hervorragend sein. Der Dienstanbieter muss jede alte Liste mit der gleichen dwToneListID durch die neue Tonliste ersetzen. Wenn lpToneListNULL ist, wird die Tonliste mit dwToneListID einfach gelöscht. In jedem Fall bleiben andere Tonlisten mit unterschiedlichen dwToneListIDsunverändert.
lpToneList
Eine Liste der zu überwachenden Töne vom Typ LINEMONITORTONE. Jeder Ton in dieser Liste verfügt über ein anwendungsdefiniertes Tagfeld, das verwendet wird, um einzelne Töne in der Liste zu identifizieren, um eine Tonerkennung zu melden. Die laufende Tonüberwachung wird abgebrochen oder geändert, indem dieser Vorgang entweder mit NULL für lpToneList oder mit einer anderen Tonliste aufgerufen wird. Der Dienstanbieter muss die Tonliste zur späteren Referenz in seinen eigenen Speicher kopieren, anstatt den Zeiger einfach im Anwendungsspeicher beizubehalten.
dwNumEntries
Die Anzahl der Einträge in lpToneList. Der dwNumEntries-Parameter wird ignoriert, wenn lpToneListNULL ist. TAPI überprüft diesen Parameter nicht, wenn diese Funktion aufgerufen wird.
Rückgabewert
Gibt null zurück, wenn die Funktion erfolgreich ist, oder eine Fehlernummer, wenn ein Fehler auftritt. Mögliche Rückgabewerte sind:
LINEERR_INVALCALLHANDLE, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLSTATE, LINEERR_OPERATIONFAILED, LINEERR_INVALTONE, LINEERR_RESOURCEUNAVAIL, LINEERR_NOMEM, LINEERR_INVALPOINTER.
Hinweise
Diese Funktion gibt null (erfolg) zurück, wenn die Tonüberwachung ordnungsgemäß initiiert wurde, nicht, wenn die Tonüberwachung beendet wird. Wie bei der Medienüberwachung bleibt die Tonüberwachung für eine bestimmte Tonliste wirksam, bis diese Tonliste explizit deaktiviert wird, indem TSPI_lineMonitorTones mit derselben dwToneListID und einer anderen Tonliste (oder einer NULL-Tonliste ) aufgerufen wird, oder bis der Aufruf in den Leerlauf wechselt.
Obwohl diese Funktion in jedem Aufrufzustand außer im Leerlauf aufgerufen werden kann, können Töne in der Regel nur erkannt werden, wenn sich der Aufruf im Zustand verbunden befindet. Die Tonerkennung erfordert in der Regel Rechenressourcen. Abhängig vom Dienstanbieter und anderen Aktivitäten, die um solche Ressourcen konkurrieren, kann die Anzahl der Töne, die erkannt werden können, im Laufe der Zeit variieren. Außerdem kann eine äquivalente Menge von Ressourcen für die Überwachung eines einzelnen dreifachen Frequenztons im Vergleich zu drei einzelnen Frequenztönen verbraucht werden. Wenn Ressourcen überlasten, gibt der Dienstanbieter LINEERR_RESOURCEUNAVAIL zurück.
Der Dienstanbieter überwacht alle Töne in allen Tonlisten gleichzeitig. Wenn ein Ton erkannt wird, wird jeder übereinstimmende Ton aus jeder Tonliste separat mithilfe einer LINE_MONITORTONE Meldung gemeldet. Jeder Tonbericht enthält sowohl den Tonlistenbezeichner als auch das anwendungsspezifische Tag. Einige Dienstanbieter sind möglicherweise nicht in der Lage, sehr enge Töne zu unterscheiden, sodass mehrere Übereinstimmungen auch für Töne gemeldet werden können, deren Beschreibungen nicht streng identisch sind.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Windows |
Kopfzeile | tspi.h |