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.
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.
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.
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:
android.permission.PERFORM_IMS_SINGLE_REGISTRATION
android.permission.ACCESS_RCS_USER_CAPABILITY_EXCHANGE
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