Função lineCompleteTransfer (tapi.h)
A função lineCompleteTransfer conclui a transferência da chamada especificada para a parte conectada na chamada de consulta.
Sintaxe
LONG lineCompleteTransfer(
HCALL hCall,
HCALL hConsultCall,
LPHCALL lphConfCall,
DWORD dwTransferMode
);
Parâmetros
hCall
Identificador para a chamada a ser transferida. O aplicativo deve ser um proprietário dessa chamada. O estado de chamada de hCall deve ser onHold ou onHoldPendingTransfer.
hConsultCall
Identificador para a chamada que representa uma conexão com o destino da transferência. O aplicativo deve ser um proprietário dessa chamada. O estado de chamada de hConsultCall deve estar conectado, ringback, ocupado ou em andamento.
lphConfCall
Ponteiro para um local de memória em que um identificador hCall pode ser retornado. Se dwTransferMode for LINETRANSFERMODE_CONFERENCE, a chamada em conferência recém-criada será retornada em lphConfCall e o aplicativo se tornará o único proprietário da chamada em conferência. Caso contrário, esse parâmetro será ignorado pelo TAPI.
dwTransferMode
Como a solicitação de transferência iniciada deve ser resolvida. Esse parâmetro usa uma das constantes LINETRANSFERMODE_.
Retornar valor
Retorna um identificador de solicitação positivo se a função for concluída de forma assíncrona ou um número de erro negativo se ocorrer um erro. O parâmetro dwParam2 da mensagem de LINE_REPLY correspondente será zero se a função for bem-sucedida ou se for um número de erro negativo se ocorrer um erro. Os valores retornados possíveis são:
LINEERR_INVALCALLHANDLE, LINEERR_NOTOWNER, LINEERR_INVALCALLSTATE, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCONSULTCALLHANDLE, LINEERR_OPERATIONFAILED, LINEERR_INVALTRANSFERMODE, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALPOINTER, LINEERR_UNINITIALIZED, LINEERR_NOMEM.
Comentários
A mensagem LINE_REPLY enviada em resposta a uma chamada para a função lineCompleteTransfer baseia-se no status da chamada especificada pelo parâmetro hCall.
Essa operação conclui a transferência da chamada original, hCall, para a parte atualmente conectada por hConsultCall. A chamada de consulta normalmente é discada na chamada de consulta alocada como parte de lineSetupTransfer, mas pode ser qualquer chamada para a qual a opção é capaz de transferir hCall.
A solicitação de transferência pode ser resolvida como uma transferência ou como uma chamada em conferência de três vias. Quando resolvido como uma transferência, as partes conectadas por hCall e hConsultCall são conectadas entre si e hCall e hConsultCall normalmente são limpas da linha do aplicativo e fazem a transição para o estado ocioso . O identificador de chamada do aplicativo permanece válido após a conclusão da transferência. O aplicativo deve desalocar seu identificador com lineDeallocateCall quando não estiver mais interessado na chamada transferida.
Quando resolvido como uma conferência, todas as três partes entram em uma chamada em conferência. Ambos os identificadores de chamada existentes permanecem válidos, mas fazem a transição para o estado em conferência . Um identificador de chamada em conferência é criado e retornado e faz a transição para o estado conectado .
Se lineGetConfRelatedCalls for chamado imediatamente após lineCompleteTransfer com o resultado de que as chamadas são conferências, lineGetConfRelatedCalls poderá não retornar uma lista completa de chamadas relacionadas. Isso ocorre porque o TAPI aguarda para receber uma mensagem LINE_CALLSTATE indicando que a chamada foi inserida LINECALLSTATE_CONFERENCED antes de considerar que a chamada realmente faz parte da conferência. Ou seja, ele aguarda que o provedor de serviços confirme o estado de conferência. Depois que o aplicativo receber a mensagem LINE_CALLSTATE, lineGetConfRelatedCalls retornará informações completas.
Também pode ser possível executar uma transferência cega de uma chamada usando lineBlindTransfer.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | tapi.h |
Biblioteca | Tapi32.lib |
DLL | Tapi32.dll |
Confira também
Funções de serviço de linha suplementar