Enregistrement unique IMS

Android 12 prend en charge un seul modèle d'enregistrement pour fournir les fonctionnalités MMTEL et RCS. Ce modèle permet aux appareils de gérer toutes les fonctionnalités IMS via un seul enregistrement IMS fourni par l'ImsService de l'appareil et de respecter les exigences introduites par certains opérateurs de télécommunications. Par rapport à un modèle d'enregistrement à double enregistrement, dans lequel plusieurs enregistrements IMS sont gérés sur un seul appareil, l'enregistrement unique réduit le trafic sur le réseau de l'opérateur et améliore la fiabilité.

Android 12 prend en charge ce modèle d'enregistrement unique via une architecture avec un ensemble d'API qui permet à la pile de téléphonie AOSP de gérer à la fois les fonctionnalités MMTEL fournies par ImsService et les fonctionnalités RCS fournies par l'application de messagerie RCS sélectionnée par l'utilisateur. Pour prendre en charge l'enregistrement unique IMS, les fabricants d'appareils et les fournisseurs de SoC doivent implémenter ces API pour activer les fonctionnalités RCS dans l'application de messagerie RCS sélectionnée par l'utilisateur.

La figure 1 illustre la pile IMS de l'appareil lors de l'utilisation du modèle d'enregistrement unique IMS. Toutes les applications IMS utilisent l'ImsService par défaut de l'appareil pour les fonctionnalités MMTEL et RCS via un seul enregistrement IMS. Cela inclut le provisionnement, le transfert de messages SIP et l'échange de fonctionnalités utilisateur RCS.

Architecture du mode d'enregistrement unique

Figure 1 : Architecture du modèle d'enregistrement unique

Android 11 et les versions antérieures ne prennent en charge qu'un modèle d'enregistrement double pour fournir les fonctionnalités MMTEL et RCS, où MMTEL est fourni par l'ImsService de l'appareil et les fonctionnalités RCS sont implémentées par-dessus et gèrent indépendamment leur propre pile IMS et leur connexion au réseau de l'opérateur.

La figure 2 illustre l'architecture du modèle à double enregistrement. Dans ce modèle, chaque application est chargée de se connecter au réseau de l'opérateur et d'établir un enregistrement IMS pour les fonctionnalités MMTEL et RCS. L'ImsService de l'appareil implémente MMTEL, utilise la connexion de données IMS de l'appareil au réseau de l'opérateur et fonctionne indépendamment des autres applications RCS.

architecture en mode double enregistrement

Figure 2. Architecture du modèle à double enregistrement

API d'enregistrement unique IMS

Les appareils qui utilisent des opérateurs qui nécessitent un enregistrement unique IMS doivent prendre en charge les API d'enregistrement unique IMS et définir la fonctionnalité Android PackageManager#FEATURE_TELEPHONY_IMS_SINGLE_REGISTRATION. La figure 3 présente les API compatibles avec l'enregistrement unique IMS.

Surfaces d'API compatibles avec l'enregistrement unique IMS

Figure 3. Surfaces d'API de haut niveau compatibles avec l'enregistrement unique IMS

Les appareils Android compatibles avec l'enregistrement unique IMS dans la pile de téléphonie AOSP doivent être compatibles avec toutes les API AOSP décrites dans le tableau suivant.

Surface de l'API API des applications RCS API IMS du fournisseur Description
Provisionnement du RCS ProvisioningManager ImsConfigImplBase Permet à un OEM ou à un opérateur de fournir une application pour mettre à jour l'état de provisionnement du RCS si l'opérateur utilise un mécanisme d'attribution de droits propriétaire. ImsService doit également prendre en charge le serveur de configuration automatique (ACS) standard pour le provisionnement des opérateurs qui n'utilisent pas de mécanisme propriétaire.
Transfert de messages SIP SipDelegateManager SipTransportImplBase Permet à une application RCS d'associer d'abord des tags de fonctionnalités RCS spécifiques à l'ImsService de l'appareil, puis d'envoyer et de recevoir des messages SIP et des mises à jour d'enregistrement IMS associées à ces tags de fonctionnalités RCS.
Notifications de support dédié ConnectivityManager DataCallResponse Permet à une application d'écouter des notifications QoS sur un socket associé à un port local spécifique.
Authentification GBA bootstrapAuthenticationRequest. GbaService Permet à une application RCS de s'authentifier auprès du réseau et des clés d'accès utilisées pour les fonctionnalités RCS telles que le transfert de fichiers.
Échange de fonctionnalités utilisateur RCS ImsRcsManager RcsCapabilityExchangeImplBase Permet à AOSP d'envoyer ses fonctionnalités MMTEL et RCS au fournisseur ImsService afin qu'elles puissent être publiées sous une seule entité sur le réseau pour l'échange de fonctionnalités utilisateur RCS. Permet également aux autres applications intéressées par les fonctionnalités RCS d'un ou de plusieurs contacts d'interroger le réseau sur les fonctionnalités RCS des contacts.

Sécurité et autorisations

Android 12 introduit les autorisations suivantes pour garantir un accès sécurisé au réseau de l'opérateur et aux données de l'utilisateur:

L'autorisation android.permission.PERFORM_IMS_SINGLE_REGISTRATION doit être définie par l'application de messagerie avec les fonctionnalités RCS. Pour que cette autorisation soit accordée, les conditions suivantes doivent être remplies:

  • L'application doit être installée en tant qu'application privilégiée, c'est-à-dire qu'elle est préinstallée sur l'appareil et qu'elle est autorisée à accéder aux autorisations privilégiées.
  • L'application doit être définie comme rôle SMS par défaut de l'utilisateur à l'aide de RoleManager.

Si ces deux conditions ne sont pas remplies, l'accès à l'autorisation android.permission.PERFORM_IMS_SINGLE_REGISTRATION est refusé à l'application. Cela signifie que les applications tierces ne sont pas autorisées à accéder aux API d'enregistrement unique RCS, car elles nécessitent une certification de l'opérateur sur l'appareil.

L'autorisation android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE, lorsqu'elle est accordée à une application qui dispose également de l'autorisation READ_CONTACTS, permet à l'application de demander les fonctionnalités RCS des numéros de téléphone à l'aide de RcsUceAdapter. Pour que cette autorisation soit accordée, les conditions suivantes doivent être remplies:

  • L'application doit être installée en tant qu'application privilégiée, ce qui signifie qu'elle est préinstallée sur l'appareil et qu'elle est autorisée à accéder aux autorisations privilégiées.
  • L'application doit être définie comme l'un des rôles RoleManager suivants:

    • Application de chat par défaut: définie par l'utilisateur.
    • Appli de téléphone par défaut: définie par l'utilisateur.
    • Application de contacts par défaut: rôle introduit dans Android 12 qui permet à l'OEM de définir un nom de package via la valeur de superposition de l'appareil config_systemContacts, qui doit correspondre à l'application de contacts de l'appareil. Cette application se voit alors attribuer le rôle de contacts.

Pour accéder à l'APN IMS à l'aide de ConnectivityManager afin de configurer et de gérer le trafic de données, les applications doivent également demander l'autorisation android.permission.CONNECTIVITY_USE_RESTRICTED_NETWORKS.

Exemples et source

Android fournit une application dans AOSP qui implémente une application de messagerie de test avec une prise en charge de base de la messagerie RCS à des fins de test et de développement. Vous trouverez l'application à l'emplacement testapps/TestRcsApp. Une fois l'application installée sur un appareil, elle peut être définie comme application de messagerie par défaut de l'utilisateur et disposer des autorisations requises pour accéder aux API d'enregistrement unique IMS.

Android fournit également un exemple d'implémentation d'ImsService pour le RCS. Le code source se trouve à /testapps/ImsTestService.

Implémentation

Pour en savoir plus sur l'implémentation, téléchargez IMS Single Registration in Android.

Validation

Pour valider votre implémentation de l'enregistrement unique IMS, procédez comme suit:

  • Assurez-vous que la suite de tests CTS CtsTelephonyTestCases réussit.
  • Installez et exécutez TestRcsApp pour exécuter des scénarios de test d'enregistrement unique de base lors de l'intégration.
  • Obtenir la certification du transporteur pour les scénarios de test d'enregistrement unique IMS