Delen via


Ondersteuning voor Azure Communication Services voor Teams-identiteiten - Use cases

Microsoft Teams biedt identiteiten die worden beheerd door Microsoft Entra ID en belervaringen die worden beheerd door het Teams-beheercentrum en -beleid. Gebruikers hebben mogelijk licenties toegewezen om telefoongesprekken en geavanceerde belmogelijkheden van Microsoft Teams Telefoon in te schakelen. Azure Communication Services-ondersteuning voor Teams-identiteiten maakt het mogelijk om VoIP-oproepen (Voice over IP) van Teams te beheren, Teams-telefoongesprekken en deel te nemen aan Teams-vergaderingen. Ontwikkelaars kunnen de Azure Communication Services uitbreiden met Graph API om contextuele gegevens uit het Microsoft 365-ecosysteem te bieden. Deze pagina biedt inspiratie voor het gebruik van bestaande Microsoft-technologieën om een end-to-end ervaring te bieden voor belscenario's met Teams-gebruikers en Azure Communication Services die SDK's aanroepen.

Use case 1: Uitgaande Teams PSTN-aanroep maken

In dit scenario wordt een gebruiksscenario voor meerdere tenants weergegeven, waarbij het bedrijf Contoso SaaS aan het bedrijf Fabrikam levert. Met SaaS kunnen gebruikers van Fabrikam telefoongesprekken voeren via een aangepaste website die de identiteit van de Teams-gebruiker en configuratie van de PSTN-verbinding gebruikt die aan die Teams-gebruiker is toegewezen.

Diagram toont de gebruikerservaring van Alice die Teams-telefoongesprekken voert naar de klant Megan.

In het volgende sequentiediagram ziet u gedetailleerde stappen voor het starten van een Teams-telefoongesprek:

Het sequentiediagram beschrijft een gedetailleerde set stappen die plaatsvinden om een Teams-telefoongesprek te starten met behulp van Azure Communication Services en Teams.

Stappen

  1. Verifieer Alice vanuit Fabrikam in de clienttoepassing van Contoso: Alice gebruikt een browser om de webpagina van Fabrikam te openen en verifieert. Meer informatie over de verificatie met Teams-identiteit vindt u. Als de verificatie is geslaagd, wordt Alice omgeleid naar de eerste pagina.
  2. Klanten en hun PSTN-nummers laden: Contoso biedt aangepaste logica om de lijst met klanten en hun bijbehorende telefoonnummers op te halen. Deze lijst wordt weergegeven op de eerste pagina naar Alice.
  3. Start een aanroep naar Megan: Alice selecteert een knop om een PSTN-aanroep naar Megan te starten in de clienttoepassing van Contoso. Clienttoepassing maakt gebruik van de SDK voor aanroepen van Azure Communication Services om de mogelijkheid voor aanroepen te bieden. Eerst wordt er een exemplaar van callAgent gemaakt dat het Azure Communication Services-toegangstoken bevat dat tijdens de eerste stap is verkregen.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Dan moet je een oproep starten naar Megan's telefoonnummer.

const pstnCallee = { phoneNumber: '<MEGAN_PHONE_NUMBER_E164_FORMAT>' }
const oneToOneCall = callAgent.startCall([pstnCallee], { threadId: '00000000-0000-0000-0000-000000000000' });
  1. PstN-oproep verbinden met Megan: de oproep wordt gerouteerd via de Teams-telefoonverbinding die is toegewezen aan Alice, waarbij het PSTN-netwerk wordt bereikt en de telefoon wordt gebeld die is gekoppeld aan het opgegeven telefoonnummer. Megan ziet een inkomende oproep vanaf het telefoonnummer dat is gekoppeld aan de Teams-gebruiker van Alice.
  2. Megans accepteert de oproep: Megan accepteert de oproep en de verbinding tussen Alice en Megan is tot stand gebracht.

Use case 2: Binnenkomend Teams-telefoongesprek ontvangen

