Diseño de la arquitectura de Azure Communication Services

Azure Communication Services
Microsoft Entra ID
Azure Functions

En esta guía se presentan diagramas de flujo de datos para Azure Communication Services. Use estos diagramas para comprender cómo interactúan los clientes y los servicios con Azure para ofrecer experiencias de comunicación.

Los servicios de comunicación son un servicio basado en la nube con API REST y SDK de bibliotecas de clientes para ayudarle a integrar la comunicación en sus aplicaciones. Communication Services admite varios formatos de comunicación: llamadas de voz y vídeo, chat de texto, SMS y datos binarios personalizados.

Puede agregar comunicación a aplicaciones web y móviles, integrar servicios y bots personalizados y acceder mediante programación a la red de telefonía conmutada (RTC). Puede adquirir números de teléfono directamente desde las API de Azure Communication Services o el Azure Portal y utilizar estos números para aplicaciones de SMS o llamadas de voz. Mediante el enrutamiento directo de Communication Services, puede traer su propio proveedor de telefonía a través del Protocolo de inicio de sesión (SIP) y controladores de borde de sesión.

Los siguientes componentes se usan en estos diagramas de flujo de datos:

  • Aplicación cliente. Un sitio web o una aplicación nativa usada por los usuarios finales para la comunicación. Los servicios de comunicación proporcionan Bibliotecas cliente SDK para navegadores y aplicaciones nativas. La biblioteca de interfaz de usuario de código abierto que se basa en estos SDK proporciona componentes web programables (React), iOS y Android UI.
  • Servicio de administración de identidades. Un servicio que se compila para asignar usuarios y servicios a identidades de Communication Services. Este servicio también crea tokens para los usuarios cuando necesitan acceder al plano de datos.
  • Servicio de controlador de comunicación. Un servicio que se crea para controlar los subprocesos de chat y las llamadas de voz y vídeo.
  • Servicio de datos de comunicación. Una funcionalidad de servicio que se crea para interactuar directamente con el contenido de la comunicación, como enviar mensajes de chat y SMS o reproducir audio en una llamada de voz.

Estándares del sector para la comunicación, como WebRTC, separan la comunicación en un plano de control y señalización y un plano de datos. Con Communication Services, puede crear una experiencia de comunicación sin necesidad de comprender la implementación interna del servicio de WebRTC. Sin embargo, estos conceptos pueden ayudarle a diseñar la aplicación:

Sistema Función Protocolos Modelo de acceso
Plano de control Controla quién se comunica, cuándo y cómo REST Credenciales del servicio Microsoft Entra
Plano de datos Contiene contenido de comunicación, voz, vídeo, texto y datos que interactúan con usuarios y aplicaciones. UDP, RTMP, WebSockets, REST Tokens de acceso de usuario y credenciales del servicio Microsoft Entra

Un flujo de datos común se produce cuando las aplicaciones cliente inician la comunicación solicitando información de control desde un controlador de servicio:

  • ¿Qué reuniones tengo hoy?
  • ¿Qué número de teléfono uso para llamar a mi amigo Joseph?
  • ¿Cuáles son los nombres de mis compañeros de equipo? ¿Qué subprocesos de chat en curso tenemos?

El servicio de control cumple estas solicitudes proporcionando a los clientes tokens e identificadores de Communication Services para usuarios, subprocesos, números de teléfono y llamadas. A continuación, los clientes usan estos tokens e identificadores para interactuar con el plano de datos de Azure. Las API de Communication Services no restringen el diseño de la experiencia del usuario final ni los procesos que controlan la comunicación.

En el estándar WebRTC, los clientes solicitan información de control de los servicios mediante el envío de mensajes de control en un proceso conocido como señalización. Los identificadores de Communication Services, como el identificador de llamada, son comparables a las descripciones de sesión de WebRTC.

Usuarios autenticados mediante tokens de acceso de usuario

Los clientes de Communication Services presentan tokens de acceso de usuario para acceder, con seguridad mejorada, el plano de datos de llamadas y chat de Azure. Debe generar y administrar tokens de acceso de usuario mediante un servicio de confianza. El token y la cadena de conexión o los secretos de Microsoft Entra necesarios para generarlos deben protegerse. Si no se administran correctamente los tokens de acceso, pueden producirse cargos adicionales debido a un uso incorrecto de los recursos.

Diagram that shows the user access token architecture.

Descargue un archivo Visio de esta arquitectura.

Flujo de datos

  1. Un usuario inicia la aplicación cliente.
  2. La aplicación cliente se pone en contacto con el servicio de administración de identidades. El servicio de administración de identidades mantiene una asignación entre las identidades de aplicación y las identidades de Communication Services. (Las identidades de aplicación incluyen los usuarios y otros objetos direccionables, como servicios o bots).
  3. El servicio de gestión de identidades utiliza la asignación para emitir un token de acceso de usuario para la identidad correspondiente.

Azure App Service o Azure Functions son dos alternativas para operar el servicio de administración de identidades. Estos servicios se escalan fácilmente y tienen características integradas para autenticar a los usuarios. Se integran con OpenID y proveedores de identidades de terceros como Facebook.

Recursos

El usuario llama a una aplicación o un número de teléfono

El escenario más sencillo de las llamadas de voz y vídeo consiste en que un usuario llame a otro en primer plano sin notificaciones push. Puede integrar las llamadas de voz y vídeo de Communication Services en aplicaciones web, móviles nativas y de escritorio de Windows. La biblioteca de interfaz de usuario de código abierto puede ayudarle a acelerar el desarrollo.

Diagram that shows Communication Services calling without push notifications.

Descargue un archivo Visio de esta arquitectura.

