Dukungan Azure Communication Services untuk identitas Teams — Kasus penggunaan

Microsoft Teams menyediakan identitas yang dikelola oleh ID Microsoft Entra dan pengalaman panggilan yang dikontrol oleh Pusat Admin Teams dan kebijakan. Pengguna mungkin telah menetapkan lisensi untuk mengaktifkan panggilan telepon dan kemampuan panggilan tingkat lanjut Telepon Microsoft Teams. Dukungan Azure Communication Services untuk identitas Teams memungkinkan pengelolaan panggilan voice over IP (VoIP) Teams, panggilan telepon Teams, dan bergabung dalam rapat Teams. Pengembang mungkin memperluas Azure Communication Services dengan Graph API untuk menyediakan data kontekstual dari ekosistem Microsoft 365. Halaman ini memberikan inspirasi tentang cara menggunakan teknologi Microsoft yang ada untuk memberikan pengalaman menyeluruh untuk skenario panggilan dengan pengguna Teams dan SDK panggilan Azure Communication Services.

Kasus penggunaan 1: Melakukan panggilan PSTN Teams keluar

Skenario ini menunjukkan kasus penggunaan multi-penyewa, di mana perusahaan Contoso menyediakan SaaS untuk perusahaan Fabrikam. SaaS memungkinkan pengguna Fabrikam untuk melakukan panggilan telepon Teams melalui situs web kustom yang mengambil identitas pengguna Teams dan konfigurasi konektivitas PSTN yang ditetapkan untuk pengguna Teams tersebut.

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

Diagram urutan berikut menunjukkan langkah-langkah terperinci inisiasi panggilan telepon Teams:

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

Langkah-langkah

  1. Autentikasi Alice dari Fabrikam di aplikasi klien Contoso: Alice menggunakan browser untuk membuka halaman web Fabrikam dan mengautentikasi. Anda dapat menemukan detail selengkapnya tentang autentikasi dengan identitas Teams. Jika autentikasi berhasil, Alice dialihkan ke halaman awal.
  2. Memuat pelanggan dan nomor PSTN mereka: Contoso menyediakan logika kustom untuk mengambil daftar pelanggan dan nomor telepon terkait mereka. Daftar ini dirender pada halaman awal ke Alice.
  3. Memulai panggilan ke Megan: Alice memilih tombol untuk memulai panggilan PSTN ke Megan di aplikasi Klien Contoso. Aplikasi klien menggunakan Azure Communication Services memanggil SDK untuk menyediakan kemampuan panggilan. Pertama, ini membuat instans callAgent, yang menyimpan token akses Azure Communication Services yang diperoleh selama langkah pertama.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Kemudian Anda perlu memulai panggilan ke nomor telepon Megan.

const pstnCallee = { phoneNumber: '<MEGAN_PHONE_NUMBER_E164_FORMAT>' }
const oneToOneCall = callAgent.startCall([pstnCallee], { threadId: '00000000-0000-0000-0000-000000000000' });
  1. Koneksi panggilan PSTN ke Megan: Panggilan dirutekan melalui konektivitas telepon Teams yang ditetapkan ke Alice, mencapai jaringan PSTN dan menelepon telepon yang terkait dengan nomor telepon yang disediakan. Megan melihat panggilan masuk dari nomor telepon yang terkait dengan pengguna Teams Alice.
  2. Megan menerima panggilan: Megan menerima panggilan dan koneksi antara Alice dan Megan dibuat.

Kasus penggunaan 2: Menerima panggilan telepon Teams masuk

Skenario ini menunjukkan kasus penggunaan multi-penyewa, di mana perusahaan Contoso menyediakan SaaS untuk perusahaan Fabrikam. SaaS memungkinkan pengguna Fabrikam untuk menerima panggilan telepon Teams melalui situs web kustom yang mengambil identitas pengguna Teams dan konfigurasi konektivitas PSTN yang ditetapkan untuk pengguna Teams tersebut.

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

Diagram urutan berikut menunjukkan langkah-langkah terperinci untuk menerima panggilan telepon Teams masuk:

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

Langkah-langkah

  1. Autentikasi Alice dari Fabrikam di aplikasi klien Contoso: Alice menggunakan browser untuk membuka halaman web Fabrikam dan mengautentikasi. Anda dapat menemukan detail selengkapnya tentang autentikasi dengan identitas Teams. Jika autentikasi berhasil, Alice dialihkan ke halaman awal.
  2. Berlangganan untuk menerima panggilan: Aplikasi klien menggunakan Azure Communication Services memanggil SDK untuk menyediakan kemampuan panggilan. Pertama, ini membuat instans callAgent, yang menyimpan token akses Azure Communication Services yang diperoleh selama langkah pertama.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Kemudian Anda berlangganan peristiwa panggilan masuk.

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

