Diritto del servizio IMS

A partire da Android 12, Android include il supporto per la Configurazione dei diritti del servizio TS.43, una specifica GSMA che definisce il passaggio di verifica del diritto 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 associati e dati del piano di informazioni eSIM (On-Device Service Activation (ODSA) dei dispositivi associati) (dati associati).

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 del diritto 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à relativa ai diritti può essere utilizzata su più prodotti e OEM.
  • Riduce l'overhead 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à, dal momento che è open source.
  • Fornisce la gestione degli indirizzi di emergenza per gli operatori del Nord America.

Architettura

La figura seguente descrive l'architettura e il comportamento della funzionalità dei diritti di servizio IMS.

Funzionalità relativa ai diritti TS.43

Figura 1. Architettura delle funzionalità dei diritti TS.43

Come mostrato nella Figura 1, l'architettura della funzionalità relativa ai 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 UI inclusi i componenti WebView 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 maggiori informazioni su come configurare Android in modo che funzioni con il server dei diritti basato su TS.43 di un operatore, consulta App ImsServiceEntitlement.

Le righe numerate nella Figura 1 mostrano come i componenti della funzionalità dei diritti di servizio IMS comunicano tra loro. Di seguito vengono descritti tutti i passaggi come etichettato:

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

(2) L'API del 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 risposta alla sfida EAP-AKA.

(4) Il servizio TS.43 riceve i diritti di servizio o i dati di configurazione 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, esegue il rendering del portale di 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.

In assenza di dipendenze dell'API Android 12, è possibile eseguire il backporting della libreria service_entitlement e dell'app ImsServiceEntitlement su piattaforme Android precedenti.

libreria dei diritti di servizio

Poiché la libreria service_entitlement è collegata in modo statico in 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 di TS.43, come piano dati e contenuti a scopo formativo, documentaristico, scientifico o artistico. La libreria può anche essere integrata in un'app per casi d'uso relativi ai diritti non TS.43 basati sul protocollo EAP-AKA.

Di seguito vengono descritte le API da utilizzare per questi casi d'uso:

  • App TS.43 con 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 l'operatore FCM non è richiesto.
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.

Questa operazione è generalmente richiesta dagli operatori del Nord America.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
Impostato 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 con diritti TS.43 in Android 12, secondo la specifica TS.43 v5.0:

  • Stati Uniti: CSpire, US Cellular, Cellcom
  • Francia: arancione

UI di sistema aggiuntiva per il provisioning IMS

Questa sezione descrive in che modo gli OEM possono supportare elementi UI 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 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).

La UI di sistema può quindi leggere lo stato del provisioning utilizzando getProvisioningIntValue o registrando un callback per monitorare la modifica dello stato del provisioning fino al giorno registerProvisioningChangedCallback.

Override delle configurazioni per i test

Utilizza le seguenti procedure per modificare temporaneamente il comportamento dell'app ImsServiceEntitlement a scopo di test. Per maggiori dettagli su come eseguire l'override delle configurazioni degli operatori, consulta l'argomento Ignorare le configurazioni degli operatori.

Ignorare la procedura di registrazione a VoWiFi

Per saltare la procedura di registrazione a VoWiFi e consentire l'attivazione diretta di VoWiFi, esegui l'override della configurazione dell'operatore KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING e imposta il valore su una stringa vuota.

Salta il provisioning IMS

Per ignorare il provisioning IMS, rendere disponibili i servizi IMS e consentire agli utenti di attivarli senza provisioning di rete, esegui l'override della configurazione dell'operatore KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL e imposta il valore su false.

Modifica dell'URL del server dei diritti

Per modificare l'URL del server dei diritti, esegui l'override della configurazione dell'operatore KEY_ENTITLEMENT_SERVER_URL_STRING e imposta il valore sulla stringa dell'URL prevista. Devi includere il prefisso https://.

Override delle configurazioni dell'operatore

A partire da Android 11, i comandi di override della configurazione dell'operatore sono integrati e disponibili con privilegi root.

Il seguente comando è un esempio di come eseguire l'override della chiave di configurazione dell'operatore carrier_volte_provisioning_required_bool e impostare il suo 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 tutti gli override, utilizza il seguente comando:

adb shell cmd phone cc clear-values

Per ulteriori informazioni, esegui questo comando:

adb shell cmd phone cc