Derecho de servicio IMS

A partir de Android 12, Android incluye compatibilidad con la configuración de derechos de servicio TS.43 , una especificación de GSMA que define el paso de verificación de derechos para la activación de servicios que incluyen Voice-over-Wi-Fi (VoWiFi), Voice-over-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 autorización de servicios 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 autorización permite que el dispositivo consulte el servidor de autorización del operador según lo define la especificación GSMA TS.43 para el estado de autorización de IMS mediante la autenticación EAP-AKA sin que los usuarios tengan que ingresar ninguna credencial manualmente.

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

  • Reduce los costos de prueba y certificación para los transportistas porque esta función de autorización se puede usar en múltiples productos y OEM.
  • Reduce los gastos generales de desarrollo para los fabricantes de dispositivos a través de una aplicación Android estándar.
  • 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 función de autorización del servicio IMS.

Característica de derecho TS.43

Figura 1. Arquitectura de funciones de titularidad TS.43

Como se muestra en la Figura 1, la arquitectura de la función de derechos de servicio de 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 la aplicación para cada caso de uso de TS.43.
  • Aplicación cliente ImsServiceEntitlement : esta aplicación utiliza la API de servicio TS.43. La aplicación implementa elementos de la interfaz de usuario que incluyen vistas web para representar el portal de servicios del operador para que los usuarios activen los servicios e interactúa con otros componentes de Android para administrar 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 la aplicación ImsServiceEntitlement .

Las líneas numeradas de la Figura 1 muestran cómo se comunican entre sí los componentes de la función de autorización del servicio IMS. A continuación se describe cada uno de los pasos como están etiquetados:

(1) La aplicación cliente invoca la API de servicio TS.43 para iniciar una solicitud de autorización 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 la respuesta al desafío EAP-AKA.

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

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

(6) La aplicación del cliente maneja los datos y, opcionalmente, presenta el portal de servicio 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 adaptar a plataformas Android anteriores.

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 a la aplicación ImsServiceEntitlement .

La biblioteca service_entitlement se puede integrar con sus propias aplicaciones para casos de uso de 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 que no sean TS.43 basados ​​en el protocolo EAP-AKA.

A continuación, se describen las API que se utilizarán para tales casos de uso:

  • Aplicación TS.43 que usa 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 manera 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 de FCM del operador.

No establezca este valor si el operador no requiere FCM.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL Establézcalo en true si el operador requiere una interfaz de usuario del portal web para que los usuarios se registren en el servicio VoWiFi. Por ejemplo, dar su consentimiento a los términos y condiciones o ingresar una dirección de emergencia.

Esto suele ser requerido por los transportistas en América del Norte.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
Establézcalo en com.android.imsserviceentitlement/.WfcActivationActivity , si KEY_SHOW_VOWIFI_WEBVIEW_BOOL es true .
KEY_IMS_PROVISIONING_BOOL Establézcalo en true si el operador requiere el aprovisionamiento de red de servicios IMS (VoLTE/VoWiFi/SMSoIP) en segundo plano.

Esto es requerido por ciertos transportistas europeos.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL Se establece en true si KEY_IMS_PROVISIONING_BOOL es true .

El tráfico HTTP al servidor de derechos de un operador y al portal web 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

Interfaz de usuario 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 del servicio 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 usa para VoLTE (con KEY_VOLTE_PROVISIONING_STATUS ) y SMSoIP (con KEY_SMS_OVER_IP_ENABLED ).

La interfaz de usuario del sistema puede leer el estado de aprovisionamiento utilizando 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 las configuraciones del operador .

Omitir 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.

Omitir el aprovisionamiento de IMS

Para omitir el aprovisionamiento de IMS, hacer que los servicios de IMS estén disponibles y permitir que los usuarios activen 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 la configuración del operador están integrados y disponibles con privilegios de raíz.

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, use 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