Bagikan melalui


Masalah umum dalam SDK dan API

Artikel ini menyediakan informasi tentang batasan dan masalah umum yang terkait dengan SDK Panggilan Azure Communication Services dan API Otomatisasi Panggilan Communication Services.

Penting

Ada beberapa faktor yang dapat memengaruhi kualitas pengalaman panggilan Anda. Untuk mempelajari lebih lanjut tentang konfigurasi jaringan Communication Services dan menguji praktik terbaik, lihat Rekomendasi jaringan.

Memanggil Web SDK

Bagian berikut ini menyediakan informasi tentang masalah umum yang terkait dengan SDK panggilan suara dan video JavaScript Azure Communication Services.

Chrome M115 - regresi

Chrome versi 115 untuk Android memperkenalkan regresi saat melakukan panggilan video - hasil dari bug ini adalah pengguna yang melakukan panggilan di Azure Communication Services dengan versi Chrome ini tidak memiliki video keluar dalam panggilan Grup dan Azure Communication Services-Microsoft Teams.

  • Regresi ini adalah masalah umum yang diperkenalkan pada Chromium
  • Sebagai mitigasi jangka pendek, instruksikan pengguna untuk menggunakan Microsoft Edge atau Firefox di Android, atau hindari menggunakan Google Chrome 115/116 di Android

Masalah Umum Firefox

Dukungan browser desktop Firefox sekarang tersedia di pratinjau publik. Masalah yang diketahui adalah:

  • Menghitung speaker tidak tersedia: Jika Anda menggunakan Firefox, aplikasi Anda tidak dapat menghitung atau memilih speaker melalui manajer perangkat Communication Services. Dalam skenario ini, Anda harus memilih perangkat melalui sistem operasi.
  • Kamera virtual saat ini tidak didukung saat melakukan panggilan audio\video desktop Firefox.

Masalah umum iOS Chrome

Dukungan browser iOS Chrome sekarang tersedia di pratinjau publik. Masalah yang diketahui adalah:

  • Tidak ada audio keluar dan masuk saat beralih browser ke latar belakang atau mengunci perangkat. Masalah ini diperbaiki di iOS versi 16.4+.
  • Tidak ada audio masuk/keluar yang berasal dari headset bluetooth. Saat pengguna menyambungkan headset bluetooth di tengah panggilan Azure Communication Services, audio masih keluar dari speaker hingga pengguna mengunci dan membuka kunci telepon. Kami telah melihat masalah ini pada versi iOS yang lebih lama (15.6, 15.7), dan tidak dapat direproduksi di iOS 16.

iOS Safari menampilkan ukuran resolusi pratinjau kamera yang salah

Bug ini terjadi pada versi iOS 16.7 atau iOS 17 yang lebih lama dari 17.4 saat pengguna memutar ponsel mereka atau mengaktifkan/menonaktifkan video selama panggilan. Pratinjau kamera secara singkat menampilkan ukuran resolusi yang salah sebelum kembali normal. Masalah ini tidak dapat direproduksi pada iOS 17.4 Beta. Bug WebKit terkait di sini.

iOS 16 memperkenalkan bug saat menempatkan browser di latar belakang selama panggilan

Rilis iOS 16 memperkenalkan bug yang dapat menghentikan panggilan audio\video Azure Communication Services saat menggunakan browser seluler Safari. Apple menyadari masalah ini dan sedang mencari perbaikan di sisi mereka. Dampaknya bisa jadi panggilan Azure Communication Services mungkin berhenti berfungsi selama panggilan dan satu-satunya resolusi untuk membuatnya berfungsi lagi adalah membuat pelanggan akhir memulai ulang telepon mereka.

Untuk mereprodusi bug ini:

  • Meminta pengguna menggunakan i Telepon menjalankan iOS 16
  • Bergabung dengan panggilan Azure Communication Services (hanya dengan audio atau dengan audio dan video) menggunakan browser seluler Safari iOS
  • Jika selama panggilan seseorang menempatkan browser Safari di latar belakang dan melihat YouTube ATAU menerima FaceTime\panggilan telepon saat terhubung melalui perangkat Bluetooth

