Buzón de voz visual

Android 6.0 (Marshmallow) trajo una implementación de compatibilidad con correo de voz visual (VVM) integrada en el Marcador, lo que permite que los servicios Carrier VVM compatibles se conecten al Marcador con una configuración mínima. El correo de voz visual permite a los usuarios consultar fácilmente el correo de voz sin realizar 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 según lo 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 se requiere una conexión de datos móviles mediante KEY_VVM_CELLULAR_DATA_REQUIRED_BOOLEAN
  • Obtención de transcripciones de mensajes de voz
  • Obtención de cuota de correo de voz

Este artículo ofrece 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 versiones posteriores incluyen un cliente OMTP VVM, que (cuando se proporciona con la configuración correcta) se conectará a los servidores Carrier VVM y completará 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 de 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.
  • Recupera 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 funciones del usuario como devolver llamadas, 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 mensajes 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 OMTP versión 1.1 y no utilizamos cifrado para la autenticación IMAP.

Para admitir transcripciones, los operadores 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 enviados al dispositivo desde el servidor (por ejemplo, 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), de modo 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 dinámicamente configuración relacionada con la telefonía a los distintos componentes de la plataforma que la necesiten. 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

  1. El cliente VVM escucha TelephonyIntents#ACTION_SIM_STATE_CHANGED o CarrierConfigManager#ACTION_CARRIER_CONFIG_CHANGED .
  2. Cuando se agrega una tarjeta SIM que tiene los valores correctos de configuración del operador ( KEY_VVM_TYPE_STRING configurado en TelephonyManager.VVM_TYPE_OMTP o TelephonyManager.VVM_TYPE_CVVM ), el cliente VVM envía un SMS ACTIVATE al valor especificado en KEY_VVM_DESTINATION_NUMBER_STRING .
  3. El servidor activa el servicio de correo de voz visual y envía las credenciales OMTP mediante sms de ESTADO. Cuando el cliente VVM recibe el SMS de ESTADO, registra la fuente del correo de voz y muestra la pestaña del correo de voz en el dispositivo.
  4. Las credenciales OMTP se guardan localmente y el dispositivo comienza una sincronización completa, como se describe a continuación.

Sincronización

Hay varias formas en que el cliente VVM puede sincronizarse con el servidor del operador y viceversa.

  • Las sincronizaciones completas se producen durante la descarga inicial. El cliente VVM recupera metadatos del correo de voz como la fecha y la hora; número de origen; duración; transcripciones de correo de voz, si están disponibles; y datos de audio si KEY_VVM_PREFETCH_BOOLEAN es Verdadero. Las sincronizaciones completas se pueden activar mediante:
    • Insertar una nueva SIM
    • Reiniciando el dispositivo
    • Volviendo al servicio
    • Recibiendo 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 hacen 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 de sincronización "MBU" (actualización del buzón) del operador. Un mensaje SYNC contiene los metadatos de un mensaje nuevo 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 del correo de voz de la plataforma.

Deshabilitar VVM

El servicio VVM se puede desactivar 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. Desactivado 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 la SIM desactiva temporalmente el servicio porque ya no está presente y el reemplazo del 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 desactiva el correo de voz visual, también desactiva su servicio. Cuando desactivan el correo de voz visual, se envía un SMS DESACTIVAR, la fuente del correo de voz se cancela 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 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 SIM determinada, entonces la fuente del correo de voz se anula del registro local y la pestaña del correo de voz desaparece. Si se reemplaza la SIM, se volverá a habilitar VVM.

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 verificando 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 mediante la interacción del usuario.

Pruebas

Existe un conjunto de pruebas CTS (desde Android 4.0) para las API de VoicemailProvider que permiten que una aplicación inserte, consulte o elimine mensajes de voz en la plataforma. Estas son las mismas API que utiliza VVM para agregar/eliminar mensajes de voz para que cualquier aplicación de marcador pueda mostrarlos en la interfaz de usuario.

Para probar que su aplicación de configuración pasa la configuración OMTP correctamente, puede probar su código con:

  • Una tarjeta SIM que contenga una firma de certificado válida
  • Un dispositivo que ejecuta Android 6.0 con una versión no modificada del marco del teléfono AOSP