In dit scenario wordt een gebruiksscenario voor meerdere tenants weergegeven, waarbij het bedrijf Contoso SaaS aan het bedrijf Fabrikam levert. Met SaaS kunnen gebruikers van Fabrikam een Teams-telefoongesprek ontvangen via een aangepaste website die de identiteit van de Teams-gebruiker en de configuratie van de PSTN-verbinding gebruikt die is toegewezen aan die Teams-gebruiker.

Diagram toont de gebruikerservaring van Alice die teams-telefoongesprekken van klant Megan ontvangt.

In het volgende sequentiediagram ziet u gedetailleerde stappen voor het accepteren van binnenkomende Teams-telefoongesprekken:

Het sequentiediagram beschrijft een gedetailleerde set stappen die een Teams-telefoongesprek ontvangen met behulp van Azure Communication Services en Teams.

Stappen

  1. Verifieer Alice vanuit Fabrikam in de clienttoepassing van Contoso: Alice gebruikt een browser om de webpagina van Fabrikam te openen en verifieert. Meer informatie over de verificatie met Teams-identiteit vindt u. Als de verificatie is geslaagd, wordt Alice omgeleid naar de eerste pagina.
  2. Abonneren voor het ontvangen van aanroepen: clienttoepassing maakt gebruik van de Aanroep-SDK van Azure Communication Services om de aanroepende mogelijkheid te bieden. Eerst wordt er een exemplaar van callAgent gemaakt dat het Azure Communication Services-toegangstoken bevat dat tijdens de eerste stap is verkregen.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Vervolgens abonneert u zich op de gebeurtenis voor binnenkomende oproepen.

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);

De methode showIncomingCall is een aangepaste Contoso-methode waarmee een gebruikersinterface wordt weergegeven om binnenkomende oproepen aan te geven en twee knoppen om de aanroep te accepteren en te weigeren. Als u de knop Accepteren selecteert, wordt de volgende code gebruikt:

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

Als u de knop Weigeren selecteert, wordt de volgende code gebruikt:

// Reject the call
incomingCall.reject();
  1. Megan start een oproep naar PSTN-nummer dat is toegewezen aan Teams-gebruiker Alice: Megan gebruikt haar telefoon om Alice te bellen. Het netwerk van de provider maakt verbinding met teams-telefoonconnectiviteit die is toegewezen aan Alice en alle Teams-eindpunten die zijn geregistreerd voor Alice. Dit omvat: Teams-desktop, mobiel, webclients en toepassingen op basis van de AANroepende SDK van Azure Communication Services.
  2. In de clienttoepassing van Contoso wordt de binnenkomende oproep van Megan weergegeven: Clienttoepassing ontvangt binnenkomende oproepmelding. showIncomingCall-methode gebruikt aangepaste logica van Contoso om het telefoonnummer te vertalen naar de naam van de klant (bijvoorbeeld een database waarin sleutel-waardeparen worden opgeslagen die bestaan uit een telefoonnummer en klantnaam). Wanneer de informatie wordt opgehaald, wordt de melding weergegeven bij Alice in de clienttoepassing van Contoso.
  3. Alice accepteert de oproep: Alice selecteert een knop om het gesprek te accepteren en de verbinding tussen Alice en Megan wordt tot stand gebracht.

Use case 3: Uitgaande Teams VoIP-aanroep maken

In dit scenario wordt een gebruiksscenario voor meerdere tenants weergegeven, waarbij het bedrijf Contoso SaaS aan het bedrijf Fabrikam levert. Met SaaS kunnen gebruikers van Fabrikam Teams VoIP-aanroepen doen via een aangepaste website die de identiteit van de Teams-gebruiker gebruikt.

Diagram toont de gebruikerservaring van Alice die Teams VoIP aanroept aan collega Megan.

In het volgende sequentiediagram ziet u gedetailleerde stappen voor het starten van een Teams VoIP-aanroep:

Het sequentiediagram beschrijft een gedetailleerde set stappen die plaatsvinden om een Teams VoIP-aanroep te initiëren met behulp van Azure Communication Services en Teams.