Metode showIncomingCall adalah metode Contoso kustom yang akan merender antarmuka pengguna untuk menunjukkan panggilan masuk dan dua tombol untuk menerima dan menolak panggilan. Jika Anda memilih tombol terima, kode berikut akan digunakan:

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

Jika Anda memilih tombol tolak, kode berikut akan digunakan:

// Reject the call
incomingCall.reject();
  1. Megan memulai panggilan ke nomor PSTN yang ditetapkan untuk pengguna Teams Alice: Megan menggunakan teleponnya untuk memanggil Alice. Jaringan operator akan terhubung ke konektivitas telepon Teams yang ditetapkan ke Alice dan akan menghubungi semua titik akhir Teams yang terdaftar untuk Alice. Ini termasuk: Teams desktop, seluler, klien web, dan aplikasi berdasarkan Azure Communication Services memanggil SDK.
  2. Aplikasi klien Contoso menunjukkan panggilan masuk Megan: Aplikasi klien menerima pemberitahuan panggilan masuk. metode showIncomingCall akan menggunakan logika Contoso kustom untuk menerjemahkan nomor telepon ke nama pelanggan (misalnya, database yang menyimpan pasangan kunci-nilai yang terdiri dari nomor telepon dan nama pelanggan). Ketika informasi diambil, pemberitahuan ditampilkan kepada Alice di aplikasi klien Contoso.
  3. Alice menerima panggilan: Alice memilih tombol untuk menerima panggilan dan koneksi antara Alice dan Megan dibuat.

Kasus penggunaan 3: Melakukan panggilan VoIP Teams keluar

Skenario ini menunjukkan kasus penggunaan multi-penyewa, di mana perusahaan Contoso menyediakan SaaS untuk perusahaan Fabrikam. SaaS memungkinkan pengguna Fabrikam untuk melakukan panggilan Teams VoIP melalui situs web kustom yang mengambil identitas pengguna Teams.

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

Diagram urutan berikut menunjukkan langkah-langkah terperinci untuk memulai panggilan Teams VoIP:

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

Langkah-langkah

  1. Autentikasi Alice dari Fabrikam di aplikasi klien Contoso: Alice menggunakan browser untuk membuka halaman web Fabrikam dan mengautentikasi. Anda dapat menemukan detail selengkapnya tentang autentikasi dengan identitas Teams. Jika autentikasi berhasil, Alice dialihkan ke halaman awal.
  2. Muat pengguna dari organisasi Fabrikam dan pengidentifikasi mereka: Aplikasi klien Contoso menggunakan API Graph untuk mendapatkan daftar pengguna dari penyewa Fabrikam. Alice atau Adminnya perlu memberikan persetujuan kepada Graph API untuk melakukan tindakan ini. Anda dapat mempelajari selengkapnya tentang perintah Graph API dalam dokumentasi.
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"

Aplikasi klien Contoso kemudian akan menampilkan daftar pengguna dan kemampuan untuk memulai panggilan ke pengguna tertentu.

  1. Memulai panggilan ke Megan: Alice memilih tombol untuk memulai panggilan Teams VoIP ke Megan di aplikasi Klien Contoso. Aplikasi klien menggunakan Azure Communication Services memanggil SDK untuk menyediakan kemampuan panggilan. Panggilan di Klien Teams dikaitkan dengan obrolan Teams. Pertama, aplikasi meminta pembuatan obrolan khusus untuk panggilan 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"

Kemudian aplikasi klien membuat instans callAgent yang menyimpan token akses Azure Communication Services yang diperoleh selama langkah pertama.

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

Kemudian Anda memulai panggilan ke ID Teams 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. Koneksi panggilan VoIP ke Megan: Panggilan dirutekan melalui teams dan memanggil klien Teams yang terkait dengan Megan. Megan melihat panggilan masuk dari Alice dengan nama yang ditentukan dalam ID Microsoft Entra.
  2. Megan menerima panggilan: Megan menerima panggilan dan koneksi antara Alice dan Megan dibuat.

Kasus penggunaan 4: Menerima panggilan Masuk Teams VoIP

Skenario ini menunjukkan kasus penggunaan multi-penyewa, di mana perusahaan Contoso menyediakan SaaS untuk perusahaan Fabrikam. SaaS memungkinkan pengguna Fabrikam untuk menerima panggilan Teams VoIP melalui situs web kustom yang mengambil identitas pengguna Teams dan menerapkan kebijakan perutean yang diterapkan kepada pengguna Teams.

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

Diagram urutan berikut menunjukkan langkah-langkah terperinci untuk menerima panggilan Teams VoIP masuk:

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

