Dela via


Stöd för Azure Communication Services för Teams-identiteter – Användningsfall

Microsoft Teams tillhandahåller identiteter som hanteras av Microsoft Entra-ID och samtalsupplevelser som styrs av Teams administrationscenter och principer. Användare kan ha tilldelat licenser för att aktivera telefonsamtal och avancerade samtalsfunktioner i Microsoft Teams-telefon. Stöd för Azure Communication Services för Teams-identiteter gör det möjligt att hantera VoIP-samtal (Teams voice over IP), Teams-telefonsamtal och delta i Teams-möten. Utvecklare kan utöka Azure Communication Services med Graph API för att tillhandahålla kontextuella data från Microsoft 365-ekosystemet. Den här sidan ger inspiration till hur du använder befintliga Microsoft-tekniker för att tillhandahålla en heltäckande upplevelse för samtalsscenarier med Teams-användare och Azure Communication Services som anropar SDK:er.

Användningsfall 1: Gör utgående Teams PSTN-anrop

Det här scenariot visar ett användningsfall för flera innehavare, där företaget Contoso tillhandahåller SaaS till företaget Fabrikam. Med SaaS kan Fabrikams användare ringa Teams-telefonsamtal via en anpassad webbplats som tar identiteten för Teams-användaren och konfigurationen av PSTN-anslutningen som tilldelats den Teams-användaren.

Diagrammet visar användarupplevelsen av Alice som ringer Teams-telefonsamtal till kunden Megan.

Följande sekvensdiagram visar detaljerade steg för initiering av ett Teams-telefonsamtal:

Sekvensdiagram beskriver en detaljerad uppsättning steg som inträffar för att initiera ett Teams-telefonsamtal med hjälp av Azure Communication Services och Teams.

Steg

  1. Autentisera Alice från Fabrikam i Contosos klientprogram: Alice använder en webbläsare för att öppna Fabrikams webbsida och autentisera. Mer information om autentisering med Teams-identitet finns. Om autentiseringen lyckas omdirigeras Alice till den första sidan.
  2. Läs in kunder och deras PSTN-nummer: Contoso tillhandahåller anpassad logik för att hämta listan över kunder och deras associerade telefonnummer. Den här listan återges på den första sidan till Alice.
  3. Starta ett anrop till Megan: Alice väljer en knapp för att initiera ett PSTN-anrop till Megan i Contosos klientprogram. Klientprogrammet använder Azure Communication Services anropande SDK för att tillhandahålla anropsfunktionen. Först skapar den en instans av callAgent som innehåller åtkomsttoken för Azure Communication Services som hämtades under det första steget.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Då måste du starta ett samtal till Megans telefonnummer.

const pstnCallee = { phoneNumber: '<MEGAN_PHONE_NUMBER_E164_FORMAT>' }
const oneToOneCall = callAgent.startCall([pstnCallee], { threadId: '00000000-0000-0000-0000-000000000000' });
  1. Ansluta PSTN-samtal till Megan: Samtalet dirigeras via Teams-telefonanslutningen som tilldelats Alice, når PSTN-nätverket och ringer telefonen som är associerad med det angivna telefonnumret. Megan ser ett inkommande samtal från det telefonnummer som är kopplat till Alice Teams-användare.
  2. Megans accepterar samtalet: Megan accepterar samtalet och anslutningen mellan Alice och Megan upprättas.

Användningsfall 2: Ta emot inkommande Teams-telefonsamtal

Det här scenariot visar ett användningsfall för flera innehavare, där företaget Contoso tillhandahåller SaaS till företaget Fabrikam. Med SaaS kan Fabrikams användare ta emot ett Teams-telefonsamtal via en anpassad webbplats som tar identiteten för Teams-användaren och konfigurationen av PSTN-anslutningen som tilldelats den Teams-användaren.

Diagrammet visar användarupplevelsen när Alice tar emot Teams-telefonsamtal från kunden Megan.

Följande sekvensdiagram visar detaljerade steg för att acceptera inkommande Teams-telefonsamtal:

Sekvensdiagram beskriver en detaljerad uppsättning steg som råkar ta emot ett Teams-telefonsamtal med hjälp av Azure Communication Services och Teams.

