Diritto per il servizio 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 del diritto per l'attivazione di servizi come Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE), SMS over IP (SMSoIP), attivazione del servizio sul dispositivo (ODSA) di dispositivi companion eSIM (associati al dispositivo richiedente) e informazioni sul piano di dati.

Per supportare questa specifica, Android fornisce una funzionalità relativa ai 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à dei diritti consente al dispositivo di eseguire query sul 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:

  • Riducono i costi di test e certificazione per gli operatori perché questa funzionalità dei diritti può essere utilizzata su più prodotti e OEM.
  • Riduce l'overhead di sviluppo per i produttori di dispositivi tramite un'app Android standard.
  • Consente ai produttori di dispositivi e agli operatori di contribuire con il codice per la 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à dei 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 TS.43 Service:questa libreria implementa la specifica TS.43, interagisce con il server dei diritti di un operatore ed espone le API rivolte all'app per ogni caso d'uso di TS.43.
  • App client ImsServiceEntitlement: questa app utilizza l'API TS.43 Service. L'app implementa elementi dell'interfaccia utente, tra cui le visualizzazioni web per il rendering del portale dei 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 in modo che funzioni con il server dei diritti basato su TS.43 di un operatore, consulta l'app ImsServiceEntitlement.

Le linee numerate nella Figura 1 mostrano in che modo i componenti della funzionalità dei diritti di servizio IMS comunicano tra loro. Di seguito viene descritto ogni passaggio come indicato:

(1) L'app client invoca l'API di servizio TS.43 per avviare una richiesta di diritto di servizio.

(2) L'API di servizio TS.43 invia una richiesta HTTP al server dei diritti dell'operatore per avviare una verifica EAP-AKA.

(3) L'API di servizio TS.43 richiama le API di telefonia (ad esempio getIccAuthentication) per completare la sfida/risposta EAP-AKA.

(4) Il servizio TS.43 riceve i dati di configurazione o del diritto di servizio dal server dei diritti dell'operatore dopo la verifica della risposta EAP-AKA.

(5) Il servizio TS.43 restituisce il diritto di servizio o i dati di configurazione all'app client.

(6) L'app client gestisce i dati e, facoltativamente, mostra il portale del servizio dell'operatore per consentire all'utente di completare l'attivazione del servizio.

Integrazione

Questa sezione descrive la procedura per integrare la libreria service_entitlement e l'app ImsServiceEntitlement.

Poiché non esiste alcuna dipendenza dall'API Android 12, la biblioteca service_entitlement e l'app ImsServiceEntitlement possono essere sottoposte a backport alle piattaforme Android precedenti.

Libreria service_entitlement

Poiché la libreria service_entitlement è collegata in modo statico a ImsServiceEntitlement app, non sono necessari ulteriori passaggi per integrarla nell'app ImsServiceEntitlement.

La libreria service_entitlement può essere integrata con le tue app per casi d'uso TS.43 come piani dati e ODSA. La libreria può essere integrata anche 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: usa le API esposte nella classe EapAkaHelper

App ImsServiceEntitlement

Per impostazione predefinita, Android include l'app ImsServiceEntitlement 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 il corriere non richiede FCM.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL Imposta su true se l'operatore richiede una UI del portale web per consentire agli utenti di registrarsi al servizio VoWiFi. Ad esempio, acconsentire a termini e 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.

Questa operazione è richiesta 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 Wi-Fi o dati mobili predefiniti.

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

UI di sistema aggiuntiva per il provisioning IMS

Questa sezione descrive in che modo gli OEM possono supportare elementi aggiuntivi dell'interfaccia utente di sistema correlati al provisioning del servizio IMS (ad esempio, quando viene visualizzata una notifica quando viene eseguito il provisioning di VoWiFi).

L'app ImsServiceEntitlement imposta lo stato del provisioning VoWiFi nella piattaforma utilizzando l'API di sistema ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value). 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 del provisioning utilizzando getProvisioningIntValue o registrando un callback per monitorare la modifica dello stato del provisioning tramite registerProvisioningChangedCallback.

Sostituire le configurazioni per i test

Utilizza le seguenti procedure per modificare temporaneamente il comportamento dell'ImsServiceEntitlement app a scopo di test. Per informazioni dettagliate su come eseguire l'override delle configurazioni dell'operatore, consulta Eseguire l'override delle configurazioni dell'operatore.

Salta il processo di registrazione a VoWiFi

Per saltare la procedura di registrazione VoWiFi, in modo da attivare direttamente VoWiFi, override la configurazione dell'operatore KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING e imposta il relativo valore su una stringa vuota.

Saltare il provisioning di IMS

Per saltare il provisioning di IMS, rendendo disponibili i servizi IMS e consentendo agli utenti di attivarli senza il provisioning della rete, sostituisci la configurazione dell'operatore KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL e imposta il relativo valore su false.

Modifica 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 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 seguente comando è un esempio di come eseguire l'override della chiave di configurazione dell'operatore carrier_volte_provisioning_required_bool e impostarne il valore su false. Puoi eseguire il comando più volte per eseguire l'override di più configurazioni.

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

Per cancellare tutte le sostituzioni, utilizza il seguente comando:

adb shell cmd phone cc clear-values

Per ulteriori informazioni, esegui questo comando:

adb shell cmd phone cc