Droit au service IMS

À partir d'Android 12, Android inclut la prise en charge de la configuration des droits de service TS.43 , une spécification GSMA qui définit l'étape de vérification des droits pour l'activation de services, notamment la voix sur Wi-Fi (VoWiFi) et la voix sur LTE (VoLTE). , SMS sur IP (SMSoIP), activation du service sur appareil (ODSA) des appareils compagnons eSIM (associés à l'appareil demandeur) et informations sur le plan de données.

Pour prendre en charge cette spécification, Android fournit une fonctionnalité d'autorisation de service IMS qui permet à un fournisseur de services d'informer les appareils mobiles de l'état des services réseau du sous-système multimédia IP (IMS). Cette fonctionnalité de droit permet à l'appareil d'interroger le serveur de droit de l'opérateur tel que défini par la spécification GSMA TS.43 pour connaître le statut de droit IMS à l'aide de l'authentification EAP-AKA sans obliger les utilisateurs à saisir manuellement des informations d'identification.

Les opérateurs disposant de serveurs de droits IMS peuvent utiliser la fonctionnalité de droits de service IMS pour la fourniture de services. L'adoption de cette fonctionnalité offre les avantages suivants :

  • Réduit les coûts de test et de certification pour les opérateurs, car cette fonctionnalité de droit peut être utilisée sur plusieurs produits et OEM.
  • Réduit les frais de développement pour les fabricants d’appareils grâce à une application Android standard.
  • Permet aux fabricants d'appareils et aux opérateurs de contribuer au code de la fonctionnalité, car celle-ci est open source.
  • Fournit la gestion des adresses d’urgence pour les transporteurs nord-américains.

Architecture

La figure suivante décrit l'architecture et le comportement de la fonctionnalité d'autorisation de service IMS.

Fonctionnalité de droit TS.43

Figure 1. Architecture des fonctionnalités de droit TS.43

Comme le montre la figure 1, l'architecture de la fonctionnalité de droit au service IMS comprend les composants suivants :

  • service_entitlement Bibliothèque statique de l'API de service TS.43 : cette bibliothèque implémente la spécification TS.43, interagit avec le serveur de droits d'accès d'un opérateur et expose les API orientées application pour chaque cas d'utilisation TS.43.
  • Application client ImsServiceEntitlement : cette application utilise l'API de service TS.43. L'application implémente des éléments d'interface utilisateur, notamment des vues Web, pour afficher le portail de services de l'opérateur permettant aux utilisateurs d'activer les services et interagit avec d'autres composants Android pour gérer l'expérience utilisateur de bout en bout.

    Pour plus d'informations sur la configuration d'Android pour qu'il fonctionne avec le serveur de droits d'accès basé sur TS.43 d'un opérateur, consultez l'application ImsServiceEntitlement .

Les lignes numérotées de la figure 1 montrent comment les composants de la fonctionnalité d'autorisation du service IMS communiquent entre eux. Ce qui suit décrit chacune des étapes étiquetées :

(1) L'application client appelle l'API de service TS.43 pour lancer une demande de droit au service.

(2) L'API du service TS.43 envoie une requête HTTP au serveur d'autorisation de l'opérateur pour lancer un défi EAP-AKA.

(3) L'API du service TS.43 appelle des API de téléphonie (par exemple, getIccAuthentication ) pour compléter la défi-réponse EAP-AKA.

(4) Le service TS.43 reçoit les données d'autorisation de service ou de configuration du serveur d'autorisation de l'opérateur après vérification de la réponse EAP-AKA.

(5) Le service TS.43 renvoie le droit au service ou les données de configuration à l'application client.

(6) L'application client gère les données et restitue éventuellement le portail de services de l'opérateur pour que l'utilisateur puisse terminer l'activation du service.

L'intégration

Cette section décrit le processus d'intégration de la bibliothèque service_entitlement et de l'application ImsServiceEntitlement .

Puisqu'il n'y a pas de dépendance à l'API Android 12, la bibliothèque service_entitlement et l'application ImsServiceEntitlement peuvent être rétroportées sur des plates-formes Android plus anciennes.

bibliothèque service_entitlement

Étant donné que la bibliothèque service_entitlement est liée de manière statique à l' ImsServiceEntitlement app , aucune étape supplémentaire n'est requise pour l'intégration de la bibliothèque dans l'application ImsServiceEntitlement .

La bibliothèque service_entitlement peut être intégrée à vos propres applications pour les cas d'utilisation TS.43 tels que le plan de données et ODSA. La bibliothèque peut également être intégrée à une application pour les cas d'utilisation de droits non TS.43 basés sur le protocole EAP-AKA.

Ce qui suit décrit les API à utiliser pour de tels cas d'utilisation :

  • Application TS.43 utilisant le protocole HTTP TS.43 implémenté dans la bibliothèque : Utiliser les API de la classe ServiceEntitlement
  • Application non TS.43 utilisant le protocole EAP-AKA implémenté dans la bibliothèque : utilisez les API exposées dans la classe EapAkaHelper

Application ImsServiceEntitlement

Par défaut, Android inclut l'application ImsServiceEntitlement installée dans la partition du produit en tant qu'application privilégiée. Pour configurer l'application, utilisez les touches CarrierConfig suivantes :

Clé Valeur
KEY_ENTITLEMENT_SERVER_URL_STRING URL du serveur d'autorisation de l'opérateur. Le préfixe https:// doit être inclus.
KEY_FCM_SENDER_ID_STRING ID de l'expéditeur FCM du transporteur.

Ne définissez pas cette valeur si FCM n’est pas requis par l’opérateur.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL Définissez sur true si l'opérateur exige une interface utilisateur de portail Web pour que les utilisateurs puissent s'inscrire au service VoWiFi. Par exemple, consentir aux termes et conditions ou saisir une adresse d’urgence.

Ceci est généralement exigé par les transporteurs en Amérique du Nord.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
Définissez sur com.android.imsserviceentitlement/.WfcActivationActivity , si KEY_SHOW_VOWIFI_WEBVIEW_BOOL est true .
KEY_IMS_PROVISIONING_BOOL Définissez sur true si l'opérateur nécessite la fourniture du réseau des services IMS (VoLTE/VoWiFi/SMSoIP) en arrière-plan.

Ceci est exigé par certains transporteurs européens.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL Défini sur true si KEY_IMS_PROVISIONING_BOOL est true .

Le trafic HTTP vers le serveur d'autorisation et le portail Web d'un opérateur passe par le réseau par défaut, par exemple les données mobiles par défaut ou le Wi-Fi.

Partenaires GMS : les opérateurs suivants sont pris en charge par l'application de droits TS.43 dans Android 12, conformément à la spécification TS.43 v5.0 :

  • États-Unis : CSpire, US Cellular, Cellcom
  • France : Orange

Interface utilisateur système supplémentaire pour le provisionnement IMS

Cette section décrit comment les OEM peuvent prendre en charge des éléments d'interface utilisateur système supplémentaires liés à la fourniture du service IMS (par exemple, lors de l'affichage d'une notification lorsque VoWiFi est provisionné).

L'application ImsServiceEntitlement définit l'état d'approvisionnement VoWiFi dans la plate-forme à l'aide de l'API système ProvisioningManager.setProvisioningIntValue(KEY_VOICE_OVER_WIFI_ENABLED_OVERRIDE, value) . Cette API est également utilisée pour la VoLTE (avec KEY_VOLTE_PROVISIONING_STATUS ) et SMSoIP (avec KEY_SMS_OVER_IP_ENABLED ).

L'interface utilisateur du système peut ensuite lire l'état d'approvisionnement à l'aide de getProvisioningIntValue ou en enregistrant un rappel pour surveiller le changement d'état d'approvisionnement via registerProvisioningChangedCallback .

Remplacement des configurations pour les tests

Utilisez les procédures suivantes pour modifier temporairement le comportement de l'application ImsServiceEntitlement à des fins de test. Pour plus de détails sur la manière de remplacer les configurations d'opérateur, voir Remplacement des configurations d'opérateur .

Ignorer le processus d'inscription VoWiFi

Pour ignorer le processus d'inscription VoWiFi, permettant d'activer directement VoWiFi, remplacez la configuration de l'opérateur KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING et définissez sa valeur sur une chaîne vide.

Ignorer le provisionnement IMS

Pour ignorer le provisionnement IMS, rendre les services IMS disponibles et permettre aux utilisateurs d'activer ces services sans provisionnement du réseau, remplacez la configuration de l'opérateur KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL et définissez sa valeur sur false .

Modification de l'URL du serveur de droits

Pour modifier l'URL du serveur de droits, remplacez la configuration de l'opérateur KEY_ENTITLEMENT_SERVER_URL_STRING et définissez sa valeur sur la chaîne d'URL attendue. Vous devez inclure le préfixe https:// .

Remplacement des configurations d'opérateur

À partir d'Android 11, les commandes de remplacement de la configuration de l'opérateur sont intégrées et disponibles avec les privilèges root.

La commande suivante est un exemple de la façon de remplacer la clé de configuration de l'opérateur carrier_volte_provisioning_required_bool et de définir sa valeur sur false . Vous pouvez exécuter la commande plusieurs fois pour remplacer plusieurs configurations.

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

Pour effacer tous les remplacements, utilisez la commande suivante :

adb shell cmd phone cc clear-values

Pour obtenir plus d'informations, exécutez la commande suivante :

adb shell cmd phone cc