Udostępnij za pośrednictwem


Obsługa usług Azure Communication Services dla tożsamości usługi Teams — przypadki użycia

Usługa Microsoft Teams udostępnia tożsamości zarządzane przez identyfikator Entra firmy Microsoft i wywoływanie środowisk kontrolowanych przez usługę Teams Administracja Center i zasad. Użytkownicy mogą mieć przypisane licencje, aby włączyć połączenia telefoniczne i zaawansowane możliwości połączeń telefonicznych Telefon w Microsoft Teams. Obsługa usług Azure Communication Services dla tożsamości usługi Teams umożliwia zarządzanie połączeniami głosowymi za pośrednictwem protokołu IP (VoIP), połączeniami telefonicznymi usługi Teams i dołączania do spotkań w usłudze Teams. Deweloperzy mogą rozszerzyć usługi Azure Communication Services za pomocą interfejsu API programu Graph, aby zapewnić kontekstowe dane z ekosystemu platformy Microsoft 365. Ta strona stanowi inspirację do korzystania z istniejących technologii firmy Microsoft w celu zapewnienia kompleksowego środowiska do wywoływania scenariuszy z użytkownikami usługi Teams i zestawami SDK wywołującymi usługi Azure Communication Services.

Przypadek użycia 1: Nawiązywanie połączenia wychodzącego aplikacji Teams PSTN

W tym scenariuszu przedstawiono przypadek użycia z wieloma dzierżawami, w którym firma Contoso dostarcza rozwiązanie SaaS firmie Fabrikam. Usługa SaaS umożliwia użytkownikom firmy Fabrikam nawiązywanie połączeń telefonicznych w usłudze Teams za pośrednictwem niestandardowej witryny internetowej, która pobiera tożsamość użytkownika usługi Teams i konfigurację łączności PSTN przypisanej do tego użytkownika usługi Teams.

Diagram is showing user experience of Alice making Teams phone call to customer Megan.

Na poniższym diagramie sekwencji przedstawiono szczegółowe kroki inicjowania połączenia telefonicznego usługi Teams:

Sequence diagram is describing detailed set of steps that happens to initiate a Teams phone call using Azure Communication Services and Teams.

Kroki

  1. Uwierzytelnianie Alicji z firmy Fabrikam w aplikacji klienckiej firmy Contoso: Alicja używa przeglądarki do otwierania strony internetowej i uwierzytelniania firmy Fabrikam. Więcej szczegółów na temat uwierzytelniania można znaleźć przy użyciu tożsamości usługi Teams. Jeśli uwierzytelnianie zakończy się pomyślnie, Alicja zostanie przekierowana na stronę początkową.
  2. Załaduj klientów i ich numery PSTN: firma Contoso udostępnia niestandardową logikę pobierania listy klientów i skojarzonych numerów telefonów. Ta lista jest renderowana na początkowej stronie alicji.
  3. Zainicjuj wywołanie do Megan: Alicja wybiera przycisk, aby zainicjować wywołanie PSTN do Megan w aplikacji klienckiej firmy Contoso. Aplikacja kliencka używa zestawu SDK wywołującego usługi Azure Communication Services, aby zapewnić możliwość wywoływania. Najpierw tworzy wystąpienie klasy callAgent, które przechowuje token dostępu usług Azure Communication Services uzyskany w pierwszym kroku.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Następnie musisz rozpocząć połączenie z numerem telefonu Megan.

const pstnCallee = { phoneNumber: '<MEGAN_PHONE_NUMBER_E164_FORMAT>' }
const oneToOneCall = callAgent.startCall([pstnCallee], { threadId: '00000000-0000-0000-0000-000000000000' });
  1. Połączenie połączenia PSTN do Megan: Połączenie jest kierowane przez łączność telefoniczną usługi Teams przypisaną do Alice, docierając do sieci PSTN i dzwoniąc telefon skojarzony z podanym numerem telefonu. Megan widzi połączenie przychodzące z numeru telefonu skojarzonego z użytkownikiem aplikacji Alice w aplikacji Teams.
  2. Megans akceptuje połączenie: Megan akceptuje połączenie, a połączenie między Alice i Megan jest ustanawiane.

Przypadek użycia 2: Odbieranie przychodzącego połączenia telefonicznego usługi Teams

