Registrazione unica IMS

Android 12 introduce il supporto per un unico modello di registrazione per fornire funzionalità MMTEL e RCS. Questo modello consente ai dispositivi di gestire tutte le funzionalità IMS tramite un'unica registrazione IMS fornita dall'ImsService del dispositivo e di conformarsi ai requisiti introdotti da alcuni operatori di telecomunicazioni. Rispetto al modello a doppia registrazione, in cui più registrazioni IMS vengono gestite su un unico dispositivo, la registrazione singola riduce il traffico sulla rete dell'operatore e aumenta l'affidabilità.

Android 12 supporta questo modello di registrazione unico attraverso un'architettura con un set di API che consentono allo stack di telefonia AOSP di gestire sia le funzionalità MMTEL fornite da ImsService sia le funzionalità RCS fornite dall'app di messaggistica RCS selezionata dall'utente. Per supportare la registrazione singola IMS, i produttori di dispositivi e i fornitori di SoC devono implementare queste API per abilitare le funzionalità RCS nell'app di messaggistica RCS selezionata dall'utente.

La Figura 1 illustra lo stack IMS del dispositivo quando si utilizza il modello di registrazione singola IMS. Tutte le applicazioni IMS utilizzano l'ImsService predefinito del dispositivo per le funzionalità MMTEL e RCS su una singola registrazione IMS. Ciò include il provisioning, l'inoltro dei messaggi SIP e lo scambio di funzionalità utente RCS.

Architettura in modalità di registrazione singola

Figura 1. Architettura del modello di registrazione unica

Android 11 e versioni precedenti supportano solo un modello di doppia registrazione per fornire funzionalità MMTEL e RCS, in cui MMTEL è fornito da ImsService del dispositivo e le funzionalità RCS sono implementate in alto e gestiscono il proprio stack IMS e la connessione alla rete dell'operatore in modo indipendente.

La Figura 2 illustra l'architettura per il modello di doppia registrazione. In questo modello, ciascuna app è responsabile della connessione alla rete dell'operatore e della creazione di una registrazione IMS per le funzionalità MMTEL e RCS. L'ImsService del dispositivo implementa MMTEL, utilizza la connessione dati IMS del dispositivo alla rete dell'operatore e funziona indipendentemente dalle altre app RCS.

architettura in modalità doppia registrazione

Figura 2. Architettura del modello a doppia registrazione

API di registrazione singola IMS

I dispositivi che rientrano negli operatori che richiedono la registrazione singola IMS devono supportare le API di registrazione singola IMS e definire la funzionalità Android PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION . La Figura 3 mostra le API che supportano la registrazione singola IMS.

Superfici API che supportano la registrazione singola IMS

Figura 3. Superfici API di alto livello che supportano la registrazione singola IMS

I dispositivi Android che supportano la registrazione singola IMS come parte dello stack di telefonia AOSP devono supportare tutte le API AOSP descritte nella tabella seguente.

Area della superficie API API dell'applicazione RCS API IMS del fornitore Descrizione
Provvista RCS Responsabile del provisioning ImsConfigImplBase Consente a un OEM o a un operatore di fornire un'app per aggiornare lo stato di provisioning di RCS se l'operatore utilizza un meccanismo di autorizzazione dell'operatore proprietario. ImsService deve inoltre supportare lo standard AutoConfigurationServer (ACS) per il provisioning per gli operatori che non utilizzano un meccanismo proprietario.
Inoltro dei messaggi SIP SipDelegateManager SipTransportImplBase Consente a un'applicazione RCS di associare innanzitutto specifici tag di funzionalità RCS al dispositivo ImsService e quindi di inviare e ricevere messaggi SIP e aggiornamenti di registrazione IMS associati a tali tag di funzionalità RCS.
Notifiche al portatore dedicate Gestore della connettività DataCallResponse Consente a un'app di ascoltare le notifiche QoS su un socket associato a una porta locale specifica.
Autenticazione GBA bootstrapAuthenticationRequest GbaService Consente a un'app RCS di autenticarsi con la rete e accedere alle chiavi utilizzate per le funzionalità RCS come il trasferimento di file.
Scambio di capacità utente RCS ImsRcsManager RcsCapabilityExchangeImplBase Fornisce ad AOSP la possibilità di inviare le proprie funzionalità MMTEL e RCS al fornitore ImsService in modo che possano essere pubblicate sotto un'unica entità sulla rete per lo scambio di funzionalità utente RCS. Consente inoltre ad altre app interessate alle funzionalità RCS di uno o più contatti di interrogare la rete per le funzionalità RCS dei contatti.

Sicurezza e autorizzazioni

Android 12 introduce le seguenti autorizzazioni per garantire un accesso sicuro alla rete dell'operatore e ai dati dell'utente:

L'autorizzazione android.permission.PERFORM_IMS_SINGLE_REGISTRATION deve essere definita dall'app di messaggistica con le funzionalità RCS. Affinché questa autorizzazione venga concessa, deve essere vero quanto segue:

  • L'app deve essere installata come applicazione privilegiata, ovvero è preinstallata sul dispositivo e può accedere ad autorizzazioni privilegiate
  • L'app deve essere impostata come ruolo SMS predefinito dell'utente utilizzando RoleManager

Se entrambe queste condizioni non sono soddisfatte, all'app viene negato l'accesso all'autorizzazione android.permission.PERFORM_IMS_SINGLE_REGISTRATION . Ciò significa che le app di terze parti non sono autorizzate ad accedere alle API di registrazione singola RCS poiché richiedono la certificazione dell'operatore sul dispositivo.

L'autorizzazione android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE , quando concessa a un'app che dispone anche dell'autorizzazione READ_CONTACTS, consente all'app di richiedere le funzionalità RCS dei numeri di telefono utilizzando RcsUceAdapter . Affinché questa autorizzazione venga concessa, deve essere vero quanto segue:

  • L'app deve essere installata come applicazione privilegiata, ovvero è preinstallata sul dispositivo e può accedere ad autorizzazioni privilegiate.
  • L'app deve essere definita come uno dei seguenti ruoli RoleManager :

    • App di messaggistica predefinita: impostata dall'utente.
    • App di connessione predefinita: impostata dall'utente.
    • App contatti predefinita: un ruolo introdotto in Android 12 che consente all'OEM di definire un nome di pacchetto tramite il valore di overlay del dispositivo config_systemContacts , che deve corrispondere all'app contatti del dispositivo. A quell'app viene quindi assegnato il ruolo dei contatti.

Per accedere all'APN IMS utilizzando ConnectivityManager per impostare e gestire il traffico dati, le app devono anche richiedere l'autorizzazione android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS .

Esempi e fonte

Android fornisce un'app in AOSP che implementa un'app di messaggistica di test con supporto di messaggistica RCS di base per scopi di test e sviluppo. Puoi trovare l'app su testapps/TestRcsApp . Quando l'app è installata su un dispositivo, può essere impostata come app di messaggistica predefinita dell'utente e avrà le autorizzazioni necessarie per accedere alle API di registrazione singola IMS.

Android fornisce anche un'implementazione di esempio di ImsService per RCS. Il codice sorgente si trova in /testapps/ImsTestService .

Implementazione

Per ulteriori dettagli sull'implementazione, scarica IMS Single Registration in Android .

Validazione

Per convalidare l'implementazione della registrazione unica IMS, procedere come segue:

  • Assicurati che la suite di test CtsTelephonyTestCases CTS venga superata.
  • Installa ed esegui TestRcsApp per eseguire casi di test di registrazione singoli di base durante l'integrazione.
  • Passa la certificazione del vettore per i casi di test di registrazione singola IMS.