Iscrizione unica IMS

Android 12 introduce il supporto per un unico modello di registrazione per la fornitura di funzionalità MMTEL e RCS. Questo modello consente ai dispositivi di avere tutte le funzionalità IMS gestite tramite un'unica registrazione IMS fornita dall'ImsService del dispositivo e di soddisfare i requisiti introdotti da alcuni operatori di telecomunicazioni. Rispetto a un modello di registrazione doppia, in cui più registrazioni IMS sono gestite su un 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 che 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 le funzioni ImsService per MMTEL e RCS predefinite del dispositivo su un'unica registrazione IMS. Ciò include il provisioning, l'inoltro di messaggi SIP e lo scambio di funzionalità utente RCS.

Architettura in modalità di registrazione singola

Figura 1. Architettura del modello di registrazione singola

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 sopra le righe 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 registrazione doppia. In questo modello, ogni app è responsabile della connessione alla rete del vettore e della creazione di una registrazione IMS per le funzionalità MMTEL e RCS. ImsService del dispositivo implementa MMTEL, utilizza la connessione dati IMS del dispositivo alla rete dell'operatore e opera indipendentemente dalle altre app RCS.

architettura della modalità di registrazione doppia

Figura 2. Architettura del modello di registrazione doppia

API di registrazione singola IMS

I dispositivi che operano su vettori 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.

Superficie dell'API API dell'applicazione RCS API IMS del fornitore Descrizione
Approvvigionamento RCS Responsabile dell'approvvigionamento ImsConfigImplBase Consente a un OEM o a un operatore di fornire un'app per aggiornare lo stato di provisioning RCS se l'operatore utilizza un meccanismo proprietario di autorizzazione dell'operatore. ImsService deve inoltre supportare l'AutoConfigurationServer (ACS) standard per il provisioning per i vettori che non utilizzano un meccanismo proprietario.
Inoltro di messaggi SIP SipDelegate Manager SipTransportImplBase Consente a un'applicazione RCS di associare prima specifici tag di funzionalità RCS al dispositivo ImsService , quindi 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 le chiavi di accesso utilizzate per le funzionalità RCS come il trasferimento di file.
Scambio di capacità dell'utente RCS ImsRcs Manager RcsCapabilityExchangeImplBase Fornisce ad AOSP la possibilità di inviare le sue capacità MMTEL e RCS al fornitore ImsService in modo che possano essere pubblicate sotto un'unica entità sulla rete per lo scambio di capacità dell'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 sia concessa, deve essere vero quanto segue:

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

Se entrambe queste condizioni non vengono soddisfatte, all'app viene negato l'accesso all'autorizzazione android.permission.PERFORM_IMS_SINGLE_REGISTRATION . Ciò significa che le app di terze parti non possono 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 sia concessa, deve essere vero quanto segue:

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

    • App di messaggistica predefinita: impostata dall'utente.
    • App dialer predefinita: impostata dall'utente.
    • App dei 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 dei contatti del dispositivo. A quell'app viene quindi assegnato il ruolo dei contatti.

Per accedere all'APN IMS utilizzando ConnectivityManager per configurare 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 prova con supporto di messaggistica RCS di base a scopo 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 è in /testapps/ImsTestService .

Implementazione

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

Convalida

Per convalidare l'implementazione della registrazione singola IMS, procedi come segue:

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