Derecho de servicio IMS

Desde Android 12, Android incluye soporte para la Configuración de derechos de servicio TS.43 , una especificación GSMA que define el paso de verificación de derechos para la activación de servicios que incluyen Voz sobre Wi-Fi (VoWiFi), Voz sobre LTE (VoLTE). , SMS sobre IP (SMSoIP), activación de servicio en el dispositivo (ODSA) de dispositivos complementarios eSIM (asociados con el dispositivo solicitante) e información del plan de datos.

Para admitir esta especificación, Android proporciona una función de derecho de servicio IMS que permite a un proveedor de servicios informar a los dispositivos móviles sobre el estado de los servicios de red del Subsistema multimedia IP (IMS). Esta función de derechos permite que el dispositivo consulte el servidor de derechos del operador según lo definido por la especificación GSMA TS.43 para el estado de derechos de IMS utilizando la autenticación EAP-AKA sin necesidad de que los usuarios ingresen ninguna credencial manualmente.

Los operadores con servidores de derechos de IMS pueden utilizar la función de derechos de servicios de IMS para el aprovisionamiento de servicios. La adopción de la función proporciona los siguientes beneficios:

  • Reduce los costos de prueba y certificación para los operadores porque esta característica de derecho se puede utilizar en múltiples productos y OEM.
  • Reduce la sobrecarga de desarrollo para los fabricantes de dispositivos a través de una aplicación estándar de Android.
  • Permite que los fabricantes de dispositivos y los operadores contribuyan con código para la función, ya que la función es de código abierto.
  • Proporciona gestión de direcciones de emergencia para operadores norteamericanos.

Arquitectura

La siguiente figura describe la arquitectura y el comportamiento de la característica de derechos de servicio IMS.

Función de derechos TS.43

Figura 1. Arquitectura de característica de derechos TS.43

Como se muestra en la Figura 1, la arquitectura de la característica de derechos de servicio IMS incluye los siguientes componentes:

  • service_entitlement Biblioteca estática de API de servicio TS.43 : esta biblioteca implementa la especificación TS.43, interactúa con el servidor de derechos de un operador y expone las API orientadas a aplicaciones para cada caso de uso TS.43.
  • Aplicación cliente ImsServiceEntitlement : esta aplicación utiliza la API de servicio TS.43. La aplicación implementa elementos de interfaz de usuario que incluyen vistas web para representar el portal de servicios del operador para que los usuarios activen servicios e interactúa con otros componentes de Android para gestionar la experiencia del usuario de principio a fin.

    Para obtener más información sobre cómo configurar Android para que funcione con el servidor de derechos basado en TS.43 de un operador, consulte Aplicación ImsServiceEntitlement .

Las líneas numeradas en la Figura 1 muestran cómo los componentes de la característica de derecho de servicio IMS se comunican entre sí. A continuación se describe cada uno de los pasos según lo etiquetado:

(1) La aplicación cliente invoca la API del servicio TS.43 para iniciar una solicitud de derecho de servicio.

(2) La API del servicio TS.43 envía una solicitud HTTP al servidor de derechos del operador para iniciar un desafío EAP-AKA.

(3) La API del servicio TS.43 invoca las API de telefonía (por ejemplo, getIccAuthentication ) para completar el desafío-respuesta EAP-AKA.

(4) El servicio TS.43 recibe datos de configuración o derechos de servicio del servidor de derechos del operador después de que se verifica la respuesta EAP-AKA.

(5) El servicio TS.43 devuelve el derecho del servicio o los datos de configuración a la aplicación cliente.

(6) La aplicación del cliente maneja los datos y, opcionalmente, muestra el portal de servicios del operador para que el usuario finalice la activación del servicio.

Integración

Esta sección describe el proceso para integrar la biblioteca service_entitlement y la aplicación ImsServiceEntitlement .

Debido a que no existe una dependencia de la API de Android 12, la biblioteca service_entitlement y la aplicación ImsServiceEntitlement se pueden respaldar a plataformas Android más antiguas.

biblioteca service_entitlement

Debido a que la biblioteca service_entitlement está vinculada estáticamente a la ImsServiceEntitlement app , no se requieren pasos adicionales para integrar la biblioteca en la aplicación ImsServiceEntitlement .

La biblioteca service_entitlement se puede integrar con sus propias aplicaciones para casos de uso TS.43, como plan de datos y ODSA. La biblioteca también se puede integrar en una aplicación para casos de uso de derechos no TS.43 basados ​​en el protocolo EAP-AKA.

