Bagikan melalui


Menambahkan pengguna Microsoft Teams ke panggilan yang sudah ada menggunakan Automation Panggilan

Dalam mulai cepat ini, kami menggunakan API Automasi Panggilan Azure Communication Services untuk menambahkan, menghapus, dan mentransfer panggilan ke pengguna Teams.

Prasyarat

  • Akun Azure dengan langganan aktif.
  • Lisensi telepon Microsoft Teams dan penyewa Teams dengan hak istimewa admin. Lisensi telepon Teams adalah suatu keharusan untuk menggunakan fitur ini, pelajari selengkapnya tentang lisensi Teams di sini. Pengguna Microsoft Teams juga harus voice diaktifkan, lihat menyiapkan-sistem telepon Anda. Hak istimewa administratif diperlukan untuk mengotorisasi sumber daya Communication Services untuk memanggil pengguna Teams, dijelaskan kemudian di Langkah 1.
  • Sumber daya Communication Service yang disebarkan dan string koneksi valid ditemukan dengan memilih Kunci di menu sisi kiri pada portal Azure.
  • Dapatkan nomor telepon PSTN dari sumber daya Communication Service. Perhatikan nomor telepon yang Anda peroleh untuk digunakan dalam mulai cepat ini.
  • Langganan Azure Event Grid untuk menerima peristiwa tersebut IncomingCall .
  • Pustaka API Azure Communication Service Call Automation terbaru untuk sistem operasi Anda.
  • Layanan web yang mengimplementasikan pustaka API Automation Panggilan, ikuti tutorial ini.

Langkah 1: Otorisasi untuk Sumber Daya Azure Communication Services Anda untuk mengaktifkan panggilan ke pengguna Microsoft Teams

Untuk mengaktifkan panggilan melalui API Automasi Panggilan, Administrator Microsoft Teams atau Administrator Global harus secara eksplisit mengaktifkan akses sumber daya Communication Services ke penyewa mereka untuk mengizinkan panggilan.

Pengaturan tingkat Penyewa Set-CsTeamsAcsFederationConfiguration (MicrosoftTeamsPowerShell) yang memungkinkan/menonaktifkan federasi antara penyewa dan sumber daya Communication Services tertentu.

Kebijakan Pengguna Set-CsExternalAccessPolicy (SkypeForBusiness) yang memungkinkan admin mengontrol lebih lanjut pengguna mana di organisasi mereka yang dapat berpartisipasi dalam komunikasi gabungan dengan pengguna Communication Services.

Perhatikan bahwa pengguna Teams harus memiliki lisensi Telepon untuk menggunakan fitur ini. Untuk menetapkan lisensi, gunakan cmdlet Set-Cs Telepon NumberAssignment dan atur parameter EnterpriseVoiceEnabled ke $true. Untuk informasi tambahan, lihat Menyiapkan Telepon Teams di organisasi Anda.

Langkah 2: Gunakan Graph API untuk mendapatkan ID objek Microsoft Entra untuk pengguna Teams dan secara opsional memeriksa kehadiran mereka

ID objek Microsoft Entra (OID) pengguna Teams diperlukan untuk menambahkannya atau mentransfernya dari panggilan Communication Services. OID dapat diambil melalui 1) portal Office, 2) Pusat admin Microsoft Entra, 3) Microsoft Entra Koneksi; atau 4) Graph API. Contoh di bawah ini menggunakan Graph API.

Persetujuan harus diberikan oleh admin Microsoft Entra sebelum Graph dapat digunakan untuk mencari pengguna, pelajari lebih lanjut dengan mengikuti dokumen gambaran umum Microsoft Graph Security API. OID dapat diambil menggunakan DAFTAR PENGGUNA API untuk mencari pengguna. Berikut ini memperlihatkan pencarian menurut nama tampilan, tetapi properti lain juga dapat dicari:

Mencantumkan pengguna menggunakan Microsoft Graph v1.0:

Request:
	https://graph.microsoft.com/v1.0/users?$search="displayName:Art Anderson"
Permissions:
	Application and delegated. Refer to documentation.
