Titolarità per il servizio IMS

A partire da Android 12, Android include il supporto per TS.43 Service Entitlement Configuration , una specifica GSMA che definisce la fase di verifica dei diritti per l'attivazione di servizi tra cui Voice-over-Wi-Fi (VoWiFi), Voice-over-LTE (VoLTE) , SMS over IP (SMSoIP), attivazione del servizio su dispositivo (ODSA) dei dispositivi complementari eSIM (associati al dispositivo richiedente) e informazioni sul piano dati.

Per supportare questa specifica, Android fornisce una funzionalità di autorizzazione al 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 autorizzazione consente al dispositivo di interrogare il server di autorizzazione dell'operatore come definito dalla specifica GSMA TS.43 per lo stato di autorizzazione IMS utilizzando l'autenticazione EAP-AKA senza richiedere agli utenti di inserire manualmente le credenziali.

Gli operatori con server di adesione IMS possono utilizzare la funzione di adesione al servizio IMS per la fornitura del servizio. L'adozione della funzionalità offre i seguenti vantaggi:

  • Riduce i costi di test e certificazione per gli operatori perché questa funzionalità di autorizzazione può essere utilizzata su più prodotti e OEM.
  • Riduce i costi di sviluppo per i produttori di dispositivi tramite un'app Android standard.
  • Consente ai produttori e agli operatori di dispositivi di contribuire con il codice per la funzionalità poiché la funzionalità è open source.
  • Fornisce la gestione degli indirizzi di emergenza per i vettori nordamericani.

Architettura

La seguente figura descrive l'architettura e il comportamento della funzione di titolarità del servizio IMS.

Funzionalità di autorizzazione TS.43

Figura 1. Architettura delle funzionalità di autorizzazione TS.43

Come mostrato nella Figura 1, l'architettura della funzionalità di autorizzazione del servizio IMS include i seguenti componenti:

  • service_entitlement Libreria statica dell'API del servizio TS.43 : questa libreria implementa la specifica TS.43, interagisce con il server di autorizzazione di un operatore ed espone le API rivolte alle app per ogni caso d'uso TS.43.
  • App client ImsServiceEntitlement : questa app utilizza l'API del servizio TS.43. L'app implementa elementi dell'interfaccia utente tra cui visualizzazioni web per il rendering del portale dei servizi dell'operatore affinché gli utenti possano attivare i servizi e interagisce con altri componenti Android per gestire l'esperienza dell'utente end-to-end.

    Per ulteriori informazioni su come configurare Android per funzionare con il server di autorizzazione basato su TS.43 di un operatore, consulta l'app ImsServiceEntitlement .

Le righe numerate nella Figura 1 mostrano come i componenti della funzione di titolarità del servizio IMS comunicano tra loro. Di seguito viene descritto ciascuno dei passaggi etichettati:

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

(2) L'API del servizio TS.43 invia una richiesta HTTP al server dei diritti del vettore per avviare una sfida EAP-AKA.

(3) L'API del 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 dati di autorizzazione o di configurazione del servizio dal server di autorizzazione del vettore dopo la verifica della risposta EAP-AKA.

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

(6) L'app client gestisce i dati e facoltativamente esegue il rendering del portale dei servizi dell'operatore affinché l'utente possa completare l'attivazione del servizio.

Integrazione

Questa sezione descrive il processo di integrazione della libreria service_entitlement e dell'app ImsServiceEntitlement .

Poiché non esiste una dipendenza API Android 12, è possibile eseguire il backport della libreria service_entitlement e dell'app ImsServiceEntitlement su piattaforme Android precedenti.

libreria service_entitlement

Poiché la libreria service_entitlement è collegata staticamente ImsServiceEntitlement app , non sono necessari passaggi aggiuntivi per integrare la libreria nell'app ImsServiceEntitlement .

La libreria service_entitlement può essere integrata con le tue app per casi d'uso TS.43 come piano dati e ODSA. La libreria può anche essere integrata in un'app per casi d'uso di diritti non TS.43 basati sul protocollo EAP-AKA.

Di seguito vengono descritte le API da utilizzare per tali 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'app ImsServiceEntitlement installata nella partizione del prodotto come app privilegiata. Per configurare l'app, utilizzare le seguenti chiavi CarrierConfig:

Chiave Valore
KEY_ENTITLEMENT_SERVER_URL_STRING URL del server di autorizzazione del vettore. È necessario includere il prefisso https:// .
KEY_FCM_SENDER_ID_STRING ID mittente FCM del corriere.

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, acconsentendo a termini e condizioni o inserendo un indirizzo di emergenza.

Questo è in genere richiesto dai corrieri 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 Impostato su true se l'operatore richiede il provisioning di rete dei servizi IMS (VoLTE/VoWiFi/SMSoIP) in background.

Ciò è richiesto da alcuni operatori europei.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL Impostato su true se KEY_IMS_PROVISIONING_BOOL è true .

Il traffico HTTP verso il server di adesione 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 di autorizzazione TS.43 in Android 12, seguendo la specifica TS.43 v5.0:

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

Interfaccia utente di sistema aggiuntiva per il provisioning IMS

Questa sezione descrive come gli OEM possono supportare elementi aggiuntivi dell'interfaccia utente del sistema relativi al provisioning del servizio IMS (ad esempio, quando viene visualizzata una notifica quando viene fornito VoWiFi).

L'app ImsServiceEntitlement imposta lo stato di 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 del sistema può quindi leggere lo stato di provisioning utilizzando getProvisioningIntValue o registrando un callback per monitorare la modifica dello stato di provisioning tramite registerProvisioningChangedCallback .

Sostituire le configurazioni per i test

Utilizzare le procedure seguenti per modificare temporaneamente il comportamento dell'app ImsServiceEntitlement a scopo di test. Per maggiori dettagli su come sostituire le configurazioni dell'operatore, consulta Sostituzione delle configurazioni dell'operatore .

Saltare la procedura di registrazione a VoWiFi

Per saltare il processo di registrazione VoWiFi, consentendo l'attivazione diretta di VoWiFi, sovrascrivi la configurazione dell'operatore KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING e imposta il suo valore su una stringa vuota.

Saltare il provisioning IMS

Per ignorare il provisioning IMS, rendendo disponibili i servizi IMS e consentendo agli utenti di attivare tali servizi senza provisioning della rete, sovrascrivere la configurazione dell'operatore KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL e impostarne il valore su false .

Modifica dell'URL del server dei diritti

Per modificare l'URL del server di autorizzazione, sovrascrivi la configurazione dell'operatore KEY_ENTITLEMENT_SERVER_URL_STRING e imposta il suo valore sulla stringa dell'URL prevista. È necessario 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 privilegi root.

Il comando seguente è un esempio di come sovrascrivere la chiave di configurazione dell'operatore carrier_volte_provisioning_required_bool e impostarne il valore su false . È possibile eseguire il comando più volte per sovrascrivere più configurazioni.

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

Per cancellare tutte le sostituzioni, utilizzare il comando seguente:

adb shell cmd phone cc clear-values

Per ottenere maggiori informazioni, eseguire il comando seguente:

adb shell cmd phone cc