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.
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