Cómo implementar texto en tiempo real

En esta página, se describe cómo implementar el texto en tiempo real (RTT) en Android 9. El RTT es una función para usuarios sordos o con hipoacusia que reemplaza la tecnología de teletipo (TTY). Con esta función, los dispositivos pueden usar el mismo número de teléfono para llamadas de voz y RTT, transmitir texto de forma simultánea mientras se escribe carácter por carácter, admitir comunicaciones al 911 y brindar retrocompatibilidad con TTY.

En una llamada de RTT, tanto el emisor como el receptor tienen indicaciones de que se encuentran en una llamada de RTT. Cuando se establece la conexión, ambas partes ingresan a la llamada de RTT, donde se activan la entrada de texto y el teclado. Cuando escribes, el texto aparece y se envía a medida que se escribe, carácter por carácter.

Ejemplos y fuente

Los componentes del framework están disponibles en AOSP en Call.RttCall y Connection.RttTextStream. Los componentes del IMS o del módem son de propiedad exclusiva y deben ser proporcionados por el proveedor del IMS o del módem. También está disponible la implementación de referencia de RTT del dialer.

Código de marcado del AOSP para RTT:

Implementación

Para implementar el RTT, debes trabajar con un proveedor de módem o SoC, ya que se requiere un módem compatible con RTT. Puedes actualizar a Android 9 o portar a versiones anteriores una lista de parches del framework de telefonía a Android 8.0. Las APIs agregadas en el AOSP de Android 8.0 no funcionarán.

Esta función usa APIs públicas en AOSP en android.telecom y @SystemApis en android.telephony.ims. Toda la IU se encuentra dentro de com.android.phone y el dialer de AOSP.

Para implementar RTT, importa el código de AOSP y proporciona una pila de IMS que implemente @SystemApis del lado de IMS para RTT. Para ello, debes seguir estos pasos:

  • Cómo activar o desactivar el RTT con ImsConfig#setProvisionedValue(RTT_SETTING_ENABLED)
  • Cómo indicar el estado de RTT de una llamada con ImsStreamMediaProfile#mRttMode
  • Compatibilidad con los siguientes métodos en ImsCallSession:

    • sendRttMessage
    • sendRttModifyRequest
    • sendRttModifyResponse
  • Compatibilidad para llamar a los siguientes métodos en ImsCallSessionListener:

    • callSessionRttModifyRequestReceived
    • callSessionRttModifyResponseReceived
    • callSessionRttMessageReceived

Personalización

Puedes habilitar o inhabilitar esta función con la configuración del dispositivo, config_support_rtt, en la superposición de configuración del dispositivo para packages/services/Telephony y la marca de configuración del operador, CarrierConfigManager.RTT_SUPPORTED_BOOL, en los archivos de configuración del operador. Según la configuración, la función estará disponible a través de la configuración de accesibilidad o no. Usa la configuración del dispositivo para cambiar la configuración predeterminada. De forma predeterminada, la función está desactivada.

Validación

Para validar tu implementación de RTT, ejecuta pruebas de CTS y realiza pruebas de RTT del marcador.

Pruebas de CTS

Las pruebas de CTS (android.cts.telecom.RttOperationsTest) abarcan la parte de AOSP de la implementación. Debes proporcionar tus propias pruebas para la parte de la pila de IMS de la implementación.

Pruebas de RTT del dialer

Descripción de la situación Maqueta de la IU
Si el RTT está inhabilitado en el dispositivo, se mostrará un diálogo sobre el RTT.

Banner de RTT

En la configuración del Teléfono, hay una pantalla de Texto en tiempo real disponible en Configuración > Accesibilidad, que proporciona la opción de elegir otro modo de RTT.

Accesibilidad de RTT

Cuando la RTT está habilitada de forma predeterminada, ocurre lo siguiente:
  • Mientras se realiza la llamada, se muestra la IU de marcación estándar durante la llamada.
  • Cuando se establece la conexión de la llamada, se muestra la vista del modo RTT. Si el usuario receptor no usa el modo RTT de forma predeterminada, se muestra un banner que indica que se solicitó el modo RTT mientras se espera una respuesta.

IU de RTT durante la llamada

Si la función RTT está inhabilitada en el dispositivo:
  • La pantalla de llamada entrante muestra la bocina de respuesta estándar y las etiquetas de llamada estándar.

IU de llamada estándar de RTT

Si el RTT está habilitado en el dispositivo y tiene la configuración predeterminada para responder todas las llamadas como RTT, ocurrirá lo siguiente:
  • La pantalla de llamada entrante muestra el puck de RTT y las etiquetas de llamada asociadas.
  • Cuando respondes la llamada, se carga la vista en modo RTT con el teclado habilitado.

Vista del modo RTT

En la IU de la llamada de RTT, se proporcionan opciones para permitir que los usuarios controlen el estado de la llamada de voz y obtengan ayuda general sobre el uso de RTT:
  • Activar o desactivar el micrófono
  • Activa y desactiva el altavoz.
  • Usa el teclado como entrada.
  • Agrega otra llamada.
  • Cambiar a una llamada de voz desde una llamada de RTT
  • Activa o desactiva la opción de mantener presionado.

Opciones de la IU durante la llamada de RTT

En la pantalla Detalles de la llamada, si seleccionas el vínculo Ver transcripción, se mostrará una vista de conversación completa con el texto completo de la sesión de RTT. Se muestran las marcas de tiempo. El usuario puede volver a la pantalla Detalles de la llamada con el botón Atrás.

Detalles de la llamada RTT