função TSPI_lineSetTerminal (tspi.h)
A função TSPI_lineSetTerminal permite que TAPI especifique para quais informações de terminal relacionadas à linha, endereço ou chamada especificadas devem ser roteadas. Essa operação pode ser usada enquanto as chamadas estão em andamento na linha, para permitir que os eventos sejam roteado para diferentes dispositivos conforme necessário.
Sintaxe
LONG TSPIAPI TSPI_lineSetTerminal(
DRV_REQUESTID dwRequestID,
HDRVLINE hdLine,
DWORD dwAddressID,
HDRVCALL hdCall,
DWORD dwSelect,
DWORD dwTerminalModes,
DWORD dwTerminalID,
DWORD bEnable
);
Parâmetros
dwRequestID
O identificador da solicitação assíncrona.
hdLine
O identificador para uma linha.
dwAddressID
Um endereço no dispositivo de linha aberta especificado. Um identificador de endereço está permanentemente associado a um endereço; o identificador permanece constante entre as atualizações do sistema operacional. O TAPI não valida esse parâmetro quando essa função é chamada.
hdCall
O identificador de uma chamada. O estado de chamada pode ser qualquer estado (se dwSelect for LINECALLSELECT_CALL).
dwSelect
Especifica se a configuração do terminal é solicitada para a linha, o endereço ou apenas a chamada especificada. Se linha ou endereço for especificado, os eventos se aplicarão à própria linha ou endereço ou servirão como uma configuração inicial padrão para todas as novas chamadas na linha ou endereço. Esse parâmetro usa uma das constantes LINECALLSELECT_.
dwTerminalModes
A classe(es) de eventos de baixo nível a serem roteado para o terminal especificado. Use uma das constantes LINETERMMODE_ para esse parâmetro.
dwTerminalID
O identificador do dispositivo do terminal para onde os eventos determinados devem ser roteado. Os identificadores de terminal são pequenos inteiros no intervalo de 0 a dwNumTerminals menos um, em que dwNumTerminals e os modos de terminal que cada terminal é capaz de manipular são indicados pelo provedor de serviços em LINEDEVCAPS.
bEnable
Se TRUE, dwTerminalID será válido e as classes de evento especificadas serão roteadas para ou desse terminal. Se FALSE, esses eventos não serão roteados de ou para o dwTerminalID. O TAPI não valida esse parâmetro quando essa função é chamada.
Retornar valor
Retorna dwRequestID ou um número de erro se ocorrer um erro. O parâmetro real lResult do ASYNC_COMPLETION correspondente será zero se a função for bem-sucedida ou um número de erro se ocorrer um erro. Os possíveis valores retornados são os seguintes:
LINEERR_INVALLINEHANDLE, LINEERR_INVALTERMINALID, LINEERR_INVALADDRESSID, LINEERR_RESOURCEUNAVAIL, LINEERR_INVALCALLHANDLE, LINEERR_NOMEM, LINEERR_INVALCALLSELECT, LINEERR_OPERATIONUNAVAIL, LINEERR_INVALTERMINALMODE, LINEERR_OPERATIONFAILED.
Comentários
O provedor de serviços retornará LINEERR_RESOURCEUNAVAIL se a operação não puder ser concluída devido ao excesso de compromisso de recursos ou se muitos terminais forem definidos, devido a limitações de hardware ou a limitações do driver de dispositivo/provedor de serviços.
O TAPI pode usar essa operação para rotear determinadas classes de eventos de linha de baixo nível para o dispositivo de terminal especificado ou suprimir completamente o roteamento desses eventos. Por exemplo, a voz pode ser roteada para um dispositivo de E/S de áudio separado (headset), lâmpadas e eventos de exibição podem ser roteados para o dispositivo de telefone local, e eventos de botão e eventos de toque podem ser suprimidos completamente.
Os tons de progresso das chamadas e/ou as mensagens são roteados para o mesmo lugar que a mídia. Por exemplo, se os sinais de áudio estiverem indo para o telefone, assim como sinais ocupados (analógicos) ou mensagens Q.931 indicando ocupado (digital).
O provedor de serviços deve determinar se as combinações de dwSelect e dwTerminalModes são legais .
Essa operação pode ser chamada a qualquer momento, mesmo quando uma chamada está ativa no dispositivo de linha especificado. Isso, por exemplo, permite que um usuário alterne do uso do telefone local definido para outro dispositivo de E/S de áudio.
Essa função pode ser chamada várias vezes para rotear os mesmos eventos para vários terminais simultaneamente. Para redirecionar eventos para um terminal diferente, a TAPI recomenda que o aplicativo primeiro desabilite o roteamento para o terminal existente e, em seguida, encaminhe os eventos para o novo terminal. No entanto, o provedor de serviços deve fazer o seu melhor esforço para acomodar as solicitações do aplicativo em qualquer sequência.
As atribuições de identificador de terminal são feitas pelo provedor de serviços e LINEDEVCAPS indica quais identificadores de terminal o provedor de serviços tem disponíveis. Provedores de serviços que não dão suporte a esse tipo de roteamento de eventos indicam que não têm dispositivos de terminal (dwNumTerminals em LINEDEVCAPS está definido como zero).
LineSetTerminal em uma linha ou endereço afeta todas as chamadas existentes nessa linha ou endereço, mas não afeta chamadas em outros endereços. Ele também define o padrão para chamadas futuras nessa linha ou endereço. Uma linha ou endereço que tenha várias chamadas conectadas ativas de uma só vez pode ter um roteamento diferente em vigor para cada chamada.
Desabilitar o roteamento de eventos de baixo nível para um terminal quando esses eventos não são roteados no momento para ou desse terminal não é necessário para gerar um erro, desde que após a êxito da função, os eventos especificados não sejam roteados para ou desse terminal.
Requisitos
Requisito | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | tspi.h |