Descrição geral do SDK de chamadas

Os Serviços de Comunicação do Azure permitem que navegadores, aplicativos e serviços do usuário final impulsionem a comunicação de voz e vídeo. Esta página se concentra em Chamando o SDK do cliente, que pode ser incorporado em sites e aplicativos nativos. Esta página fornece descrições detalhadas dos recursos do cliente de chamada, como informações de suporte da plataforma e do navegador. Os serviços gerenciam e acessam chamadas programaticamente usando as APIs de automação de chamadas. A API de Salas é uma API opcional dos Serviços de Comunicação do Azure que adiciona recursos adicionais a uma chamada de voz ou vídeo, como funções e permissões.

Nota

Partilhe connosco as suas ideias e comentários sobre os Serviços de Comunicação do Azure respondendo a este breve inquérito.

Para criar sua própria experiência de usuário com o SDK de chamada, confira Calling quickstarts ou Calling hero sample.

Se você quiser ajuda com a experiência do usuário final, a Biblioteca da Interface do Usuário dos Serviços de Comunicação do Azure fornece uma coleção de componentes de interface do usuário prontos para produção de código aberto para inserir em seu aplicativo. Com esse conjunto de controles pré-construídos, você pode criar belas experiências de comunicação usando a linguagem de design Fluent da Microsoft. Se quiser saber mais sobre a Biblioteca da Interface do Usuário, visite o site de visão geral ou o Storybook.

Depois de iniciar o desenvolvimento, confira a página de problemas conhecidos para encontrar bugs nos quais estamos trabalhando.

Links do SDK

Plataforma Web (JavaScript) Windows (.NET) iOS Android Outro
Telefonar npm NuGet GitHub Maven
Biblioteca da interface do usuário npm - GitHub GitHub GitHub, Livro de histórias

Principais Funcionalidades    

  • Gerenciamento de dispositivos e mídia - O SDK de chamada fornece recursos para vinculação a dispositivos de áudio e vídeo, codifica conteúdo para transmissão eficiente pelo plano de dados de comunicações e processa conteúdo para dispositivos de saída e exibições que você especificar. As APIs também são fornecidas para compartilhamento de tela e aplicativos.
  • PSTN - O SDK de Chamada pode iniciar chamadas de voz com a rede telefônica tradicional comutada publicamente, usando números de telefone adquiridos no portal do Azure ou programaticamente. Você também pode trazer seus próprios números usando controladores de borda de sessão.
  • Reuniões do Teams & Chamada - O SDK de Chamadas pode participar de reuniões do Teams e interagir com o plano de dados de voz e vídeo do Teams.
  • Criptografia - O SDK de chamada criptografa o tráfego e impede a adulteração no fio.
  • Endereçamento - Os Serviços de Comunicação do Azure fornecem identidades genéricas que são usadas para abordar pontos de extremidade de comunicação. Os clientes usam essas identidades para se autenticar no serviço e se comunicar uns com os outros. Essas identidades são usadas em APIs de chamada que fornecem aos clientes visibilidade sobre quem está conectado a uma chamada (a lista).
  • Segurança de Acesso do Usuário
    • O controle de escala, o controle de agendamento e as funções/permissões de usuário são impostos por meio de Salas Virtuais.
    • A capacidade de um usuário iniciar uma nova chamada ou ingressar em uma chamada existente pode ser gerenciada por meio de identidades de usuário e tokens
  • Notificações - O SDK de chamada fornece APIs que permitem que os clientes sejam notificados de uma chamada de entrada. Em situações em que seu aplicativo não está sendo executado em primeiro plano, os padrões estão disponíveis para disparar notificações pop-up ("notificações do sistema") para informar os usuários finais sobre uma chamada recebida.
  • Estatísticas de mídia - O SDK de chamadas fornece informações abrangentes sobre as métricas de seu VoIP e chamadas de vídeo. Com essas informações, os desenvolvedores têm uma compreensão mais clara da qualidade das chamadas e podem tomar decisões informadas para melhorar ainda mais sua experiência de comunicação.
  • Restrições de vídeo - O SDK de chamada fornece APIs que ganham a capacidade de regular a qualidade de vídeo entre outros parâmetros durante chamadas de vídeo, ajustando parâmetros como resolução e taxa de quadros suportando diferentes situações de chamada para diferentes níveis de qualidade de vídeo
  • Diagnóstico de Enfrentamento ao Usuário (UFD) - O SDK de Chamada fornece eventos projetados para fornecer informações sobre problemas subjacentes que podem afetar a qualidade da chamada. Os desenvolvedores podem assinar gatilhos como sinais de rede fracos ou microfones silenciados, garantindo que estejam sempre cientes de quaisquer fatores que afetem as chamadas.