Steg

  1. Autentisera Alice från Fabrikam i Contosos klientprogram: Alice använder en webbläsare för att öppna Fabrikams webbsida och autentisera. Mer information om autentisering med Teams-identitet finns. Om autentiseringen lyckas omdirigeras Alice till den första sidan.
  2. Prenumerera på att ta emot samtal: Klientprogrammet använder Azure Communication Services anropande SDK för att tillhandahålla samtalsfunktionen. Först skapar den en instans av callAgent som innehåller åtkomsttoken för Azure Communication Services som hämtades under det första steget.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Sedan prenumererar du på den inkommande samtalshändelsen.

const incomingCallHandler = async (args: { teamsIncomingCall: TeamsIncomingCall }) => {
    
    const incomingCall = args.teamsIncomingCall;
    
    // Get information about caller
    var callerInfo = incomingCall.callerInfo
    
    showIncomingCall(callerInfo,incomingCall);
};
callAgent.on('incomingCall', incomingCallHandler);

Metoden showIncomingCall är en anpassad Contoso-metod som renderar ett användargränssnitt för att indikera inkommande samtal och två knappar för att acceptera och avvisa anropet. Om du väljer acceptera-knappen används följande kod:

// Accept the call
var call = await incomingCall.accept();

Om du väljer knappen Neka används följande kod:

// Reject the call
incomingCall.reject();
  1. Megan start är ett samtal till PSTN-nummer som tilldelats Teams-användaren Alice: Megan använder sin telefon för att ringa Alice. Operatörsnätverket ansluter till Teams-telefonanslutning som tilldelats Alice och den kommer att ringa alla Teams-slutpunkter som är registrerade för Alice. Den innehåller: Teams desktop, mobil, webbklienter och program baserade på Azure Communication Services som anropar SDK.
  2. Contosos klientprogram visar Megans inkommande samtal: Klientprogrammet tar emot inkommande samtalsavisering. showIncomingCall-metoden skulle använda anpassad Contosos logik för att översätta telefonnumret till kundens namn (till exempel en databas som lagrar nyckel/värde-par som består av ett telefonnummer och ett kundnamn). När informationen hämtas visas meddelandet för Alice i Contosos klientprogram.
  3. Alice accepterar samtalet: Alice väljer en knapp för att acceptera samtalet och anslutningen mellan Alice och Megan upprättas.

Användningsfall 3: Gör utgående Teams VoIP-anrop

Det här scenariot visar ett användningsfall för flera innehavare, där företaget Contoso tillhandahåller SaaS till företaget Fabrikam. Med SaaS kan Fabrikams användare göra Teams VoIP-anrop via en anpassad webbplats som tar Teams-användarens identitet.

Diagrammet visar användarupplevelsen av Alice som gör Teams VoIP-anrop till kollegan Megan.

Följande sekvensdiagram visar detaljerade steg för initiering av ett Teams VoIP-anrop:

Sekvensdiagram beskriver en detaljerad uppsättning steg som inträffar för att initiera ett Teams VoIP-anrop med hjälp av Azure Communication Services och Teams.

Steg

  1. Autentisera Alice från Fabrikam i Contosos klientprogram: Alice använder en webbläsare för att öppna Fabrikams webbsida och autentisera. Mer information om autentisering med Teams-identitet finns. Om autentiseringen lyckas omdirigeras Alice till den första sidan.
  2. Läs in användare från Fabrikams organisation och deras identifierare: Contoso-klientprogrammet använder Graph API för att hämta en lista över användare från Fabrikams klientorganisation. Alice eller hennes administratör måste ge medgivande till Graph API för att utföra den här åtgärden. Du kan läsa mer om Graph API-kommandot i dokumentationen.
GET https://graph.microsoft.com/v1.0/users
Permissions: User.ReadBasic.All (delegated)
Response: response.body.value[1].displayName; // ”Megan Bowen”
	  response.body.value[1].id; // "e8b753b5-4117-464e-9a08-713e1ff266b3"

Contosos klientprogram visar sedan listan över användare och möjligheten att initiera ett anrop till en viss användare.

  1. Starta ett anrop till Megan: Alice väljer en knapp för att initiera ett Teams VoIP-anrop till Megan i Contosos klientprogram. Klientprogrammet använder Azure Communication Services anropande SDK för att tillhandahålla anropsfunktionen. Samtal i Teams-klienter är associerade med Teams-chatt. Först begär programmet att en dedikerad chatt skapas för VoIP-anropet.