Hasil:

  • Setelah beberapa menit dari situasi ini, video masuk dan keluar mungkin berhenti berfungsi.
  • Satu-satunya cara untuk membuat panggilan Azure Communication Services berfungsi lagi adalah dengan meminta pengguna akhir memulai ulang ponsel mereka.

Chrome M98 - regresi

Chrome versi 98 memperkenalkan regresi dengan pembuatan keyframe video yang tidak normal yang memengaruhi resolusi aliran video yang dikirim secara negatif untuk sebagian besar (70%+) pengguna.

  • Regresi ini adalah masalah umum yang diperkenalkan pada Chromium

Saat melakukan panggilan PSTN, pengguna masih dapat mendengar audio dari panggilan ACS

Masalah ini terjadi ketika pengguna Android Chrome mengalami panggilan PSTN masuk Setelah menjawab panggilan PSTN, mikrofon dalam panggilan ACS dibisukan. Audio keluar panggilan ACS dibisukan, sehingga peserta lain tidak dapat mendengar pengguna yang merupakan panggilan PSTN. Perlu dicatat bahwa audio masuk pengguna tidak dibisukan, dan perilaku ini melekat pada browser.

Tidak ada audio masuk selama panggilan

Terkadang, pengguna dalam panggilan Azure Communication Services mungkin tidak dapat mendengar audio dari peserta jarak jauh. Ada bug Chromium terkait yang menyebabkan masalah ini, masalah dapat dimitigasi dengan menyambungkan kembali Peer Koneksi ion. Kami menambahkan solusi ini sejak SDK 1.9.1 (stabil) dan SDK 1.10.0 (beta).

Di Android Chrome, jika pengguna bergabung dengan panggilan Azure Communication Services beberapa kali, audio masuk juga dapat hilang. Pengguna tidak dapat mendengar audio dari peserta lain hingga halaman disegarkan. Kami memperbaiki masalah ini di SDK 1.10.1-beta.1, dan meningkatkan penggunaan sumber daya audio.

Beberapa perangkat Android gagal memanggil skenario kecuali untuk panggilan grup.

Banyak perangkat Android tertentu gagal memulai, menerima panggilan, dan rapat. Perangkat yang mengalami masalah ini, tidak dapat memulihkan dan gagal pada setiap upaya. Sebagian besar adalah perangkat Samsung model A, terutama model A326U, A125U dan A215U.

  • Regresi ini adalah masalah umum yang diperkenalkan pada Chromium.

Android Chrome mematikan suara panggilan setelah browser masuk ke latar belakang selama satu menit

Di Android Chrome, jika pengguna berada di panggilan Azure Communication Services dan menempatkan browser ke latar belakang selama satu menit. Mikrofon kehilangan akses dan peserta lain dalam panggilan tidak dapat mendengar audio dari pengguna. Setelah pengguna membawa browser ke latar depan, mikrofon tersedia lagi. Bug kromium terkait di sini dan di sini

Pengguna seluler (iOS dan Android) telah menghentikan panggilan tetapi masih muncul di daftar peserta.

Masalah dapat terjadi jika pengguna seluler meninggalkan panggilan grup Azure Communication Services tanpa menggunakan API Call.hangUp(). Saat pengguna seluler menutup browser atau me-refresh halaman web tanpa menutup telepon, peserta lain dalam panggilan grup masih dapat melihat pengguna seluler ini di daftar peserta selama sekitar 60 detik.

iOS Safari me-refresh halaman jika pengguna masuk ke aplikasi lain dan kembali ke browser

Masalah dapat terjadi jika pengguna dalam panggilan Azure Communication Services dengan iOS Safari, dan beralih ke aplikasi lain untuk sementara waktu. Setelah pengguna kembali ke browser, halaman browser dapat di-refresh. Ini karena OS mematikan browser. Salah satu cara untuk mengurangi masalah ini adalah dengan menjaga beberapa status dan memulihkan setelah refresh halaman.