W tym scenariuszu przedstawiono przypadek użycia z wieloma dzierżawami, w którym firma Contoso dostarcza rozwiązanie SaaS firmie Fabrikam. Usługa SaaS umożliwia użytkownikom firmy Fabrikam odbieranie połączenia telefonicznego usługi Teams za pośrednictwem niestandardowej witryny internetowej, która przyjmuje tożsamość użytkownika usługi Teams i konfigurację łączności PSTN przypisanej do tego użytkownika usługi Teams.

Diagram is showing user experience of Alice receiving Teams phone call from customer Megan.

Na poniższym diagramie sekwencji przedstawiono szczegółowe kroki akceptowania przychodzących połączeń telefonicznych usługi Teams:

Sequence diagram is describing detailed set of steps that happens to receive a Teams phone call using Azure Communication Services and Teams.

Kroki

  1. Uwierzytelnianie Alicji z firmy Fabrikam w aplikacji klienckiej firmy Contoso: Alicja używa przeglądarki do otwierania strony internetowej i uwierzytelniania firmy Fabrikam. Więcej szczegółów na temat uwierzytelniania można znaleźć przy użyciu tożsamości usługi Teams. Jeśli uwierzytelnianie zakończy się pomyślnie, Alicja zostanie przekierowana na stronę początkową.
  2. Subskrybuj odbieranie wywołań: aplikacja kliencka używa zestawu SDK wywołującego usługi Azure Communication Services w celu zapewnienia możliwości wywoływania. Najpierw tworzy wystąpienie klasy callAgent, które przechowuje token dostępu usług Azure Communication Services uzyskany w pierwszym kroku.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Następnie subskrybujesz zdarzenie połączenia przychodzącego.

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

Metoda showIncomingCall to niestandardowa metoda firmy Contoso, która renderuje interfejs użytkownika w celu wskazania połączeń przychodzących i dwóch przycisków do akceptowania i odrzucania wywołania. Jeśli wybierzesz przycisk Akceptuj, zostanie użyty następujący kod:

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

Jeśli wybierzesz przycisk odrzuć, zostanie użyty następujący kod:

// Reject the call
incomingCall.reject();
  1. Megan rozpoczyna połączenie z numerem PSTN przypisanym do użytkownika aplikacji Teams Alice: Megan używa jej telefonu do połączenia z Alice. Sieć przewoźnika połączy się z łącznością telefoniczną usługi Teams przypisaną do Alice i będzie dzwonić do wszystkich punktów końcowych usługi Teams zarejestrowanych dla Alice. Obejmuje ona: aplikacje klasyczne, mobilne, internetowe i aplikacje usługi Teams oparte na wywołującym zestawie SDK usług Azure Communication Services.
  2. Aplikacja kliencka firmy Contoso pokazuje przychodzące wywołanie Megan: aplikacja kliencka odbiera przychodzące powiadomienie o wywołaniu. showIncomingCall metoda będzie używać niestandardowej logiki firmy Contoso do tłumaczenia numeru telefonu na nazwę klienta (na przykład bazy danych przechowujące pary klucz-wartość składającą się z numeru telefonu i nazwy klienta). Po pobraniu informacji zostanie wyświetlone powiadomienie Alicji w aplikacji klienckiej firmy Contoso.
  3. Alicja akceptuje połączenie: Alicja wybiera przycisk, aby zaakceptować połączenie, a połączenie między Alice i Megan jest ustanawiane.

Przypadek użycia 3: Nawiązywanie połączenia voIP dla wychodzących aplikacji Teams

W tym scenariuszu przedstawiono przypadek użycia z wieloma dzierżawami, w którym firma Contoso dostarcza rozwiązanie SaaS firmie Fabrikam. Usługa SaaS umożliwia użytkownikom firmy Fabrikam wykonywanie wywołań VoIP usługi Teams za pośrednictwem niestandardowej witryny internetowej, która przyjmuje tożsamość użytkownika usługi Teams.

Diagram is showing user experience of Alice making Teams VoIP call to colleague Megan.

Na poniższym diagramie sekwencji przedstawiono szczegółowe kroki inicjowania wywołania voIP usługi Teams:

Sequence diagram is describing detailed set of steps that happens to initiate a Teams VoIP call using Azure Communication Services and Teams.