POST https://graph.microsoft.com/v1.0/chats
Body:
{
    "chatType": "oneOnOne",
    "members": [
        {
            "@odata.type": "#microsoft.graph.aadUserConversationMember",
            "roles": [
                "owner"
            ],
            "user@odata.bind": "https://graph.microsoft.com/v1.0/users('8c0a1a67-50ce-4114-bb6c-da9c5dbcf6ca')"
        },
        {
            "@odata.type": "#microsoft.graph.aadUserConversationMember",
            "roles": [
                "owner"
            ],
            "user@odata.bind": "https://graph.microsoft.com/v1.0/users('e8b753b5-4117-464e-9a08-713e1ff266b3')"
        }
    ]
}
Permissions: Chat.Create (delegated)
Response: response.body.value.id; // "19:8c0a1a67-50ce-4114-bb6c-da9c5dbcf6ca_e8b753b5-4117-464e-9a08-713e1ff266b3@unq.gbl.spaces"

Sedan skapar klientprogrammet en instans av callAgent som innehåller åtkomsttoken för Azure Communication Services som hämtades under det första steget.

const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Sedan startar du ett samtal till Megans Teams-ID.

var teamsUser = { microsoftTeamsUserId: 'e8b753b5-4117-464e-9a08-713e1ff266b3'};
const oneToOneCall = callAgent.startCall([teamsUser], { threadId: '19:8c0a1a67-50ce-4114-bb6c-da9c5dbcf6ca_e8b753b5-4117-464e-9a08-713e1ff266b3@unq.gbl.spaces' });
  1. Ansluta VoIP-anrop till Megan: Samtalet dirigeras via Teams och ringer Teams-klienter som är associerade med Megan. Megan ser ett inkommande samtal från Alice med namnet som definierats i Microsoft Entra-ID:t.
  2. Megans accepterar samtalet: Megan accepterar samtalet och anslutningen mellan Alice och Megan upprättas.

Användningsfall 4: Ta emot inkommande Teams VoIP-samtal

Det här scenariot visar ett användningsfall för flera innehavare, där företaget Contoso tillhandahåller SaaS till företaget Fabrikam. Med SaaS kan Fabrikams användare ta emot ett Teams VoIP-anrop via en anpassad webbplats som tar Teams-användarens identitet och tillämpar routningsprinciper som tillämpas på Teams-användaren.

Diagrammet visar användarupplevelsen av Att Alice tar emot Teams VoIP-samtal från kunden Megan.

Följande sekvensdiagram visar detaljerade steg för att acceptera inkommande Teams VoIP-anrop:

Sekvensdiagram beskriver en detaljerad uppsättning steg som råkar ta emot ett Teams VoIP-anrop med Hjälp av Azure Communication Services. Graph API och Teams.

Steg

  1. Autentisera Alice från Fabrikam i Contosos klientprogram: Alice använder en webbläsare för att öppna Fabrikams webbsida och autentisera. Mer information om autentisering med Teams-identitet finns. Om autentiseringen lyckas omdirigeras Alice till den första sidan.
  2. Prenumerera på att ta emot samtal: Klientprogrammet använder Azure Communication Services anropande SDK för att tillhandahålla samtalsfunktionen. Först skapar den en instans av callAgent som innehåller åtkomsttoken för Azure Communication Services som hämtades under det första steget.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Sedan prenumererar programmet på den inkommande samtalshändelsen.

const incomingCallHandler = async (args: { teamsIncomingCall: TeamsIncomingCall }) => {
    
    const incomingCall = args.teamsIncomingCall;
    
    // Get information about caller
    var callerInfo = incomingCall.callerInfo
    
    showIncomingCall(callerInfo,incomingCall);
};
callAgent.on('incomingCall', incomingCallHandler);

Metoden showIncomingCall är en anpassad Contoso-metod som renderar ett användargränssnitt för att indikera inkommande samtal och två knappar för att acceptera och avvisa anropet. Om du väljer acceptera-knappen används följande kod:

// Accept the call
var call = await incomingCall.accept();

Om du väljer knappen Neka används följande kod:

