Editar

Design da arquitetura do Azure Communication Services

Azure Communication Services
Microsoft Entra ID
Azure Functions

Este guia apresenta diagramas de fluxo de dados para os Serviços de Comunicação do Azure. Use estes diagramas para entender como seus clientes e serviços interagem com o Azure para fornecer experiências de comunicação.

O Communication Services é um serviço baseado em nuvem com APIs REST e SDKs de biblioteca de cliente para ajudá-lo a integrar a comunicação em seus aplicativos. Os Serviços de Comunicação suportam vários formatos de comunicação: chamadas de voz e vídeo, chat de texto, SMS e dados binários personalizados.

Você pode adicionar comunicação a aplicativos Web e móveis, integrar serviços e bots personalizados e acessar programaticamente a PSTN (rede pública de telefonia comutada). Você pode adquirir números de telefone diretamente das APIs dos Serviços de Comunicação do Azure ou do portal do Azure e usar esses números para aplicativos de chamadas de SMS ou de voz. Usando o roteamento direto dos Serviços de Comunicação, você pode trazer seu próprio provedor de telefonia por meio do SIP (Session Initiation Protocol) e dos Controladores de Borda de Sessão.

Os seguintes componentes são usados nesses diagramas de fluxo de dados:

  • Aplicação cliente. Um site ou aplicativo nativo usado pelos usuários finais para comunicação. Os Serviços de Comunicação fornecem bibliotecas de cliente SDK para navegadores e aplicativos nativos. A biblioteca de interface do usuário de código aberto criada nesses SDKs fornece componentes programáveis da interface do usuário da Web (React), iOS e Android.
  • Serviço de gestão de identidades. Um serviço que você cria para mapear usuários e serviços para identidades dos Serviços de Comunicação. Esse serviço também cria tokens para os usuários quando eles precisam acessar o plano de dados.
  • Serviço de controlador de comunicação. Um serviço que você cria para controlar conversas e chamadas de voz e vídeo.
  • Serviço de dados de comunicação. Um recurso de serviço que você cria para interagir diretamente com o conteúdo de comunicação, como enviar mensagens de bate-papo e SMS ou reproduzir áudio em uma chamada de voz.

Os padrões da indústria para comunicação, como o WebRTC, separam a comunicação em um plano de controle e sinalização e um plano de dados. Usando os Serviços de Comunicação, você pode criar uma experiência de comunicação sem precisar entender a implementação interna do serviço do WebRTC. Esses conceitos podem, no entanto, ajudá-lo a projetar seu aplicativo:

Sistema Function Protocolos Modelo de acesso
Plano de controlo Governa quem comunica, quando e como REST Credenciais de serviço do Microsoft Entra
Plano de dados Contém conteúdo de comunicação, voz, vídeo, texto e dados que interagem com seres humanos e aplicativos UDP, RTMP, WebSockets, REST Tokens de acesso de usuário e credenciais de serviço do Microsoft Entra

Um fluxo de dados comum ocorre quando os aplicativos cliente iniciam a comunicação solicitando informações de controle de um controlador de serviço:

  • Que reuniões tenho hoje?
  • Que número de telefone utilizo para ligar para o meu amigo José?
  • Quais são os nomes dos meus colegas de equipa? Que tópicos de bate-papo em andamento temos?

Seu serviço de controle atende a essas solicitações fornecendo aos clientes tokens e identificadores de Serviços de Comunicação para usuários, threads, números de telefone e chamadas. Em seguida, os clientes usam esses tokens e identificadores para interagir com o plano de dados do Azure. As APIs dos Serviços de Comunicação não restringem o design da experiência do usuário final ou os processos que controlam a comunicação.

No padrão WebRTC, os clientes solicitam informações de controle dos serviços enviando mensagens de controle em um processo conhecido como sinalização. Os identificadores dos Serviços de Comunicação, como o ID de chamada, são comparáveis às descrições de sessão WebRTC.

Usuários autenticados por meio de tokens de acesso de usuário

Os clientes dos Serviços de Comunicação apresentam tokens de acesso do usuário para acessar, com segurança aprimorada, o plano de dados de chamada e chat do Azure. Você deve gerar e gerenciar tokens de acesso de usuário usando um serviço confiável. O token e a cadeia de conexão ou os segredos do Microsoft Entra necessários para gerá-los precisam ser protegidos. A falha no gerenciamento adequado de tokens de acesso pode resultar em cobranças adicionais devido ao uso indevido de recursos.

Diagram that shows the user access token architecture.

Transfira um ficheiro do Visio desta arquitetura.

Fluxo de dados

  1. Um usuário inicia o aplicativo cliente.
  2. O aplicativo cliente entra em contato com seu serviço de gerenciamento de identidade. O serviço de gerenciamento de identidades mantém um mapeamento entre identidades de aplicativo e identidades de Serviços de Comunicação. (As identidades de aplicativos incluem seus usuários e outros objetos endereçáveis, como serviços ou bots.)
  3. O serviço de gerenciamento de identidades usa o mapeamento para emitir um token de acesso de usuário para a identidade aplicável.

O Serviço de Aplicativo do Azure ou o Azure Functions são duas alternativas para operar o serviço de gerenciamento de identidade. Esses serviços são dimensionados facilmente e têm recursos integrados para autenticar usuários. Eles são integrados com OpenID e provedores de identidade de terceiros, como o Facebook.

Recursos

O usuário liga para um aplicativo ou número de telefone

O cenário mais simples de chamadas de voz e vídeo envolve um usuário chamando outro usuário em primeiro plano sem notificações push. Você pode integrar chamadas de voz e vídeo dos Serviços de Comunicação em aplicativos da Web, móveis nativos e da área de trabalho do Windows. A biblioteca de interface do usuário de código aberto pode ajudá-lo a acelerar o desenvolvimento.

Diagram that shows Communication Services calling without push notifications.

Transfira um ficheiro do Visio desta arquitetura.

Fluxo de dados

  1. O usuário iniciador obtém a identidade dos Serviços de Comunicação da pessoa para quem deseja ligar. Em um cenário típico, o usuário obtém a identidade de uma lista de amigos mantida pelo serviço de gerenciamento de identidade. A lista agrupa os amigos do usuário e as identidades dos Serviços de Comunicação associadas.
  2. O usuário iniciador inicia o cliente Call e chama o usuário remoto.
  3. O usuário aceitante é notificado da chamada recebida por meio do SDK de chamada. Para receber chamadas, o aceitador já deve ter inicializado o cliente de chamada.
  4. Os usuários se comunicam entre si por voz e vídeo em uma chamada.

O fluxo de dados é quase idêntico quando um usuário liga para um número de telefone externo. A principal diferença é que, para acessar a telefonia tradicional, o cliente de usuário iniciador deve solicitar números de telefone de origem e de destino do serviço controlador, em vez de solicitar identidades de usuário.

Em algumas situações, você pode querer que os aplicativos aceitem chamadas em segundo plano usando serviços de plataforma como a Notificação por push da Apple. Você pode habilitar essa funcionalidade integrando os Serviços de Comunicação com os Hubs de Notificação do Azure.

Recursos

O usuário ingressa em uma chamada de grupo sem um convite

Talvez você queira que os usuários possam participar de uma chamada em grupo sem um convite explícito. Seu aplicativo pode fornecer um espaço social persistente ou um clube que inclua um canal de chamada de vídeo no qual os usuários podem participar quando quiserem. Esse fluxo de dados mostra uma chamada criada inicialmente por um cliente e permite que um cliente remoto participe sem convite explícito:

Diagram that shows a call without an invitation.

Transfira um ficheiro do Visio desta arquitetura.

