Compartir a través de


función TSPI_lineConditionalMediaDetection (tspi.h)

TAPI invoca la función TSPI_lineConditionalMediaDetection cada vez que una aplicación cliente usa LINEMAPPER como dwDeviceID en una llamada de función lineOpen para solicitar que las líneas se examinen para encontrar una que admita los tipos de medios deseados y los parámetros de llamada. TAPI escanea en función de la unión del tipo de medio deseado y los demás tipos de medios que se supervisan actualmente en la línea, para dar al proveedor de servicios la oportunidad de indicar si no puede supervisar simultáneamente todos los tipos de medios solicitados. Si el proveedor de servicios puede supervisar el conjunto indicado de tipos de medios y admitir las funcionalidades indicadas en lpCallParams, responde con una indicación correcta. Deja los modos de supervisión de medios activos para la línea sin cambios.

Sintaxis

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

Parámetros

hdLine

El identificador del proveedor de servicios en la línea en la que se van a establecer las funcionalidades de supervisión de medios y parámetros.

dwMediaModes

Los tipos de medios que actualmente son de interés para la aplicación que llama. Este parámetro usa una de las constantes LINEMEDIAMODE_.

lpCallParams

Puntero a una estructura de tipo LINECALLPARAMS. Describe los parámetros de llamada que debe proporcionar el dispositivo de línea. Los únicos campos relevantes de lpCallParams para los fines de esta prueba son los siguientes:

dwBearerMode

dwMinRate

dwMaxRate

dwMediaMode

dwCallParamFlags

dwAddressMode

Si dwAddressMode es LINEADDRESSMODE_ADDRESSID, cualquier dirección de la línea es aceptable. Si dwAddressMode es LINEADDRESSMODE_DIALABLEADDR, lo que indica que se busca una dirección de origen específica (número de teléfono) o si es una extensión específica del proveedor, dwOrigAddressSize/Offset y la parte de la parte de la variable a la que hacen referencia también son pertinentes. Si dwAddressMode es una extensión específica del proveedor, se puede contener información adicional en el campo dwDeviceSpecific de tamaño variable. Todos los demás campos son irrelevantes para la función.

Valor devuelto

Devuelve cero si la función se realiza correctamente o un número de error si se produce un error. Los valores devueltos posibles son los siguientes:

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

Comentarios

Una función lineOpen tapI que especifica un identificador de dispositivo de LINEMAPPER normalmente da como resultado llamar a este procedimiento para que varios dispositivos de línea busquen una línea adecuada, posiblemente también abriendo líneas sin abrir. Un resultado correcto indica que la línea es adecuada para los requisitos de la aplicación que realiza la llamada.

Nota Los modos de supervisión multimedia que se demandan en el nivel de TSPI son la unión de los modos de supervisión exigidos por varias aplicaciones en el nivel TAPI. Como consecuencia, es más común que varias marcas de tipo multimedia se establezcan simultáneamente en este nivel. El proveedor de servicios debe probar para determinar si puede admitir al menos el conjunto especificado, independientemente de los modos actualmente en vigor. TAPI garantiza que el parámetro dwMediaModes tenga al menos un conjunto de bits y que no se establezcan bits reservados. Es responsabilidad del proveedor de servicios realizar más comprobaciones de validez en los tipos de medios, como comprobar si el proveedor de servicios admite algún tipo de medio.
 
La función TSPI_lineConditionalMediaDetection comprueba los bits establecidos en el miembro dwCallParamFlags de la estructura LINECALLPARAMS y controla los casos siguientes:

La función TSPI_lineConditionalMediaDetection devuelve éxito si pasar los mismos valores de bits a la función TSPI_lineMakeCall también devolvería éxito.

Si se establecen los bits SECURE, ORIGOFFHOOK y DESTOFFHOOK y el parámetro dwAddressMode es LINEADDRESSMODE_ADDRESSID, la función devuelve el éxito si puede realizarse correctamente en una o varias direcciones de la línea.

Si se establecen los bits SECURE, ORIGOFFHOOK y DESTOFFHOOK y el parámetro dwAddressMode es LINEADDRESSMODE_DIALABLEADDR, la función devuelve el éxito si puede realizarse correctamente en la dirección identificada por el parámetro dwOrigAddress .

El proveedor de servicios devuelve un error (por ejemplo, LINEERR_RESOURCEUNAVAIL) si, en el momento en que se llama a esta función, es imposible realizar una nueva llamada en el dispositivo de línea especificado (si devolvería LINEERR_CALLUNAVAIL o LINEERR_RESOURCEUNAVAIL se debería invocar TSPI_lineMakeCall inmediatamente después de abrir la línea).

No hay ninguna función correspondiente directamente en el nivel TAPI. Este procedimiento corresponde a la prueba implícita para cada línea individual por el procedimiento lineOpen cuando se llama con el identificador de dispositivo LINEMAPPER.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado tspi.h

Consulte también

LINECALLPARAMS

constantes de LINEMEDIAMODE_

TSPI_lineMakeCall