Diritti per i servizi IMS

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.

Funzionalità di diritti TS.43

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_entitlement Libreria 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.
  • ImsServiceEntitlement app 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 root
adb 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-values

Per ulteriori informazioni, esegui il seguente comando:

adb shell cmd phone cc