Enregistrement unique IMS

Android 12 introduit la prise en charge d'un modèle d'enregistrement unique 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 ImsService de l'appareil et de se conformer aux exigences introduites par certains opérateurs de télécommunications. Par rapport à un modèle à 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 augmente la fiabilité.

Android 12 prend en charge ce modèle d'enregistrement unique via une architecture avec un ensemble d'API qui permettent à la pile téléphonique 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 les fonctionnalités ImsService par défaut de l'appareil pour MMTEL et RCS sur un seul enregistrement IMS. Cela inclut le provisionnement, le transfert de messages SIP et l'échange de capacités utilisateur RCS.

Architecture à mode d'enregistrement unique

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

Android 11 et versions antérieures ne prennent en charge qu'un modèle à double enregistrement pour fournir les fonctionnalités MMTEL et RCS, où MMTEL est fourni par 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. 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 à double mode d'enregistrement

Figure 2. Architecture du modèle d'enregistrement double

API d'enregistrement unique IMS

Les appareils qui s'étendent sur 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 montre les API qui prennent en charge l'enregistrement unique IMS.

Surfaces d'API prenant en charge l'enregistrement unique IMS

Figure 3. Surfaces d'API de haut niveau prenant en charge l'enregistrement unique IMS

Les appareils Android qui prennent en charge l'enregistrement unique IMS dans le cadre de la pile téléphonique AOSP doivent prendre en charge toutes les API AOSP décrites dans le tableau suivant.

Surface de l'API API des applications RCS API IMS du fournisseur Description
Approvisionnement RCS Gestionnaire de provisionnement 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 de droit d'opérateur propriétaire. ImsService doit également prendre en charge le standard AutoConfigurationServer (ACS) 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 balises de fonctionnalité RCS spécifiques à l'appareil ImsService , puis d'envoyer et de recevoir des messages SIP et des mises à jour d'enregistrement IMS associées à ces balises de fonctionnalité RCS.
Notifications au porteur dédiées Gestionnaire de connectivité RéponseAppelDonnées Permet à une application d'écouter les 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 d'accéder aux clés utilisées pour les fonctionnalités RCS telles que le transfert de fichiers.
Échange de capacités utilisateur RCS ImsRcsManager RcsCapabilityExchangeImplBase Offre à AOSP la possibilité d'envoyer ses capacité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 capacités utilisateur RCS. Permet également à d'autres applications intéressées par les capacités RCS d'un ou plusieurs contacts d'interroger le réseau pour connaître les capacité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 éléments suivants doivent être vrais :

  • 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 rôle SMS par défaut de l'utilisateur à l'aide de RoleManager

Si ces deux conditions ne sont pas remplies, l'application se voit refuser l'accès à l'autorisation android.permission.PERFORM_IMS_SINGLE_REGISTRATION . 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 capacités RCS des numéros de téléphone à l'aide de RcsUceAdapter . Pour que cette autorisation soit accordée, les éléments suivants doivent être vrais :

  • 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 messagerie par défaut : définie par l'utilisateur.
    • Application de numérotation par défaut : définie par l'utilisateur.
    • Application de contacts par défaut : un 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 ensuite attribuer le rôle de contacts.

Pour accéder à l'APN IMS à l'aide ConnectivityManager pour configurer et 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 prise en charge de base de la messagerie RCS à des fins de test et de développement. Vous pouvez trouver l'application sur testapps/TestRcsApp . Lorsque l'application est installée sur un appareil, elle peut être définie comme application de messagerie par défaut de l'utilisateur et disposera des autorisations requises pour accéder aux API d'enregistrement unique IMS.

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

Mise en œuvre

Pour plus de détails sur la mise en œuvre, téléchargez IMS Single Registration dans Android .

Validation

Pour valider votre mise en œuvre de l'enregistrement unique IMS, procédez comme suit :

  • Assurez-vous que la suite de tests CtsTelephonyTestCases CTS réussit.
  • Installez et exécutez TestRcsApp pour exécuter des cas de test d'enregistrement unique de base pendant l'intégration.
  • Réussissez la certification de l'opérateur pour les cas de test d'enregistrement unique IMS.