Capacidades detalhadas

A lista a seguir apresenta o conjunto de recursos que estão atualmente disponíveis nos SDKs de Chamada dos Serviços de Comunicação do Azure.

Grupo de características Funcionalidade JS Windows Java (Android) Objective-C (iOS)
Capacidades principais Fazer uma chamada um-para-um entre dois usuários ✔️ ✔️ ✔️ ✔️
Faça uma chamada em grupo com mais de dois usuários (até 100 usuários) ✔️ ✔️ ✔️ ✔️
Promova uma chamada um-para-um com dois usuários em uma chamada em grupo com mais de dois usuários ✔️ ✔️ ✔️ ✔️
Participar numa chamada de grupo depois de esta ter começado ✔️ ✔️ ✔️ ✔️
Convidar outro participante VoIP para participar de uma chamada de grupo em andamento ✔️ ✔️ ✔️ ✔️
Controlo de chamadas intermédias Ligar/desligar o vídeo ✔️ ✔️ ✔️ ✔️
Silenciar / Ativar mudo do microfone ✔️ ✔️ ✔️ ✔️
Silenciar outros participantes ✔️ ✔️ ✔️ ✔️
Alternar entre câmaras ✔️ ✔️ ✔️ ✔️
Espera/desretenção local ✔️ ✔️ ✔️ ✔️
Altifalante ativo ✔️ ✔️ ✔️ ✔️
Escolha o alto-falante para chamadas ✔️ ✔️ ✔️ ✔️
Escolha o microfone para chamadas ✔️ ✔️ ✔️ ✔️
Mostrar o estado de um participante
Ocioso, Mídia inicial, Conectando, Conectado, Em espera, No lobby, Desconectado
✔️ ✔️ ✔️ ✔️
Mostrar o estado de uma chamada
Mídia inicial, Entrada, Conexão, Toque, Conectado, Esperar, Desconectar, Desconectado
✔️ ✔️ ✔️ ✔️
Mostrar se um participante está mudo ✔️ ✔️ ✔️ ✔️
Mostrar o motivo pelo qual um participante deixou uma chamada ✔️ ✔️ ✔️ ✔️
Partilha de ecrã Partilhe todo o ecrã a partir da aplicação ✔️ ✔️ ✔️ ✔️
Compartilhar um aplicativo específico (na lista de aplicativos em execução) ✔️ ✔️
Partilhar um separador do navegador da Web a partir da lista de separadores abertos ✔️
Partilhar áudio do sistema durante a partilha de ecrã ✔️
O participante pode visualizar o compartilhamento de tela remoto ✔️ ✔️ ✔️ ✔️
Escala de trabalho Lista de participantes ✔️ ✔️ ✔️ ✔️
Remover um participante ✔️ ✔️ ✔️ ✔️
RTPC Faça uma chamada individual com um participante da PSTN ✔️ ✔️ ✔️ ✔️
Fazer uma chamada de grupo com participantes PSTN ✔️ ✔️ ✔️ ✔️
Promova uma chamada individual com um participante PSTN em uma chamada em grupo ✔️ ✔️ ✔️ ✔️
Discagem de uma chamada em grupo como participante PSTN ✔️ ✔️ ✔️ ✔️
Apoio aos primeiros meios de comunicação social ✔️ ✔️ ✔️ ✔️
Geral Teste seu microfone, alto-falante e câmera com um serviço de teste de áudio (disponível ligando para 8:echo123) ✔️ ✔️ ✔️ ✔️
Gestão de Dispositivos Pedir permissão para usar áudio e/ou vídeo ✔️ ✔️ ✔️ ✔️
Obter lista de câmaras ✔️ ✔️ ✔️ ✔️
Definir câmera ✔️ ✔️ ✔️ ✔️
Obter câmera selecionada ✔️ ✔️ ✔️ ✔️
Obter lista de microfones ✔️ ✔️ 3 3
Definir microfone ✔️ ✔️ 3 3
Obter microfone selecionado ✔️ ✔️ 3 3
Obter lista de oradores ✔️ ✔️ 3 3
Definir alto-falante ✔️ ✔️ 3 3
Obter orador selecionado ✔️ ✔️ 3 3
Renderização de vídeo Renderizar vídeo único em muitos lugares (câmera local ou fluxo remoto) ✔️ ✔️ ✔️ ✔️
Definir / atualizar o modo de dimensionamento ✔️ ✔️ ✔️ ✔️
Renderizar fluxo de vídeo remoto ✔️ ✔️ ✔️ ✔️
Efeitos de vídeo Desfoque de fundo ✔️ ✔️ ✔️ ✔️
Imagem de fundo personalizada ✔️
Efeitos de áudio Modo Música ✔️ ✔️ ✔️
Filtros de áudio ✔️ ✔️ ✔️
Supressão de ruído ✔️
Notificações 4 Notificações push ✔️ ✔️ ✔️ ✔️