Pengguna iOS 15.1 bergabung dengan panggilan grup atau rapat Microsoft Teams.

Mikrofon/kamera lokal dibisukan saat gangguan tertentu terjadi di iOS Safari dan Android Chrome.

Masalah ini dapat terjadi jika aplikasi lain atau sistem operasi mengambil alih kontrol mikrofon atau kamera. Berikut ini beberapa contoh yang mungkin terjadi saat pengguna sedang menelepon:

  • Panggilan masuk tiba melalui PSTN (Public Switched Telephone Network), dan menangkap akses perangkat mikrofon.
  • Pengguna memutar video YouTube, misalnya, atau memulai panggilan FaceTime. Beralih ke aplikasi asli lain dapat menangkap akses ke mikrofon atau kamera.
  • Pengguna memungkinkan Siri, yang mengambil akses ke mikrofon.

Di iOS, misalnya, saat berada di panggilan Azure Communication Services, jika panggilan PSTN masuk, maka mikrofonMutedUnexepectedly bad UFD dinaikkan dan audio berhenti mengalir dalam panggilan Azure Communication Services dan panggilan ditandai sebagai dibisukan. Setelah panggilan PSTN selesai, pengguna harus menyalakan suara panggilan Azure Communication Services untuk audio agar mulai mengalir lagi dalam panggilan Azure Communication Services. Dalam kasus Android Chrome saat panggilan PSTN masuk, audio berhenti mengalir dalam panggilan Azure Communication Services dan panggilan Azure Communication Services tidak ditandai sebagai dibisukan. Dalam hal ini, tidak ada mikrofonMutedUnexepectedly UFD peristiwa. Setelah panggilan PSTN selesai, Android Chrome mendapatkan kembali audio secara otomatis dan audio mulai mengalir normal lagi dalam panggilan Azure Communication Services.

Jika kamera aktif dan terjadi gangguan, panggilan Azure Communication Services mungkin atau mungkin tidak kehilangan kamera. Jika hilang maka kamera ditandai sebagai nonaktif dan pengguna harus menyalakannya kembali setelah gangguan melepaskan kamera.

Terkadang, mikrofon atau perangkat kamera tidak dirilis tepat waktu, dan itu dapat menyebabkan masalah dengan panggilan asli. Misalnya, jika pengguna mencoba untuk menyalakan suara saat menonton video YouTube, atau jika panggilan PSTN aktif secara bersamaan.

Aliran video masuk tidak berhenti dirender jika pengguna berada di iOS 15.2+ dan menggunakan SDK versi 1.4.1-beta.1+, langkah-langkah hidupkan/mulai video masih diperlukan untuk memulai ulang audio dan video keluar.

Untuk iOS 15.4+, audio dan video harus dapat pulih secara otomatis pada sebagian besar kasus. Pada beberapa kasus edge, untuk menyalakan suara, aplikasi harus memanggil API untuk 'menyalakan suara' (bisa sebagai akibat dari tindakan pengguna) untuk memulihkan audio keluar.

iOS dengan Safari mengalami crash dan merefresh halaman jika pengguna mencoba beralih dari kamera depan ke kamera belakang.

Azure Communication Services Calling SDK versi 1.2.3-beta.1 memperkenalkan bug yang memengaruhi semua panggilan yang dilakukan dari iOS Safari. Masalah terjadi ketika pengguna mencoba mengalihkan aliran video kamera dari depan ke belakang. Mengalihkan hasil kamera di browser Safari untuk crash dan memuat ulang halaman.

Masalah ini diperbaiki di Azure Communication Services Calling SDK versi 1.3.1-beta.1 +

  • Versi iOS Safari: 15.1

Berbagi layar di macOS Ventura Safari (v16.3 dan yang lebih rendah)

