Visão geral do SDK de chamada
Os Serviços de Comunicação do Azure permitem que navegadores, aplicativos e serviços do usuário final conduzam a comunicação de voz e vídeo. Esta página se concentra no SDK de Chamada do cliente, que pode ser inserido em sites e aplicativos nativos. Esta página fornece descrições detalhadas de recursos de Chamada do cliente, como informações de suporte a plataformas e navegadores. Os Serviços gerenciam e acessam chamadas programaticamente usando as APIs de Automação de Chamadas. A Rooms API é 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.
Para criar sua própria experiência de usuário com o SDK de Chamada, confira Inícios rápidos de chamadas ou Exemplo de destaque de chamada.
Se você quiser ajuda com a experiência do usuário final, a Biblioteca de Interface do Usuário dos Serviços de Comunicação do Azure fornecerá uma coleção de componentes de interface do usuário prontos para produção de software livre a serem inseridos em seu aplicativo. Com esse conjunto de controles predefinidos, você pode criar belas experiências de comunicação usando a linguagem de design Fluent da Microsoft. Se você quiser saber mais sobre a Biblioteca de Interface do Usuário, visite o site de visão geral.
Depois de começar o desenvolvimento, confira a página de problemas conhecidos para encontrar os bugs nos quais estamos trabalhando.
Links do SDK
Plataforma | Web (JavaScript) | Windows (.NET) | iOS | Android | Outro |
---|---|---|---|---|---|
Chamando | npm | NuGet | GitHub | Maven | |
Biblioteca de interface do usuário | npm | - | GitHub | GitHub | GitHub, Storybook |
Recursos principais
- Gerenciamento de Dispositivos e Mídia – o SDK de Chamada fornece recursos para associação a dispositivos de áudio e vídeo, codifica o conteúdo para transmissão eficiente no plano de dados de comunicação e renderiza o 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 de aplicativo.
- PSTN – O SDK de Chamada pode iniciar chamadas de voz com a tradicional rede telefônica pública comutada, usando números de telefone adquiridos no portal do Azure ou de modo programático. Você também pode trazer seus próprios números usando controladores de borda de sessão.
- Reuniões e Chamadas no Teams – o SDK de Chamada pode ingressar em 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 da conexão.
- Endereçamento – os Serviços de Comunicação do Azure fornecem identidades genéricas que são usadas para lidar com pontos de extremidade de comunicação. Os clientes usam essas identidades para se autenticarem no serviço e se comunicarem. Essas identidades são usadas em APIs de Chamada, fornecendo aos clientes visibilidade de quem está conectado a uma chamada (a lista de participantes).
- Segurança de acesso do usuário
- O controle de lista, o controle de agendamento e as funções/permissões do usuário são impostos por meio do Virtual Rooms.
- 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á em execução em primeiro plano, os padrões estão disponíveis para acionar notificações pop-up ("notificações do sistema") para informar os usuários finais de uma chamada de entrada.
- Estatísticas de Mídia - O SDK de Chamada fornece insights abrangentes sobre as métricas de suas chamadas VoIP e vídeo. Com essas informações, os desenvolvedores têm uma compreensão mais clara da qualidade da chamada e podem tomar decisões informadas para aprimorar 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 do vídeo entre outros parâmetros durante chamadas de vídeo ajustando parâmetros como resolução e taxa de quadros que dão suporte a diferentes situações de chamada para diferentes níveis de qualidade de vídeo
- UFD (Diagnóstico Voltado para o Usuário) – O SDK de Chamada fornece eventos projetados para fornecer insights sobre problemas subjacentes que podem afetar a qualidade da chamada. Os desenvolvedores podem assinar gatilhos como sinais de rede fracos ou microfones mudos, garantindo que eles estejam sempre cientes de quaisquer fatores que afetam as chamadas.
Recursos detalhados
A lista a seguir apresenta o conjunto de recursos que estão disponíveis nos SDKs de Chamada dos Serviços de Comunicação do Azure.
Grupo de recursos | Funcionalidade | JS | Windows | Java (Android) | Objective-C (iOS) |
---|---|---|---|---|---|
Principais funcionalidades | Fazer uma chamada um-para-um entre dois usuários | ✔️ | ✔️ | ✔️ | ✔️ |
Fazer uma chamada de grupo com mais de dois usuários (até 100 usuários) | ✔️ | ✔️ | ✔️ | ✔️ | |
Promover uma chamada de um-para-um com dois usuários em uma chamada de grupo com mais de dois usuários | ✔️ | ✔️ | ✔️ | ✔️ | |
Ingressar em uma chamada de grupo depois que ela for iniciada | ✔️ | ✔️ | ✔️ | ✔️ | |
Convidar outro participante de VoIP para ingressar em uma chamada de grupo em andamento | ✔️ | ✔️ | ✔️ | ✔️ | |
Controle de chamada média | Ativar/desativar seu vídeo | ✔️ | ✔️ | ✔️ | ✔️ |
Ativar/desativar mudo do microfone | ✔️ | ✔️ | ✔️ | ✔️ | |
Ativar mudo para outros participantes | ✔️ | ✔️1 | ✔️1 | ✔️1 | |
Alternar entre câmeras | ✔️ | ✔️ | ✔️ | ✔️ | |
Ativar/desativar colocação em espera local | ✔️ | ✔️ | ✔️ | ✔️ | |
Alto-falante ativo | ✔️ | ✔️ | ✔️ | ✔️ | |
Escolher alto-falante para chamadas | ✔️ | ✔️ | ✔️ | ✔️ | |
Escolher 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, Realizando, Conectando, Tocando, Conectada, Em espera, Desconectando, Desconectada |
✔️ | ✔️ | ✔️ | ✔️ | |
Mostrar se um participante está mudo | ✔️ | ✔️ | ✔️ | ✔️ | |
Mostrar o motivo pelo qual um participante saiu de uma chamada | ✔️ | ✔️ | ✔️ | ✔️ | |
Compartilhamento de tela | Compartilhar a tela inteira de dentro do aplicativo | ✔️ | ✔️2 | ✔️2 | ✔️2 |
Compartilhar um aplicativo específico (na lista de aplicativos em execução) | ✔️ | ✔️2 | ❌ | ❌ | |
Compartilhar uma guia do navegador da Web na lista de guias abertas | ✔️ | ||||
Compartilhar áudio do sistema durante o compartilhamento de tela | ✔️ | ❌ | ❌ | ❌ | |
O participante pode exibir o compartilhamento de tela remoto | ✔️ | ✔️ | ✔️ | ✔️ | |
Lista de participantes | Listar participantes | ✔️ | ✔️ | ✔️ | ✔️ |
Remover um participante | ✔️ | ✔️ | ✔️ | ✔️ | |
PSTN | Fazer uma chamada um-para-um com um participante PSTN | ✔️ | ✔️ | ✔️ | ✔️ |
Fazer uma chamada de grupo com participantes PSTN | ✔️ | ✔️ | ✔️ | ✔️ | |
Promover uma chamada um-para-um com um participante PSTN em uma chamada de grupo | ✔️ | ✔️ | ✔️ | ✔️ | |
Discar de uma chamada de grupo como um participante PSTN | ✔️ | ✔️ | ✔️ | ✔️ | |
Suporte para mídia antecipada | ✔️ | ✔️ | ✔️ | ✔️ | |
Geral | Teste o microfone, o alto-falante e a câmera com um serviço de teste de áudio (disponível chamando 8:echo123) | ✔️ | ✔️ | ✔️ | ✔️ |
Gerenciamento de dispositivo | Solicitar permissão para usar áudio e/ou vídeo | ✔️ | ✔️ | ✔️ | ✔️ |
Obter lista de câmeras | ✔️ | ✔️ | ✔️ | ✔️ | |
Definir a câmera | ✔️ | ✔️ | ✔️ | ✔️ | |
Obter a câmera selecionada | ✔️ | ✔️ | ✔️ | ✔️ | |
Obter lista de microfones | ✔️ | ✔️ | ❌3 | ❌3 | |
Definir o microfone | ✔️ | ✔️ | ❌3 | ❌3 | |
Obter o microfone selecionado | ✔️ | ✔️ | ❌3 | ❌3 | |
Obter lista de alto-falantes | ✔️ | ✔️ | ❌3 | ❌3 | |
Definir o alto-falante | ✔️ | ✔️ | ❌3 | ❌3 | |
Obter o alto-falante selecionado | ✔️ | ✔️ | ❌3 | ❌3 | |
Renderização de vídeo | Renderizar um vídeo único em vários locais (câmera local ou fluxo remoto) | ✔️ | ✔️ | ✔️ | ✔️ |
Definir/atualizar o modo de dimensionamento | ✔️ | ✔️ | ✔️ | ✔️ | |
Renderizar um fluxo de vídeo remoto | ✔️ | ✔️ | ✔️ | ✔️ | |
Efeitos de vídeo | Desfoque em segundo plano | ✔️ | ✔️ | ✔️ | ✔️ |
Imagem de plano de fundo personalizada | ✔️ | ✔️ | ✔️ | ✔️ | |
Efeitos de áudio | Modo de Música | ❌ | ✔️ | ✔️ | ✔️ |
Cancelamento de eco | ❌ | ✔️ | ✔️ | ✔️ | |
Supressão de ruído | ✔️ | ✔️ | ✔️ | ✔️ | |
AGC (controle de ganho automático) | ❌ | ✔️ | ✔️ | ✔️ | |
Notificações 4 | Notificações por push | ✔️ | ✔️ | ✔️ | ✔️ |
Contexto personalizado | Adicionar Usuário a usuário (UUI) ou cabeçalhos personalizados a uma chamada | ✔️ | ❌ | ❌ | ❌ |
1 A capacidade de Ativar Mudo para Outros está atualmente em versão prévia pública.
2 A funcionalidade de Tela de Compartilhamento pode ser obtida usando APIs de Mídia Bruta. Para saber mais, visite o guia de início rápido de acesso à mídia bruta.
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 &iOS para obtê-las.
4 O valor máximo da TTL em plataformas nativas é de 180 dias (15.552.000 segundos) e o valor mínimo é de 5 minutos (300 segundos). No caso do CTE (Ponto de Extremidade do Teams Personalizado)/da Identidade do M365, o valor máximo da TTL é de 24 horas (86.400 segundos).
Suporte ao SDK de Chamada JavaScript por sistema operacional e navegador
A tabela a seguir representa um conjunto de navegadores compatíveis que atualmente estão disponíveis. Damos suporte às três versões principais mais recentes do navegador (as três versões secundárias mais recentes para o Safari), salvo indicação contrária.
Plataforma | Chrome | Safari | Edge | Firefox | WebView | Electron |
---|---|---|---|---|---|---|
Android | ✔️ | ❌ | ✔️ | ❌ | ✔️ | ❌ |
iOS | ✔️ | ✔️ | ✔️ | ❌ | ✔️ | ❌ |
macOS | ✔️ | ✔️ | ✔️ | ✔️ | ❌ | ✔️ |
Windows | ✔️ | ❌ | ✔️ | ✔️ | ❌ | ✔️ |
Ubuntu/Linux | ✔️ | ❌ | ❌ | ❌ | ❌ | ❌ |
- Não há suporte para compartilhamento de tela de saída em navegadores móveis iOS ou Android.
- O suporte ao Firefox está em visualização pública.
- Atualmente, o SDK de chamada só dá suporte ao Android System WebView no Android, iOS WebView (WKWebView) em versão prévia pública. Outros tipos de navegadores inseridos ou WebView em outras plataformas de sistema operacional não têm suporte oficial, por exemplo, GeckoView, CEF (Chromium Embedded Framework) e Microsoft Edge WebView2. A execução do SDK de Chamada JavaScript nessas plataformas não é testada ativamente. Ela pode ou não funcionar.
- Um aplicativo iOS no Safari não pode enumerar/selecionar dispositivos de microfone e alto-falante (por exemplo, Bluetooth). Esse problema é uma limitação do iOS e o sistema operacional controla a seleção de dispositivo padrão.
Cliente chamador – modelo de segurança do navegador
Usar o WebRTC via HTTPS
APIs WebRTC como getUserMedia
exigem que o aplicativo que chama essas APIs seja atendido por meio do HTTPS. Para o desenvolvimento local, você pode usar http://localhost
.
Inserir o SDK Chamador dos Serviços de Comunicação em um iframe
Uma nova política de permissões (também chamada de política de recurso) está disponível em vários navegadores. Essa política afeta a chamada de cenários controlando como os aplicativos podem acessar a câmera e o microfone de um dispositivo por meio de um elemento iframe entre origens.
Se você quiser usar um iframe para hospedar parte do aplicativo de um domínio diferente, será necessário adicionar o atributo allow
com o valor correto ao seu iframe.
Por exemplo, esse iframe permite o acesso à câmera e ao microfone:
<iframe allow="camera *; microphone *">
Suporte para Android chamando SDK
- Suporte para API do Android Nível 21 ou superior
- Suporte para Java 7 ou superior
- Suporte para Android Studio 2.0
É altamente recomendável identificar e validar o seu cenário visitando as plataformas Android com suporte
Suporte para iOS chamando SDK
- Suporte para iOS 10.0 + no momento da 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 o tempo de vida máximo da chamada de 30 horas serão desconectados da chamada.
Número com suporte de fluxos de vídeo de entrada
O SDK de Chamada dos Serviços de Comunicação dá suporte às seguintes configurações de streaming:
Limite | Web | Windows/Android/iOS |
---|---|---|
Nº máximo de fluxos locais de saída que podem ser enviados simultaneamente | 1 vídeo e 1 compartilhamento de tela | 1 vídeo + 1 compartilhamento de tela |
Nº máximo de fluxos remotos de entrada que podem ser renderizados simultaneamente | 16 vídeos + 1 compartilhamento de tela em navegadores da área de trabalho*, 4 vídeos + 1 compartilhamento de tela em navegadores Web de dispositivos móveis | 9 vídeos + 1 compartilhamento de tela |
* A partir do SDK de Chamada Web dos Serviços de Comunicação do Azure versão 1.16.3 Enquanto o SDK de Chamada não impõe esses limites, os usuários poderão enfrentar 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 Web pode dar suporte. Para dar suporte adequado a 16 vídeos de entrada, o computador deve ter um mínimo de 16 GB de RAM e uma CPU de 4 núcleos ou maior que não tenha mais de 3 anos
Resoluções de vídeo com suporte
O SDK de Chamada dos Serviços de Comunicação do Azure ajusta automaticamente as resoluções de fluxos de compartilhamento de vídeo e tela durante a chamada.
Observação
A resolução pode variar dependendo do número de participantes em uma chamada, da quantidade de largura de banda disponível para o cliente, dos recursos de hardware do participante local que renderiza fluxos de vídeo remotos e de 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 | Windows |
---|---|---|---|---|
Enviar vídeo | 720P | 720P | 720P | 1080P |
Envio de compartilhamento de tela | 1080P | 1080P | 1080P | 1080P |
Recebimento de um fluxo de vídeo remoto ou compartilhamento de tela | 1080P | 1080P | 1080P | 1080P |
Número de participantes em um suporte de chamada
- Até 350 usuários podem ingressar em uma chamada em grupo, sala ou chamada do Teams + ACS.
- Quando o tamanho da chamada atingir mais de 100 participantes em uma chamada, somente os quatro principais oradores mais dominantes que estiverem com a câmera de vídeo ligada poderão ser vistos.
- Quando o número de pessoas na chamada for superior a 100, o número visualizável de renderizações de vídeo recebidas diminuirá automaticamente de 4x4 (16 vídeos de entrada) para 2x2 (4 vídeos de entrada).
- Quando o número de usuários ficar abaixo de 100, o número de vídeos de entrada com suporte voltará para 4x4 (16 vídeos de entrada).
Tempos limite do SDK de Chamada
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 o vídeo ou compartilhamento de tela) | 40 |
Tempo limite da operação de Transferência de Chamada | 60 |
Tempo limite de estabelecimento de chamada 1:1 | 85 |
Tempo limite de estabelecimento de chamada de grupo | 85 |
Tempo limite de estabelecimento de chamada PSTN | 115 |
Tempo limite para promover chamada 1:1 a chamada de grupo | 115 |
Próximas etapas
Para obter mais informações, consulte os seguintes artigos:
- Familiarize-se com fluxos de chamada gerais
- Saiba mais sobre tipos de chamada
- Saiba mais sobre a API de automação de chamadas que permite criar fluxos de trabalho de chamada baseados em servidor que podem rotear e controlar chamadas com aplicativos cliente.
- Planeje sua solução PSTN