Compartir a través de


función TSPI_lineSetMediaControl (tspi.h)

La función TSPI_lineSetMediaControl habilita y deshabilita las acciones de control en el flujo multimedia asociado a la línea, dirección o llamada especificadas. Las acciones de control multimedia se pueden desencadenar mediante la detección de dígitos, tipos de medios, tonos personalizados y estados de llamada especificados. Los nuevos controles multimedia especificados reemplazan a todos los que estaban en vigor para esta línea, dirección o llamada antes de esta solicitud.

Sintaxis

LONG TSPIAPI TSPI_lineSetMediaControl(
  HDRVLINE                          hdLine,
  DWORD                             dwAddressID,
  HDRVCALL                          hdCall,
  DWORD                             dwSelect,
  LPLINEMEDIACONTROLDIGIT const     lpDigitList,
  DWORD                             dwDigitNumEntries,
  LPLINEMEDIACONTROLMEDIA const     lpMediaList,
  DWORD                             dwMediaNumEntries,
  LPLINEMEDIACONTROLTONE const      lpToneList,
  DWORD                             dwToneNumEntries,
  LPLINEMEDIACONTROLCALLSTATE const lpCallStateList,
  DWORD                             dwCallStateNumEntries
);

Parámetros

hdLine

Identificador de una línea.

dwAddressID

Una dirección en el dispositivo de línea abierta especificado. Un identificador de dirección está asociado permanentemente a una dirección; el identificador permanece constante en las actualizaciones del sistema operativo. TAPI no valida este parámetro cuando se llama a esta función.

hdCall

Identificador de una llamada. El estado de llamada de hdCall puede ser cualquier estado.

dwSelect

Especifica si el control multimedia se solicita está asociado a una sola llamada, es el valor predeterminado para todas las llamadas de una dirección o es el valor predeterminado para todas las llamadas de una línea. Este parámetro usa las siguientes constantes de LINECALLSELECT_.

lpDigitList

Puntero a la matriz que contiene los dígitos que se van a desencadenar acciones de control multimedia, de tipo LINEMEDIACONTROLDIGIT. Cada vez que se detecta un dígito que aparece en la lista de dígitos, la acción de control de medios especificada se lleva a cabo en la secuencia multimedia de la llamada.

Los dígitos válidos para el modo de pulso son "0" a "9". Los dígitos válidos para el modo DTMF son "0" a "9", "A", "B", "C", "D", "*", "#".

dwDigitNumEntries

Número de entradas en lpDigitList. TAPI no valida este parámetro cuando se llama a esta función.

lpMediaList

Puntero a una matriz con entradas de tipo LINEMEDIACONTROLMEDIA. La matriz tiene entradas dwMediaNumEntries . Cada entrada contiene un tipo de medio que se va a supervisar, información específica del tipo multimedia (por ejemplo, duración) y un campo de control multimedia. Si se detecta un tipo de medio en la lista, la acción de control multimedia correspondiente se realiza en la secuencia multimedia de la llamada.

dwMediaNumEntries

Número de entradas en lpMediaList. TAPI no valida este parámetro cuando se llama a esta función.

lpToneList

Puntero a una matriz con entradas de tipo LINEMEDIACONTROLTONE. La matriz tiene entradas dwToneNumEntries . Cada entrada contiene una descripción de un tono que se va a supervisar, la duración del tono y un campo de control multimedia. Si se detecta un tono en la lista, la acción de control multimedia correspondiente se realiza en la secuencia multimedia de la llamada.

dwToneNumEntries

Número de entradas en lpToneList. TAPI no valida este parámetro cuando se llama a esta función.

lpCallStateList

Puntero a una matriz con entradas de tipo LINEMEDIACONTROLCALLSTATE. La matriz tiene entradas dwCallStateNumEntries . Cada entrada contiene un estado de llamada y una acción de control multimedia.

dwCallStateNumEntries

Número de entradas en lpCallStateList. TAPI no valida este parámetro cuando se llama a esta 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_INVALADDRESSID, LINEERR_INVALPOINTER, LINEERR_INVALCALLHANDLE, LINEERR_INVALTONELIST, LINEERR_INVALCALLSELECT, LINEERR_NOMEM, LINEERR_INVALCALLSTATELIST, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALDIGITLIST, LINEERR_OPERATIONFAILED, LINEERR_INVALLINEHANDLE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALMEDIALIST.

Comentarios

Esta función devuelve cero (correcto) cuando se inicia correctamente el control multimedia, no cuando se aplica ningún control multimedia. El control multimedia en curso se cambia o se cancela cuando se llama a esta función de nuevo con parámetros diferentes o valores NULL.

Solo una única solicitud de control multimedia puede estar pendiente en una llamada a la vez. Una solicitud reemplaza a cualquier que pueda estar pendiente.

Según el proveedor de servicios y otras actividades que compiten por estos recursos, la cantidad de detecciones simultáneas que se pueden realizar puede variar con el tiempo. Si se sobrecommiten los recursos del proveedor de servicios, devuelve LINEERR_RESOURCEUNAVAIL.

Si el proveedor de servicios admite o no el control multimedia es una funcionalidad del dispositivo indicada en LINEDEVCAPS.

Cada vez que se llama a TSPI_lineSetMediaControl , la nueva solicitud invalida cualquier control multimedia actualmente en vigor. Si uno o varios de los parámetros lpDigitList, lpMediaList, lpToneList y lpCallStateList son NULL, se deshabilita el dígito correspondiente, el tipo de medio, el tono o el control multimedia desencadenado por estado de llamada. Para modificar solo una parte de los parámetros de control multimedia y dejar la configuración restante en vigor, la aplicación debe invocar TSPI_lineSetMediaControl proporcionar los parámetros anteriores para esas partes que deben permanecer en vigor y nuevos parámetros para esas partes que se van a modificar.

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado tspi.h

Consulte también

LINEDEVCAPS

constantes de LINEDIGITMODE_

LINEMEDIACONTROLCALLSTATE

LINEMEDIACONTROLDIGIT

LINEMEDIACONTROLMEDIA

LINEMEDIACONTROLTONE

constantes de LINEMEDIAMODE_

TSPI_lineGetDevCaps