Partilhar via


Monitoramento de Mídia

Quando uma chamada está no estado conectado , os dados podem ser transportados pela chamada. O tipo de mídia de chamada fornece uma indicação do tipo de dados (por exemplo, seu tipo de dados ou protocolo de nível superior) desse fluxo de mídia.

O TAPI permite que os aplicativos sejam fornecidos com uma notificação sobre alterações no tipo de mídia de uma chamada. A notificação fornece uma indicação do novo tipo de mídia da chamada. O provedor de serviços decide como deseja fazer essa determinação. Por exemplo, o provedor de serviços pode usar o processamento de sinal do fluxo de mídia para determinar o tipo de mídia ou pode contar com padrões de toque distintos atribuídos a diferentes fluxos de mídia ou em elementos de informações passados em um protocolo de sinalização fora de banda. Independentemente de como a determinação do tipo de mídia é obtida, o aplicativo é simplesmente informado sobre alterações de tipo de mídia em uma chamada existente.

Para obter mais informações e uma lista de tipos ou modos de mídia TAPI definidos no momento, consulte Constantes de LINEMEDIAMODE_. Os provedores de serviços podem implementar tipos de mídia específicos do provedor para dispositivos altamente especializados. Informações sobre elas serão encontradas na documentação do dispositivo.

Os tipos de mídia definidos pelo TAPI incluem:

  • Desconhecida. O tipo de mídia da chamada não é conhecido no momento— a chamada não é classificada.
  • Voz interativa. A energia de voz foi detectada na chamada e a chamada é tratada como uma chamada de voz interativa com uma pessoa no final do aplicativo.
  • Voz automatizada. A energia de voz foi detectada na chamada e a chamada é tratada como uma chamada de voz, mas sem nenhuma pessoa no final do aplicativo, como com um aplicativo de computador de atendimento.
  • Modem de dados. Uma sessão de modem na chamada. Os protocolos de modem atuais exigem que a estação chamada inicie o handshake. Para uma chamada de modem de dados de entrada, o aplicativo normalmente não pode fazer nenhuma detecção positiva. Como o provedor de serviços faz essa determinação é sua escolha. Por exemplo, um período de silêncio logo após responder a uma chamada de entrada pode ser usado como uma heurística para decidir que essa pode ser uma chamada de modem de dados.
  • Fax G3. Uma sessão de fax do grupo 3 na chamada.
  • Fax G4. Uma sessão de fax do grupo 4 na chamada.
  • TDD. O fluxo de mídia da chamada usa os Dispositivos de Telefonia para o protocolo Surdo.
  • Dados digitais. Um fluxo de dados digital de formato não especificado.
  • Teletex, Videotex, Telex, Mixed. Eles correspondem aos serviços telemáticos dos mesmos nomes.
  • ADSI. Uma sessão de Interface de Serviços de Exibição Analógica na chamada. O ADSI aprimora chamadas de voz com informações alfanuméricas baixadas para o telefone e o uso de botões suaves no telefone.

Um aplicativo pode habilitar ou desabilitar o monitoramento de mídia em uma chamada especificada com lineMonitorMedia. O aplicativo especifica quais tipos de mídia ele está interessado em monitoramento e, quando o monitoramento de mídia está habilitado, a detecção de uma alteração de tipo de mídia faz com que o aplicativo seja notificado com a mensagem LINE_MONITORMEDIA . Essa mensagem fornece o identificador de chamada no qual a alteração do tipo de mídia foi detectada, bem como o novo tipo de mídia.

Há uma distinção entre o tipo de mídia de uma chamada, conforme relatado por lineGetCallInfo e os relatórios de evento de tipo de mídia por LINE_MONITORMEDIA mensagens. O tipo de mídia de uma chamada é determinado exclusivamente por aplicativos proprietários da chamada e não é alterado automaticamente por eventos de monitoramento de mídia. A única exceção é a determinação inicial do tipo de mídia que pode ser executada pela biblioteca de link dinâmico TAPI para selecionar o primeiro proprietário de uma chamada. Pode-se argumentar que, nesse caso, a biblioteca é a proprietária da chamada.

O monitoramento de tipo de mídia padrão é executado para os tipos de mídia para os quais o dispositivo de linha foi aberto. Isso permite que o tipo de mídia de uma chamada de entrada seja determinado antes que a chamada seja entregue a um aplicativo com base no que o aplicativo exige. O escopo do monitoramento de mídia de uma chamada é associado pelo tempo de vida da chamada. O monitoramento de mídia em uma chamada termina assim que a chamada se desconecta ou fica ociosa.

Um aplicativo pode obter identificadores de dispositivo para várias classes de dispositivo associadas a uma linha aberta chamando lineGetID. Essa função usa um identificador de linha, endereço ou identificador de chamada e uma descrição de classe de dispositivo. Ele retorna o identificador de dispositivo para o dispositivo da classe de dispositivo fornecida associada ao dispositivo de linha aberta, endereço ou chamada. Se a classe de dispositivo for "tapi/line", o identificador de dispositivo do dispositivo de linha será retornado. Se a classe de dispositivo for "mci/wave", o identificador de dispositivo de um dispositivo mci waveaudio será retornado (se houver suporte), o que permite atividades como a gravação ou reprodução de áudio pela chamada na linha.

O aplicativo pode usar o identificador de dispositivo retornado com a API de mídia correspondente para consultar os recursos do dispositivo e, posteriormente, abrir o dispositivo de mídia. Por exemplo, se o aplicativo precisar usar a linha como um dispositivo de forma de onda, ele deverá primeiro chamar waveInGetDevCaps e/ou waveOutGetDevCaps para determinar os recursos de forma de onda do dispositivo. O formato de dados de forma de onda típico compatível com a telefonia em América do Norte é a lei de 8 bits em 8.000 amostras por segundo, embora o driver de dispositivo de onda possa converter essa taxa de exemplo e a combinação em outros formatos de áudio multimídia mais comuns.

Para abrir posteriormente um dispositivo de linha para reprodução de áudio usando a API de forma de onda, um aplicativo chama waveOutOpen. A implementação de waveOutOpen é específica do dispositivo e há uma variedade de opções para implementar essa função.