// Reject the call
incomingCall.reject();
  1. Megan start är ett VoIP-samtal till Teams-användaren Alice: Megan använder sin Teams-skrivbordsklient för att ringa Alice. Teams-infrastrukturen kommer att ringa alla slutpunkter som är associerade med Alice. Den innehåller: Teams desktop, mobil, webbklienter och program baserade på Azure Communication Services som anropar SDK.
  2. Contosos klientprogram visar Megans inkommande samtal: Klientprogrammet tar emot inkommande samtalsavisering. showIncomingCall-metoden skulle använda Graph API för att översätta Teams användar-ID till visningsnamn.
GET https://graph.microsoft.com/v1.0/users/e8b753b5-4117-464e-9a08-713e1ff266b3
Permissions: User.Read (delegated)
Response: response.body.value.displayName; // ”Megan Bowen”
	  response.body.value.id; // "e8b753b5-4117-464e-9a08-713e1ff266b3"

När informationen hämtas visas meddelandet för Alice i Contosos klientprogram.

  1. Alice accepterar samtalet: Alice väljer en knapp för att acceptera samtalet och anslutningen mellan Alice och Megan upprättas.

Användningsfall 5: Anslut till Teams-möte

Det här scenariot visar ett användningsfall för flera innehavare, där företaget Contoso tillhandahåller SaaS till företaget Fabrikam. Med SaaS kan Fabrikams användare ansluta till Teams-möten via en anpassad webbplats som tar Teams-användarens identitet.

Diagrammet visar användarupplevelsen av att Alice ansluter till Teams-mötet.

Följande sekvensdiagram visar detaljerade steg för att ansluta till ett Teams-möte:

Sekvensdiagram beskriver en detaljerad uppsättning steg som inträffar för att ansluta till ett Teams-möte med hjälp av Azure Communication Services, Graph API och Teams.

Steg

  1. Autentisera Alice från Fabrikam i Contosos klientprogram: Alice använder en webbläsare för att öppna Fabrikams webbsida och autentisera. Mer information om autentisering med Teams-identitet finns. Om autentiseringen lyckas omdirigeras Alice till den första sidan.
  2. Läs in Teams-möten och deras identifierare: Contoso-klientprogrammet använder Graph API för att hämta en lista över Teams-möten för Fabrikams användare. Alice eller hennes administratör måste ge medgivande till Graph API för att utföra den här åtgärden. Du kan läsa mer om Graph API-kommandot i dokumentationen.
GET https://graph.microsoft.com/v1.0/me/calendar/calendarView?startDateTime={start_datetime}&endDateTime={end_datetime}
Permissions: Calendars.Read (delegated)
Response: response.body.value[0].subject; // ”Project Tailspin”
	  response.body.value[0].onlineMeeting.joinUrl; // "https://teams.microsoft.com/l/meetup-join/..."
	  response.body.value[0].start.dateTime;
	  response.body.value[0].end.dateTime;
	  response.body.value[0].location.displayName;

Contosos klientprogram visar sedan listan över Teams-möten och möjligheten att ansluta till dem.

  1. Delta i Teams-mötet "Project Tailspin": Alice väljer en knapp för att ansluta till Teams-mötet "Project Tailspin" i Contosos klientprogram. Klientprogrammet använder Azure Communication Services anropande SDK för att tillhandahålla anropsfunktionen. Klientprogram skapar en instans av callAgent som innehåller åtkomsttoken för Azure Communication Services som hämtades under det första steget.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Sedan ansluter programmet till ett möte via mottagen joinUrl.

var meetingLocator = new TeamsMeetingLinkLocator("https://teams.microsoft.com/l/meetup-join/...");
callAgent.startCallJoinAsync(meetingLocator , new JoinCallOptions());

Alice ansluter sedan till Teams-mötet.

  1. Andra deltagare som ansluter till Teams-mötet: Den tillhandahållna upplevelsen är ett standardmöte i Teams. Baserat på konfigurationen och inbjudningarna kan Teams-mötet anslutas av Teams-användare, Anonym Teams-användare med teamwebbklient, Teams-skrivbordsklient, Teams mobilklient, Azure Communication Services-användare via program baserade på Kommunikationstjänster som anropar SDK eller användare som använder telefoner.

Nästa steg

Följande artiklar kan vara av intresse för dig: