Droit d'accès au service IMS

À partir d'Android 12, Android est compatible avec la configuration des droits d'accès aux services TS.43, une spécification GSMA qui définit l'étape de vérification des droits d'accès pour l'activation de services tels que la voix off (VoWi-Fi), la voix off (VoLTE), les SMS sur IP (SMSoIP), l'activation des services sur l'appareil (ODSA) des appareils associés à l'eSIM (associés à l'appareil à l'origine de la demande) et l'activation des informations sur les appareils associés à l'eSIM.

Pour prendre en charge cette spécification, Android fournit une fonctionnalité de droit d'accès au 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 d'accès permet à l'appareil d'interroger le serveur des droits d'accès de l'opérateur, tel que défini par la spécification GSMA TS.43 concernant l'état des droits d'accès IMS à l'aide de l'authentification EAP-AKA, sans que les utilisateurs aient à saisir manuellement des identifiants.

Les opérateurs disposant de serveurs de droits d'accès IMS peuvent utiliser la fonctionnalité des droits d'accès au service IMS pour le provisionnement du service. 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 d'accès peut être utilisée pour plusieurs produits et OEM.
  • Réduction des coûts de développement pour les fabricants d'appareils via une application Android standard.
  • Permet aux fabricants et opérateurs d'appareils de contribuer au code de la fonctionnalité, car celle-ci est Open Source.
  • Permet de gérer les adresses d'urgence des transporteurs en Amérique du Nord.

Architecture

La figure suivante décrit l'architecture et le comportement de la fonctionnalité de droit d'accès au service IMS.

Fonctionnalité relative aux droits d'accès dans TS.43

Figure 1 : TS.43 Architecture des fonctionnalités des droits d'accès

Comme le montre la figure 1, l'architecture de la fonctionnalité des droits d'accès au service IMS comprend les composants suivants:

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

    Pour savoir comment configurer Android afin qu'il fonctionne avec le serveur de droits d'accès basé sur TS.43 d'un opérateur, consultez la section Application ImsServiceEntitlement.

Les lignes numérotées de la figure 1 montrent comment les composants du droit d'accès au service IMS communiquent entre eux. Ce qui suit décrit chacune des étapes comme étiquetée:

(1) L'application cliente appelle l'API de service TS.43 pour lancer une demande de droit d'accès au service.

(2) L'API de service TS.43 envoie une requête HTTP au serveur de gestion des droits de l'opérateur pour lancer un test EAP-AKA.

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

(4) Le service TS.43 reçoit les données de configuration ou de droit d'accès au service du serveur de gestion des droits de l'opérateur une fois la réponse EAP-AKA validée.

(5) Le service TS.43 renvoie les données de configuration ou de droit d'accès du service à l'application cliente.

(6) L'application cliente traite les données et affiche éventuellement le portail de services de l'opérateur afin que l'utilisateur puisse terminer l'activation du service.

Intégration

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

Comme il n'existe aucune dépendance à l'API Android 12, la bibliothèque service_entitlement et l'application ImsServiceEntitlement peuvent être rétroportées sur d'anciennes plates-formes Android.

Bibliothèque service_entitlement

Étant donné que la bibliothèque service_entitlement est liée de manière statique à ImsServiceEntitlement app, aucune étape supplémentaire n'est requise pour l'intégrer à 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 les forfaits de données et ODSA. La bibliothèque peut également être intégrée à une application pour les cas d'utilisation de droits d'accès non-TS.43 basés sur le protocole EAP-AKA.

Vous trouverez ci-dessous la description des 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 des produits en tant qu'application privilégiée. Pour configurer l'application, utilisez les clés CarrierConfig suivantes:

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

Ne définissez pas cette valeur si FCM n'est pas requis par le transporteur.
KEY_SHOW_VOWIFI_WEBVIEW_BOOL Définissez ce paramètre 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, accepter les conditions d'utilisation ou saisir une adresse d'urgence.

Cette étape est généralement requise par les opérateurs en Amérique du Nord.
KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING
Définissez ce paramètre sur com.android.imsserviceentitlement/.WfcActivationActivity si KEY_SHOW_VOWIFI_WEBVIEW_BOOL est défini sur true.
KEY_IMS_PROVISIONING_BOOL Définissez la valeur sur true si l'opérateur nécessite le provisionnement réseau des services IMS (VoLTE/VoWiFi/SMSoIP) en arrière-plan.

Cette opération est requise par certains opérateurs européens.
KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL Définissez ce paramètre sur true si KEY_IMS_PROVISIONING_BOOL est défini sur true.

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

Partenaires GMS:les opérateurs suivants sont compatibles avec l'application de gestion des 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 de messagerie instantanée

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

L'application ImsServiceEntitlement définit l'état de provisionnement VoWiFi sur 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'UI du système peut ensuite lire l'état de provisionnement à l'aide de getProvisioningIntValue ou en enregistrant un rappel pour surveiller le changement d'état de provisionnement via registerProvisioningChangedCallback.

Remplacer des configurations pour les tests

Utilisez les procédures suivantes pour modifier temporairement le comportement de l'application ImsServiceEntitlement à des fins de test. Pour savoir comment remplacer les configurations de l'opérateur, consultez la section Remplacer des configurations d'opérateur.

Ignorer la procédure d'inscription VoWiFi

Pour ignorer le processus d'inscription VoWiFi, en autorisant directement le 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 d'IMS

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

Modifier l'URL du serveur des droits d'accès

Pour modifier l'URL du serveur de droits d'accès, 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://.

Remplacer les configurations d'opérateur

À partir d'Android 11, les commandes de remplacement de configuration de l'opérateur sont intégrées et disponibles avec des droits racine.

La commande suivante montre comment remplacer la clé de configuration de l'opérateur carrier_volte_provisioning_required_bool et 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