Compartilhar via


Função lineDeallocateCall (tapi.h)

A função lineDeallocateCall desaloca o identificador de chamada especificado.

Sintaxe

LONG lineDeallocateCall(
  HCALL hCall
);

Parâmetros

hCall

O identificador de chamada a ser desalocado. Um aplicativo com privilégios de monitoramento para uma chamada sempre pode desalocar seu identificador para essa chamada. Um aplicativo com privilégio de proprietário para uma chamada pode desalocar seu identificador, a menos que seja o único proprietário da chamada e a chamada não esteja no estado ocioso . O identificador de chamada não é mais válido depois de ter sido desalocado.

Valor retornado

Retornará zero se a solicitação for bem-sucedida ou um número de erro negativo se ocorrer um erro. Os possíveis valores retornados incluem:

LINEERR_INVALCALLHANDLE, LINEERR_OPERATIONFAILED, LINEERR_INVALCALLSTATE, LINEERR_RESOURCEUNAVAIL, LINEERR_NOMEM, LINEERR_UNINITIALIZED.

Comentários

A desalocação não afeta o estado da chamada física. No entanto, ele libera recursos internos relacionados à chamada.

Em versões de API, anteriores à 2.0, se o aplicativo for o único proprietário de uma chamada e a chamada não estiver no estado ocioso , LINEERR_INVALCALLSTATE será retornado. Nesse caso, o aplicativo pode primeiro descartar a chamada usando lineDrop e desalocar seu identificador de chamada posteriormente. Um aplicativo que tem privilégio de monitor para uma chamada sempre pode desalocar seu identificador para a chamada.

Nas versões 2.0 ou posteriores da API, o único proprietário da chamada pode desalocar seu identificador, mesmo que a chamada não esteja no estado ocioso . Isso permite o controle distribuído da chamada em um ambiente de cliente/servidor.

Nota Sair da chamada sem um proprietário pode fazer com que o usuário não consiga encerrar a chamada se houver aplicativos de monitoramento abertos impedindo que o TAPI chame TSPI_lineCloseCall. Use esse recurso somente se o aplicativo puder determinar que a chamada pode ser controlada externamente pelo usuário. Para obter mais informações, consulte LINEADDRCAPFLAGS_CLOSEDROP.
 
Em versões de API anteriores à 2.0, quando a função lineDeallocateCall desaloca um identificador de chamada, ela também suspende o processamento adicional de quaisquer mensagens de LINE_REPLY pendentes para a chamada. Um aplicativo deve ser projetado para não aguardar indefinidamente LINE_REPLY mensagens para cada chamada correspondente a uma função assíncrona se ele também usar a função lineDeallocateCall para desalocar identificadores.

Nas versões de API 2.0 ou posteriores, lineDeallocateCall não suspende mensagens de LINE_REPLY pendentes; cada função assíncrona que retorna um dwRequestID para o aplicativo sempre resulta na entrega da mensagem de LINE_REPLY associada, a menos que o aplicativo chame lineShutdown.

Requisitos

   
Plataforma de Destino Windows
Cabeçalho tapi.h
Biblioteca Tapi32.lib
DLL Tapi32.dll

Confira também

Referência básica dos Serviços de Telefonia

LINE_REPLY

Visão geral da referência do TAPI 2.2

Visão geral de encerrar uma sessão

Linedrop

Lineshutdown