Hak Layanan IMS

Mulai Android 12, Android menyertakan dukungan untuk Konfigurasi Kepemilikan Layanan TS.43 , spesifikasi GSMA yang menentukan langkah verifikasi hak untuk aktivasi layanan termasuk, Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE) , SMS melalui IP (SMSoIP), Aktivasi Layanan Pada Perangkat (ODSA) perangkat pendamping eSIM (terkait dengan perangkat yang meminta) dan informasi paket data.

Untuk mendukung spesifikasi ini, Android menyediakan fitur hak layanan IMS yang memungkinkan penyedia layanan memberi tahu perangkat seluler tentang status layanan jaringan IP Multimedia Subsystem (IMS). Fitur penetapan ini memungkinkan perangkat untuk menanyakan server penetapan operator seperti yang ditentukan oleh spesifikasi GSMA TS.43 untuk status penetapan IMS menggunakan autentikasi EAP-AKA tanpa mengharuskan pengguna memasukkan kredensial apa pun secara manual.

Operator dengan server hak IMS dapat menggunakan fitur hak layanan IMS untuk penyediaan layanan. Mengadopsi fitur ini memberikan manfaat berikut:

  • Mengurangi biaya pengujian dan sertifikasi bagi operator karena fitur hak ini dapat digunakan di beberapa produk dan OEM.
  • Mengurangi overhead pengembangan bagi produsen perangkat melalui aplikasi Android standar.
  • Mengizinkan produsen dan operator perangkat menyumbangkan kode untuk fitur tersebut karena fitur tersebut bersifat sumber terbuka.
  • Menyediakan manajemen alamat darurat untuk operator Amerika Utara.

Arsitektur

Gambar berikut menjelaskan arsitektur dan perilaku fitur penetapan layanan IMS.

Fitur hak TS.43

Gambar 1. Arsitektur fitur hak TS.43

Seperti yang ditunjukkan pada Gambar 1, arsitektur fitur penetapan layanan IMS mencakup komponen berikut:

  • service_entitlement TS.43 Pustaka statis API layanan : Pustaka ini mengimplementasikan spesifikasi TS.43, berinteraksi dengan server hak operator, dan mengekspos API yang menghadap aplikasi untuk setiap kasus penggunaan TS.43.
  • Aplikasi klien ImsServiceEntitlement : Aplikasi ini menggunakan API Layanan TS.43. Aplikasi ini mengimplementasikan elemen UI termasuk tampilan web untuk merender portal layanan operator bagi pengguna untuk mengaktifkan layanan dan berinteraksi dengan komponen Android lainnya untuk mengelola pengalaman pengguna secara menyeluruh.

    Untuk informasi lebih lanjut tentang cara mengonfigurasi Android agar berfungsi dengan server hak berbasis TS.43 milik operator, lihat aplikasi ImsServiceEntitlement .

Baris bernomor pada Gambar 1 menunjukkan bagaimana komponen fitur hak layanan IMS berkomunikasi satu sama lain. Berikut ini penjelasan masing-masing langkah sebagaimana diberi label:

(1) Aplikasi klien memanggil API layanan TS.43 untuk memulai permintaan hak layanan.

(2) API layanan TS.43 mengirimkan permintaan HTTP ke server hak operator untuk memulai tantangan EAP-AKA.

(3) API layanan TS.43 memanggil API telepon (misalnya, getIccAuthentication ) untuk menyelesaikan respons tantangan EAP-AKA.

(4) Layanan TS.43 menerima hak layanan atau data konfigurasi dari server hak operator setelah respons EAP-AKA diverifikasi.

(5) Layanan TS.43 mengembalikan hak layanan atau data konfigurasi ke aplikasi klien.

(6) Aplikasi klien menangani data dan secara opsional merender portal layanan operator bagi pengguna untuk menyelesaikan aktivasi layanan.

Integrasi

Bagian ini menjelaskan proses untuk mengintegrasikan perpustakaan service_entitlement dan aplikasi ImsServiceEntitlement .

Karena tidak ada ketergantungan API Android 12, pustaka service_entitlement dan aplikasi ImsServiceEntitlement dapat di-backport ke platform Android lama.

perpustakaan service_entitlement

Karena pustaka service_entitlement ditautkan secara statis ke ImsServiceEntitlement app , tidak ada langkah tambahan yang diperlukan untuk mengintegrasikan pustaka ke dalam aplikasi ImsServiceEntitlement .

Pustaka service_entitlement dapat diintegrasikan dengan aplikasi Anda sendiri untuk kasus penggunaan TS.43 seperti paket data dan ODSA. Perpustakaan juga dapat diintegrasikan ke dalam aplikasi untuk kasus penggunaan hak non-TS.43 berdasarkan protokol EAP-AKA.