1 A capacidade de silenciar os outros está atualmente em pré-visualização pública.

2 O recurso Compartilhar tela pode ser alcançado usando APIs de mídia bruta. Para saber mais, visite o guia de início rápido de acesso a mídia bruto.

3 O SDK de chamada não tem uma API explícita para essas funções, você deve usar as APIs do sistema operacional Android ou iOS para conseguir em vez disso.

4 O valor máximo para TTL em plataformas nativas é de 180 dias (15.552.000 segundos) e o valor mínimo é de 5 minutos (300 segundos). Para CTE (Custom Teams Endpoint)/M365 Identity, o valor máximo de TTL é de 24 horas (86.400 segundos).

Suporte ao SDK de chamada JavaScript pelo sistema operacional e navegador

A tabela a seguir representa o conjunto de navegadores suportados, que estão disponíveis no momento. Suportamos as três versões principais mais recentes do navegador (as três versões secundárias mais recentes para o Safari), salvo indicação em contrário.

Plataforma Chrome Safari Edge Firefox Visualização da Web Electron
Android ✔️ ✔️ ✔️
iOS ✔️ ✔️ ✔️
macOS ✔️ ✔️ ✔️ ✔️ ✔️
Windows ✔️ ✔️ ✔️ ✔️
Ubuntu / Linux ✔️
  • O Compartilhamento de Tela de Saída não é compatível com navegadores móveis iOS ou Android.
  • O suporte do Firefox está em pré-visualização pública.
  • Atualmente, o SDK de chamada suporta apenas Android System WebView no Android, iOS WebView (WKWebView) na visualização pública. Outros tipos de navegadores incorporados ou WebView em outras plataformas de sistema operacional não são oficialmente suportados, por exemplo, GeckoView, Chromium Embedded Framework (CEF), Microsoft Edge WebView2. A execução do JavaScript Calling SDK nessas plataformas não é testada ativamente, pode ou não funcionar.
  • Uma aplicação iOS no Safari não pode enumerar/selecionar dispositivos de microfone e altifalantes (por exemplo, Bluetooth). Esse problema é uma limitação do iOS e o sistema operacional controla a seleção de dispositivos padrão.

Chamando o cliente - modelo de segurança do navegador

Usar WebRTC sobre HTTPS

APIs WebRTC como getUserMedia exigem que o aplicativo que chama essas APIs seja servido por HTTPS. Para o desenvolvimento local, você pode usar http://localhosto .

Incorporar o SDK de chamada dos Serviços de Comunicação em um iframe

Uma nova política de permissões (também chamada de política de recursos) está disponível em vários navegadores. Esta política afeta os cenários de chamada, controlando como os aplicativos podem acessar a câmera e o microfone de um dispositivo por meio de um elemento iframe de origem cruzada.