Stappen

  1. Verifieer Alice vanuit Fabrikam in de clienttoepassing van Contoso: Alice gebruikt een browser om de webpagina van Fabrikam te openen en verifieert. Meer informatie over de verificatie met Teams-identiteit vindt u. Als de verificatie is geslaagd, wordt Alice omgeleid naar de eerste pagina.
  2. Laad gebruikers uit de organisatie van Fabrikam en hun id's: Contoso-clienttoepassing maakt gebruik van Graph API om een lijst met gebruikers op te halen uit de tenant van Fabrikam. Alice of haar beheerder moet toestemming geven voor Graph API om deze actie uit te voeren. Meer informatie over de Graph API-opdracht vindt u in de documentatie.
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"

De clienttoepassing van Contoso toont vervolgens de lijst met gebruikers en de mogelijkheid om een aanroep naar een bepaalde gebruiker te starten.

  1. Start een aanroep naar Megan: Alice selecteert een knop om een Teams VoIP-aanroep naar Megan te starten in de clienttoepassing van Contoso. Clienttoepassing maakt gebruik van de SDK voor aanroepen van Azure Communication Services om de mogelijkheid voor aanroepen te bieden. Gesprekken in Teams-clients zijn gekoppeld aan Teams-chat. Eerst vraagt de toepassing om een speciale chat voor de VoIP-oproep te maken.
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"

Vervolgens maakt de clienttoepassing een exemplaar van callAgent dat het Azure Communication Services-toegangstoken bevat dat tijdens de eerste stap is verkregen.

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

Vervolgens start u een oproep naar 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. VoIP-oproep verbinden met Megan: De oproep wordt gerouteerd via teams en bellende Teams-clients die zijn gekoppeld aan Megan. Megan ziet een inkomende oproep van Alice met de naam die is gedefinieerd in de Microsoft Entra-id.
  2. Megans accepteert de oproep: Megan accepteert de oproep en de verbinding tussen Alice en Megan is tot stand gebracht.

Use case 4: Inkomende Teams VoIP-oproep ontvangen

In dit scenario wordt een gebruiksscenario voor meerdere tenants weergegeven, waarbij het bedrijf Contoso SaaS aan het bedrijf Fabrikam levert. Met SaaS kunnen gebruikers van Fabrikam een Teams VoIP-oproep ontvangen via een aangepaste website die de identiteit van de Teams-gebruiker gebruikt en routeringsbeleid toepast op de Teams-gebruiker.

Diagram toont de gebruikerservaring van Alice die Teams VoIP-oproep van klant Megan ontvangt.

In het volgende sequentiediagram ziet u gedetailleerde stappen voor het accepteren van binnenkomende Teams VoIP-oproepen:

Het sequentiediagram beschrijft een gedetailleerde set stappen die een Teams VoIP-aanroep ontvangt met behulp van Azure Communication Services. Graph API en Teams.

Stappen

  1. Verifieer Alice vanuit Fabrikam in de clienttoepassing van Contoso: Alice gebruikt een browser om de webpagina van Fabrikam te openen en verifieert. Meer informatie over de verificatie met Teams-identiteit vindt u. Als de verificatie is geslaagd, wordt Alice omgeleid naar de eerste pagina.
  2. Abonneren voor het ontvangen van aanroepen: clienttoepassing maakt gebruik van de Aanroep-SDK van Azure Communication Services om de aanroepende mogelijkheid te bieden. Eerst wordt er een exemplaar van callAgent gemaakt dat het Azure Communication Services-toegangstoken bevat dat tijdens de eerste stap is verkregen.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Vervolgens abonneert de toepassing zich op de gebeurtenis voor binnenkomende oproepen.

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);

De methode showIncomingCall is een aangepaste Contoso-methode waarmee een gebruikersinterface wordt weergegeven om binnenkomende oproepen aan te geven en twee knoppen om de aanroep te accepteren en te weigeren. Als u accepteren selecteert, wordt de volgende code gebruikt:

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

