A partire da Android 12, Android include il supporto per la configurazione dell'autorizzazione del servizio TS.43, una specifica GSMA che definisce il passaggio di verifica dell'autorizzazione per l'attivazione di servizi tra cui Voice over Wi-Fi (VoWiFi), Voice over LTE (VoLTE), SMS over IP (SMSoIP), On-Device Service Activation (ODSA) di dispositivi complementari eSIM (associati al dispositivo richiedente) e informazioni sul piano dati.
Per supportare questa specifica, Android fornisce una funzionalità di autorizzazione del servizio IMS che consente a un service provider di informare i dispositivi mobili sullo stato dei servizi di rete IP Multimedia Subsystem (IMS). Questa funzionalità di autorizzazione consente al dispositivo di eseguire query sul server di autorizzazione dell'operatore come definito dalla specifica GSMA TS.43 per lo stato dell'autorizzazione IMS utilizzando l'autenticazione EAP-AKA senza richiedere agli utenti di inserire manualmente le credenziali.
Gli operatori con server di autorizzazione IMS possono utilizzare la funzionalità di autorizzazione del servizio IMS per il provisioning 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 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à in quanto è 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à di diritti di servizio IMS.
Figura 1. Architettura della funzionalità di assegnazione dei diritti TS.43
Come mostrato nella Figura 1, l'architettura della funzionalità di diritto al 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 di autorizzazione di un operatore e espone 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 elementi dell'interfaccia utente, tra cui webview per il rendering del portale di servizi dell'operatore per consentire agli utenti di 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 un server di autorizzazione basato su TS.43 di un operatore, consulta l'app ImsServiceEntitlement.
Le linee numerate nella figura 1 mostrano come comunicano tra loro i componenti della funzionalità di assegnazione del servizio IMS. Di seguito viene descritto ogni passaggio come indicato:
(1) L'app client richiama l'API del servizio TS.43 per avviare una richiesta di diritto di servizio.
(2) L'API del servizio TS.43 invia una richiesta HTTP al server di autorizzazione dell'operatore per avviare una challenge EAP-AKA.
(3) L'API del servizio TS.43 richiama le API di telefonia (ad esempio,
getIccAuthentication
)
per completare la richiesta-risposta EAP-AKA.
(4) Il servizio TS.43 riceve i dati di configurazione o di autorizzazione del servizio dal server di autorizzazione dell'operatore dopo la verifica della risposta EAP-AKA.
(5) Il servizio TS.43 restituisce i dati di configurazione o di diritto al servizio all'app client.
(6) L'app client gestisce i dati e, se vuoi, esegue il rendering del portale di servizi 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 una dipendenza dall'API Android 12, la
libreria service_entitlement
e l'app ImsServiceEntitlement
possono essere sottoposte a backporting
su piattaforme Android precedenti.
service_entitlement library
Poiché la libreria service_entitlement
è collegata staticamente a ImsServiceEntitlement app
, 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ò essere integrata anche in un'app per casi d'uso di 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'app ImsServiceEntitlement
installata nella
partizione del prodotto come app privilegiata. Per configurare l'app, utilizza le seguenti
chiavi CarrierConfig:
Chiave | Valore |
---|---|
KEY_ENTITLEMENT_SERVER_URL_STRING |
URL del server di verifica 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 dal corriere. |
KEY_SHOW_VOWIFI_WEBVIEW_BOOL |
Imposta true se l'operatore richiede un'interfaccia utente del portale web per consentire agli utenti
di registrarsi al servizio VoWiFi. Ad esempio, l'accettazione di termini e
condizioni o l'inserimento di un indirizzo di emergenza.Questo requisito è in genere richiesto dagli operatori in 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.Questo campo è obbligatorio per alcuni operatori europei. |
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL |
Imposta su true se KEY_IMS_PROVISIONING_BOOL
è true . |
Il traffico HTTP verso il server di autorizzazione e il portale web di un operatore viene instradato tramite la rete predefinita, ad esempio i dati mobili o il Wi-Fi predefiniti.
Partner GMS: i seguenti operatori sono supportati dall'app per i diritti TS.43 in Android 12, in conformità 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 come gli OEM possono supportare elementi aggiuntivi dell'interfaccia utente di sistema relativi al provisioning del servizio IMS (ad esempio, quando viene mostrata una notifica quando viene eseguito il provisioning del servizio 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 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
.
Eseguire l'override delle configurazioni per i test
Utilizza le seguenti procedure per modificare temporaneamente il comportamento dell'app ImsServiceEntitlement
a scopo di test. Per informazioni dettagliate su come eseguire l'override delle configurazioni dell'operatore, consulta Override delle configurazioni dell'operatore.
Ignorare la procedura di registrazione al VoWiFi
Per saltare la procedura di registrazione al VoWiFi, consentendo l'attivazione diretta del VoWiFi,
esegui l'override della configurazione dell'operatore
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
e imposta il relativo valore su una stringa vuota.
Ignora il provisioning IMS
Per saltare il provisioning IMS, rendendo disponibili i servizi IMS e consentendo agli utenti di
attivare questi servizi senza il provisioning di rete, esegui l'override della 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 di autorizzazione, sostituisci la configurazione dell'operatore
KEY_ENTITLEMENT_SERVER_URL_STRING
e imposta il valore sulla stringa 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 di root.
Il seguente comando è un esempio di come sostituire la chiave di configurazione dell'operatore
carrier_volte_provisioning_required_bool
e impostarne il valore su false
. Puoi eseguire il comando più volte per ignorare 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