Función lineDial (tapi.h)

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

Sintaxis

LONG lineDial(
  HCALL  hCall,
  LPCSTR lpszDestAddress,
  DWORD  dwCountryCode
);

Parámetros

hCall

Identificador de 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 inactivo y desconectado.

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 realiza 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.

Comentarios

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 realizadas por 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.

El marcado se considera completo 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 informarlo sobre el progreso de la llamada. Para anular un intento de llamada mientras se establece una llamada, la aplicación invocada 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 las funciones lineMakeCall y lineDial han tenido las cadenas especificadas por lpszDestAddress terminadas 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 un 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 termina 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 el marcado más sofisticado que un TSP puede ser capaz de.

Si una cadena de destino null 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 escribir 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.
 

Requisitos

   
Plataforma de destino Windows
Encabezado tapi.h
Library Tapi32.lib
Archivo DLL Tapi32.dll

Consulte también

Referencia básica de servicios de telefonía

Información general sobre marcado

Direcciones que se pueden marcar

LINE_CALLSTATE

LINE_REPLY

Información general de referencia de TAPI 2.2

lineDrop

lineMakeCall