Función lineDialW (tapi.h)

La función lineDial marca el número de marcado especificado en la llamada especificada.

Sintaxis

LONG lineDialW(
  HCALL   hCall,
  LPCWSTR lpszDestAddress,
  DWORD   dwCountryCode
);

Parámetros

hCall

Controla la llamada en la que se va a marcar un número. La aplicación debe ser propietario de la llamada. El estado de llamada de hCall puede ser cualquier estado, excepto inactivos y desconectados.

lpszDestAddress

Destino que se va a marcar con el formato de número de marcado estándar.

dwCountryCode

Código de país o región del destino. Esta implementación la usa para seleccionar los protocolos de progreso de la llamada para la dirección de destino. Si se especifica un valor de 0, se usa un protocolo de progreso de llamada predeterminado definido por el proveedor de servicios.

Valor devuelto

Devuelve un identificador de solicitud positivo si la función se completa de forma asincrónica o un número de error negativo si se produce un error. El parámetro dwParam2 del mensaje de LINE_REPLY correspondiente es cero si la función se ejecuta correctamente o es un número de error negativo si se produce un error. Los valores devueltos posibles son:

LINEERR_ADDRESSBLOCKED, LINEERR_INVALPOINTER, LINEERR_DIALBILLING, LINEERR_NOMEM, LINEERR_DIALDIALTONE, LINEERR_NOTOWNER, LINEERR_DIALPROMPT, LINEERR_OPERATIONFAILED, LINEERR_DIALQUIET, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLHANDLE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALCALLSTATE, LINEERR_UNINITIALIZED, LINEERR_INVALCOUNTRYCODE.

Observaciones

Si se devuelve LINEERR_INVALADDRESS, no se ha realizado ninguna marcación. Si se devuelve LINEERR_DIALBILLING, LINEERR_DIALQUIET, LINEERR_DIALDIALTONE o LINEERR_DIALPROMPT, no se ha producido ninguna de las acciones que realice lineDial. Por ejemplo, ninguna de las direcciones que se pueden marcar antes del carácter infractor se ha marcado, no ha cambiado ningún estado de hookswitch, etc.

La función lineDial se usa para marcar en una apariencia de llamada existente. Por ejemplo, después de configurar una llamada para transferencia o conferencia, se asigna automáticamente una llamada de consulta y la función lineDial se usaría para realizar la marcación de esta llamada de consulta. La función lineDial se puede invocar varias veces en el transcurso de la marcación de varias fases, si las funcionalidades del dispositivo de la línea lo permiten. Además, se pueden proporcionar varias direcciones en una sola cadena de marcado separada por CRLF. Los proveedores de servicios que proporcionan multiplexación inversa pueden establecer llamadas físicas individuales con cada una de las direcciones y pueden devolver un identificador de llamada único al agregado de todas las llamadas a la aplicación. Todas las direcciones usarían el mismo código de país o región.

La marcación se considera completa después de pasar la dirección al proveedor de servicios; no después de que la llamada se conecte finalmente. Los proveedores de servicios que proporcionan multiplexación inversa pueden permitir que se proporcionen varias direcciones a la vez. El proveedor de servicios envía LINE_CALLSTATE mensajes a la aplicación para informarle sobre el progreso de la llamada. Para anular un intento de llamada mientras se establece una llamada, la aplicación que invoca debe usar lineDrop.

Una aplicación puede establecer el parámetro lpszDestAddress de la función lineDial en la dirección de una cadena vacía para indicar que la marcación está completa, pero solo si las llamadas anteriores a la lineMakeCall y funciones lineDial han tenido las cadenas especificadas por lpszDestAddress terminados con punto y coma.

La función lineDial también se puede usar en marcado parcial. Para iniciar una llamada mediante marcado parcial, la aplicación llama a lineMakeCall y especifica una cadena de marcado parcial. Una cadena de marcado parcial es cualquier cadena de marcado terminada por punto y coma. Normalmente, la llamada pasará a LINECALLSTATE_DIALING después de la cual se puede llamar a lineDial para especificar más cadenas de marcado, cada una terminada por un punto y coma. El marcado se completa llamando a lineDial con una cadena de marcado que no finaliza con un punto y coma (por ejemplo, una cadena vacía). Esta técnica permite a las aplicaciones realizar marcado parcial interactivo con el usuario o habilitar marcados más sofisticados que un TSP puede ser capaz de hacerlo.

Si una cadena de destino nula o una cadena vacía terminada con un punto y coma (";") se escribe en lineMakeCall la aplicación pasa a LINE_CALLSTATE_DIALTONE. Se puede llamar a la función lineDial en este estado para especificar una sola cadena de marcado o varias cadenas de marcado parciales, cada una separada por un punto y coma. La aplicación pasa al estado LINECALLSTATE_DIALING después de escribir el primer dígito.

Nota La función lineDial solo está disponible cuando una llamada está en LINECALLSTATE_DIALING o LINE_CALLSTATE_DIALTONE. Si se necesita DTMF mientras se conecta una llamada (LINECALLSTATE_CONNECTED), use lineGenerateDigits.
 

Nota

El encabezado tapi.h define lineDial como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.

Requisitos

Requisito Valor
de la plataforma de destino de Windows
encabezado de tapi.h
biblioteca de Tapi32.lib
DLL de Tapi32.dll

Consulte también

referencia de servicios de telefonía básica de

de información general de marcado de

direcciones de marcado

LINE_CALLSTATE

LINE_REPLY

de información general de referencia de TAPI 2.2

lineDrop

lineMakeCall