A continuación se describen las API que se utilizarán en dichos casos de uso:

  • Aplicación TS.43 que utiliza el protocolo HTTP TS.43 implementado en la biblioteca: use las API en la clase ServiceEntitlement
  • Aplicación que no es TS.43 que usa el protocolo EAP-AKA implementado en la biblioteca: use las API expuestas en la clase EapAkaHelper

Aplicación ImsServiceEntitlement

De forma predeterminada, Android incluye la aplicación ImsServiceEntitlement instalada en la partición del producto como una aplicación privilegiada. Para configurar la aplicación, utilice las siguientes claves CarrierConfig:

Llave Valor
KEY_ENTITLEMENT_SERVER_URL_STRING URL del servidor de derechos del operador. Se debe incluir el prefijo https:// .
KEY_FCM_SENDER_ID_STRING ID de remitente FCM del transportista.

No establezca este valor si el transportista no requiere FCM.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL Configúrelo en true si el operador requiere una interfaz de usuario de portal web para que los usuarios se registren en el servicio VoWiFi. Por ejemplo, aceptar los términos y condiciones o ingresar una dirección de emergencia.

Esto normalmente lo exigen los transportistas en América del Norte.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
Establezca en com.android.imsserviceentitlement/.WfcActivationActivity , si KEY_SHOW_VOWIFI_WEBVIEW_BOOL es true .
KEY_IMS_PROVISIONING_BOOL Configúrelo en true si el operador requiere el aprovisionamiento de red de servicios IMS (VoLTE/VoWiFi/SMSoIP) en segundo plano.

Esto lo exigen determinadas compañías aéreas europeas.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL Establezca en true si KEY_IMS_PROVISIONING_BOOL es true .

El tráfico HTTP al servidor de derechos y al portal web de un operador pasa por la red predeterminada, por ejemplo, datos móviles predeterminados o Wi-Fi.

Socios de GMS: los siguientes operadores son compatibles con la aplicación de derechos TS.43 en Android 12, siguiendo la especificación TS.43 v5.0:

  • EE. UU.: Cspire, US Cellular, Cellcom
  • Francia: naranja

UI del sistema adicional para el aprovisionamiento de IMS

Esta sección describe cómo los OEM pueden admitir elementos adicionales de la interfaz de usuario del sistema relacionados con el aprovisionamiento de servicios IMS (por ejemplo, al mostrar una notificación cuando se aprovisiona VoWiFi).

La aplicación ImsServiceEntitlement establece el estado de aprovisionamiento de VoWiFi en la plataforma mediante la API del sistema ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) . Esta API también se utiliza para VoLTE (con KEY_VOLTE_PROVISIONING_STATUS ) y SMSoIP (con KEY_SMS_OVER_IP_ENABLED ).

Luego, la interfaz de usuario del sistema puede leer el estado de aprovisionamiento mediante getProvisioningIntValue o registrando una devolución de llamada para monitorear el cambio de estado de aprovisionamiento a través de registerProvisioningChangedCallback .

Anulación de configuraciones para pruebas

Utilice los siguientes procedimientos para modificar temporalmente el comportamiento de la aplicación ImsServiceEntitlement con fines de prueba. Para obtener detalles sobre cómo anular las configuraciones del operador, consulte Anulación de configuraciones del operador .

Saltarse el proceso de registro de VoWiFi

Para omitir el proceso de registro de VoWiFi y permitir que VoWiFi se active directamente, anule la configuración del operador KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING y establezca su valor en una cadena vacía.

Saltarse el aprovisionamiento de IMS

Para omitir el aprovisionamiento de IMS, hacer que los servicios IMS estén disponibles y permitir a los usuarios activar dichos servicios sin aprovisionamiento de red, anule la configuración del operador KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL y establezca su valor en false .

Cambiar la URL del servidor de derechos

Para cambiar la URL del servidor de derechos, anule la configuración del operador KEY_ENTITLEMENT_SERVER_URL_STRING y establezca su valor en la cadena de URL esperada. Debe incluir el prefijo https:// .

Anulación de configuraciones de operador

A partir de Android 11, los comandos de anulación de configuración del operador están integrados y disponibles con privilegios de root.

El siguiente comando es un ejemplo de cómo anular la clave de configuración del operador carrier_volte_provisioning_required_bool y establecer su valor en false . Puede ejecutar el comando varias veces para anular varias configuraciones.

adb root
adb shell cmd phone cc set-value -p carrier_volte_provisioning_required_bool false

Para borrar todas las anulaciones, utilice el siguiente comando:

adb shell cmd phone cc clear-values

Para obtener más información, ejecute el siguiente comando:

adb shell cmd phone cc