Kroki

  1. Uwierzytelnianie Alicji z firmy Fabrikam w aplikacji klienckiej firmy Contoso: Alicja używa przeglądarki do otwierania strony internetowej i uwierzytelniania firmy Fabrikam. Więcej szczegółów na temat uwierzytelniania można znaleźć przy użyciu tożsamości usługi Teams. Jeśli uwierzytelnianie zakończy się pomyślnie, Alicja zostanie przekierowana na stronę początkową.
  2. Załaduj użytkowników z organizacji firmy Fabrikam i ich identyfikatorów: aplikacja kliencka firmy Contoso korzysta z interfejsu API programu Graph, aby uzyskać listę użytkowników z dzierżawy firmy Fabrikam. Alicja lub jej Administracja musi wyrazić zgodę na interfejs API programu Graph w celu wykonania tej akcji. Więcej informacji na temat polecenia interfejsu API programu Graph można uzyskać w dokumentacji.
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"

Następnie aplikacja kliencka firmy Contoso wyświetli listę użytkowników i możliwość zainicjowania wywołania danego użytkownika.

  1. Zainicjuj wywołanie do Megan: Alicja wybiera przycisk, aby zainicjować wywołanie VoIP usługi Teams do Megan w aplikacji klienckiej firmy Contoso. Aplikacja kliencka używa zestawu SDK wywołującego usługi Azure Communication Services, aby zapewnić możliwość wywoływania. Połączenia w klientach usługi Teams są skojarzone z czatem usługi Teams. Najpierw aplikacja żąda utworzenia dedykowanego czatu dla połączenia VoIP.
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"

Następnie aplikacja kliencka tworzy wystąpienie klasy callAgent, które przechowuje token dostępu usług Azure Communication Services uzyskany w pierwszym kroku.

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

Następnie rozpoczniesz wywołanie identyfikatora aplikacji Teams firmy Megan.

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. Połączenie wywołanie VoIP do Megan: wywołanie jest kierowane przez usługę Teams i dzwonienie do klientów usługi Teams skojarzonych z megan. Megan widzi połączenie przychodzące z Alicji o nazwie zdefiniowanej w identyfikatorze Entra firmy Microsoft.
  2. Megans akceptuje połączenie: Megan akceptuje połączenie, a połączenie między Alice i Megan jest ustanawiane.

Przypadek użycia 4: Odbieranie przychodzącego połączenia VoIP aplikacji Teams

W tym scenariuszu przedstawiono przypadek użycia z wieloma dzierżawami, w którym firma Contoso dostarcza rozwiązanie SaaS firmie Fabrikam. Usługa SaaS umożliwia użytkownikom firmy Fabrikam odbieranie wywołania VoIP usługi Teams za pośrednictwem niestandardowej witryny internetowej, która pobiera tożsamość użytkownika usługi Teams i stosuje zasady routingu stosowane do użytkownika usługi Teams.

Diagram is showing user experience of Alice receiving Teams VoIP call from customer Megan.

Na poniższym diagramie sekwencji przedstawiono szczegółowe kroki akceptowania przychodzących wywołań VoIP usługi Teams:

Sequence diagram is describing detailed set of steps that happens to receive a Teams VoIP call using Azure Communication Services. Graph API, and Teams.

Kroki

  1. Uwierzytelnianie Alicji z firmy Fabrikam w aplikacji klienckiej firmy Contoso: Alicja używa przeglądarki do otwierania strony internetowej i uwierzytelniania firmy Fabrikam. Więcej szczegółów na temat uwierzytelniania można znaleźć przy użyciu tożsamości usługi Teams. Jeśli uwierzytelnianie zakończy się pomyślnie, Alicja zostanie przekierowana na stronę początkową.
  2. Subskrybuj odbieranie wywołań: aplikacja kliencka używa zestawu SDK wywołującego usługi Azure Communication Services w celu zapewnienia możliwości wywoływania. Najpierw tworzy wystąpienie klasy callAgent, które przechowuje token dostępu usług Azure Communication Services uzyskany w pierwszym kroku.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Następnie aplikacja subskrybuje zdarzenie połączenia przychodzącego.

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

Metoda showIncomingCall to niestandardowa metoda firmy Contoso, która renderuje interfejs użytkownika w celu wskazania połączeń przychodzących i dwóch przycisków do akceptowania i odrzucania wywołania. Jeśli wybierzesz przycisk Akceptuj, zostanie użyty następujący kod:

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

Jeśli wybierzesz przycisk odrzuć, zostanie użyty następujący kod:

