A partire da Android 12, Android include il supporto per la configurazione dei diritti di servizio TS.43, una specifica GSMA che definisce il passaggio di verifica dei diritti per l'attivazione dei servizi, tra cui Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE), SMS over IP (SMSoIP), On-Device Service Activation (ODSA) dei dispositivi complementari eSIM (associati al dispositivo richiedente) e informazioni sul piano dati.
Per supportare questa specifica, Android fornisce una funzionalità di diritti di servizio IMS che consente a un fornitore di servizi di informare i dispositivi mobili sullo stato dei servizi di rete IP Multimedia Subsystem (IMS). Questa funzionalità di diritti consente al dispositivo di inviare query al server dei diritti dell'operatore come definito dalla specifica GSMA TS.43 per lo stato dei diritti IMS utilizzando l'autenticazione EAP-AKA senza richiedere agli utenti di inserire manualmente le credenziali.
Gli operatori con server dei diritti IMS possono utilizzare la funzionalità dei diritti di servizio IMS per il provisioning dei servizi. L'adozione della funzionalità offre i seguenti vantaggi:
- Riduce i costi di test e certificazione per gli operatori perché questa funzionalità dei diritti può essere utilizzata su più prodotti e OEM.
- Riduce il sovraccarico di sviluppo per i produttori di dispositivi tramite un'app per Android standard.
- Consente ai produttori di dispositivi e agli operatori di contribuire al codice della funzionalità, poiché è open source.
- Fornisce la gestione degli indirizzi di emergenza per gli operatori nordamericani.
Architettura
La figura seguente descrive l'architettura e il comportamento della funzionalità dei diritti di servizio IMS.
Figura 1. Architettura della funzionalità dei diritti TS.43
Come mostrato nella Figura 1, l'architettura della funzionalità dei diritti di servizio IMS include i seguenti componenti:
service_entitlementLibreria statica dell'API di servizio TS.43: questa libreria implementa la specifica TS.43, interagisce con il server dei diritti di un operatore ed espone le API rivolte alle app per ogni caso d'uso TS.43.ImsServiceEntitlementapp client: questa app utilizza l'API di servizio TS.43. L'app implementa gli elementi dell'interfaccia utente, tra cui le visualizzazioni web per il rendering del portale di servizi dell'operatore in modo che gli utenti possano attivare i servizi e interagisce con altri componenti Android per gestire l'esperienza utente end-to-end.Per ulteriori informazioni su come configurare Android per funzionare con il server dei diritti basato su TS.43 di un operatore, vedi App ImsServiceEntitlement.
Le righe numerate nella Figura 1 mostrano come i componenti della funzionalità dei diritti di servizio IMS comunicano tra loro. Di seguito sono descritti i passaggi etichettati:
(1) L'app client richiama l'API di servizio TS.43 per avviare una richiesta di diritti di servizio.
(2) L'API di servizio TS.43 invia una richiesta HTTP al server dei diritti dell'operatore per avviare un challenge EAP-AKA.
(3) L'API di servizio TS.43 richiama le API di telefonia (ad esempio,
getIccAuthentication) per completare la risposta al challenge EAP-AKA.
(4) Il servizio TS.43 riceve i dati dei diritti di servizio o di configurazione dal server dei diritti dell'operatore dopo la verifica della risposta EAP-AKA.
(5) Il servizio TS.43 restituisce i dati dei diritti di servizio o di configurazione all'app client.
(6) L'app client gestisce i dati e, facoltativamente, esegue il rendering del portale di servizi dell'operatore in modo che l'utente possa completare l'attivazione del servizio.
Integrazione
Questa sezione descrive la procedura per integrare la libreria service_entitlement e l'app ImsServiceEntitlement.
Poiché non esiste una dipendenza dall'API Android 12, la libreria service_entitlement e l'app ImsServiceEntitlement possono essere sottoposte a backport su piattaforme Android precedenti.
Libreria service_entitlement
Poiché la libreria service_entitlement è collegata staticamente all'app ImsServiceEntitlement, non sono necessari passaggi aggiuntivi per integrare la libreria nell'app ImsServiceEntitlement.
La libreria service_entitlement può essere integrata nelle tue app per i casi d'uso TS.43, come il piano dati e ODSA. La libreria può anche essere integrata in un'app per casi d'uso dei diritti non TS.43 basati sul protocollo EAP-AKA.
Di seguito sono descritte le API da utilizzare per questi casi d'uso:
- App TS.43 che utilizza il protocollo HTTP TS.43 implementato nella libreria: utilizza le API nella classe
ServiceEntitlement. - App non TS.43 che utilizza il protocollo EAP-AKA implementato nella libreria: utilizza le API esposte nella classe
EapAkaHelper.
App ImsServiceEntitlement
Per impostazione predefinita, Android include l'ImsServiceEntitlement app installata nella
partizione del prodotto come app con privilegi. Per configurare l'app, utilizza le
seguenti chiavi CarrierConfig:
| Chiave | Valore |
|---|---|
KEY_ENTITLEMENT_SERVER_URL_STRING |
URL del server dei diritti dell'operatore. Il prefisso https:// deve essere incluso. |
KEY_FCM_SENDER_ID_STRING |
ID mittente FCM dell'operatore. Non impostare questo valore se FCM non è richiesto dall'operatore. |
KEY_SHOW_VOWIFI_WEBVIEW_BOOL |
Imposta su true se l'operatore richiede un'interfaccia utente del portale web per consentire agli utenti di registrarsi al servizio VoWiFi. Ad esempio, accettare i termini e le condizioni o inserire un indirizzo di emergenza.In genere, questo è richiesto dagli operatori in Nord America. |
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING |
Imposta su com.android.imsserviceentitlement/.WfcActivationActivity, se KEY_SHOW_VOWIFI_WEBVIEW_BOOL è true. |
KEY_IMS_PROVISIONING_BOOL |
Imposta su true se l'operatore richiede il provisioning di rete dei servizi IMS (VoLTE/VoWiFi/SMSoIP) in background.Questo è richiesto da alcuni operatori europei. |
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL |
Imposta su true se KEY_IMS_PROVISIONING_BOOL è true. |
Il traffico HTTP verso il server dei diritti e il portale web di un operatore passa attraverso la rete predefinita, ad esempio i dati mobili predefiniti o il Wi-Fi.
Partner GMS: i seguenti operatori sono supportati dall'app dei diritti TS.43 in Android 12, in base alla specifica TS.43 v5.0:
- Stati Uniti: CSpire, US Cellular, Cellcom
- Francia: Orange
Interfaccia utente di sistema aggiuntiva per il provisioning IMS
Questa sezione descrive come gli OEM possono supportare elementi dell'interfaccia utente di sistema aggiuntivi relativi al provisioning dei servizi IMS (ad esempio, quando viene mostrata una notifica quando viene eseguito il provisioning di VoWiFi).
L'app ImsServiceEntitlement imposta lo stato di provisioning VoWiFi nella
piattaforma utilizzando l'
ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value)
API di sistema. Questa API viene utilizzata anche per VoLTE (con KEY_VOLTE_PROVISIONING_STATUS) e SMSoIP (con KEY_SMS_OVER_IP_ENABLED).
L'interfaccia utente di sistema può quindi leggere lo stato di provisioning utilizzando
getProvisioningIntValue o registrando un callback per monitorare la
modifica dello stato di provisioning tramite registerProvisioningChangedCallback.
Override delle configurazioni per i test
Utilizza le seguenti procedure per modificare temporaneamente il comportamento dell'app ImsServiceEntitlement a scopo di test. Per i dettagli su come sostituire le configurazioni dell'operatore, vedi Sostituire le configurazioni dell'operatore.
Saltare la procedura di registrazione VoWiFi
Per saltare la procedura di registrazione VoWiFi, consentendo l'attivazione diretta di VoWiFi,
sostituisci la configurazione dell'operatore
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING e imposta il relativo valore su una
stringa vuota.
Saltare il provisioning IMS
Per saltare il provisioning IMS, rendendo disponibili i servizi IMS e consentendo agli utenti di
attivare questi servizi senza provisioning di rete, sostituisci la configurazione dell'operatore
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL e imposta il relativo valore su
false.
Modificare l'URL del server dei diritti
Per modificare l'URL del server dei diritti, sostituisci la configurazione dell'operatore
KEY_ENTITLEMENT_SERVER_URL_STRING e imposta il relativo valore sulla stringa dell'URL prevista. Devi includere il prefisso https://.
Sostituire le configurazioni dell'operatore
A partire da Android 11, i comandi di override della configurazione dell'operatore sono integrati e disponibili con i privilegi di root.
Il comando seguente è un esempio di come sostituire la chiave di configurazione dell'operatore carrier_volte_provisioning_required_bool e impostare il relativo valore su false. Puoi eseguire il comando più volte per sostituire più configurazioni.
adb rootadb shell cmd phone cc set-value -p carrier_volte_provisioning_required_bool false
Per cancellare tutti gli override, utilizza il seguente comando:
adb shell cmd phone cc clear-valuesPer ulteriori informazioni, esegui il seguente comando:
adb shell cmd phone cc