Android 12 introduit la prise en charge d'un modèle d'enregistrement unique pour fournir des 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 se conformer aux exigences introduites par certains opérateurs télécoms. Par rapport à un modèle d'enregistrement double, 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 est compatible avec ce modèle d'enregistrement unique grâce à une architecture dotée d'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 IMS unique, les fabricants d'appareils et les fournisseurs de SoC doivent implémenter ces API afin d'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 IMS unique. Toutes les applications IMS utilisent le service ImsService par défaut de l'appareil pour les fonctionnalités MMTEL et RCS avec un seul enregistrement IMS. Cela inclut le provisionnement, le transfert des messages SIP et l'échange des 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. Dans ce modèle, MMTEL est fourni par l'ImsService de l'appareil, et les fonctionnalités RCS sont implémentées par-dessus et gèrent leur propre pile IMS et leur propre connexion au réseau de l'opérateur de manière indépendante.
La figure 2 illustre l'architecture du modèle à double enregistrement. 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.
Figure 2. Architecture du modèle d'enregistrement double
API d'enregistrement unique IMS
Les appareils qui fonctionnent sur des opérateurs nécessitant un enregistrement IMS unique doivent être compatibles avec les API d'enregistrement IMS unique 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.
Figure 3. Surfaces d'API de haut niveau compatibles avec l'enregistrement IMS unique
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 ci-dessous.
Surface de l'API | API de l'application RCS | API IMS du fournisseur | Description |
---|---|---|---|
Provisionnement RCS | ProvisioningManager | ImsConfigImplBase | Permet à un OEM ou à un opérateur de fournir une application pour mettre à jour l'état du provisionnement RCS si l'opérateur utilise un mécanisme d'autorisation d'opérateur propriétaire. Le service ImsService doit également être compatible avec 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'appareil ImsService , puis d'envoyer et de recevoir des messages SIP et des mises à jour d'enregistrement IMS associés à ces tags de fonctionnalités RCS. |
Notifications de porteuse dédiée | ConnectivityManager | DataCallResponse | 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 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 assurer 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 est autorisée à accéder aux autorisations privilégiées.
- L'application doit être définie comme application de SMS par défaut de l'utilisateur à l'aide de
RoleManager
.
Si l'une de ces conditions n'est pas remplie, 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, c'est-à-dire qu'elle est préinstallée sur l'appareil et 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.
- 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 reçoit ensuite 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'adresse 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 disposer 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 à l'adresse /testapps/ImsTestService
.
Implémentation
Pour en savoir plus sur l'implémentation, téléchargez IMS Single Registration in Android.
Validation
Pour valider l'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.
- Réussir la certification de l'opérateur pour les scénarios de test d'enregistrement unique IMS.