// Reject the call
incomingCall.reject();
  1. Megan rozpoczyna połączenie VoIP z użytkownikiem aplikacji Teams Alice: Megan używa swojego klienta klasycznego Teams do wywołania Alicji. Infrastruktura usługi Teams będzie dzwonić do wszystkich punktów końcowych skojarzonych z Alice. Obejmuje ona: aplikacje klasyczne, mobilne, internetowe i aplikacje usługi Teams oparte na wywołującym zestawie SDK usług Azure Communication Services.
  2. Aplikacja kliencka firmy Contoso pokazuje przychodzące wywołanie Megan: aplikacja kliencka odbiera przychodzące powiadomienie o wywołaniu. metoda showIncomingCall używa interfejsu API programu Graph do tłumaczenia identyfikatora użytkownika usługi Teams na nazwę wyświetlaną.
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"

Po pobraniu informacji zostanie wyświetlone powiadomienie Alicji w aplikacji klienckiej firmy Contoso.

  1. Alicja akceptuje połączenie: Alicja wybiera przycisk, aby zaakceptować połączenie, a połączenie między Alice i Megan jest ustanawiane.

Przypadek użycia 5: Dołączanie do spotkania w aplikacji Teams

W tym scenariuszu przedstawiono przypadek użycia z wieloma dzierżawami, w którym firma Contoso dostarcza rozwiązanie SaaS firmie Fabrikam. Usługa SaaS umożliwia użytkownikom firmy Fabrikam dołączanie do spotkań usługi Teams za pośrednictwem niestandardowej witryny internetowej, która przyjmuje tożsamość użytkownika usługi Teams.

Diagram is showing user experience of Alice joining Teams Meeting.

Na poniższym diagramie sekwencji przedstawiono szczegółowe kroki dołączania do spotkania usługi Teams:

Sequence diagram is describing detailed set of steps that happens to join a Teams meeting using Azure Communication Services, Graph API, and Teams.

Kroki

  1. Uwierzytelnianie Alicji z firmy Fabrikam w aplikacji klienckiej firmy Contoso: Alicja używa przeglądarki do otwierania strony internetowej i uwierzytelniania firmy Fabrikam. Więcej szczegółów na temat uwierzytelniania można znaleźć przy użyciu tożsamości usługi Teams. Jeśli uwierzytelnianie zakończy się pomyślnie, Alicja zostanie przekierowana na stronę początkową.
  2. Ładowanie spotkań usługi Teams i ich identyfikatorów: aplikacja kliencka firmy Contoso korzysta z interfejsu API programu Graph, aby uzyskać listę spotkań usługi Teams dla użytkowników firmy Fabrikam. Alicja lub jej Administracja musi wyrazić zgodę na interfejs API programu Graph w celu wykonania tej akcji. Więcej informacji na temat polecenia interfejsu API programu Graph można uzyskać w dokumentacji.
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;

Następnie aplikacja kliencka firmy Contoso wyświetli listę spotkań usługi Teams i możliwość ich dołączenia.

  1. Dołącz do spotkania w aplikacji Teams "Project Tailspin": Alicja wybiera przycisk, aby dołączyć do spotkania usługi Teams "Project Tailspin" w aplikacji klienckiej firmy Contoso. Aplikacja kliencka używa zestawu SDK wywołującego usługi Azure Communication Services, aby zapewnić możliwość wywoływania. Aplikacje klienckie tworzą wystąpienie klasy callAgent, które przechowuje token dostępu usług Azure Communication Services uzyskany w pierwszym kroku.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Następnie aplikacja dołącza do spotkania za pośrednictwem odebranego elementu joinUrl.

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

Alicja następnie dołącza do spotkania usługi Teams.

  1. Inni uczestnicy, którzy dołączają do spotkania w usłudze Teams: udostępnione środowisko to standardowe spotkanie w usłudze Teams. Na podstawie konfiguracji i zaproszeń spotkanie usługi Teams może zostać dołączone przez użytkownika usługi Teams, anonimowego użytkownika usługi Teams przy użyciu klienta internetowego teamu, klienta klasycznego usługi Teams, klienta mobilnego usługi Teams, użytkownika usług Azure Communication Services za pośrednictwem aplikacji opartych na połączeniach z zestawem SDK lub użytkownikami korzystającymi z telefonów.

Następne kroki

Następujące artykuły mogą Cię zainteresować: