Mulai Android 12, Android menyertakan dukungan untuk Konfigurasi Hak Layanan TS.43, spesifikasi GSMA yang menentukan langkah verifikasi hak untuk aktivasi layanan termasuk, Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE), SMS over IP (SMSoIP), Aktivasi Layanan di Perangkat (ODSA) untuk perangkat pendamping eSIM (yang 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 hak ini memungkinkan perangkat mengkueri server hak operator seperti yang ditentukan oleh spesifikasi GSMA TS.43 untuk status hak 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. Dengan mengadopsi fitur ini, Anda akan mendapatkan manfaat berikut:
- Mengurangi biaya pengujian dan sertifikasi untuk operator karena fitur hak ini dapat digunakan di beberapa produk dan OEM.
- Mengurangi overhead pengembangan bagi produsen perangkat melalui aplikasi Android standar.
- Memungkinkan produsen perangkat dan operator untuk memberikan kontribusi kode untuk fitur tersebut karena fitur ini bersifat open source.
- Menyediakan pengelolaan alamat darurat untuk operator Amerika Utara.
Arsitektur
Gambar berikut menjelaskan arsitektur dan perilaku fitur hak layanan IMS.
Gambar 1. Arsitektur fitur pemberian hak TS.43
Seperti yang ditunjukkan pada Gambar 1, arsitektur fitur hak layanan IMS mencakup komponen berikut:
service_entitlement
Library statis TS.43 Service API: Library ini mengimplementasikan spesifikasi TS.43, berinteraksi dengan server hak operator, dan mengekspos API yang menghadap aplikasi untuk setiap kasus penggunaan TS.43.ImsServiceEntitlement
aplikasi klien: Aplikasi ini menggunakan TS.43 Service API. Aplikasi ini menerapkan elemen UI, termasuk tampilan web untuk merender portal layanan operator agar pengguna dapat mengaktifkan layanan dan berinteraksi dengan komponen Android lainnya untuk mengelola pengalaman pengguna secara menyeluruh.Untuk mengetahui informasi selengkapnya tentang cara mengonfigurasi Android agar dapat bekerja dengan server pemberian hak berbasis TS.43 operator, lihat aplikasi ImsServiceEntitlement.
Baris bernomor dalam Gambar 1 menunjukkan cara komponen fitur pemberian hak layanan IMS berkomunikasi satu sama lain. Berikut ini menjelaskan setiap langkah yang diberi label:
(1) Aplikasi klien memanggil TS.43 service API untuk memulai permintaan hak layanan.
(2) TS.43 service API mengirim permintaan HTTP ke server hak operator untuk memulai tantangan EAP-AKA.
(3) TS.43 service API memanggil API teleponi (misalnya,
getIccAuthentication
)
untuk menyelesaikan respons tantangan EAP-AKA.
(4) Layanan TS.43 menerima data konfigurasi atau hak layanan dari server hak operator setelah respons EAP-AKA diverifikasi.
(5) Layanan TS.43 menampilkan data konfigurasi atau hak layanan ke aplikasi klien.
(6) Aplikasi klien menangani data dan secara opsional merender portal layanan operator agar pengguna dapat menyelesaikan aktivasi layanan.
Integrasi
Bagian ini menjelaskan proses mengintegrasikan library service_entitlement
dan aplikasi ImsServiceEntitlement
.
Karena tidak ada dependensi API Android 12, library
service_entitlement
dan aplikasi ImsServiceEntitlement
dapat di-backport
ke platform Android yang lebih lama.
service_entitlement library
Karena library service_entitlement
ditautkan secara statis ke
ImsServiceEntitlement app
, tidak ada langkah tambahan yang diperlukan untuk mengintegrasikan
library ke aplikasi ImsServiceEntitlement
.
Library service_entitlement
dapat diintegrasikan dengan aplikasi Anda sendiri untuk kasus penggunaan TS.43 seperti paket data dan ODSA. Library juga dapat diintegrasikan ke dalam aplikasi untuk kasus penggunaan pemberian hak non-TS.43 berdasarkan protokol EAP-AKA.
Berikut ini deskripsi API yang akan digunakan untuk kasus penggunaan tersebut:
- Aplikasi TS.43 menggunakan protokol HTTP TS.43 yang diimplementasikan di library:
Gunakan API di class
ServiceEntitlement
- Aplikasi non-TS.43 yang menggunakan protokol EAP-AKA yang diterapkan di library: Gunakan
API yang diekspos di class
EapAkaHelper
Aplikasi ImsServiceEntitlement
Secara default, Android menyertakan aplikasi ImsServiceEntitlement
yang diinstal di
partisi produk sebagai aplikasi 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 diperlukan oleh operator. |
KEY_SHOW_VOWIFI_WEBVIEW_BOOL |
Setel ke true jika operator mewajibkan UI portal web bagi pengguna untuk mendaftar layanan VoWiFi. Misalnya, menyetujui persyaratan dan ketentuan atau memasukkan alamat darurat.Hal ini biasanya diperlukan oleh operator di Amerika Utara. |
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING |
Tetapkan ke
com.android.imsserviceentitlement/.WfcActivationActivity , jika
KEY_SHOW_VOWIFI_WEBVIEW_BOOL adalah true . |
KEY_IMS_PROVISIONING_BOOL |
Disetel ke true jika operator memerlukan penyediaan jaringan layanan IMS
(VoLTE/VoWiFi/SMSoIP) di latar belakang.Hal ini diperlukan oleh operator tertentu di Eropa. |
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL |
Tetapkan ke true jika KEY_IMS_PROVISIONING_BOOL
adalah true . |
Traffic HTTP ke server hak dan portal web operator berjalan melalui jaringan default, misalnya, data seluler atau Wi-Fi default.
Partner GMS: Operator berikut didukung oleh aplikasi pemberian hak TS.43 di Android 12, sesuai dengan spesifikasi TS.43 v5.0:
- Amerika Serikat: CSpire, US Cellular, Cellcom
- Prancis: Orange
UI sistem tambahan untuk penyediaan IMS
Bagian ini menjelaskan cara OEM dapat mendukung elemen UI sistem tambahan yang terkait dengan penyediaan layanan IMS (misalnya, saat menampilkan notifikasi saat VoWiFi disediakan).
Aplikasi ImsServiceEntitlement
menetapkan status penyediaan VoWiFi ke dalam
platform menggunakan
ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE,
value)
API sistem. 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 menggunakan
getProvisioningIntValue
atau dengan mendaftarkan callback untuk memantau perubahan status penyediaan melalui
registerProvisioningChangedCallback
.
Mengganti konfigurasi untuk pengujian
Gunakan prosedur berikut untuk mengubah sementara ImsServiceEntitlement
perilaku aplikasi untuk tujuan pengujian. Untuk mengetahui detail tentang cara mengganti konfigurasi operator, lihat Mengganti konfigurasi operator.
Melewati 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 tetapkan nilainya ke string kosong.
Melewati penyediaan IMS
Untuk melewati penyediaan IMS, membuat layanan IMS tersedia, dan mengizinkan pengguna
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 tetapkan nilainya ke string URL yang diharapkan. Anda harus menyertakan awalan
https://
.
Mengganti konfigurasi operator
Mulai Android 11, perintah penggantian konfigurasi operator sudah tersedia dan dapat digunakan dengan hak istimewa 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 selengkapnya, jalankan perintah berikut:
adb shell cmd phone cc