Registro Único IMS

Android 12 presenta soporte para un modelo de registro único para proporcionar funciones MMTEL y RCS. Este modelo permite que los dispositivos tengan todas las funciones de IMS administradas a través de un único registro de IMS proporcionado por ImsService del dispositivo y para cumplir con los requisitos introducidos por algunos operadores de telecomunicaciones. En comparación con un modelo de registro dual, en el que 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 las funciones MMTEL proporcionadas por ImsService y 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 de RCS en la aplicación de mensajería de RCS seleccionada por el usuario.

La figura 1 ilustra la pila de IMS del dispositivo cuando se usa el modelo de registro único de IMS. Todas las aplicaciones de IMS utilizan el ImsService predeterminado del dispositivo para las funciones de MMTEL y RCS en un solo registro de IMS. Esto incluye el aprovisionamiento, el reenvío de mensajes SIP y el intercambio de capacidades de usuario de 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 por encima y administran su propia pila IMS y la 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 funciona 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 pertenecientes a operadores que requieren un registro único de IMS deben ser compatibles con las API de registro único de IMS y definir la característica de Android PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION . La Figura 3 muestra las API que admiten el registro único de IMS.

Superficies de API compatibles con el registro único de IMS

Figura 3. Superficies de 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 de AOSP deben admitir todas las API de AOSP que se describen en la siguiente tabla.

Área de superficie API API de la aplicación RCS API de IMS de proveedores Descripción
Aprovisionamiento de RCS Gestor 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 patentado. ImsService también debe ser compatible con el AutoConfigurationServer (ACS) estándar para el aprovisionamiento de operadores que no utilizan un mecanismo propietario.
Reenvío de mensajes SIP SipDelegateManager SipTransportImplBase Permite que una aplicación de RCS primero asocie etiquetas de funciones de RCS específicas con el ImsService del dispositivo y luego envíe y reciba mensajes SIP y actualizaciones de registro de IMS asociadas con esas etiquetas de funciones de RCS.
Notificaciones de portador dedicadas Administrador de conectividad Respuesta de llamada de datos Permite que una aplicación escuche las notificaciones de la calidad del servicio en un socket asociado con un puerto local específico.
autenticación GBA bootstrapAuthenticationRequest Servicio Gba Permite que una aplicación de RCS se autentique con la red y las claves de acceso utilizadas para las funciones de RCS, como la transferencia de archivos.
Intercambio de capacidad de usuario de RCS Gerente de ImsRcs RcsCapabilityExchangeImplBase Brinda a AOSP la capacidad de enviar sus capacidades de MMTEL y RCS al proveedor ImsService para que puedan publicarse bajo una entidad en la red para el intercambio de capacidades de usuario de RCS. También permite que otras aplicaciones interesadas en las capacidades de RCS de uno o más contactos consulten en la red las capacidades de RCS de los contactos.

Seguridad y permisos

Android 12 introduce los siguientes permisos para garantizar un 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 de RCS. Para que se otorgue este permiso, se debe cumplir lo siguiente:

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

Si no se cumplen estas dos condiciones, se deniega el acceso de la aplicación 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 los números de teléfono mediante RcsUceAdapter . Para que se otorgue este permiso, se debe cumplir 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 estar definida como una de las siguientes funciones de RoleManager :

    • Aplicación de mensajería predeterminada: configurada por el usuario.
    • Aplicación de marcación predeterminada: configurada por el usuario.
    • Aplicación de contactos predeterminada: una función introducida en Android 12 que permite que el OEM defina 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. A esa aplicación se le asigna la función de contactos.

Para acceder al APN de IMS usando 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 sobre la 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 el conjunto de pruebas CTSTelephonyTestCases CTS pase.
  • Instale y ejecute TestRcsApp para ejecutar casos de prueba básicos de registro único durante la integración.
  • Aprobar la certificación de operador para casos de prueba de registro único de IMS.