Arkitekturdesign för Azure Communication Services

Azure Communication Services
Microsoft Entra ID
Azure Functions

Den här guiden visar dataflödesdiagram för Azure Communication Services. Använd dessa diagram för att förstå hur dina klienter och tjänster interagerar med Azure för att leverera kommunikationsupplevelser.

Communication Services är en molnbaserad tjänst med REST-API:er och klientbiblioteks-SDK:er som hjälper dig att integrera kommunikation i dina program. Communication Services stöder flera kommunikationsformat: röst- och videosamtal, textchatt, SMS och anpassade binära data.

Du kan lägga till kommunikation till webb- och mobilappar, integrera anpassade tjänster och robotar och programmatiskt komma åt pstn-nätverket (public switched telephony network). Du kan hämta telefonnummer direkt från Api:er för Azure Communication Services eller Azure-portalen och använda dessa nummer för SMS- eller röstsamtalsprogram. Genom att använda Kommunikationstjänsters direktdirigering kan du ta med din egen telefonileverantör via SIP (Session Initiation Protocol) och Sessionsgränskontrollanter.

Följande komponenter används i dessa dataflödesdiagram:

  • Klientprogram. En webbplats eller ett internt program som används av slutanvändare för kommunikation. Communication Services tillhandahåller SDK-klientbibliotek för webbläsare och interna appar. Användargränssnittsbiblioteket med öppen källkod som bygger på dessa SDK:er tillhandahåller programmerbara webbkomponenter (React), iOS och Android UI.
  • Identitetshanteringstjänst. En tjänst som du skapar för att mappa användare och tjänster till Kommunikationstjänsters identiteter. Den här tjänsten skapar även token för användare när de behöver komma åt dataplanet.
  • Kommunikationsstyrenhetstjänst. En tjänst som du skapar för att styra chatttrådar och röst- och videosamtal.
  • Kommunikationsdatatjänst. En tjänstfunktion som du skapar för att direkt interagera med kommunikationsinnehåll, till exempel att skicka chatt- och SMS-meddelanden eller spela upp ljud i ett röstsamtal.

Branschstandarder för kommunikation, till exempel WebRTC, separerar kommunikationen till ett kontroll- och signalplan och ett dataplan. Genom att använda Communication Services kan du skapa en kommunikationsupplevelse utan att behöva förstå tjänstens interna implementering av WebRTC. Dessa begrepp kan dock hjälpa dig att utforma din app:

System Function Protokoll Åtkomstmodell
Kontrollplan Styr vem som kommunicerar, när och hur REST Autentiseringsuppgifter för Microsoft Entra-tjänsten
Dataplan Innehåller kommunikationsinnehåll, röst, video, text och data som samverkar med människor och appar UDP, RTMP, WebSockets, REST Användaråtkomsttoken och autentiseringsuppgifter för Microsoft Entra-tjänsten

Ett vanligt dataflöde uppstår när klientprogram initierar kommunikation genom att begära kontrollinformation från en tjänstkontrollant:

  • Vilka möten har jag idag?
  • Vilket telefonnummer använder jag för att ringa min vän Joseph?
  • Vad heter mina lagkamrater? Vilka pågående chatttrådar har vi?

Din kontrolltjänst uppfyller dessa begäranden genom att ge klienterna token och identifierare för kommunikationstjänster för användare, trådar, telefonnummer och samtal. Klienter använder sedan dessa token och identifierare för att interagera med Azure-dataplanet. API:er för Kommunikationstjänster begränsar inte utformningen av slutanvändarupplevelsen eller de processer som styr kommunikationen.

I WebRTC-standarden begär klienter kontrollinformation från tjänster genom att skicka kontrollmeddelanden i en process som kallas signalering. Communication Services-identifierare som samtals-ID är jämförbara med WebRTC-sessionsbeskrivningar.

Användare autentiserade via användaråtkomsttoken

Communication Services-klienter presenterar användaråtkomsttoken för åtkomst, med förbättrad säkerhet, Azure-samtals- och chattdataplanet. Du bör generera och hantera användaråtkomsttoken med hjälp av en betrodd tjänst. Token och de anslutningssträng eller Microsoft Entra-hemligheter som krävs för att generera dem måste skyddas. Om åtkomsttoken inte hanteras korrekt kan det leda till ytterligare avgifter på grund av missbruk av resurser.

Diagram that shows the user access token architecture.

Ladda ned en Visio-fil med den här arkitekturen.

Dataflöde

  1. En användare startar klientprogrammet.
  2. Klientprogrammet kontaktar din identitetshanteringstjänst. Identitetshanteringstjänsten upprätthåller en mappning mellan programidentiteter och Kommunikationstjänsters identiteter. (Programidentiteter omfattar dina användare och andra adresserbara objekt, till exempel tjänster eller robotar.)
  3. Identitetshanteringstjänsten använder mappningen för att utfärda en användaråtkomsttoken för den aktuella identiteten.

Azure App Service eller Azure Functions är två alternativ för att hantera identitetshanteringstjänsten. Dessa tjänster skalas enkelt och har inbyggda funktioner för att autentisera användare. De är integrerade med OpenID och identitetsprovidrar från tredje part som Facebook.

Resurser

Användaren anropar en app eller ett telefonnummer

Det enklaste röst- och videosamtalsscenariot innebär att en användare anropar en annan användare i förgrunden utan push-meddelanden. Du kan integrera röst- och videosamtal i Communication Services i webbappar, interna mobilappar och Windows-skrivbordsappar. Användargränssnittsbiblioteket med öppen källkod kan hjälpa dig att påskynda utvecklingen.

Diagram that shows Communication Services calling without push notifications.

Ladda ned en Visio-fil med den här arkitekturen.

Dataflöde

  1. Den initierande användaren hämtar kommunikationstjänsternas identitet för den person som de vill anropa. I ett typiskt scenario hämtar användaren identiteten från en vänlista som underhålls av identitetshanteringstjänsten. Listan sorterar användarens vänner och associerade Kommunikationstjänsters identiteter.
  2. Den initierande användaren startar samtalsklienten och anropar fjärranvändaren.
  3. Den accepterande användaren meddelas om det inkommande samtalet via det anropande SDK:et. För att ta emot inkommande samtal måste acceptorn redan ha initierat samtalsklienten.
  4. Användarna kommunicerar med varandra via röst och video i ett samtal.

Dataflödet är nästan identiskt när en användare anropar ett externt telefonnummer. Den viktigaste skillnaden är att den initierande användarklienten måste begära käll- och måltelefonnummer från kontrollanttjänsten för att få åtkomst till traditionell telefoni, i stället för att begära användaridentiteter.

I vissa situationer kanske du vill att appar ska acceptera anrop i bakgrunden med hjälp av plattformstjänster som Apple Push Notification. Du kan aktivera den här funktionen genom att integrera Communication Services med Azure Notification Hubs.

Resurser

Användaren ansluter till ett gruppsamtal utan inbjudan

Du kanske vill att användarna ska kunna ansluta till ett gruppsamtal utan en explicit inbjudan. Din app kan ge ett beständigt socialt utrymme eller en klubb som innehåller en videosamtalskanal som användarna kan ansluta till när de vill. Det här dataflödet visar ett anrop som ursprungligen har skapats av en klient och gör att en fjärrklient kan ansluta utan uttrycklig inbjudan:

Diagram that shows a call without an invitation.

Ladda ned en Visio-fil med den här arkitekturen.

Dataflöde

  1. Den initierande användaren initierar anropsklienten och gör ett gruppanrop.
  2. Den initierande användaren delar gruppanrops-ID:t med en kommunikationsstyrenhetstjänst.
  3. Kommunikationsstyrenhetstjänsten delar samtals-ID:t med andra användare. Om programmet till exempel tillhandahåller användarklubbar är gruppanrops-ID:t ett attribut för klubbens datamodell som lagras i Azure Cosmos DB.
  4. Andra användare ansluter samtalet med hjälp av gruppsamtals-ID:t.
  5. Användare kommunicerar med varandra via röst och video i ett samtal.

Microsoft 365 och Teams

Många organisationer använder Microsoft 365 och Teams för kommunikation. Kommunikationstjänster och Teams är kompatibla, vilket möjliggör följande scenarier:

  • Skapa ett anpassat program så att en extern användare kan ansluta till ett Teams-möte. Det här scenariot är perfekt för scenarier med virtuella besök, där ett företag som använder Teams är värd för ett möte för externa konsumenter som använder en anpassad app och en anpassad identitet. Mer information om det här scenariot finns i Självstudie om virtuella besök och Sample Builder.
  • Skapa ett anpassat program för en intern användare med Teams/Microsoft Entra-autentiseringsuppgifter. Det här scenariot är utformat för att skapa anpassade Teams-klienter för anställda.

Dessa anpassade programscenarier använder Microsoft Graph-API:er och kommunikationstjänster. När du skapar externa appar och tjänster som ansluter till Teams använder du vanligtvis Microsoft Graph som Kontrollplan för Teams. Du använder det här kontrollplanet för att konfigurera vem som kommunicerar och hur och när de kommunicerar med hjälp av API:er för:

Du använder information från dessa kontroll-API:er, till exempel mötes-URL:en och trådidentifieraren, för att ansluta Kommunikationstjänsters samtals- och chattklienter till Teams dataplan.

Teams har också SDK:er för att lägga till anpassade funktioner i Teams-upplevelser och via Teams Store, till exempel flikar, robotar och automatisering. Dessa scenarier ligger utanför omfånget för den här artikeln.

Communication Services stöder inte direkt interaktioner med Teams-kanaler. För anpassade program kan du använda API:er för Microsoft Graph Chat och Kanal för att skapa anpassade klienter för anställda som har åtkomst till kanaler.

Programmet ansluter till ett schemalagt Teams-samtal

Communication Services-program kan ansluta till Teams-anrop. För externa användare behöver programmet en länk till Teams-mötet. Länkhämtning hanteras via Microsoft Graph-API:er. Här är dataflödet:

Diagram showing Communication Services architecture for joining a Teams meeting.

Ladda ned en Visio-fil med den här arkitekturen.

Dataflöde

  1. (1A) Kommunikationsstyrenhetstjänsten schemalägger gruppanropet med hjälp av Microsoft Graph API. I ett annat användningsfall(1B) schemalägger användarna gruppanropet med hjälp av Outlook eller Teams.
  2. Kommunikationsstyrenhetstjänsten delar information om Teams-anropet med Communication Services-klienter.
  3. Vanligtvis måste en Teams-användare ansluta till samtalet via Teams-användargränssnittet och tillåta externa användare att passera teams församtalslobby. Detta krav beror dock på konfigurationen av Teams-klientorganisationen och de specifika mötesinställningarna.
  4. Communication Services-användare initierar samtalsklienten och ansluter till Teams-mötet med hjälp av informationen som togs emot i steg 2.
  5. Användare kommunicerar med varandra via röst och video.

Resurser

Deltagare

Den här artikeln underhålls av Microsoft. Det har ursprungligen skrivits av följande medarbetare.

Huvudförfattare:

Övriga medarbetare:

Om du vill se icke-offentliga LinkedIn-profiler loggar du in på LinkedIn.

Nästa steg