Função lineSetupTransfer (tapi.h)
A função lineSetupTransfer inicia uma transferência da chamada especificada pelo parâmetro hCall . Estabelece uma chamada de consulta, lphConsultCall, na qual a parte pode ser discada que pode se tornar o destino da transferência. O aplicativo adquire o privilégio de proprietário para o parâmetro lphConsultCall .
Sintaxe
LONG lineSetupTransfer(
HCALL hCall,
LPHCALL lphConsultCall,
LPLINECALLPARAMS const lpCallParams
);
Parâmetros
hCall
Identificador para a chamada a ser transferida. O aplicativo deve ser um proprietário da chamada. O estado de chamada de hCall deve estar conectado.
lphConsultCall
Ponteiro para um identificador hCall . Em seguida, esse local é carregado com um identificador que identifica a chamada de consulta temporária. Ao configurar uma chamada para transferência, uma chamada de consulta é alocada automaticamente que permite que lineDial disque o endereço associado ao novo destino de transferência da chamada. A parte de origem pode continuar uma conversa sobre esta chamada de consulta antes de concluir a transferência. O estado de chamada de hConsultCall não é aplicável.
Esse procedimento de transferência pode não ser válido para alguns dispositivos de linha. O aplicativo pode precisar ignorar a nova chamada de consulta e desocupar uma chamada mantida existente (usando lineUnhold) para identificar o destino da transferência. Em comutadores que dão suporte à transferência de chamadas entre endereços, a chamada de consulta pode existir em um endereço diferente da chamada a ser transferida. Também pode ser necessário que a chamada de consulta seja configurada como uma chamada totalmente nova, por lineMakeCall, para o destino da transferência. Quais formas de transferência estão disponíveis são especificadas nos recursos de endereço da chamada.
lpCallParams
Ponteiro para uma estrutura LINECALLPARAMS que contém os parâmetros de chamada a serem usados ao estabelecer a chamada de consulta. Esse parâmetro poderá ser definido como NULL se nenhum parâmetro de configuração de chamada especial for desejado.
Valor retornado
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_BEARERMODEUNAVAIL, LINEERR_INVALRATE, LINEERR_CALLUNAVAIL, LINEERR_NOMEM, LINEERR_INUSE, LINEERR_NOTOWNER, LINEERR_INVALADDRESSMODE, LINEERR_OPERATIONFAILED, LINEERR_INVALBEARERMODE, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALCALLHANDLE, LINEERR_RATEUNAVAIL, LINEERR_INVALCALLPARAMS, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALCALLSTATE, LINEERR_STRUCTURETOOSMALL, LINEERR_INVALLINESTATE, LINEERR_UNINITIALIZED, LINEERR_INVALMEDIAMODE, LINEERR_USERUSERINFOTOOBIG, LINEERR_ INVALPOINTER.
Comentários
A função lineSetupTransfer configura a transferência da chamada especificada por hCall. A fase de configuração de uma transferência estabelece uma chamada de consulta que permite que o aplicativo envie o endereço do destino (para o qual a parte será transferida) para o comutador, enquanto a chamada a ser transferida é mantida em espera. Essa nova chamada é conhecida como uma chamada de consulta (hConsultCall) e pode ser descartada ou manipulada independentemente da chamada original.
Quando a chamada de consulta atingir o estado de chamada dialtone , o aplicativo poderá continuar transferindo a chamada discando o endereço de destino e acompanhando seu progresso ou desativando uma chamada existente. A transferência da chamada original para o destino selecionado é concluída usando lineCompleteTransfer.
Embora a chamada de consulta exista, a chamada original normalmente faz a transição para o estado onholdPendingTransfer . O aplicativo pode ser capaz de alternar entre a chamada de consulta e a chamada original usando lineSwapHold. Uma chamada de consulta pode ser cancelada invocando lineDrop nela. Depois de cancelar uma chamada de consulta, a chamada original normalmente faz a transição de volta para o estado conectado . Se o estado da chamada original for onholdPendingTransfer, a função lineUnhold poderá ser usada para recuperar a chamada. Nesse caso, o estado de chamada da chamada de consulta é definido como ocioso.
O aplicativo também pode transferir chamadas em uma única etapa, sem precisar lidar com a chamada de consulta intermediada, usando lineBlindTransfer.
Requisitos
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