Client and Server Architecture
This page illustrates typical architectural components and dataflows in various Azure Communication Service scenarios. Relevant components include:
- Client Application. This website or native application is leveraged by end-users to communicate. Azure Communication Services provides SDK client libraries for multiple browsers and application platforms. In addition to our core SDKs, a UI Library is available to accelerate browser app development.
- Identity Management Service. This service capability you build to map users and other concepts in your business logic to Azure Communication Services and also to create tokens for those users when required.
- Call Management Service. This service capability you build to manage and monitor voice and video calls. This service can create calls, invite users, call phone numbers, play audio, listen to DMTF tones and leverage many other call features through the Calling Automation SDK and REST APIs.
User access management
Azure Communication Services clients must present user access tokens to access Communication Services resources securely. User access tokens should be generated and managed by a trusted service due to the sensitive nature of the token and the connection string or Azure AD authentication secrets necessary to generate them. Failure to properly manage access tokens can result in additional charges due to misuse of resources.
Dataflows
- The user starts the client application. The design of this application and user authentication scheme is in your control.
- The client application contacts your identity management service. The identity management service maintains a mapping between your users and other addressable objects (for example services or bots) to Azure Communication Service identities.
- The identity management service creates a user access token for the applicable identity. If no Azure Communication Services identity has been allocated the past, a new identity is created.
Resources
- Concept: User Identity
- Quickstart: Create and manage access tokens
- Tutorial: Build a identity management services use Azure Functions
- Sample: Trusted authentication service hero sample
Important
For simplicity, we do not show user access management and token distribution in subsequent architecture flows.
Calling a user without push notifications
The simplest voice and video calling scenarios involves a user calling another, in the foreground without push notifications.
Dataflows
- The accepting user initializes the Call client, allowing them to receive incoming phone calls.
- The initiating user needs the Azure Communication Services identity of the person they want to call. A typical experience may have a friend's list maintained by the identity management service that collates the user's friends and associated Azure Communication Service identities.
- The initiating user initializes their Call client and calls the remote user.
- The accepting user is notified of the incoming call through the Calling SDK.
- The users communicate with each other using voice and video in a call.
Resources
- Concept: Calling Overview
- Quickstart: Add voice calling to your app
- Quickstart: Add video calling to your app
- Hero Sample: Group Calling for Web, iOS, and Android
Joining a user-created group call
You may want users to join a call without an explicit invitation. For example you may have a social space with an associated call, and users join that call at their leisure. In this first dataflow, we show a call that is initially created by a client.
Dataflows
- Initiating user initializes their Call client and makes a group call.
- The initiating user shares the group call ID with a Call management service.
- The Call Management Service shares the call ID with other users. For example, if the application orients around scheduled events, the group call ID might be an attribute of the scheduled event's data model.
- Other users join the call using the group call ID.
- The users communicate with each other using voice and video in a call.
Joining a scheduled Teams call
Azure Communication Service applications can join Teams calls. This is ideal for many business-to-consumer scenarios, where the consumer is leveraging a custom application and custom identity, while the business-side is using Teams.
Dataflows
- The Call Management Service creates a group call with Graph APIs. Another pattern involves end users creating the group call using Bookings, Outlook, Teams, or another scheduling experience in the Microsoft 365 ecosystem.
- The Call Management Service shares the Teams call details with Azure Communication Service clients.
- Typically, a Teams user must join the call and allow external users to join through the lobby. However this experience is sensitive to the Teams tenant configuration and specific meeting settings.
- Azure Communication Service users initialize their Call client and join the Teams meeting, using the details received in Step 2.
- The users communicate with each other using voice and video in a call.
Resources
- Concept: Teams Interoperability
- Quickstart: Join a Teams meeting
Maklum balas
Kirim dan lihat maklum balas untuk