TSPI_lineConditionalMediaDetection-Funktion (tspi.h)

Die TSPI_lineConditionalMediaDetection-Funktion wird von TAPI aufgerufen, wenn eine Clientanwendung LINEMAPPER als dwDeviceID in einem lineOpen-Funktionsaufruf verwendet, um anzufordern, dass Zeilen gescannt werden, um eine zu finden, die die gewünschten Medientypen und Aufrufparameter unterstützt. TAPI-Scans basierend auf der Vereinigung des gewünschten Medientyps und der anderen Medientypen, die derzeit auf der Linie überwacht werden, um dem Dienstanbieter die Möglichkeit zu geben, anzugeben, ob er nicht alle angeforderten Medientypen gleichzeitig überwachen kann. Wenn der Dienstanbieter die angegebenen Medientypen überwachen und die in lpCallParams angegebenen Funktionen unterstützen kann, antwortet er mit einer Erfolgsanzeige. Die aktiven Medienüberwachungsmodi für die Zeile bleiben unverändert.

Syntax

LONG TSPIAPI TSPI_lineConditionalMediaDetection(
  HDRVLINE               hdLine,
  DWORD                  dwMediaModes,
  LPLINECALLPARAMS const lpCallParams
);

Parameter

hdLine

Das Handle des Dienstanbieters zu der Zeile, auf der Medienüberwachungs- und Parameterfunktionen festgelegt werden sollen.

dwMediaModes

Die Medientypen, die derzeit für die aufrufende Anwendung von Interesse sind. Dieser Parameter verwendet eine der LINEMEDIAMODE_ Konstanten.

lpCallParams

Ein Zeiger auf eine Struktur vom Typ LINECALLPARAMS. Es beschreibt die Aufrufparameter, die das Leitungsgerät bereitstellen kann. Die einzigen relevanten Felder von lpCallParams für die Zwecke dieses Tests sind die folgenden:

dwBearerMode

dwMinRate

dwMaxRate

dwMediaMode

dwCallParamFlags

dwAddressMode

Wenn dwAddressMode LINEADDRESSMODE_ADDRESSID ist, ist jede Adresse in der Zeile akzeptabel. Wenn dwAddressMode LINEADDRESSMODE_DIALABLEADDR ist, was angibt, dass nach einer bestimmten Ursprungsadresse (Telefonnummer) gesucht wird, oder wenn es sich um eine anbieterspezifische Erweiterung handelt, sind dwOrigAddressSize/Offset und der Teil des Variablenteils, auf den sie verweisen, ebenfalls relevant. Wenn dwAddressMode eine anbieterspezifische Erweiterung ist, können zusätzliche Informationen im Feld dwDeviceSpecific mit unterschiedlicher Größe enthalten sein. Alle anderen Felder sind für die Funktion irrelevant.

Rückgabewert

Gibt null zurück, wenn die Funktion erfolgreich ist, oder eine Fehlernummer, wenn ein Fehler auftritt. Mögliche Rückgabewerte sind:

LINEERR_INVALLINEHANDLE, LINEERR_OPERATIONFAILED, LINEERR_NODRIVER, LINEERR_RESOURCEUNAVAIL, LINEERR_NOMEM, LINEERR_INVALMEDIAMODE, LINEERR_OPERATIONUNAVAIL.

Hinweise

Eine TAPI lineOpen-Funktion , die einen Gerätebezeichner von LINEMAPPER angibt, führt in der Regel dazu, dass dieses Verfahren für mehrere Leitungsgeräte aufgerufen wird, um nach einer geeigneten Leitung zu suchen, wobei möglicherweise auch noch ungeöffnete Leitungen geöffnet werden. Ein Erfolgsergebnis gibt an, dass die Zeile für die Anforderungen der aufrufenden Anwendung geeignet ist.

Hinweis Die auf TSPI-Ebene geforderten Medienüberwachungsmodi sind die Vereinigung von Überwachungsmodi, die von mehreren Anwendungen auf TAPI-Ebene verlangt werden. Daher ist es am häufigsten, dass mehrere Medientypflags gleichzeitig auf dieser Ebene festgelegt werden. Der Dienstanbieter muss testen, um zu bestimmen, ob er mindestens den angegebenen Satz unterstützen kann, unabhängig davon, welche Modi derzeit in Kraft sind. TAPI stellt sicher, dass für den dwMediaModes-Parameter mindestens ein Bit festgelegt ist und keine reservierten Bits festgelegt sind. Es liegt in der Verantwortung des Dienstanbieters, weitere Gültigkeitsprüfungen der Medientypen durchzuführen, z. B. zu überprüfen, ob Medientypen vom Dienstanbieter unterstützt werden.
 
Die funktion TSPI_lineConditionalMediaDetection überprüft die im dwCallParamFlags-Member der LINECALLPARAMS-Struktur festgelegten Bits und behandelt die folgenden Fälle:

Die TSPI_lineConditionalMediaDetection-Funktion gibt erfolg zurück, wenn die Übergabe der gleichen Bitwerte an die TSPI_lineMakeCall Funktion ebenfalls erfolgreich ist.

Wenn die Bits SECURE, ORIGOFFHOOK und DESTOFFHOOK festgelegt sind und der dwAddressMode-Parameter LINEADDRESSMODE_ADDRESSID ist, gibt die Funktion erfolglos zurück, wenn sie auf einer oder mehreren Adressen in der Zeile erfolgreich ausgeführt werden kann.

Wenn die Bits SECURE, ORIGOFFHOOK und DESTOFFHOOK festgelegt sind und der dwAddressMode-Parameter LINEADDRESSMODE_DIALABLEADDR ist, gibt die Funktion erfolglos zurück, wenn sie für die durch den dwOrigAddress-Parameter identifizierte Adresse erfolgreich ist.

Der Dienstanbieter gibt einen Fehler zurück (z. B. LINEERR_RESOURCEUNAVAIL), wenn es zum Zeitpunkt des Aufrufs dieser Funktion unmöglich ist, einen neuen Aufruf auf dem angegebenen Leitungsgerät zu platzieren (wenn es LINEERR_CALLUNAVAIL zurückgeben würde oder LINEERR_RESOURCEUNAVAIL unmittelbar nach dem Öffnen der Zeile aufgerufen werden TSPI_lineMakeCall ).

Es gibt keine direkt entsprechende Funktion auf TAPI-Ebene. Diese Prozedur entspricht dem Test, der für jede einzelne Zeile durch die lineOpen-Prozedur impliziert wird, wenn sie mit dem Gerätebezeichner LINEMAPPER aufgerufen wird.

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile tspi.h

Weitere Informationen

LINECALLPARAMS

LINEMEDIAMODE_ Konstanten

TSPI_lineMakeCall