Transferencia
La operación de transferencia permite a una aplicación enviar una sesión de comunicaciones conectada actualmente a una dirección diferente.
TAPI proporciona dos mecanismos para transferir una sesión actual a una dirección diferente. La transferencia ciega permite transferir una sesión existente a una dirección de destino especificada en una fase. La transferencia de consultas requiere la existencia de una sesión de consulta además de la sesión actual para configurar la transferencia y, a continuación, la finalización de la transferencia. La elección entre estos dos tipos se basa con frecuencia en las funcionalidades del proveedor de servicios porque algunos proveedores de servicios no admiten la transferencia ciega. En algunos casos, las necesidades de aplicación pueden hacer que la transferencia de consulta sea el método preferido incluso cuando sea posible la transferencia ciega.
La operación de transferencia ciega es básicamente la misma en TAPI 2 y TAPI 3, pero la transferencia consulta sigue patrones ligeramente diferentes.
TAPI 2.x: La transferencia consulta comienza con la invocación de lineSetupTransfer, que coloca la llamada existente en espera de consulta e identifica esta llamada como el objetivo de la siguiente solicitud de finalización de transferencia. La función lineSetupTransfer también asigna una llamada de consulta que se puede utilizar para establecer la llamada de consulta con la parte a la que se transferirá la llamada. La aplicación puede marcar la extensión de la parte de destino en la llamada de consulta (mediante lineDial), o puede quitar y desasignar la llamada de consulta y, en su lugar, activar una llamada mantenida existente (mediante lineUnhold), si es compatible con el modificador. Mientras la llamada inicial está en espera de consulta y la llamada de consulta está activa, la aplicación puede alternar entre estas llamadas mediante lineSwapHold.
TAPI 2.x: Las aplicaciones completan la transferencia consulta con lineCompleteTransfer. Ambas llamadas se revertirán al estado inactivo .
Las aplicaciones pueden usar la característica "transferencia de un solo paso" de muchos PBX (una sola pulsación de botón para establecer una transferencia de consulta) estableciendo el parámetro lpCallParams en el miembro LINECALLPARAMFLAGS_ONESTEPTRANSFER de las constantes LINECALLPARAMFLAGS_ al llamar a lineSetupTransfer.
TAPI 3.x: La transferencia consulta comienza con el uso de ITAddress::CreateCall para crear una llamada de consulta a la nueva dirección de destino. A continuación, se llama a ITBasicCallControl::Transfer en el objeto de llamada original mediante un puntero al nuevo objeto de llamada de consulta como parámetro. Llamar a ITBasicCallControl::Finish en el objeto de llamada de consulta completa la transferencia.
La aplicación debe liberar los recursos de sesión después de completar correctamente una operación de transferencia.
No todos los proveedores de servicios admiten el uso de esta operación.
TAPI 2.x: Vea lineBlindTransfer, lineSetupTransfer, lineCompleteTransfer.
TAPI 3.x: Vea ITBasicCallControl::BlindTransfer, ITAddress::CreateCall, ITBasicCallControl::Transfer, ITBasicCallControl::Finish.