Berbagi layar tidak berfungsi di macOS Ventura Safari(v16.3 dan yang lebih rendah). Masalah yang diketahui dari Safari dan akan diperbaiki di v16.4+.

Merefresh halaman tidak segera menghapus pengguna dari panggilan mereka

Jika pengguna sedang dalam panggilan dan memutuskan untuk me-refresh halaman, layanan media Communication Services tidak segera menghapus pengguna ini dari panggilan. Ini menunggu pengguna untuk bergabung kembali. Pengguna dihapus dari panggilan setelah waktu layanan media habis.

Yang terbaik adalah membangun pengalaman pengguna yang tidak mengharuskan pengguna akhir untuk menyegarkan halaman aplikasi Anda saat dalam panggilan. Jika pengguna merefresh halaman, gunakan kembali ID pengguna Communication Services yang sama setelah pengguna tersebut kembali ke aplikasi. Dengan bergabung kembali dengan ID pengguna yang sama, pengguna diwakili sebagai objek yang sama dan ada dalam koleksi remoteParticipants. Dari perspektif peserta lain dalam panggilan, pengguna tetap dalam panggilan selama waktu yang dibutuhkan untuk merefresh halaman, hingga satu atau dua menit.

Jika pengguna mengirim video sebelum menyegarkan, videoStreams koleksi menyimpan informasi streaming sebelumnya hingga waktu layanan habis dan menghapusnya. Dalam skenario ini, aplikasi dapat memutuskan untuk mengamati streaming baru yang ditambahkan ke koleksi, dan merendernya dengan id tertinggi.

Tidak dimungkinkan untuk merender beberapa pratinjau dari beberapa perangkat di web

Masalah ini adalah batasan umum. Untuk mengetahui informasi selengkapnya, lihat Gambaran umum SDK panggilan.

Menghitung perangkat tidak dimungkinkan di Safari saat aplikasi berjalan di iOS atau iPadOS

Aplikasi tidak dapat menghitung atau memilih perangkat speaker (seperti Bluetooth) di Safari iOS atau iPadOS. Masalah ini adalah batasan yang diketahui dari sistem operasi ini.

Jika Anda menggunakan Safari di macOS, aplikasi Anda tidak dapat menghitung atau memilih speaker melalui manajer perangkat Communication Services. Dalam skenario ini, Anda harus memilih perangkat melalui sistem operasi. Jika Anda menggunakan Chrome di macOS, aplikasi dapat menghitung atau memilih perangkat melalui pengelola perangkat Communication Services.

  • Versi iOS Safari: 15.1

Berulang kali beralih perangkat video dapat menyebabkan streaming video berhenti sementara

Beralih antarperangkat video dapat menyebabkan streaming video Anda dijeda saat streaming diperoleh dari perangkat yang dipilih. Beralih antarperangkat sering dapat menyebabkan penurunan performa. Pengembang harus menghentikan satu aliran perangkat sebelum memulai yang lain adalah pilihan terbaik.

Bluetooth mikrofon headset tidak terdeteksi atau terdengar selama panggilan di Safari di iOS

Headset Bluetooth tidak didukung oleh Safari di iOS. Perangkat Bluetooth Anda tidak tercantum dalam opsi mikrofon yang tersedia, dan peserta lain tidak dapat mendengar Anda jika Anda mencoba menggunakan Bluetooth melalui Safari.

Regresi ini adalah batasan sistem operasi yang diketahui. Dengan Safari di macOS dan iOS/iPadOS, Anda tidak dapat menghitung atau memilih perangkat speaker melalui manajer perangkat Communication Services. Ini karena Safari tidak mendukung enumerasi atau pemilihan speaker. Dalam skenario ini, gunakan sistem operasi guna memperbarui pilihan perangkat Anda.

Rotasi perangkat dapat membuat kualitas video yang buruk

Saat pengguna memutar perangkat, gerakan ini dapat menurunkan kualitas video yang sedang streaming.

Masalah ini terjadi di lingkungan berikut:

  • Perangkat yang terpengaruh: Google Pixel 5, Google Pixel 3a, Apple iPad 8, dan Apple iPad X
  • Pustaka klien: Memanggil (JavaScript)
  • Browser: Safari, Chrome
  • Sistem operasi: iOS, Android

Pengalihan kamera membuat layar berhenti bekerja

Saat pengguna Communication Services bergabung dengan panggilan dengan menggunakan SDK panggilan JavaScript, lalu memilih tombol sakelar kamera, UI mungkin menjadi tidak responsif. Pengguna kemudian harus merefresh aplikasi, atau mendorong browser ke latar belakang.

Masalah ini terjadi di lingkungan berikut:

  • Perangkat terpengaruh: Google Pixel 4a
  • Pustaka klien: Memanggil (JavaScript)
  • Browser: Chrome
  • Sistem operasi: iOS, Android

Masalah sinyal video saat panggilan dalam keadaan terhubung

Jika pengguna mengaktifkan dan menonaktifkan video dengan cepat saat panggilan dalam status Koneksi, tindakan ini dapat menyebabkan masalah dengan aliran yang diperoleh untuk panggilan. Kami mendorong pengembang untuk membuat aplikasi mereka dengan cara yang tidak mengharuskan video diaktifkan/dinonaktifkan saat panggilan sedang dalam status Terhubung. Performa video yang terdegradasi mungkin terjadi dalam skenario berikut:

  • Jika pengguna memulai dengan audio, lalu memulai dan menghentikan video, saat panggilan dalam status Terhubung.
  • Jika pengguna memulai dengan audio, lalu memulai dan menghentikan video, saat panggilan dalam status Lobi.

Menyebutkan/mengakses perangkat untuk Safari di MacOS dan iOS

Di lingkungan tertentu, Anda mungkin memperhatikan bahwa izin perangkat diatur ulang setelah beberapa periode waktu. Di macOS dan iOS, Safari tidak menyimpan izin untuk waktu yang lama kecuali ada aliran yang diperoleh. Cara paling sederhana untuk mengatasi batasan ini adalah dengan memanggil DeviceManager.askDevicePermission() API, sebelum memanggil API enumerasi perangkat manajer perangkat. API enumerasi ini mencakup DeviceManager.getCameras(), DeviceManager.getSpeakers(), dan DeviceManager.getMicrophones(). Jika izin ada, pengguna tidak melihat apa pun. Jika izin tidak ada, pengguna akan dimintai izin lagi.

Masalah ini terjadi di lingkungan berikut:

  • Perangkat terpengaruh: iPhone
  • Pustaka klien: Memanggil (JavaScript)
  • Browser: Safari
  • Sistem operasi: iOS

Keterlambatan dalam merender video peserta jarak jauh

Selama panggilan grup yang sedang berlangsung, anggaplah Pengguna A mengirim video, lalu Pengguna B bergabung dalam panggilan. Terkadang, Pengguna B tidak melihat video dari Pengguna A, atau video Pengguna A mulai dirender setelah penundaan yang lama. Masalah konfigurasi lingkungan jaringan dapat menyebabkan penundaan ini. Untuk mengetahui informasi selengkapnya, lihat Rekomendasi jaringan.

Menggunakan pustaka pihak ketiga selama panggilan dapat mengakibatkan kehilangan audio

Jika Anda menggunakan getUserMedia secara terpisah di dalam aplikasi, aliran audio hilang. Aliran audio hilang karena pustaka pihak ketiga mengambil alih akses perangkat dari pustaka Azure Communication Services.

  • Jangan gunakan pustaka pihak ketiga yang menggunakan API getUserMedia secara internal selama panggilan.
  • Jika Anda masih perlu menggunakan pustaka pihak ketiga, satu-satunya cara untuk memulihkan aliran audio adalah dengan mengubah perangkat yang dipilih (jika pengguna memiliki lebih dari satu perangkat), atau untuk memulai ulang panggilan.

