Konsep panggilan masuk
Azure Communication Services Call Automation memungkinkan pengembang membuat aplikasi yang dapat melakukan dan menerima panggilan. Ini memanfaatkan langganan Event Grid untuk mengirimkan IncomingCall
peristiwa, sehingga sangat penting untuk mengonfigurasi lingkungan Anda untuk menerima pemberitahuan ini agar aplikasi Anda dapat mengalihkan atau menjawab panggilan secara efektif. Oleh karena itu, memahami dasar-dasar panggilan masuk sangat penting untuk memanfaatkan potensi penuh Azure Communication Services Call Automation.
Skenario panggilan
Sebelum menyiapkan lingkungan Anda, penting untuk memahami skenario yang dapat memicu IncomingCall
peristiwa. Untuk memicu IncomingCall
peristiwa, panggilan harus dilakukan ke identitas Azure Communication Services atau nomor Public Switched Telephone Network (PSTN) yang terkait dengan sumber daya Azure Communication Services Anda. Berikut ini adalah contoh sumber daya ini:
- Identitas Azure Communication Services
- Nomor telepon PSTN yang dimiliki oleh sumber daya Azure Communication Services Anda
Mengingat contoh-contoh ini, skenario berikut memicu peristiwa yang IncomingCall
dikirim ke Event Grid:
Sumber | Tujuan | Skenario |
---|---|---|
Identitas Azure Communication Services | Identitas Azure Communication Services | Panggilan, Alihkan, Tambahkan Peserta, Transfer |
Identitas Azure Communication Services | Nomor PSTN yang dimiliki oleh sumber daya Azure Communication Services Anda | Panggilan, Alihkan, Tambahkan Peserta, Transfer |
PSTN Publik | Nomor PSTN yang dimiliki oleh sumber daya Azure Communication Services Anda | Panggilan, Alihkan, Tambahkan Peserta, Transfer |
Catatan
Penting untuk dipahami bahwa identitas Azure Communication Services dapat mewakili pengguna atau aplikasi. Meskipun platform tidak memiliki fitur bawaan untuk secara eksplisit menetapkan identitas ke pengguna atau aplikasi, aplikasi atau infrastruktur pendukung Anda dapat menyelesaikan ini. Untuk mempelajari selengkapnya tentang topik ini, lihat panduan konsep identitas.
Mendaftarkan penyedia sumber daya Event Grid
Jika sebelumnya Anda belum menggunakan Event Grid di langganan Azure, Anda mungkin perlu mendaftarkan penyedia sumber daya Event Grid Anda. Untuk mendaftarkan penyedia, ikuti langkah-langkah berikut:
- Buka portal Microsoft Azure.
- Di menu sebelah kiri, pilih Langganan.
- Pilih langganan yang Anda gunakan untuk Event Grid.
- Di menu sebelah kiri, di bawah Pengaturan, pilih Penyedia sumber daya.
- Cari Microsoft.EventGrid.
- Jika penyedia sumber daya Anda tidak terdaftar, pilih Daftar.
Menerima pemberitahuan panggilan masuk dari Event Grid
Di Azure Communication Services, menerima IncomingCall
pemberitahuan dimungkinkan melalui langganan Event Grid. Sebagai penerima pemberitahuan, Anda memiliki fleksibilitas untuk memilih cara menanganinya. Karena API Automation Panggilan memanfaatkan panggilan balik Webhook untuk peristiwa, biasanya menggunakan langganan Event Grid 'Webhook'. Namun, layanan ini menawarkan berbagai jenis langganan, dan Anda memiliki kebebasan untuk memilih yang paling cocok untuk kebutuhan Anda.
Arsitektur ini memiliki manfaat berikut:
- Dengan menggunakan filter langganan Event Grid, Anda dapat merutekan
IncomingCall
pemberitahuan ke aplikasi tertentu. - Penetapan nomor PSTN dan logika perutean dapat ada di aplikasi Anda versus dikonfigurasi secara statis secara online.
- Seperti yang diidentifikasi di bagian skenario panggilan, aplikasi Anda dapat diberi tahu bahkan ketika pengguna melakukan panggilan antara satu sama lain. Anda kemudian dapat menggabungkan skenario ini bersama dengan API Perekaman Panggilan untuk memenuhi kebutuhan kepatuhan.
Untuk contoh payload peristiwa dan informasi selengkapnya tentang peristiwa panggilan lain yang diterbitkan ke Event Grid, lihat panduan ini.
Berikut adalah contoh langganan Event Grid Webhook di mana filter jenis peristiwa hanya IncomingCall
mendengarkan peristiwa.
Opsi perutean panggilan dengan Automasi Panggilan dan Event Grid
Di Automasi Panggilan dan Event Grid, perutean panggilan dapat disesuaikan dengan kebutuhan spesifik Anda. Dengan menggunakan filter tingkat lanjut dalam langganan Event Grid, Anda dapat berlangganan IncomingCall
pemberitahuan yang berkaitan dengan nomor telepon sumber/tujuan tertentu atau identitas Azure Communication Services. Pemberitahuan ini kemudian dapat diarahkan ke titik akhir, seperti langganan Webhook. Dengan menggunakan Call Automation SDK, aplikasi titik akhir kemudian dapat membuat keputusan untuk mengalihkan panggilan ke identitas Azure Communication Services lain atau ke PSTN.
Catatan
Untuk memastikan bahwa aplikasi Anda hanya menerima peristiwa yang diperlukan, disarankan untuk mengonfigurasi pemfilteran di Event Grid. Ini sangat penting dalam skenario yang menghasilkan IncomingCall
peristiwa, seperti mengalihkan panggilan PSTN masuk ke titik akhir Azure Communication Services. Jika filter tidak digunakan, langganan Event Grid Anda menerima dua IncomingCall
peristiwa - satu untuk panggilan PSTN dan satu untuk pengguna Azure Communication Services - meskipun Anda hanya ingin menerima pemberitahuan pertama. Mengabaikan untuk menangani skenario tersebut menggunakan filter atau mekanisme lain dalam aplikasi Anda dapat mengakibatkan perulangan tak terbatas dan perilaku lain yang tidak diinginkan.
Berikut adalah contoh filter tingkat lanjut pada langganan Event Grid yang mengawasi string yang data.to.PhoneNumber.Value
dimulai dengan nomor telepon PSTN '+18005551212.
Penetapan angka
Saat menggunakan IncomingCall
pemberitahuan di Azure Communication Services, Anda memiliki kebebasan untuk mengaitkan angka tertentu dengan titik akhir apa pun. Misalnya, jika Anda mendapatkan nomor +14255551212
telepon PSTN dan ingin menetapkannya kepada pengguna dengan identitas 375f0e2f-e8db-4449-9bf7-2054b02e42b4
di aplikasi Anda, Anda harus mempertahankan pemetaan nomor tersebut ke identitas. IncomingCall
Saat pemberitahuan dikirim yang cocok dengan nomor telepon di bidang ke, Anda dapat memanggil Redirect
API dan memberikan identitas pengguna. Dengan kata lain, Anda dapat mengelola penetapan nomor dalam aplikasi Anda dan merutekan atau menjawab panggilan saat runtime.
Praktik Terbaik
Untuk memastikan bahwa Event Grid mengirimkan peristiwa ke titik akhir Webhook Anda dan mencegah pengguna berbahaya membanjiri titik akhir Anda dengan peristiwa, Anda perlu membuktikan kepemilikan titik akhir Anda. Untuk mengatasi masalah dengan menerima peristiwa, konfirmasikan bahwa Webhook yang Anda konfigurasi diverifikasi dengan menangani
SubscriptionValidationEvent
. Untuk informasi selengkapnya, lihat panduan ini.Saat peristiwa panggilan masuk diterima, jika aplikasi Anda gagal merespons kembali dengan kode status 200Ok ke Event Grid dalam jangka waktu yang diperlukan, Event Grid menggunakan backoff eksponensial untuk mengirim peristiwa lagi. Namun, panggilan masuk hanya berdering selama 30 detik, dan merespons panggilan setelah waktu tersebut tidak akan efektif. Untuk mencegah percobaan kembali untuk panggilan kedaluwarsa atau kedaluwarsa, sebaiknya atur kebijakan coba lagi sebagai Upaya Pengiriman Peristiwa Maks ke 2 dan Waktu Acara untuk Hidup hingga 1 menit. Anda dapat menemukan pengaturan ini di bawah tab Fitur Tambahan dari langganan peristiwa. Pelajari selengkapnya tentang percobaan ulang di sini.
Kami menyarankan Anda untuk mengaktifkan pengelogan untuk sumber daya Event Grid Anda untuk memantau peristiwa yang gagal dikirimkan. Untuk melakukan ini, navigasikan ke topik sistem di bawah tab Peristiwa sumber daya Komunikasi Anda dan aktifkan pengelogan dari pengaturan Diagnostik. Log kegagalan dapat ditemukan di tabel 'AegDeliveryFailureLogs'.
AegDeliveryFailureLogs | limit 10 | where Message has "incomingCall"
Langkah berikutnya
- Cobalah mulai cepat untuk melakukan panggilan keluar.