Se você quiser usar um iframe para hospedar parte do aplicativo de um domínio diferente, você deve adicionar o allow atributo com o valor correto ao seu iframe.

Por exemplo, este iframe permite o acesso à câmara e ao microfone:

<iframe allow="camera *; microphone *">

Suporte ao Android Calling SDK

  • Suporte para Android API Nível 21 ou superior
  • Suporte para Java 7 ou superior
  • Suporte para Android Studio 2.0
  • Dispositivos Android Auto e IoT com Android não são suportados no momento

Suporte ao iOS Calling SDK

  • Suporte para iOS 10.0+ em tempo de compilação e iOS 12.0+ em tempo de execução
  • Xcode 12.0+
  • Suporte para iPadOS 13.0+

Duração máxima da chamada

A duração máxima da chamada é de 30 horas, os participantes que atingirem a duração máxima da chamada de 30 horas serão desligados da chamada.

Número suportado de fluxos de vídeo de entrada

O SDK de Chamada dos Serviços de Comunicação do Azure dá suporte às seguintes configurações de streaming:

Limite Web Windows/Android/iOS
Máximo # de fluxos locais de saída que podem ser enviados simultaneamente 1 vídeo e 1 partilha de ecrã 1 vídeo + 1 partilha de ecrã
Máximo # de fluxos remotos de entrada que podem ser renderizados simultaneamente 9 vídeos + 1 compartilhamento de tela em navegadores de desktop*, 4 vídeos + 1 compartilhamento de tela em navegadores móveis da Web 9 vídeos + 1 partilha de ecrã

* A partir do SDK de Chamada na Web dos Serviços de Comunicação do Azure versão 1.16.3 Embora o SDK de Chamada não imponha esses limites, seus usuários podem sofrer degradação de desempenho se forem excedidos. Use a API de contagem de vídeo ideal para determinar quantos fluxos de vídeo de entrada atuais seu ambiente da Web pode suportar.

Resoluções de vídeo suportadas

O SDK de Chamada dos Serviços de Comunicação do Azure ajusta automaticamente as resoluções de vídeo e fluxos de compartilhamento de tela durante a chamada.

Nota

A resolução pode variar dependendo do número de participantes em uma chamada, a quantidade de largura de banda disponível para o cliente, os recursos de hardware do participante local que processa treans de vídeo remoto e outros parâmetros gerais de chamada.

O SDK de Chamada dos Serviços de Comunicação do Azure dá suporte ao envio das seguintes resoluções de vídeo:

Resolução máxima de vídeo WebJS iOS Android Janelas
Envio de vídeo 720P 720P 720P 1080P
Enviar partilha de ecrã 1080P 1080P 1080P 1080P
Receber um fluxo de vídeo remoto ou partilha de ecrã 1080P 1080P 1080P 1080P

Número de participantes em uma chamada de suporte

  • Até 350 usuários podem participar de uma chamada em grupo, sala ou chamada do Teams + ACS.
  • Quando o tamanho da chamada atinge 100+ participantes em uma chamada, apenas os 4 alto-falantes mais dominantes que têm sua câmera de vídeo virada podem ser vistos.
  • Quando o número de pessoas na chamada é 100+, o número visível de renderizações de vídeo recebidas diminui automaticamente de 3x3 (9 vídeos recebidos) para 2x2 (4 vídeos recebidos).
  • Quando o número de usuários fica abaixo de 100, o número de vídeos recebidos suportados volta para 3x3 (9 vídeos recebidos).

Chamando tempos limite do SDK

Os seguintes tempos limite se aplicam aos SDKs de Chamada dos Serviços de Comunicação:

Ação Tempo limite em segundos
Reconectar/remover participante 60
Adicionar ou remover nova modalidade de uma chamada (Iniciar/parar vídeo ou partilha de ecrã) 40
Tempo limite da operação de transferência de chamadas 60
Tempo limite de estabelecimento da chamada 1:1 85
Tempo limite de estabelecimento de chamadas em grupo 85
Tempo limite de estabelecimento da chamada PSTN 115
Promover chamada 1:1 para um tempo limite de chamada em grupo 115

Próximos passos

Para obter mais informações, consulte os seguintes artigos que podem estar em inglês: