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 d'avoir toutes les fonctionnalités IMS gérées 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, où 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 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 les fonctionnalités ImsService par défaut de l'appareil pour MMTEL et RCS sur un seul enregistrement IMS. Cela inclut l'approvisionnement, le transfert de messages SIP et l'échange de capacités utilisateur RCS.

Architecture en 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 les fonctionnalités ImsService et RCS de l'appareil sont implémentées par-dessus et gèrent leur propre pile IMS et leur connexion au réseau de l'opérateur indépendamment.

La figure 2 illustre l'architecture du modèle d'enregistrement double. Dans ce modèle, chaque application est responsable de la connexion au réseau de l'opérateur et de l'établissement d'un enregistrement IMS pour les fonctionnalités MMTEL et RCS. Le service 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 de mode d'enregistrement double

Figure 2. Architecture du modèle de double enregistrement

API d'enregistrement unique IMS

Les appareils qui s'étendent sur des opérateurs nécessitant 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 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 de téléphonie AOSP doivent prendre en charge toutes les API AOSP décrites dans le tableau suivant.

Superficie API API d'application RCS API IMS du fournisseur Description
Approvisionnement RCS ProvisioningManager ImsConfigImplBase Permet à un OEM ou à un opérateur de fournir une application pour mettre à jour l'état de provisionnement RCS si l'opérateur utilise un mécanisme d'autorisation d'opérateur propriétaire. Le service ImsService doit également prendre en charge le serveur de configuration automatique (ACS) standard pour l'approvisionnement 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 dédiées au porteur ConnectivityManager DataCallReponse 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 des clés d'accès utilisées pour les fonctionnalités RCS telles que le transfert de fichiers.
Échange de capacités utilisateur RCS ImsRcsManager RcsCapabilityExchangeImplBase Fournit à 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 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 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 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 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 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 alors attribuer le rôle de contacts.

Pour accéder à l'IMS APN à 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 une 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 nécessaires 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 implémentation 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 scénarios de test d'enregistrement unique de base pendant l'intégration.
  • Passez la certification de transporteur pour les cas de test d'enregistrement unique IMS.