Transferência
A operação de transferência permite que um aplicativo envie uma sessão de comunicações atualmente conectada para um endereço diferente.
A TAPI fornece dois mecanismos para transferir uma sessão atual para um endereço diferente. de transferência cega permite que uma sessão existente seja transferida para um endereço de destino especificado em uma fase. de transferência de consulta requer a existência de uma sessão de consulta além da sessão atual para configurar a transferência e, em seguida, a conclusão da transferência. A escolha entre esses dois tipos é freqüentemente baseada nos recursos do provedor de serviços porque alguns provedores de serviços não suportam transferência cega. Em alguns casos, as necessidades de aplicação podem tornar a transferência consultiva o método preferido, mesmo quando a transferência cega é possível.
A operação de transferência cega é basicamente a mesma no TAPI 2 e no TAPI 3, mas a transferência consultiva segue padrões ligeiramente diferentes.
TAPI 2.x: transferência consultiva começa com a invocação lineSetupTransfer, que coloca a chamada existente em espera de consulta e identifica essa chamada como o destino para a próxima solicitação de conclusão de transferência. A função lineSetupTransfer também aloca uma chamada de consulta que pode ser usada para estabelecer a chamada de consulta com a parte para a qual a chamada será transferida. O aplicativo pode discar a extensão da parte de destino na chamada de consulta (usando lineDial), ou pode soltar e desalocar a chamada de consulta e, em vez disso, ativar uma chamada retida existente (usando lineUnhold), se suportado pelo switch. Enquanto a chamada inicial está em espera de consulta e a chamada de consulta está ativa, o aplicativo pode alternar entre essas chamadas usando lineSwapHold.
TAPI 2.x: Aplicativos concluem a transferência consultiva usando lineCompleteTransfer. Ambas as chamadas serão revertidas para o estado ocioso.
Os aplicativos podem usar o recurso de "transferência em uma etapa" de muitos PBXs (pressionar um único botão para estabelecer uma transferência de consulta) definindo o parâmetro lpCallParams para o membro LINECALLPARAMFLAGS_ONESTEPTRANSFER das constantes de LINECALLPARAMFLAGS_ ao chamar lineSetupTransfer.
TAPI 3.x: transferência consultiva começa com o uso ITAddress::CreateCall para criar uma chamada de consulta para o novo endereço de destino. ITBasicCallControl::Transfer é então chamado no objeto de chamada original usando um ponteiro para o novo objeto de chamada de consulta como parâmetro. Chamando ITBasicCallControl::Finish no objeto de chamada de consulta e conclui a transferência.
O aplicativo deve liberar recursos de sessão após a conclusão bem-sucedida de uma operação de transferência.
Nem todos os prestadores de serviços suportam a utilização desta operação.
TAPI 2.x: Consulte lineBlindTransfer, lineSetupTransfer, lineCompleteTransfer.
TAPI 3.x: Consulte ITBasicCallControl::BlindTransfer, ITAddress::CreateCall, ITBasicCallControl::Transfer, ITBasicCallControl::Finish.