Langkah-langkah

  1. Autentikasi Alice dari Fabrikam di aplikasi klien Contoso: Alice menggunakan browser untuk membuka halaman web Fabrikam dan mengautentikasi. Anda dapat menemukan detail selengkapnya tentang autentikasi dengan identitas Teams. Jika autentikasi berhasil, Alice dialihkan ke halaman awal.
  2. Berlangganan untuk menerima panggilan: Aplikasi klien menggunakan Azure Communication Services memanggil SDK untuk menyediakan kemampuan panggilan. Pertama, ini membuat instans callAgent yang menyimpan token akses Azure Communication Services yang diperoleh selama langkah pertama.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Kemudian aplikasi berlangganan peristiwa panggilan masuk.

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

Metode showIncomingCall adalah metode Contoso kustom yang akan merender antarmuka pengguna untuk menunjukkan panggilan masuk dan dua tombol untuk menerima dan menolak panggilan. Jika Anda memilih tombol terima, kode berikut akan digunakan:

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

Jika Anda memilih tombol tolak, kode berikut akan digunakan:

// Reject the call
incomingCall.reject();
  1. Megan memulai panggilan VoIP ke pengguna Teams Alice: Megan menggunakan klien desktop Teams-nya untuk memanggil Alice. Infrastruktur Teams akan menghubungi semua titik akhir yang terkait dengan Alice. Ini termasuk: Teams desktop, seluler, klien web, dan aplikasi berdasarkan Azure Communication Services memanggil SDK.
  2. Aplikasi klien Contoso menunjukkan panggilan masuk Megan: Aplikasi klien menerima pemberitahuan panggilan masuk. metode showIncomingCall akan menggunakan Graph API untuk menerjemahkan ID pengguna Teams untuk menampilkan nama.
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"

Ketika informasi diambil, pemberitahuan ditampilkan kepada Alice di aplikasi klien Contoso.

  1. Alice menerima panggilan: Alice memilih tombol untuk menerima panggilan dan koneksi antara Alice dan Megan dibuat.

Kasus penggunaan 5: Bergabung dalam rapat Teams

Skenario ini menunjukkan kasus penggunaan multi-penyewa, di mana perusahaan Contoso menyediakan SaaS untuk perusahaan Fabrikam. SaaS memungkinkan pengguna Fabrikam untuk bergabung dalam rapat Teams melalui situs web kustom yang mengambil identitas pengguna Teams.

Diagram is showing user experience of Alice joining Teams Meeting.

Diagram urutan berikut ini memperlihatkan langkah-langkah terperinci untuk bergabung dalam rapat Teams:

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

Langkah-langkah

  1. Autentikasi Alice dari Fabrikam di aplikasi klien Contoso: Alice menggunakan browser untuk membuka halaman web Fabrikam dan mengautentikasi. Anda dapat menemukan detail selengkapnya tentang autentikasi dengan identitas Teams. Jika autentikasi berhasil, Alice dialihkan ke halaman awal.
  2. Memuat rapat Teams dan pengidentifikasinya: Aplikasi klien Contoso menggunakan API Graph untuk mendapatkan daftar rapat Teams untuk pengguna Fabrikam. Alice atau Adminnya perlu memberikan persetujuan kepada Graph API untuk melakukan tindakan ini. Anda dapat mempelajari selengkapnya tentang perintah Graph API dalam dokumentasi.
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;

Aplikasi klien Contoso kemudian akan menampilkan daftar rapat Teams dan kemampuan untuk bergabung dengan mereka.

  1. Bergabung dalam rapat Teams "Project Tailspin": Alice memilih tombol untuk bergabung dengan rapat Teams "Project Tailspin" di aplikasi Klien Contoso. Aplikasi klien menggunakan Azure Communication Services memanggil SDK untuk menyediakan kemampuan panggilan. Aplikasi klien membuat instans callAgent yang menyimpan token akses Azure Communication Services yang diperoleh selama langkah pertama.
const callClient = new CallClient(); 
tokenCredential = new AzureCommunicationTokenCredential('<AlICE_ACCESS_TOKEN>');
callAgent = await callClient.createTeamsCallAgent(tokenCredential)

Kemudian aplikasi bergabung dalam rapat melalui joinUrl yang diterima.

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

Alice kemudian bergabung dalam rapat Teams.

  1. Peserta lain yang bergabung dalam rapat Teams: Pengalaman yang diberikan adalah rapat Teams standar. Berdasarkan konfigurasi dan undangan, rapat Teams dapat bergabung dengan pengguna Teams, pengguna teams anonim menggunakan klien web Team, klien desktop Teams, klien seluler Teams, pengguna Azure Communication Services melalui aplikasi berdasarkan SDK panggilan Communication Services atau pengguna menggunakan telepon.

Langkah berikutnya

Artikel berikut mungkin menarik bagi Anda: