Android 6.0 (Marshmallow) trajo una implementación de soporte de correo de voz visual (VVM) integrado en el Marcador, lo que permite que los servicios compatibles de Carrier VVM se conecten al Marcador con una configuración mínima. El correo de voz visual permite a los usuarios revisar fácilmente el correo de voz sin hacer ninguna llamada telefónica. Los usuarios pueden ver una lista de mensajes en una interfaz similar a una bandeja de entrada, escucharlos en cualquier orden y eliminarlos como deseen.
Android 7.0 agregó los siguientes parámetros de configuración al correo de voz visual:
- Precarga de mensajes de voz controlados por
KEY_VVM_PREFETCH_BOOLEAN
- Control de si
KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
requiere una conexión de datos móviles - Obtención de transcripciones de mensajes de voz
- Obtención de la cuota de correo de voz
Este artículo brinda una descripción general de lo que se proporciona, cómo los operadores pueden integrarlo y algunos detalles de la implementación.
Cliente de correo de voz visual (VVM)
Android 6.0 y superior incluye un cliente OMTP VVM, que (cuando se proporciona con la configuración correcta) se conectará a los servidores Carrier VVM y completará los mensajes de correo de voz visuales dentro del marcador del proyecto de código abierto de Android (AOSP). El cliente VVM:
- Maneja los mensajes SMS utilizados para activar/desactivar/consultar el estado del servicio y los mensajes SMS utilizados para notificar al dispositivo los eventos en el buzón del suscriptor
- Sincroniza el buzón con el servidor IMAP
- Descarga los mensajes de voz cuando el usuario elige escucharlos
- Obtiene transcripciones de mensajes de voz
- Obtiene detalles de la cuota de correo de voz (tamaño total del buzón y tamaño ocupado)
- Se integra en el Marcador para la funcionalidad del usuario, como devolver la llamada, ver mensajes no leídos, eliminar mensajes, etc.
Integrar con el cliente VVM
Implementación
El Operador debe proporcionar un servidor de correo de voz visual que implemente las especificaciones OMTP VVM . La implementación actual del cliente AOSP VVM admite las funciones principales (leer/eliminar correos de voz, descargar/sincronizar/escuchar), pero las funciones TUI adicionales (cambio de contraseña, saludo de correo de voz, idiomas) no están implementadas. En este momento, solo admitimos la versión 1.1 de OMTP y no usamos cifrado para la autenticación IMAP.
Para admitir transcripciones, los transportistas deben admitir el formato de archivo adjunto de transcripción (tipo MIME sin formato/texto) especificado en la especificación OMTP 1.3, elemento 2.1.3.
Nota : Los mensajes SMS originados en el servidor al dispositivo (p. ej., ESTADO o SINCRONIZACIÓN) deben ser mensajes SMS de datos.
Configuración
Para que un operador se integre con el servicio VVM, el operador debe proporcionar detalles de configuración a la plataforma que el cliente OMTP puede usar. Estos parámetros son:
- Número de destino y número de puerto para SMS
- El nombre del paquete de la aplicación de correo de voz visual proporcionada por el operador (si se proporciona una), para que la implementación de la plataforma se pueda desactivar si ese paquete está instalado
Estos valores se proporcionan a través de la API de configuración del operador. Esta funcionalidad, lanzada en Android 6.0, permite que una aplicación proporcione de forma dinámica la configuración relacionada con la telefonía a los diversos componentes de la plataforma que la necesitan. En particular, las siguientes claves deben tener valores definidos:
-
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
Consulte el artículo Configuración del operador para obtener más detalles.
Implementación
El cliente OMTP VVM se implementa dentro de packages/services/Telephony
, en particular dentro de src/com/android/phone/vvm/
Configuración
- El cliente VVM escucha
TelephonyIntents#ACTION_SIM_STATE_CHANGED
oCarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED
. - Cuando se agrega una tarjeta SIM que tiene los valores de configuración de operador correctos (
KEY_VVM_TYPE_STRING
establecido enTelephonyManager.VVM_TYPE_OMTP
oTelephonyManager.VVM_TYPE_CVVM
), el cliente VVM envía un SMS ACTIVATE al valor especificado enKEY_VVM_DESTINATION_NUMBER_STRING
. - El servidor activa el servicio de correo de voz visual y envía las credenciales OMTP a través de STATUS sms. Cuando el cliente VVM recibe el sms de ESTADO, registra la fuente del correo de voz y muestra la pestaña de correo de voz en el dispositivo.
- Las credenciales de OMTP se guardan localmente y el dispositivo comienza una sincronización completa, como se describe a continuación.
Sincronizando
Hay una variedad de formas en que el cliente VVM puede sincronizarse con el servidor del operador y viceversa.
- Las sincronizaciones completas ocurren en la descarga inicial. El cliente VVM obtiene metadatos de correo de voz como la fecha y la hora; número de origen; duración; transcripciones de mensajes de voz, si están disponibles; y datos de audio si
KEY_VVM_PREFETCH_BOOLEAN
es True. Las sincronizaciones completas pueden ser activadas por:- Insertar una nueva SIM
- Reinicio del dispositivo
- Volviendo al servicio
- Recepción de la transmisión
VoicemailContract.ACTION_SYNC_VOICEMAIL
- La sincronización de carga ocurre cuando un usuario interactúa con un correo de voz para leerlo o eliminarlo. Las sincronizaciones de carga dan como resultado que el servidor cambie sus datos para que coincidan con los datos del dispositivo. Por ejemplo, si el usuario lee un mensaje de voz, se marca como leído en el servidor; si un usuario elimina un correo de voz, se elimina en el servidor.
- La sincronización de descarga se produce cuando el cliente VVM recibe un sms SYNC "MBU" (actualización de buzón) del operador. Un mensaje SYNC contiene los metadatos de un nuevo mensaje para que pueda almacenarse en el proveedor de contenido del correo de voz.
Nota : los valores de cuota de la bandeja de entrada del correo de voz se recuperan durante cada sincronización.
Descarga de correo de voz
Cuando un usuario presiona reproducir para escuchar un correo de voz, se descarga el archivo de audio correspondiente. Si el usuario elige escuchar el correo de voz, el marcador puede transmitir VoicemailContract.ACTION_FETCH_VOICEMAIL
, que recibirá el cliente de correo de voz, iniciar la descarga del contenido y actualizar el registro en el proveedor de contenido de correo de voz de la plataforma.
Deshabilitar VVM
El servicio VVM se puede deshabilitar o desactivar mediante la interacción del usuario, la eliminación de una SIM válida o el reemplazo por una aplicación VVM del operador. Deshabilitado significa que el dispositivo local ya no muestra el correo de voz visual. Desactivado significa que el servicio está desactivado para el suscriptor. La interacción del usuario puede desactivar el servicio, la eliminación de SIM desactiva temporalmente el servicio porque ya no está presente y el reemplazo de VVM del operador desactiva el cliente AOSP VVM.
La interacción del usuario
El usuario puede habilitar o deshabilitar manualmente el correo de voz visual. Si un usuario deshabilita el correo de voz visual, también está desactivando su servicio. Cuando deshabilitan el correo de voz visual, se envía un sms de DESACTIVAR, la fuente del correo de voz no está registrada localmente y la pestaña del correo de voz desaparece. Si vuelven a habilitar el correo de voz visual, su servicio también se reactiva.
eliminación de tarjeta SIM
Si hay cambios en el estado de la tarjeta SIM del dispositivo ( ACTION_SIM_STATE_CHANGED
) o en los valores de configuración del operador ( ACTION_CARRIER_CONFIG_CHANGED
), y ya no existe una configuración válida para la tarjeta SIM dada, entonces la fuente del correo de voz se cancela localmente y la pestaña del correo de voz desaparece. Si se reemplaza la tarjeta SIM, VVM se volverá a habilitar.
Reemplazado por el operador VVM
Una aplicación de correo de voz visual del operador, si está instalada en el dispositivo, puede desactivar el cliente AOSP VVM. Esto se logra comprobando si está instalado un paquete con un nombre que coincida con el parámetro KEY_CARRIER_VVM_PACKAGE_NAME_STRING
.
El cliente VVM aún se puede habilitar a través de la interacción del usuario.
Pruebas
Hay un conjunto existente (desde Android 4.0) de pruebas CTS para las API de VoicemailProvider que permiten que una aplicación inserte, consulte o elimine correos de voz en la plataforma. Estas son las mismas API que usa VVM para agregar/eliminar correos de voz para que cualquier aplicación Dialer pueda mostrarlos en la interfaz de usuario.
Para probar su aplicación de configuración está pasando la configuración OMTP correctamente, puede probar su código con:
- Una tarjeta SIM que contiene una firma de certificado válida
- Un dispositivo con Android 6.0 con una versión no modificada del marco de teléfono AOSP