Response:
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users",
    "value": [
        {
            "displayName": "Art Anderson",
            "mail": "artanderson@contoso.com",
            "id": "fc4ccb5f-8046-4812-803f-6c344a5d1560"
        }

Secara opsional, Kehadiran untuk pengguna dapat diambil menggunakan GET Presence API dan ObjectId pengguna. Pelajari selengkapnya tentang dokumentasi Microsoft Graph v1.0.

Request:
https://graph.microsoft.com/v1.0/users/fc4ccb5f-8046-4812-803f-6c344a5d1560/presence
Permissions:
Delegated only. Application not supported.  Refer to documentation.
Response:
    "@odata.context": "https://graph.microsoft.com/v1.0/$metadata#users('fc4ccb5f-8046-4812-803f-6c344a5d1560')/presence/$entity",
    "id": "fc4ccb5f-8046-4812-803f-6c344a5d1560",
    "availability": "Offline",
    "activity": "Offline"

Langkah 3: Menambahkan pengguna Teams ke panggilan Communication Services yang sudah ada yang dikontrol oleh API Automation Panggilan

Anda perlu menyelesaikan langkah prasyarat dan memiliki aplikasi layanan web untuk mengontrol panggilan Communication Services. Menggunakan objek panggilan Koneksi ion, tambahkan peserta ke panggilan.

CallAutomationClient client = new CallAutomationClient('<Connection_String>');
AnswerCallResult answer = await client.AnswerCallAsync(incomingCallContext, new Uri('<Callback_URI>'));
await answer.Value.CallConnection.AddParticipantAsync(
    new CallInvite(new MicrosoftTeamsUserIdentifier('<Teams_User_Guid>'))
    {
        SourceDisplayName = "Jack (Contoso Tech Support)"
    });
CallAutomationClient client = new CallAutomationClientBuilder().connectionString("<resource_connection_string>").buildClient();
AnswerCallResult answer = client.answerCall(incomingCallContext, "<Callback_URI>"));
answer.getCallConnection().addParticipant(
    new CallInvite(new MicrosoftTeamsUserIdentifier("<Teams_User_Guid>"))
        .setSourceDisplayName("Jack (Contoso Tech Support)"));
const client = new CallAutomationClient("<resource_connection_string>");
const answer = await client.answerCall(incomingCallContext, "<Callback_URI>"));
answer.callConnection.addParticipant({
    targetParticipant: { microsoftTeamsUserId: "<Teams_User_Guid>" },
    sourceDisplayName: "Jack (Contoso Tech Support)"
});
call_automation_client = CallAutomationClient.from_connection_string("<resource_connection_string>")
answer = call_automation_client.answer_call(incoming_call_context = incoming_call_context, callback_url = "<Callback_URI>")
call_connection_client = call_automation_client.get_call_connection(answer.call_connection_id)
call_connection_client.add_participant(target_participant = CallInvite(
    target = MicrosoftTeamsUserIdentifier(user_id="<USER_ID>"),
    source_display_name = "Jack (Contoso Tech Support)"))

Pada klien desktop Microsoft Teams, panggilan Jack akan dikirim ke pengguna Microsoft Teams melalui pemberitahuan toast panggilan masuk.

Cuplikan layar klien desktop Microsoft Teams, panggilan Jack dikirim ke pengguna Microsoft Teams melalui pemberitahuan toast panggilan masuk.

Setelah pengguna Microsoft Teams menerima panggilan, pengalaman dalam panggilan untuk pengguna Microsoft Teams akan menampilkan semua peserta di daftar nama Microsoft Teams. Perhatikan bahwa aplikasi Anda yang mengelola panggilan menggunakan API Automation Panggilan akan tetap disembunyikan ke pengguna Teams di layar panggilan, kecuali jika Anda memulai panggilan 1:1 dengan pengguna Teams.
Cuplikan layar pengguna Microsoft Teams yang menerima panggilan dan memasukkan pengalaman dalam panggilan untuk pengguna Microsoft Teams.

Langkah 4: Hapus pengguna Teams dari panggilan Communication Services yang ada yang dikontrol oleh API Automasi Panggilan

await answer.Value.CallConnection.RemoveParticipantAsync(new MicrosoftTeamsUserIdentifier('<Teams_User_Guid>'));
answer.getCallConnection().removeParticipant(new MicrosoftTeamsUserIdentifier("<Teams_User_Guid>"));
answer.callConnection.removeParticipant({ microsoftTeamsUserId: "<Teams_User_Guid>" });
call_connection_client.remove_participant(target_participant = MicrosoftTeamsUserIdentifier(user_id="<USER_ID>"))

Fitur opsional: Transfer ke pengguna Teams dari panggilan Communication Services yang ada yang dikontrol oleh API Automation Panggilan

await answer.Value.CallConnection.TransferCallToParticipantAsync(new MicrosoftTeamsUserIdentifier('<Teams_User_Guid>'));
answer.getCallConnection().transferCallToParticipant(new MicrosoftTeamsUserIdentifier("<Teams_User_Guid>"));
answer.callConnection.transferCallToParticipant({ microsoftTeamsUserId: "<Teams_User_Guid>" });
call_connection_client.transfer_call_to_participant(target_participant = MicrosoftTeamsUserIdentifier(user_id = "<USER_ID>"))

Membersihkan sumber daya

Jika ingin membersihkan dan menghapus langganan Azure Communication Services, Anda bisa menghapus sumber daya atau grup sumber daya. Menghapus grup sumber daya juga menghapus sumber daya apa pun yang terkait dengannya. Pelajari selengkapnya tentang membersihkan sumber daya.

Langkah berikutnya