Masalah ini terjadi di lingkungan berikut:

  • Browser: Safari
  • Sistem operasi: iOS

Penyebab masalah ini mungkin adalah bahwa memperoleh aliran Anda sendiri dari perangkat yang sama memiliki efek samping saat berlari ke kondisi balapan. Memperoleh aliran dari perangkat lain dapat menyebabkan pengguna menjadi bandwidth USB/IO yang tidak memadai, dan sourceUnavailableError meroket tarif.

Penggunaan API tertentu yang berlebihan seperti mematikan suara/menyalakan suara menghasilkan pembatasan pada infrastruktur Azure Communication Services

Sebagai hasil dari panggilan API matikan/nyalakan suara, infrastruktur Azure Communication Services memberi tahu peserta lain dalam panggilan tentang status audio peserta lokal yang memanggil matikan/nyalakan suara, sehingga peserta dalam panggilan mengetahui siapa yang dibisukan/dinyalakan suaranya. Penggunaan bisu/menyalakan suara yang berlebihan diblokir di infrastruktur Azure Communication Services. Pembatasan terjadi jika peserta (atau aplikasi atas nama peserta) mencoba untuk mematikan suara/menyalakan suara terus menerus, setiap detik, lebih dari 15 kali di jendela bergulir 30 detik.

Api Automation Panggilan

Batasan berikut adalah masalah yang diketahui dalam API Automasi Panggilan Communication Services:

  • Satu-satunya autentikasi yang saat ini didukung untuk aplikasi server adalah dengan menggunakan string koneksi.

  • Lakukan panggilan hanya antarentitas dari sumber daya Communication Services yang sama. Komunikasi lintas sumber daya diblokir.

  • Panggilan antara pengguna penyewa Microsoft Teams dan pengguna Communication Services atau entitas aplikasi server tidak diizinkan.

  • Jika aplikasi memanggil dua atau beberapa identitas PSTN dan kemudian menghentikan panggilan, panggilan antara entitas PSTN lainnya terputus.

Bagian berikut ini menyediakan informasi tentang masalah umum yang terkait dengan Azure Communication Services Calling Native dan Native UI SDK.

Emulator Android API

Saat menggunakan emulator Android API di Android 5.0 (API level 21) dan Android 5.1 (API level 22), beberapa crash diharapkan.

Konflik modul Android Trouter

Saat Android Chat and Calling SDK bersama-sama dalam aplikasi yang sama, fitur pemberitahuan real time Chat SDK tidak berfungsi. Anda mungkin mendapatkan masalah penyelesaian dependensi.

Saat kami sedang mengerjakan solusi, Anda dapat menonaktifkan fitur pemberitahuan real-time dengan menambahkan informasi dependensi berikut dalam file build.gradle aplikasi dan sebaliknya melakukan polling GETMessages API untuk menampilkan pesan masuk kepada pengguna.

Java

 implementation ("com.azure.android:azure-communication-chat:1.0.0") {
     exclude group: 'com.microsoft', module: 'trouter-client-android'
 }
 implementation 'com.azure.android:azure-communication-calling:1.0.0'

Catatan: jika aplikasi mencoba menyentuh salah satu API pemberitahuan seperti chatAsyncClient.startRealtimeNotifications() atau chatAsyncClient.addEventHandler(), akan ada kesalahan runtime.

Gambar video berkelanjutan iOS dalam Gambar (PiP)

Video masuk berhenti saat aplikasi masuk ke latar belakang. Jika aplikasi berada di latar depan, video akan dirender dengan benar.

iOS menjawab panggilan masuk melalui CallKit

Pengaturan audio keluar tidak akan berlaku saat CallKit diaktifkan dan pengguna menjawab panggilan masuk melalui CallKit secara langsung.

Pustaka UI

Anda dapat mengikuti halaman wiki masalah yang diketahui di repositori GitHub.