Registro Único IMS

Android 12 introduce soporte para un modelo de registro único para proporcionar funciones MMTEL y RCS. Este modelo permite que los dispositivos tengan todas las funciones IMS administradas a través de un único registro IMS proporcionado por el ImsService del dispositivo y cumplir con los requisitos introducidos por algunos operadores de telecomunicaciones. En comparación con un modelo de registro dual, donde se administran múltiples registros IMS en un dispositivo, el registro único reduce el tráfico en la red del operador y aumenta la confiabilidad.

Android 12 admite este modelo de registro único a través de una arquitectura con un conjunto de API que permiten que la pila de telefonía AOSP administre tanto las funciones MMTEL proporcionadas por ImsService como las funciones RCS proporcionadas por la aplicación de mensajería RCS seleccionada por el usuario. Para admitir el registro único de IMS, los fabricantes de dispositivos y los proveedores de SoC deben implementar estas API para habilitar las funciones RCS en la aplicación de mensajería RCS seleccionada por el usuario.

La Figura 1 ilustra la pila IMS del dispositivo cuando se utiliza el modelo de registro único IMS. Todas las aplicaciones IMS utilizan el ImsService predeterminado del dispositivo para las funciones MMTEL y RCS a través de un único registro IMS. Esto incluye aprovisionamiento, reenvío de mensajes SIP e intercambio de capacidades de usuario RCS.

Arquitectura de modo de registro único

Figura 1. Arquitectura del modelo de registro único

Android 11 y versiones anteriores solo admiten un modelo de registro dual para proporcionar funciones MMTEL y RCS, donde MMTEL es proporcionado por ImsService del dispositivo y las funciones RCS se implementan en la parte superior y administran su propia pila IMS y conexión a la red del operador de forma independiente.

La Figura 2 ilustra la arquitectura del modelo de registro dual. En este modelo, cada aplicación es responsable de conectarse a la red del operador y establecer un registro IMS para las funciones MMTEL y RCS. ImsService del dispositivo implementa MMTEL, utiliza la conexión de datos IMS del dispositivo a la red del operador y opera independientemente de otras aplicaciones RCS.

arquitectura de modo de registro dual

Figura 2. Arquitectura del modelo de registro dual

API de registro único de IMS

Los dispositivos que varían en operadores que requieren registro único de IMS deben admitir las API de registro único de IMS y definir la función de Android PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION . La Figura 3 muestra las API que admiten el registro único de IMS.

Superficies API que admiten el registro único de IMS

Figura 3. Superficies API de alto nivel que admiten el registro único de IMS

Los dispositivos Android que admiten el registro único de IMS como parte de la pila de telefonía AOSP deben admitir todas las API de AOSP que se describen en la siguiente tabla.

Área de superficie API API de aplicaciones RCS API de IMS del proveedor Descripción
Aprovisionamiento RCS Administrador de aprovisionamiento ImsConfigImplBase Permite que un OEM o un operador proporcione una aplicación para actualizar el estado de aprovisionamiento de RCS si el operador utiliza un mecanismo de derechos de operador propietario. ImsService también debe admitir el AutoConfigurationServer (ACS) estándar para el aprovisionamiento de operadores que no utilizan un mecanismo propietario.
Reenvío de mensajes SIP Administrador de delegados de SIP SipTransporteImplBase Permite que una aplicación RCS asocie primero etiquetas de funciones RCS específicas con el ImsService del dispositivo y luego envíe y reciba mensajes SIP y actualizaciones de registro IMS asociadas con esas etiquetas de funciones RCS.
Notificaciones al portador dedicadas Administrador de conectividad Respuesta de llamada de datos Permite que una aplicación escuche notificaciones de QoS en un socket asociado con un puerto local específico.
autenticación GBA bootstrapAuthenticationSolicitud GbaServicio Permite que una aplicación RCS se autentique con la red y las claves de acceso utilizadas para funciones RCS como la transferencia de archivos.
Intercambio de capacidades de usuario RCS ImsRcsManager RcsCapabilityExchangeImplBase Proporciona a AOSP la capacidad de enviar sus capacidades MMTEL y RCS al proveedor ImsService para que puedan publicarse bajo una entidad en la red para el intercambio de capacidades de usuario RCS. También permite que otras aplicaciones interesadas en las capacidades RCS de uno o más contactos consulten en la red las capacidades RCS de los contactos.

Seguridad y permisos

Android 12 introduce los siguientes permisos para garantizar el acceso seguro a la red del operador y a los datos del usuario:

El permiso android.permission.PERFORM_IMS_SINGLE_REGISTRATION debe ser definido por la aplicación de mensajería con las funciones RCS. Para que se conceda este permiso, debe cumplirse lo siguiente:

  • La aplicación debe instalarse como una aplicación privilegiada, lo que significa que está preinstalada en el dispositivo y puede acceder a permisos privilegiados.
  • La aplicación debe configurarse como la función de SMS predeterminada del usuario mediante RoleManager

Si no se cumplen ambas condiciones, a la aplicación se le niega el acceso al permiso android.permission.PERFORM_IMS_SINGLE_REGISTRATION . Esto significa que las aplicaciones de terceros no pueden acceder a las API de registro único de RCS, ya que requieren la certificación del operador en el dispositivo.

El permiso android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE , cuando se otorga a una aplicación que también tiene el permiso READ_CONTACTS, permite que la aplicación solicite las capacidades RCS de números de teléfono mediante RcsUceAdapter . Para que se conceda este permiso, debe cumplirse lo siguiente:

  • La aplicación debe instalarse como una aplicación privilegiada, lo que significa que está preinstalada en el dispositivo y puede acceder a permisos privilegiados.
  • La aplicación debe definirse como una de las siguientes funciones RoleManager :

    • Aplicación de mensajería predeterminada: configurada por el usuario.
    • Aplicación de marcador predeterminada: configurada por el usuario.
    • Aplicación de contactos predeterminada: una función introducida en Android 12 que permite al OEM definir un nombre de paquete a través del valor de superposición del dispositivo config_systemContacts , que debe corresponder a la aplicación de contactos del dispositivo. Luego, a esa aplicación se le asigna la función de contactos.

Para acceder a IMS APN mediante ConnectivityManager para configurar y administrar el tráfico de datos, las aplicaciones también deben solicitar el permiso android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS .

Ejemplos y fuente

Android proporciona una aplicación en AOSP que implementa una aplicación de mensajería de prueba con soporte básico de mensajería RCS para fines de prueba y desarrollo. Puede encontrar la aplicación en testapps/TestRcsApp . Cuando la aplicación se instala en un dispositivo, se puede configurar como la aplicación de mensajería predeterminada del usuario y tendrá los permisos necesarios para acceder a las API de registro único de IMS.

Android también proporciona una implementación de muestra de ImsService para RCS. El código fuente está en /testapps/ImsTestService .

Implementación

Para obtener más detalles de implementación, descargue el registro único de IMS en Android .

Validación

Para validar su implementación del registro único de IMS, haga lo siguiente:

  • Asegúrese de que pase el conjunto de pruebas CtsTelephonyTestCases CTS.
  • Instale y ejecute TestRcsApp para ejecutar casos de prueba básicos de registro único durante la integración.
  • Pasar la certificación del operador para casos de prueba de registro único de IMS.