Android 6.0 (Marshmallow) a introduit une implémentation de la compatibilité avec la messagerie vocale visuelle (MVV) intégrée au clavier, ce qui permet aux services VMV compatibles de l'opérateur de s'intégrer au clavier avec une configuration minimale. La messagerie vocale visuelle permet aux utilisateurs de consulter facilement leurs messages vocaux sans passer d'appels téléphoniques. Les utilisateurs peuvent afficher une liste de messages dans une interface semblable à une 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échargement des messages vocaux contrôlé par
KEY_VVM_PREFETCH_BOOLEAN
- Contrôle de la nécessité d'une connexion aux données mobiles par
KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
- Récupération des transcriptions des messages vocaux
- Récupération du quota de messages vocaux
Cette page présente ce qui est fourni, comment les opérateurs peuvent l'intégrer et certains détails de l'implémentation.
Client de messagerie vocale visuelle
Android 6.0 et versions ultérieures incluent un client VVM OMTP, qui (lorsqu'il est fourni avec la configuration appropriée) se connecte aux serveurs VVM de l'opérateur et renseigne les messages VVM 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 des messages vocaux
- Récupère les détails du quota de messagerie vocale (taille totale de la boîte aux lettres et taille occupée)
- Intégration au clavier pour les fonctionnalités utilisateur telles que le rappel, la consultation des messages non lus, la suppression de messages, etc.
Intégrer au client VVM
Implémentation
L'opérateur doit fournir un serveur de messagerie vocale visuelle implémentant les spécifications de la messagerie vocale visuelle de l'OMTP. L'implémentation actuelle du client VVM AOSP prend en charge les fonctionnalités de base (lire/supprimer les messages vocaux, télécharger/synchroniser/écouter), mais les fonctionnalités TUI supplémentaires (modification du mot de passe, message d'accueil du message vocal, langues) ne sont pas implémentées. Pour le moment, nous n'acceptons que la version 1.1 d'OMTP et n'utilisons pas de chiffrement pour l'authentification IMAP.
Pour prendre en charge les transcriptions, les opérateurs doivent prendre en charge le format d'attachement de transcription (type MIME texte brut/texte) spécifié dans la spécification OMTP 1.3, point 2.1.3.
Remarque:Les messages SMS envoyés par le serveur à 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 à la plate-forme des informations de configuration que le client OMTP peut utiliser. Ces paramètres sont les suivants:
- Numéro de destination et numéro de port pour les SMS
- 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 plate-forme 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 de manière dynamique une configuration liée à la téléphonie aux différents composants de la plate-forme qui en ont besoin. En particulier, les valeurs suivantes doivent être 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
Pour en savoir plus, consultez la section Configuration de l'opérateur.
Implémentation
Le client VVM OMTP est implémenté dans packages/services/Telephony
, en particulier dans src/com/android/phone/vvm/
.
Configuration
- Le client VVM écoute
TelephonyIntents#ACTION_SIM_STATE_CHANGED
ouCarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED
. - Lorsqu'une carte SIM est ajoutée avec les valeurs de configuration du transporteur appropriées (
KEY_VVM_TYPE_STRING
défini surTelephonyManager.VVM_TYPE_OMTP
ouTelephonyManager.VVM_TYPE_CVVM
), le client VVM envoie un SMS d'ACTIVATION à la valeur spécifiée dansKEY_VVM_DESTINATION_NUMBER_STRING
. - Le serveur active le service de messagerie vocale visuelle et envoie les identifiants OMTP via STATUS SMA. Lorsque le client VVM reçoit le SMS STATUS, il enregistre la source de messagerie vocale et affiche l'onglet de messagerie vocale sur l'appareil.
- Les identifiants OMTP sont enregistrés localement et l'appareil commence une synchronisation complète, comme décrit ci-dessous.
Synchronisation en cours
Le client VVM peut se synchroniser avec le serveur de l'opérateur de différentes manières, et inversement.
- Les synchronisations complètes ont lieu lors du téléchargement initial. Le client VVM extrait les métadonnées de messagerie vocale telles que la date et l'heure, le numéro d'origine, la durée, les transcriptions de messagerie vocale, le cas échéant, et les données audio si
KEY_VVM_PREFETCH_BOOLEAN
est défini sur "True". Les synchronisations complètes peuvent être déclenchées par :- Insérer une nouvelle carte SIM
- redémarrant l'appareil ;
- Retour en service
- Recevoir la diffusion
VoicemailContract.ACTION_SYNC_VOICEMAIL
- La synchronisation de l'importation se produit lorsqu'un utilisateur interagit avec un message vocal pour le lire ou le supprimer. Les synchronisations d'importation entraînent la modification des données du serveur pour qu'elles correspondent à celles de l'appareil. Par exemple, si l'utilisateur lit un message vocal, il est marqué comme lu sur le serveur. Si un utilisateur supprime un message vocal, il est supprimé sur le serveur.
- La synchronisation de téléchargement se produit lorsque le client VVM reçoit un SMS de synchronisation "MBU" (mise à jour de la boîte de réception) 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 messages vocaux
Lorsqu'un utilisateur appuie sur le bouton de lecture pour écouter un message vocal, le fichier audio correspondant est téléchargé. Si l'utilisateur choisit d'écouter le message vocal, le clavier peut diffuser VoicemailContract.ACTION_FETCH_VOICEMAIL
, que le client de messagerie vocale reçoit, lancer le téléchargement du contenu et mettre à jour l'enregistrement dans le fournisseur de contenu de messagerie vocale de la plate-forme.
Désactiver VVM
Le service de messagerie vocale visuelle peut être désactivé ou désactivé par l'utilisateur, par la suppression d'une carte SIM valide ou par le remplacement par une application de messagerie vocale visuelle de l'opérateur. Désactivé signifie que l'appareil local n'affiche plus la messagerie vocale visuelle. Désactivé : le service est désactivé pour l'abonné. L'interaction de l'utilisateur peut désactiver le service, la suppression de la carte SIM le désactive temporairement, car elle n'est plus présente, et le remplacement de la VVM de l'opérateur désactive le client VVM AOSP.
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'il désactive la messagerie vocale visuelle, un SMS DEACTIVATE est envoyé, la source de la messagerie vocale n'est plus enregistrée en local et l'onglet de la messagerie vocale disparaît. Si l'utilisateur réactive la messagerie vocale visuelle, son service est également réactivé.
Retrait de la carte SIM
Si l'état de la carte SIM (ACTION_SIM_STATE_CHANGED
) ou les valeurs de la configuration de l'opérateur (ACTION_CARRIER_CONFIG_CHANGED
) de l'appareil changent et qu'il n'existe plus de configuration valide pour la carte SIM donnée, la source de messagerie vocale n'est pas enregistrée localement et l'onglet de messagerie vocale disparaît. Si la carte SIM est remplacée, la messagerie vocale visuelle est réactivée.
Remplacé par la VVM de l'opérateur
Une application de messagerie vocale visuelle de l'opérateur, si elle est installée sur l'appareil, peut désactiver le client VVM AOSP. Pour ce faire, vérifiez si un package portant un nom correspondant au paramètre KEY_CARRIER_VVM_PACKAGE_NAME_STRING
est installé.
Le client VVM peut toujours être activé par l'utilisateur.
Tests
Il existe un ensemble de tests CTS (depuis Android 4.0) pour les API VoicemailProvider qui permettent à une application d'insérer/d'interroger/de supprimer des messages vocaux dans la plate-forme. Il s'agit des mêmes API que VVM utilise pour ajouter/supprimer des messages vocaux afin que n'importe quelle application de numérotation puisse les afficher dans l'UI.
Pour vérifier que votre application de configuration transmet correctement la configuration OMTP, vous pouvez tester votre code avec:
- Une carte SIM contenant une signature de certificat valide
- Un appareil équipé d'Android 6.0 avec une version non modifiée du framework téléphonique AOSP