Berikut ini penjelasan tentang API yang akan digunakan untuk kasus penggunaan tersebut:

  • Aplikasi TS.43 menggunakan protokol HTTP TS.43 yang diimplementasikan di perpustakaan: Gunakan API di kelas ServiceEntitlement
  • Aplikasi non-TS.43 menggunakan protokol EAP-AKA yang diimplementasikan di perpustakaan: Gunakan API yang diekspos di kelas EapAkaHelper

Aplikasi ImsServiceEntitlement

Secara default, Android menyertakan aplikasi ImsServiceEntitlement yang diinstal di partisi produk sebagai aplikasi dengan hak istimewa. Untuk mengonfigurasi aplikasi, gunakan kunci CarrierConfig berikut:

Kunci Nilai
KEY_ENTITLEMENT_SERVER_URL_STRING URL server hak operator. Awalan https:// harus disertakan.
KEY_FCM_SENDER_ID_STRING ID pengirim FCM operator.

Jangan tetapkan nilai ini jika FCM tidak diwajibkan oleh operator.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL Disetel ke true jika operator memerlukan UI portal web bagi pengguna untuk mendaftar layanan VoWiFi. Misalnya, menyetujui syarat dan ketentuan atau memasukkan alamat darurat.

Hal ini biasanya diperlukan oleh operator di Amerika Utara.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
Setel ke com.android.imsserviceentitlement/.WfcActivationActivity , jika KEY_SHOW_VOWIFI_WEBVIEW_BOOL adalah true .
KEY_IMS_PROVISIONING_BOOL Disetel ke true jika operator memerlukan provisi jaringan layanan IMS (VoLTE/VoWiFi/SMSoIP) di latar belakang.

Hal ini diwajibkan oleh operator Eropa tertentu.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL Setel ke true jika KEY_IMS_PROVISIONING_BOOL adalah true .

Lalu lintas HTTP ke server hak operator dan portal web melewati jaringan default, misalnya data seluler default atau Wi-Fi.

Mitra GMS: Operator berikut didukung oleh aplikasi hak TS.43 di Android 12, mengikuti spesifikasi TS.43 v5.0:

  • AS: CSpire, Seluler AS, Cellcom
  • Perancis: Oranye

UI sistem tambahan untuk penyediaan IMS

Bagian ini menjelaskan bagaimana OEM dapat mendukung elemen UI sistem tambahan yang terkait dengan penyediaan layanan IMS (misalnya, saat menampilkan pemberitahuan saat VoWiFi disediakan).

Aplikasi ImsServiceEntitlement menetapkan status penyediaan VoWiFi ke dalam platform menggunakan API sistem ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) . API ini juga digunakan untuk VoLTE (dengan KEY_VOLTE_PROVISIONING_STATUS ) dan SMSoIP (dengan KEY_SMS_OVER_IP_ENABLED ).

UI sistem kemudian dapat membaca status penyediaan dengan menggunakan getProvisioningIntValue atau dengan mendaftarkan callback untuk memantau perubahan status penyediaan melalui registerProvisioningChangedCallback .

Mengganti konfigurasi untuk pengujian

Gunakan prosedur berikut untuk mengubah sementara perilaku aplikasi ImsServiceEntitlement untuk tujuan pengujian. Untuk detail tentang cara mengganti konfigurasi operator, lihat Mengganti konfigurasi operator .

Melewatkan proses pendaftaran VoWiFi

Untuk melewati proses pendaftaran VoWiFi, sehingga VoWiFi dapat diaktifkan secara langsung, ganti konfigurasi operator KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING dan setel nilainya ke string kosong.

Melewatkan penyediaan IMS

Untuk melewati penyediaan IMS, membuat layanan IMS tersedia dan memungkinkan pengguna untuk mengaktifkan layanan tersebut tanpa penyediaan jaringan, ganti konfigurasi operator KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL dan tetapkan nilainya ke false .

Mengubah URL server hak

Untuk mengubah URL server hak, ganti konfigurasi operator KEY_ENTITLEMENT_SERVER_URL_STRING dan setel nilainya ke string URL yang diharapkan. Anda harus menyertakan awalan https:// .

Mengganti konfigurasi operator

Mulai Android 11, perintah penggantian konfigurasi operator sudah ada di dalamnya dan tersedia dengan hak akses root.

Perintah berikut adalah contoh cara mengganti kunci konfigurasi operator carrier_volte_provisioning_required_bool dan menetapkan nilainya ke false . Anda dapat menjalankan perintah beberapa kali untuk mengganti beberapa konfigurasi.

adb root
adb shell cmd phone cc set-value -p carrier_volte_provisioning_required_bool false

Untuk menghapus semua penggantian, gunakan perintah berikut:

adb shell cmd phone cc clear-values

Untuk mendapatkan informasi lebih lanjut, jalankan perintah berikut:

adb shell cmd phone cc