Als u de knop Weigeren selecteert, wordt de volgende code gebruikt:

// Reject the call
incomingCall.reject();
  1. Megan start is een VoIP-oproep aan Teams-gebruiker Alice: Megan gebruikt haar Teams-desktopclient om Alice aan te roepen. De Teams-infrastructuur geeft alle eindpunten aan die zijn gekoppeld aan Alice. Dit omvat: Teams-desktop, mobiel, webclients en toepassingen op basis van de AANroepende SDK van Azure Communication Services.
  2. In de clienttoepassing van Contoso wordt de binnenkomende oproep van Megan weergegeven: Clienttoepassing ontvangt binnenkomende oproepmelding. de methode showIncomingCall gebruikt Graph API om de Gebruikers-id van Teams om te zetten in de weergavenaam.
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"

Wanneer de informatie wordt opgehaald, wordt de melding weergegeven bij Alice in de clienttoepassing van Contoso.

  1. Alice accepteert de oproep: Alice selecteert een knop om het gesprek te accepteren en de verbinding tussen Alice en Megan wordt tot stand gebracht.

Use case 5: Deelnemen aan Teams-vergadering

In dit scenario wordt een gebruiksscenario voor meerdere tenants weergegeven, waarbij het bedrijf Contoso SaaS aan het bedrijf Fabrikam levert. Met SaaS kunnen gebruikers van Fabrikam deelnemen aan Teams-vergaderingen via een aangepaste website die de identiteit van de Teams-gebruiker gebruikt.

Diagram toont de gebruikerservaring van Alice die deelneemt aan teams-vergadering.

In het volgende sequentiediagram ziet u gedetailleerde stappen voor het deelnemen aan een Teams-vergadering:

Het sequentiediagram beschrijft een gedetailleerde set stappen die plaatsvinden om deel te nemen aan een Teams-vergadering met behulp van Azure Communication Services, Graph API en Teams.

Stappen

  1. Verifieer Alice vanuit Fabrikam in de clienttoepassing van Contoso: Alice gebruikt een browser om de webpagina van Fabrikam te openen en verifieert. Meer informatie over de verificatie met Teams-identiteit vindt u. Als de verificatie is geslaagd, wordt Alice omgeleid naar de eerste pagina.
  2. Teams-vergaderingen en hun id's laden: De Contoso-clienttoepassing maakt gebruik van Graph API om een lijst met Teams-vergaderingen op te halen voor gebruikers van Fabrikam. Alice of haar beheerder moet toestemming geven voor Graph API om deze actie uit te voeren. Meer informatie over de Graph API-opdracht vindt u in de documentatie.
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;

De clienttoepassing van Contoso toont vervolgens de lijst met Teams-vergaderingen en de mogelijkheid om eraan deel te nemen.

  1. Neem deel aan de Teams-vergadering 'Project Tailspin': Alice selecteert een knop om deel te nemen aan teams-vergadering 'Project Tailspin' in de clienttoepassing van Contoso. Clienttoepassing maakt gebruik van de SDK voor aanroepen van Azure Communication Services om de mogelijkheid voor aanroepen te bieden. Clienttoepassingen maken een exemplaar van callAgent dat het Azure Communication Services-toegangstoken bevat dat tijdens de eerste stap is verkregen.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Vervolgens neemt de toepassing deel aan een vergadering via ontvangen joinUrl.

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

Alice neemt vervolgens deel aan de Teams-vergadering.

  1. Andere deelnemers die deelnemen aan de Teams-vergadering: de opgegeven ervaring is een standaard Teams-vergadering. Op basis van de configuratie en uitnodigingen kan de Teams-vergadering worden toegevoegd door teams-gebruiker, anonieme Teams-gebruiker met behulp van Team-webclient, Teams-desktopclient, mobiele Teams-client, Azure Communication Services-gebruiker via toepassingen op basis van communication services die SDK aanroepen of gebruikers die telefoons gebruiken.

Volgende stappen

De volgende artikelen zijn mogelijk interessant voor u: