Transferência

A operação de transferência permite que um aplicativo envie uma sessão de comunicação conectada no momento para um endereço diferente.

O TAPI fornece dois mecanismos para transferir uma sessão atual para um endereço diferente. A transferência cega permite que uma sessão existente seja transferida para um endereço de destino especificado em uma fase. A 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 é frequentemente baseada em recursos do provedor de serviços porque alguns provedores de serviços não dão suporte à transferência cega. Em alguns casos, as necessidades do aplicativo podem tornar a transferência consultiva o método preferencial mesmo quando a transferência às cegas é possível.

A operação de transferência cega é basicamente a mesma em TAPI 2 e TAPI 3, mas a transferência consultiva segue padrões ligeiramente diferentes.

TAPI 2.x: A transferência consultiva começa com a invocação de 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 descartar e desalocar a chamada de consulta e, em vez disso, ativar uma chamada mantida existente (usando lineUnhold), se compatível com a opção . Embora a chamada inicial esteja em espera de consulta e a chamada de consulta esteja ativa, o aplicativo pode alternar entre essas chamadas usando lineSwapHold.

TAPI 2.x: Os aplicativos concluem a transferência consultiva usando lineCompleteTransfer. Ambas as chamadas reverter para o estado ocioso.

Os aplicativos podem usar o recurso de "transferência de uma etapa" de muitos PBXs (um único botão pressiona para estabelecer uma transferência de consulta) definindo o parâmetro lpCallParams como o membro LINECALLPARAMFLAGS_ONESTEPTRANSFER das constantes LINECALLPARAMFLAGS_ ao chamar lineSetupTransfer.

TAPI 3.x: A transferência consultiva começa com o uso de ITAddress::CreateCall para criar uma chamada de consulta para o novo endereço de destino. ITBasicCallControl::Transfer é chamado no objeto de chamada original usando um ponteiro para o novo objeto de chamada de consulta como um parâmetro. Chamar ITBasicCallControl::Finish no objeto de chamada de consulta 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 provedores de serviços dão suporte ao uso dessa operação.

TAPI 2.x: Consulte lineBlindTransfer, lineSetupTransfer, lineCompleteTransfer.

TAPI 3.x: Consulte ITBasicCallControl::BlindTransfer, ITAddress::CreateCall, ITBasicCallControl::Transfer, ITBasicCallControl::Finish.