Fluxo de dados

  1. O usuário iniciador inicializa o cliente Call e faz uma chamada de grupo.
  2. O usuário iniciador compartilha o ID de chamada de grupo com um serviço de controlador de comunicação.
  3. O serviço controlador de comunicação compartilha o ID da chamada com outros usuários. Por exemplo, se o aplicativo fornecer clubes de usuários, a ID de chamada de grupo é um atributo do modelo de dados do clube armazenado no Azure Cosmos DB.
  4. Outros usuários ingressam na chamada usando o ID de chamada de grupo.
  5. Os usuários se comunicam entre si por voz e vídeo em uma chamada.

Microsoft 365 e Teams

Muitas organizações usam o Microsoft 365 e o Teams para comunicação. Os Serviços de Comunicação e as Equipas são interoperáveis, o que permite estes cenários:

  • Crie um aplicativo personalizado para permitir que um usuário externo participe de uma reunião do Teams. Esse cenário é ideal para cenários de visita virtual, em que uma empresa que está usando o Teams hospeda uma reunião para consumidores externos que estão usando um aplicativo personalizado e uma identidade personalizada. Para saber mais sobre esse cenário, consulte Tutorial de visitas virtuais e Sample Builder.
  • Crie um aplicativo personalizado para um usuário interno com credenciais do Teams / Microsoft Entra. Este cenário foi projetado para criar clientes personalizados do Teams para funcionários.

Esses cenários de aplicativos personalizados usam APIs do Microsoft Graph e Serviços de Comunicação. Ao criar aplicativos e serviços externos que se conectam ao Teams, você geralmente usa o Microsoft Graph como o plano de controle do Teams. Use esse plano de controle para configurar quem se comunica e como e quando eles se comunicam usando APIs para:

Você usa informações dessas APIs de controle, como a URL da reunião e o identificador de thread, para conectar clientes de chamada e chat dos Serviços de Comunicação ao plano de dados do Teams.

O Teams também tem SDKs para adicionar funcionalidades personalizadas nas experiências do Teams e por meio da loja do Teams, como guias, bots e automação. Esses cenários estão além do escopo deste artigo.

Os Serviços de Comunicação não suportam diretamente interações com canais do Teams. Para aplicativos personalizados, você pode usar o Microsoft Graph Chat e as APIs de canal para criar clientes personalizados para funcionários que acessam canais.

O aplicativo ingressa em uma chamada agendada do Teams

Os aplicativos dos Serviços de Comunicação podem participar de chamadas do Teams. Para usuários externos, o aplicativo precisa de um link para a reunião do Teams. A recuperação de links é gerenciada por meio de APIs do Microsoft Graph. Aqui está o fluxo de dados:

Diagram showing Communication Services architecture for joining a Teams meeting.

Transfira um ficheiro do Visio desta arquitetura.

Fluxo de dados

  1. (1A) O serviço do controlador de comunicação agenda a chamada de grupo usando a API do Microsoft Graph. Em outro caso de uso, (1B), os usuários agendam a chamada em grupo usando o Outlook ou o Teams.
  2. O serviço de controlador de comunicação compartilha os detalhes da chamada do Teams com os clientes do Communication Services.
  3. Normalmente, um usuário do Teams deve participar da chamada por meio da interface do usuário do Teams e permitir que usuários externos passem pelo lobby de pré-chamada do Teams. No entanto, esse requisito depende da configuração do locatário do Teams e das configurações específicas da reunião.
  4. Os usuários dos Serviços de Comunicação inicializam o cliente Call e ingressam na reunião do Teams usando os detalhes recebidos na etapa 2.
  5. Os utilizadores comunicam entre si através de voz e vídeo.

Recursos

Contribuidores

Este artigo é mantido pela Microsoft. Foi originalmente escrito pelos seguintes contribuidores.

Autor principal:

Outros contribuidores:

Para ver perfis não públicos do LinkedIn, inicie sessão no LinkedIn.

Próximos passos