Android 6.0 (Marshmallow) a apporté une implémentation de la prise en charge de la messagerie vocale visuelle (VVM) intégrée au Dialer, permettant aux services Carrier VVM compatibles de se connecter au Dialer avec une configuration minimale. La messagerie vocale visuelle permet aux utilisateurs de consulter facilement leur messagerie vocale sans passer d'appels téléphoniques. Les utilisateurs peuvent afficher une liste de messages dans une interface de type boîte de réception, les écouter dans n'importe quel ordre et les supprimer à leur guise.
Android 7.0 a ajouté les paramètres de configuration suivants à la messagerie vocale visuelle :
- Prélecture des messages vocaux contrôlée par
KEY_VVM_PREFETCH_BOOLEAN
- Contrôle si une connexion de données cellulaires est requise par
KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
- Récupération des transcriptions de messages vocaux
- Récupération du quota de messagerie vocale
Cet article donne un aperçu de ce qui est fourni, de la manière dont les opérateurs peuvent s'y intégrer et de quelques détails de mise en œuvre.
Client de messagerie vocale visuelle (VVM)
Android 6.0 et versions ultérieures incluent un client OMTP VVM qui (lorsqu'il est fourni avec la configuration correcte) se connectera aux serveurs Carrier VVM et remplira les messages vocaux visuels dans le numéroteur du projet Android Open Source (AOSP). Le client VVM :
- Gère les messages SMS utilisés pour activer/désactiver/interroger l'état du service et les messages SMS utilisés pour informer l'appareil des événements dans la boîte aux lettres de l'abonné
- Synchronise la boîte aux lettres avec le serveur IMAP
- Télécharge les messages vocaux lorsque l'utilisateur choisit de les écouter
- Récupère les transcriptions de la messagerie vocale
- Récupère les détails du quota de messagerie vocale (taille totale de la boîte aux lettres et taille occupée)
- S'intègre au Dialer pour les fonctionnalités utilisateur telles que le rappel, l'affichage des messages non lus, la suppression de messages, etc.
Intégration au client VVM
Mise en œuvre
L'Opérateur doit fournir un serveur de messagerie vocale visuelle mettant en œuvre les spécifications OMTP VVM . L'implémentation actuelle du client AOSP VVM prend en charge les fonctionnalités de base (lecture/suppression des messages vocaux, téléchargement/synchronisation/écoute), mais les fonctionnalités TUI supplémentaires (changement de mot de passe, message d'accueil de la messagerie vocale, langues) ne sont pas implémentées. Pour le moment, nous ne prenons en charge que la version OMTP 1.1 et n'utilisons pas le cryptage pour l'authentification IMAP.
Pour prendre en charge les transcriptions, les opérateurs doivent prendre en charge le format de pièce jointe de transcription (type MIME brut/texte) spécifié dans la spécification OMTP 1.3, point 2.1.3.
Remarque : les messages SMS émis par le serveur vers l'appareil (par exemple STATUS ou SYNC) doivent être des messages SMS de données.
Configuration
Pour qu'un opérateur puisse s'intégrer au service VVM, il doit fournir les détails de configuration à la plate-forme que le client OMTP peut utiliser. Ces paramètres sont :
- Numéro de destination et numéro de port pour SMS
- Le nom du package de l'application de messagerie vocale visuelle fournie par l'opérateur (le cas échéant), afin que l'implémentation de la plateforme puisse être désactivée si ce package est installé
Ces valeurs sont fournies via l' API Carrier Config . Cette fonctionnalité, lancée dans Android 6.0, permet à une application de fournir dynamiquement une configuration liée à la téléphonie aux différents composants de la plateforme qui en ont besoin. En particulier les clés suivantes doivent avoir des valeurs définies :
-
KEY_VVM_DESTINATION_NUMBER_STRING
-
KEY_VVM_PORT_NUMBER_INT
-
KEY_VVM_TYPE_STRING
-
KEY_CARRIER_VVM_PACKAGE_NAME_STRING
-
KEY_VVM_PREFETCH_BOOLEAN
-
KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
Veuillez consulter l'article Configuration du transporteur pour plus de détails.
Mise en œuvre
Le client OMTP VVM est implémenté au sein packages/services/Telephony
, notamment au sein de src/com/android/phone/vvm/
Installation
- Le client VVM écoute
TelephonyIntents#ACTION_SIM_STATE_CHANGED
ouCarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED
. - Lorsqu'une carte SIM est ajoutée avec les bonnes valeurs Carrier Config (
KEY_VVM_TYPE_STRING
défini surTelephonyManager.VVM_TYPE_OMTP
ouTelephonyManager.VVM_TYPE_CVVM
), le client VVM envoie un SMS ACTIVATE à la valeur spécifiée dansKEY_VVM_DESTINATION_NUMBER_STRING
. - Le serveur active le service de messagerie vocale visuelle et envoie les informations d'identification OMTP via STATUS sms. Lorsque le client VVM reçoit le sms STATUS, il enregistre la source de la messagerie vocale et affiche l'onglet de messagerie vocale sur l'appareil.
- Les informations d'identification OMTP sont enregistrées localement et l'appareil commence une synchronisation complète, comme décrit ci-dessous.
Synchronisation
Il existe différentes manières de synchroniser le client VVM avec le serveur de l'opérateur et vice versa.
- Les synchronisations complètes se produisent lors du téléchargement initial. Le client VVM récupère les métadonnées de la messagerie vocale telles que la date et l'heure ; numéro d'origine; durée; transcriptions de messages vocaux, si disponibles ; et les données audio si
KEY_VVM_PREFETCH_BOOLEAN
est True. Les synchronisations complètes peuvent être déclenchées par :- Insérer une nouvelle carte SIM
- Redémarrer l'appareil
- Reprise du service
- Réception de la diffusion
VoicemailContract.ACTION_SYNC_VOICEMAIL
- La synchronisation du téléchargement se produit lorsqu'un utilisateur interagit avec un message vocal pour le lire ou le supprimer. Les synchronisations de téléchargement entraînent la modification par le serveur de ses données pour qu'elles correspondent aux données de l'appareil. Par exemple, si l'utilisateur lit un message vocal, celui-ci est marqué comme lu sur le serveur ; si un utilisateur supprime un message vocal, il est supprimé sur le serveur.
- La synchronisation du téléchargement se produit lorsque le client VVM reçoit un SMS SYNC « MBU » (mise à jour de la boîte aux lettres) de l'opérateur. Un message SYNC contient les métadonnées d'un nouveau message afin qu'il puisse être stocké dans le fournisseur de contenu de messagerie vocale.
Remarque : Les valeurs de quota de la boîte de réception de la messagerie vocale sont récupérées à chaque synchronisation.
Téléchargement de la messagerie vocale
Lorsqu'un utilisateur appuie sur play pour écouter un message vocal, le fichier audio correspondant est téléchargé. Si l'utilisateur choisit d'écouter la messagerie vocale, le numéroteur peut diffuser VoicemailContract.ACTION_FETCH_VOICEMAIL
, que le client de messagerie vocale recevra, lancer le téléchargement du contenu et mettre à jour l'enregistrement dans le fournisseur de contenu de messagerie vocale de la plateforme.
Désactivation de la VVM
Le service VVM peut être désactivé ou désactivé par l'interaction de l'utilisateur, la suppression d'une carte SIM valide ou son remplacement par une application VVM de l'opérateur. Désactivé signifie que l'appareil local n'affiche plus la messagerie vocale visuelle. Désactivé signifie que le service est désactivé pour l'abonné. L'interaction de l'utilisateur peut désactiver le service, la suppression de la carte SIM désactive temporairement le service car il n'est plus présent et le remplacement de la VVM par l'opérateur désactive le client AOSP VVM.
Interaction de l'utilisateur
L'utilisateur peut activer ou désactiver manuellement la messagerie vocale visuelle. Si un utilisateur désactive la messagerie vocale visuelle, il désactive également son service. Lorsqu'ils désactivent la messagerie vocale visuelle, un sms DEACTIVATE est envoyé, la source de la messagerie vocale n'est pas enregistrée localement et l'onglet de la messagerie vocale disparaît. S'ils réactivent la messagerie vocale visuelle, leur service est également réactivé.
Suppression de la carte SIM
Si l'état de la carte SIM de l'appareil ( ACTION_SIM_STATE_CHANGED
) ou les valeurs de configuration de l'opérateur ( ACTION_CARRIER_CONFIG_CHANGED
) changent et qu'une configuration valide pour la carte SIM donnée n'existe plus, la source de messagerie vocale est désenregistrée localement et l'onglet de messagerie vocale disparaît. Si la carte SIM est remplacée, VVM sera réactivé.
Remplacé par le transporteur VVM
Une application de messagerie vocale visuelle de l'opérateur, si elle est installée sur l'appareil, peut désactiver le client AOSP VVM. Ceci est réalisé en vérifiant si un package dont le nom correspond au paramètre KEY_CARRIER_VVM_PACKAGE_NAME_STRING
est installé.
Le client VVM peut toujours être activé via l'interaction de l'utilisateur.
Essai
Il existe (depuis Android 4.0) un ensemble de tests CTS pour les API VoicemailProvider qui permettent à une application d'insérer/interroger/supprimer des messages vocaux dans la plate-forme. Ce sont les mêmes API que VVM utilise pour ajouter/supprimer des messages vocaux afin que n'importe quelle application Dialer puisse les afficher dans l'interface utilisateur.
Pour tester que votre application de configuration réussit correctement la configuration OMTP, vous pouvez tester votre code avec :
- Une carte SIM contenant une signature de certificat valide
- Un appareil fonctionnant sous Android 6.0 avec une version non modifiée du framework téléphonique AOSP