Flujo de datos

  1. El usuario que inicia la llamada obtiene la identidad de Azure Communication Services de la persona a la que quiere llamar. En un escenario típico, el usuario obtiene la identidad de una lista de amigos que mantiene el servicio de administración de identidades. En la lista se intercalan los amigos del usuario y las identidades asociadas de Communication Services.
  2. El usuario que inicia la llamada inicia su cliente de llamada y llama al usuario remoto.
  3. El usuario que acepta la llamada recibe la notificación de la llamada entrante a través del SDK de llamada. Para recibir llamadas entrantes, el aceptador debe haber inicializado el cliente de llamada.
  4. En las llamadas, los usuarios se comunican entre sí mediante voz y vídeo.

El flujo de datos es casi idéntico cuando un usuario llama a un número de teléfono externo. La principal diferencia es que, para acceder a la telefonía tradicional, el cliente de usuario que inicia la llamada debe solicitar números de teléfono de origen y de destino desde el servicio de controlador, en lugar de solicitar identidades de usuario.

En algunas situaciones, es posible que quiera que las aplicaciones acepten llamadas en segundo plano mediante servicios de plataforma como Apple Push Notification. Puede habilitar esta funcionalidad mediante la integración de Communication Services con Azure Notification Hubs.

Recursos

El usuario se une a una llamada de grupo sin una invitación

Es posible que quiera que los usuarios puedan unirse a una llamada de grupo sin una invitación explícita. La aplicación puede proporcionar un espacio social o club persistente que incluya un canal de videollamadas al que los usuarios puedan unirse cuando quieran. Este flujo de datos muestra una llamada creada inicialmente por un cliente y permite que un cliente remoto se una sin invitación explícita:

Diagram that shows a call without an invitation.

Descargue un archivo Visio de esta arquitectura.

Flujo de datos

  1. El usuario que inicia la llamada inicializa su cliente de llamada y realiza una llamada grupal.
  2. El usuario que inicia la llamada comparte el ID de la llamada de grupo con un servicio controlador de la comunicación.
  3. El servicio de controlador de comunicación comparte el identificador de llamada con otros usuarios. Por ejemplo, si la aplicación proporciona clubes de usuario, el identificador de llamada de grupo es un atributo del modelo de datos del club que se almacena en Azure Cosmos DB.
  4. Otros usuarios se unen a la llamada mediante el identificador de la llamada grupal.
  5. En las llamadas, los usuarios se comunican entre sí mediante voz y vídeo.

Microsoft 365 y Teams

Muchas organizaciones usan Microsoft 365 y Teams para la comunicación. Communication Services y Teams son interoperables, lo que permite estos escenarios:

  • Cree una aplicación personalizada para permitir que un usuario externo se una a una reunión de Teams. Este escenario es ideal para escenarios de visita virtual, donde una empresa que usa Teams hospeda una reunión para consumidores externos que usan una aplicación personalizada y una identidad personalizada. Para más información sobre este escenario, consulte Tutorial de visitas virtuales y Generador de ejemplos.
  • Cree una aplicación personalizada para un usuario interno con las credenciales de Teams o Microsoft Entra. Este escenario está diseñado para crear clientes personalizados de Teams para empleados.

Estos escenarios de aplicación personalizados usan las API de Microsoft Graph y Communication Services. Al compilar aplicaciones y servicios externos que se conectan a Teams, generalmente se usa Microsoft Graph como plano de control de Teams. Use este plano de control para configurar quién se comunica y cómo y cuándo se comunican mediante las API para:

Puede usar información de estas API de control, como la dirección URL de la reunión y el identificador de subproceso, para conectar clientes de chat y llamadas de Communication Services al plano de datos de Teams.

Teams también tiene SDK para agregar funcionalidad personalizada dentro de las experiencias de Teams y a través del almacén de Teams, como pestañas, bots y automatización. Estos escenarios están fuera del ámbito de este artículo.

Communication Services no admite directamente interacciones con canales de Teams. En el caso de las aplicaciones personalizadas, puede usar las API de chat y canal de Microsoft Graph para crear clientes personalizados para los empleados que acceden a los canales.

La aplicación se une a una llamada de Teams programada

Las aplicaciones de Communication Service pueden unirse a las llamadas con Teams. Para los usuarios externos, la aplicación necesita un vínculo a la reunión de Teams. La recuperación de vínculos se administra a través de las API de Microsoft Graph. Este es el flujo de datos:

Diagram showing Communication Services architecture for joining a Teams meeting.

Descargue un archivo Visio de esta arquitectura.

Flujo de datos

  1. (1A) El servicio del controlador de comunicación programa la llamada de grupo utilizando la API de Microsoft Graph. En otro caso de uso, (1B), los usuarios programan la llamada de grupo mediante Outlook o Teams.
  2. El servicio de controlador de comunicación comparte los detalles de la llamada de Teams con los clientes de Communication Services.
  3. Normalmente, un usuario de Teams debe unirse a la llamada a través de la interfaz de usuario de Teams y permitir que los usuarios externos pasen por la sala previa a la llamada de Teams. Sin embargo, este requisito depende de la configuración del inquilino de Teams y de la configuración de reunión específica.
  4. Los usuarios de Communication Services inicializan su cliente de llamada y se unen a la reunión de Teams mediante los detalles recibidos en el paso 2.
  5. Los usuarios se comunican entre sí mediante voz y vídeo.

Recursos

Colaboradores

Microsoft mantiene este artículo. Originalmente lo escribieron los siguientes colaboradores.

Autor principal:

  • Chris Palmer | Administrador de productos del grupo principal

Otros colaboradores:

Para ver los perfiles no públicos de LinkedIn, inicie sesión en LinkedIn.

Pasos siguientes