Compartilhar via


função TSPI_lineConditionalMediaDetection (tspi.h)

A função TSPI_lineConditionalMediaDetection é invocada pelo TAPI sempre que um aplicativo cliente usa LINEMAPPER como dwDeviceID em uma chamada de função lineOpen para solicitar que as linhas sejam verificadas para localizar uma que dê suporte aos tipos de mídia e parâmetros de chamada desejados. A TAPI examina com base na união do tipo de mídia desejado e nos outros tipos de mídia que estão sendo monitorados atualmente na linha, para dar ao provedor de serviços a oportunidade de indicar se ele não pode monitorar simultaneamente todos os tipos de mídia solicitados. Se o provedor de serviços puder monitorar o conjunto indicado de tipos de mídia e dar suporte aos recursos indicados em lpCallParams, ele responderá com uma indicação de êxito. Ele deixa os modos de monitoramento de mídia ativos para a linha inalterados.

Sintaxe

LONG TSPIAPI TSPI_lineConditionalMediaDetection(
  HDRVLINE               hdLine,
  DWORD                  dwMediaModes,
  LPLINECALLPARAMS const lpCallParams
);

Parâmetros

hdLine

O identificador do provedor de serviços para a linha na qual os recursos de parâmetro e monitoramento de mídia devem ser definidos.

dwMediaModes

Os tipos de mídia atualmente de interesse para o aplicativo de chamada. Esse parâmetro usa uma das constantes LINEMEDIAMODE_.

lpCallParams

Um ponteiro para uma estrutura do tipo LINECALLPARAMS. Ele descreve os parâmetros de chamada que o dispositivo de linha deve ser capaz de fornecer. Os únicos campos relevantes de lpCallParams para fins deste teste são os seguintes:

dwBearerMode

dwMinRate

Dwmaxrate

Dwmediamode

dwCallParamFlags

Dwaddressmode

Se dwAddressMode for LINEADDRESSMODE_ADDRESSID, qualquer endereço na linha será aceitável. Se dwAddressMode for LINEADDRESSMODE_DIALABLEADDR, indicando que um endereço de origem específico (número de telefone) é pesquisado ou se é uma extensão específica do provedor, dwOrigAddressSize/Offset e a parte da parte variável à qual se referem também são relevantes. Se dwAddressMode for uma extensão específica do provedor, informações adicionais poderão ser contidas no campo dwDeviceSpecific variably size. Todos os outros campos são irrelevantes para a função.

Retornar valor

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

LINEERR_INVALLINEHANDLE, LINEERR_OPERATIONFAILED, LINEERR_NODRIVER, LINEERR_RESOURCEUNAVAIL, LINEERR_NOMEM, LINEERR_INVALMEDIAMODE, LINEERR_OPERATIONUNAVAIL.

Comentários

Uma função TAPI lineOpen que especifica um identificador de dispositivo de LINEMAPPER normalmente resulta em chamar esse procedimento para vários dispositivos de linha buscarem uma linha adequada, possivelmente também abrindo linhas ainda não abertas. Um resultado de êxito indica que a linha é adequada para os requisitos do aplicativo de chamada.

Nota Os modos de monitoramento de mídia exigidos no nível do TSPI são a união dos modos de monitoramento exigidos por vários aplicativos no nível do TAPI. Como consequência, é mais comum que vários sinalizadores de tipo de mídia sejam definidos simultaneamente nesse nível. O provedor de serviços deve testar para determinar se ele pode dar suporte a pelo menos o conjunto especificado, independentemente de quais modos estão em vigor no momento. O TAPI garante que o parâmetro dwMediaModes tenha pelo menos um bit definido e que nenhum bit reservado esteja definido. É responsabilidade do provedor de serviços fazer mais verificações de validade nos tipos de mídia, como verificar se algum tipo de mídia tem suporte do provedor de serviços.
 
A função TSPI_lineConditionalMediaDetection verifica os bits definidos no membro dwCallParamFlags da estrutura LINECALLPARAMS e manipula os seguintes casos:

A função TSPI_lineConditionalMediaDetection retornará êxito se passar os mesmos valores de bit para a função TSPI_lineMakeCall também retornará êxito.

Se os bits SECURE, ORIGOFFHOOK e DESTOFFHOOK estiverem definidos e o parâmetro dwAddressMode for LINEADDRESSMODE_ADDRESSID, a função retornará êxito se puder ter êxito em um ou mais endereços na linha.

Se os bits SECURE, ORIGOFFHOOK e DESTOFFHOOK estiverem definidos e o parâmetro dwAddressMode for LINEADDRESSMODE_DIALABLEADDR, a função retornará êxito se puder ter êxito no endereço identificado pelo parâmetro dwOrigAddress .

O provedor de serviços retornará um erro (por exemplo, LINEERR_RESOURCEUNAVAIL) se, no momento em que essa função for chamada, for impossível colocar uma nova chamada no dispositivo de linha especificado (se ele retornar LINEERR_CALLUNAVAIL ou LINEERR_RESOURCEUNAVAIL deverá TSPI_lineMakeCall ser invocado imediatamente após abrir a linha).

Não há nenhuma função diretamente correspondente no nível tapi. Esse procedimento corresponde ao teste implícito para cada linha individual pelo procedimento lineOpen quando ele é chamado com o identificador de dispositivo LINEMAPPER.

Requisitos

Requisito Valor
Plataforma de Destino Windows
Cabeçalho tspi.h

Confira também

LINECALLPARAMS

Constantes LINEMEDIAMODE_

Tspi_linemakecall