Interruptor de audio

A medida que los usuarios utilizan cada vez más varios dispositivos de fuente de audio para realizar sus tareas diarias, aumenta la demanda de una solución más simple para administrar el uso de auriculares en todos los dispositivos. El cambio de audio realiza la transición de las conexiones de auriculares entre dispositivos sin problemas según la actividad del usuario (p.ej., iniciar una película) y los eventos prioritarios (p.ej., una llamada entrante).

Principios de UX

  1. El cambio de conexión debe ser rápido y basarse en la acción del usuario.
  2. El cambio de conexión debe ser transparente para los usuarios, lo que les permite controlarlo o revertirlo si no es deseable.
  3. El cambio debe respetar la privacidad del usuario.

Funciones

Buscador de interruptor de audio: El buscador es un dispositivo de fuente de audio (por ejemplo, un teléfono o una tablet) que busca auriculares cercanos para conectarse cuando corresponda.

Proveedor de interruptor de audio: Por lo general, el proveedor es un auricular que anuncia su presencia y estado de conexión para que los buscadores tomen decisiones de cambio.

Descripción general de los requisitos

Para lograr el cambio inteligente, los proveedores deben cumplir con los siguientes requisitos:

Nombre Descripción Requisitos ¿Es obligatorio?
Análisis de páginas Para aceptar una nueva solicitud de conexión de otro buscador cuando ya existe una conexión.
Para proveedores de un solo punto:
  • El dispositivo de origen original pausará automáticamente la reproducción de audio cuando se desconecte el proveedor.
Para proveedores multipunto:
  • Si aún hay una conexión disponible, aceptará la solicitud de conexión.
  • Si el ancho de banda de la conexión está completo, desconecta la conexión que se usó menos recientemente (p.ej., no hay eventos de audio durante mucho tiempo) y acepta la nueva solicitud entrante.
Para mejorar el rendimiento, se requiere el modo de análisis de páginas de baja latencia (el intervalo de análisis no debe ser superior a 640 ms).
Para lograr un equilibrio entre la duración de batería y el rendimiento de cambio, el proveedor puede tener un modo de análisis de páginas predeterminado para la mayoría de los casos (modo de bajo consumo, el intervalo de análisis no debe ser superior a 1280 ms). Sin embargo, el modo de baja latencia se debe usar en las siguientes situaciones:
  • Los primeros 30 segundos de encendido
  • Primeros 30 segundos sin conexión ni paginación
  • Los primeros 30 segundos de inactividad del dispositivo
Obligatorio
Historial de conexiones Para volver a la conexión anterior y reanudar la reproducción, si corresponde.
El cambio se activará mediante comunicaciones a través de las APIs de Message Stream.
El evento de pausa del audio se debe incluir en el registro para reanudar la reproducción, si corresponde.
Mantén el historial de conexión y, luego, implementa las APIs de Message Stream. Obligatorio
Estado de conexión Para que los buscadores realicen el juicio de cambio de conexión.El estado de la conexión incluye lo siguiente:
  • Estado de conexión
  • Tipo de audio de la conexión activa
  • Información de la cuenta de la conexión activa
  • Dispositivos conectados
Se incluye el estado de conexión en el anuncio BLE y el flujo de mensajes. Obligatorio
Cambio en las capacidades del entorno de ejecución Para habilitar el interruptor de audio, se debe actualizar el firmware en el proveedor, por lo que las funciones deben sincronizarse entre el buscador y el proveedor durante el tiempo de ejecución. Implementa las APIs de Message Stream para acceder a las funciones del entorno de ejecución. Obligatorio
Reglas de conmutación configurables Permite que Seeker configure la prioridad entre la transmisión de audio activa existente y las solicitudes de transmisión de audio nuevas a través de la configuración de preferencias del usuario.
Por ejemplo, el buscador de interruptores de audio puede proporcionar parámetros de configuración de la IU para permitir que los usuarios habiliten o inhabiliten el cambio automático entre la transmisión de contenido multimedia y las llamadas.
El buscador de interruptores de audio establecerá y obtendrá la regla de cambio a través del flujo de mensajes.
Solo para proveedores multipunto.
Implementa las APIs de Message Stream para que se puedan configurar las reglas de cambio entre dispositivos conectados.
Opcional
Cambio de dispositivo activo Permite que el buscador de interruptores de audio simule el cambio de audio entre dispositivos conectados.
En el lado del buscador de interruptores de audio, puede haber una IU para que los usuarios cambien fácilmente entre dispositivos conectados.
Solo para proveedores multipunto.
Implementa las APIs de flujo de mensajes para que el buscador de interruptores de audio determine la fuente de audio activa entre los dispositivos conectados.
Obligatorio
Notificación de cambio multipunto Permite que el buscador de interruptores de audio muestre la notificación de cambio. Solo para proveedores multipunto.
Implementa las APIs de Message Stream para notificar a los buscadores de interruptores de audio conectados cuando se realice un cambio multipunto.
Obligatorio

Carga útil publicitaria

El proveedor debe incluir su estado de conexión actual en el anuncio, que se basa en los datos de la cuenta de Fast Pair que se describen en Publicidad: Cuando no se puede detectar.

Ten en cuenta que la versión de la tabla 4.2 es 0x1.

Campo de estado de la conexión

Octeto Tipo de datos Descripción Valor ¿Es obligatorio?
0 uint8 Longitud y tipo de campo
0bLLLLTTTT
  • L = longitud del estado de la conexión en bytes
  • T = tipo
0bLLLL0101
  • longitud: varía
  • type = 0b0101
Obligatorio
1 uint8 Estado de la conexión
0bHAFRSSSS
  • H = detección en la cabeza
  • A = Disponibilidad de conexión
  • F = modo sin distracciones
  • R = Se volvió a conectar automáticamente
  • S = estado de conexión
0bHAFRSSSS
Obligatorio
2 uint8 Datos personalizados
Actualmente, solo contiene el tipo de contenido que se usa para describir el uso de la transmisión de audio actual. El solicitante se la enviará al proveedor.
El valor se envía del buscador de la transmisión activa actual al proveedor a través de la transmisión de mensajes. 0 si la transmisión activa actual no es de Seeker. Obligatorio
3: var Mapa de bits de dispositivos conectados
Es un mapa de bits para mostrar qué dispositivos están conectados actualmente al proveedor. Todos los dispositivos vinculados se organizan en orden, un bit para cada dispositivo vinculado. La duración dependerá de la cantidad de dispositivos vinculados del proveedor.
El bit asignado se establece en 1 si el dispositivo está conectado actualmente al proveedor; de lo contrario, se establece en 0.
Consulta Mapa de bits de dispositivos conectados para obtener más información.
Opcional

Tabla 4.1: Datos sin procesar del campo de estado de la conexión

Marcas de conexión
  • 0bH = detección en la cabeza

    • 1, en la cabeza ahora
    • 0, de lo contrario, no está en la cabeza o no hay un sensor de OHD
  • 0bA = Disponibilidad de conexión

    • 1, hay una conexión disponible
    • 0, de lo contrario
  • 0bF = modo sin distracciones

    • 1.Ahora, en el modo enfocado, no se permite el cambio de conexión para el uso de contenido multimedia, es decir, no se puede cambiar de A2DP a A2DP.
    • 0, de lo contrario
  • 0bR = Se volvió a conectar automáticamente

    • 1, si el proveedor vuelve a conectar automáticamente la conexión actual, lo que significa que los usuarios no la conectaron (para varios puntos, si una de las conexiones existentes se vuelve a conectar automáticamente, se debe establecer en 1)
    • 0, de lo contrario
Estado de conexión
  • 0x0: Sin conexión
  • 0x1: paginación
  • 0x2: Conectado, pero no se transfieren datos
  • 0x3: Transferencia de datos que no son de audio (solo cuando se puede cambiar, de lo contrario, usa 0xF)
  • 0x4: Transmisión de A2DP, no se aplica AVRCP
  • 0x5: Transmisión de A2DP y reproducción de AVRCP
  • 0x6: Transmisión de HFP (llamada telefónica o por VoIP), incluidos los tonos de llamada en banda y fuera de banda
  • 0x7: Audio LE: Transmisión de contenido multimedia sin control
  • 0x8: Audio LE: Transmisión de contenido multimedia con control
  • 0x9: Audio LE: Transmisión de llamadas
  • 0xA: Audio LE: transmisión
  • 0xF: Inhabilita el interruptor de conexión temporalmente (p. ej., actualización de firmware).
Tipo de contexto de audio LE y estado de conexión

Se recomienda que el proveedor de audio LE controle todos los tipos de contexto especificados en Números asignados 6.12.3 (a menos que el proveedor no admita explícitamente un tipo de contexto determinado) y asigne el tipo de contexto al estado de conexión como se indica a continuación.

  • Conversacional: 0x9
  • Medios: 0x8
  • Juego: 0x7
  • Instructivo: 0x7
  • Asistentes de voz: 0x9
  • En vivo: 0x9
  • Efectos de sonido: 0x2
  • Notificaciones: 0x2
  • Tono: 0x9
  • Alertas: 0x7
  • Alarma de emergencia: 0x9

En el caso del tipo de contexto de audio LE mixto, como la reproducción de contenido multimedia durante la llamada, el proveedor debe usar el estado de conexión con la prioridad más alta, es decir, 0x9 (llamada) para la situación anterior en lugar de 0x8 (contenido multimedia).

Mapa de bits del dispositivo conectado

Para evitar el cambio de conexión no deseado, es posible que el buscador deba saber a qué dispositivos está conectado el auricular. Por ejemplo, cuando los auriculares están conectados al teléfono, el usuario no quiere que el cambio de conexión lo interrumpa cuando uno de los miembros de la familia inicia YouTube en la tablet.

Ten en cuenta que este mapa de bits es anónimo, por lo que el buscador no puede saber qué otros dispositivos están vinculados con el proveedor. Por ejemplo, toma 5 dispositivos vinculados:

  • 0: Laptop (0bx0000000)
  • 1: phoneA (0b0x000000)
  • 2: phoneB (0b00x00000)
  • 3: Tablet (0b000x0000)
  • 4: TV (0b0000x000)

Si los dispositivos conectados actuales son una laptop y una tablet, el valor del mapa de bits será 0b10010000. Se acepta el cambio de orden si es inevitable, por ejemplo, cuando los usuarios restablecen la configuración de fábrica de los auriculares o cuando el recuento de dispositivos vinculados alcanza el límite superior.

Anuncio resoluble aleatorio

Para evitar el seguimiento y respetar la privacidad del usuario, el proveedor debe rotar y encriptar el campo por la clave de la cuenta con AES-CTR:

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

en el que

  1. La clave se deriva de la clave de la cuenta en uso, que se define en la siguiente sección.

    • La clave la genera la función HKDF, IETF RFC 5869, con la función hash SHA-256.

        Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
      
    • El proveedor debe usar la clave de cuenta original aquí, es decir, el primer byte de la clave es 0x04, que no se incluye en el patrón de uso.

  2. El IV (vector inicial) es la sal de 2 bytes de los datos de la clave de la cuenta con relleno cero, es decir, IV es concat(sal, CEROS de 14 bytes).

  3. Los datos sin procesar del estado de la conexión se definen en la tabla 4.1. Si cambia el estado de la conexión, se deben volver a generar la sal y la RPA en el mismo período publicitario.

Esto hace que el campo de estado de conexión encriptada rote al mismo tiempo que los datos de la clave de la cuenta.

El anuncio BLE tendrá la siguiente estructura:

Octeto Tipo de datos Descripción Valor ¿Es obligatorio?
0 uint8 Versión y marcas 0x10 Obligatorio
1: t Datos de la clave de la cuenta varía Obligatorio
t+1 - s Datos de la batería varía Opcional
s+1 - var Datos aleatorios que se pueden resolver varía Obligatorio si la lista de claves de la cuenta no está vacía,
de lo contrario, se excluye.

Tabla 4.2: Anuncio BLE con datos aleatorios que se pueden resolver

Los datos aleatorios que se pueden resolver contienen lo siguiente:

Octeto Tipo de datos Descripción Valor ¿Es obligatorio?
0 uint8 Longitud y tipo de campo
0bLLLLTTTT
  • L = longitud de los datos encriptados
  • T = tipo
0bLLLL0110
  • longitud: varía
  • type = 0b0110
Obligatorio
1: var Datos encriptados varía Obligatorio

Tabla 4.2.1: Datos aleatorios que se pueden resolver

Por ejemplo, si los datos aleatorios que se pueden resolver contienen un campo de estado de conexión encriptado, el resultado desencriptado será el campo de estado de conexión.

Para evitar manipulaciones, los datos de clave de la cuenta anteriores deben modificarse ligeramente cuando se incluyen los datos resoluble aleatorios en el anuncio. Por lo general, cuando se compila el filtro de claves de cuenta, se produce un valor V combinando el filtro de claves de cuenta con una sal. En cambio, cuando también se anuncian datos resolvibles aleatorios, el valor V debe construirse de la siguiente manera:

 V = concat(account_key, salt, random_resolvable_data)

Si se anuncian datos de batería y datos aleatorios que se pueden resolver, V debe compilarse de la siguiente manera:

 V = concat(account_key, salt, battery_data, random_resolvable_data)

En Usar clave de cuenta

El cambio de conexión se basa en la cuenta, por lo que el proveedor debe incluir la información de la cuenta de la conexión actual en el anuncio BLE. Si el dispositivo conectado actual es un buscador de interruptores de audio, el proveedor debería poder obtener la clave de la cuenta asociada a este buscador y usarla para encriptar el campo de estado de la conexión. Si la fuente de audio conectada no es un buscador de interruptores de audio, el proveedor debe usar la clave de cuenta que se usó más recientemente.

Antes de calcular el filtro de claves de cuenta, el proveedor debe modificar el primer byte de las claves de cuenta para incluir uno de los siguientes patrones de uso:

  1. 0b00000100
    Esta clave de cuenta no está en uso.
    Esta es la predeterminada (consulta Clave de la cuenta).
  2. 0b00000101
    Esta clave de cuenta es la que se usó más recientemente.
    Esta clave de cuenta encripta el campo de estado de la conexión. No hay información de la clave de la cuenta del estado de conexión actual, lo que podría significar que no hay dispositivos conectados o que el dispositivo conectado no es un buscador de interruptores de audio.
  3. 0b00000110
    Esta clave de cuenta es la clave de cuenta en uso.
    Esta clave de cuenta encripta el campo de estado de la conexión, y el dispositivo conectado actual está asociado con esta clave de cuenta.

Esquema de la carga útil del interruptor de audio

En la siguiente figura, se muestra el esquema de la carga útil del interruptor de audio.

Mensajes

Cuando están conectados, el buscador y el proveedor pueden usar el flujo de mensajes para sincronizar la función de interruptor de audio, activar un interruptor de conexión, establecer y obtener la preferencia de cambio, notificar el estado de la conexión, etcétera. Creamos un grupo de mensajes y códigos de mensajes específicos para el interruptor de audio, como se muestra a continuación.

Nombre del grupo de mensajes Valor
Cambio de audio 0x07

En las siguientes secciones, se incluyen detalles adicionales para cada código de mensaje.

Nombre del código del mensaje Valor Solo multipunto Remitente Responder Encriptar MAC Conf.
Obtén la función del interruptor de audio 0x10 N Ambos Ambos, a través del código 0x11 N N N
Notifica la capacidad del interruptor de audio 0x11 N Ambos Ambos N S
Cómo establecer el estado multipunto 0x12 Buscador Proveedor N S
Cómo establecer la preferencia de cambio 0x20 Buscador Proveedor N S
Cómo obtener la preferencia de cambio 0x21 Buscador Proveedor, mediante el código 0x22 N N N
Preferencias de notificación de cambio 0x22 Proveedor Buscador N N N
Cambiar la fuente de audio activa(al dispositivo conectado) 0x30 Buscador Proveedor N S
Cómo volver a la pantalla anterior 0x31 N Buscador Proveedor N S
Notifica el evento de cambio de varios puntos 0x32 Proveedor Buscador N N N
Cómo obtener el estado de la conexión 0x33 Buscador Proveedor, a través del código 0x34 N N N
Notifica el estado de la conexión 0x34 Proveedor Buscador N N
Notifica que se inició la conexión del interruptor de audio 0x40 N Buscador Proveedor N S
Indica la clave de cuenta en uso 0x41 N Buscador Proveedor N S
Cómo enviar datos personalizados 0x42 N Buscador Proveedor N S
Cómo establecer el objetivo de conexión de descarte 0x43 Buscador Proveedor N S

Tabla 4.3: Mensajes de cambio de audio

MAC de los mensajes de cambio de audio

Para proporcionar autenticación de mensajes, todos los mensajes de cambio de audio con datos adicionales que se envían del buscador al proveedor requieren un código de autenticación de mensajes. Cuando se recibe un mensaje con MAC, se debe confirmar para que el buscador sepa si el proveedor reaccionó o no al mensaje.

Si la autenticación del mensaje se realiza correctamente, el proveedor debe enviar el ACK del mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Declaración 0xFF
1 uint8 Conf. 0x01
2 - 3 uint16 Longitud de los datos adicionales varía
4 uint8 Cambio de audio 0x07
5 uint8 Código de mensaje de cambio de audio varía
6 - s Datos adicionales varía

Si falla, el proveedor enviará el NAK para el mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Declaración 0xFF
1 uint8 NAK 0x02
2 - 3 uint16 Longitud de los datos adicionales 0x0003
4 uint8 Motivo del error varía
5 uint8 Cambio de audio 0x07
6 uint8 Código de mensaje de cambio de audio varía

Ten en cuenta que, si el proveedor es el remitente, no se requiere el MAC.

Cómo obtener la capacidad del cambio de audio

Tanto el proveedor como el buscador de interruptores de audio pueden verificar si el buscador o proveedor de vinculación rápida conectado admite el interruptor de audio con el siguiente mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Cómo obtener la capacidad del cambio de audio 0x10
2 - 3 uint16 Longitud de los datos adicionales 0

Tabla 4.3.1.0: Obtén la función del interruptor de audio

Notificación de la función de cambio de audio

Cuando reciba el código de mensaje get capability of Audio switch, el buscador o proveedor de interruptores de audio responderá con una de las siguientes marcas:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Notificación de la función de cambio de audio 0x11
2 - 3 uint16 Longitud de los datos adicionales 20 si lo envía el solicitante
4 si lo envía el proveedor
4 - 5 uint16 Código de versión del interruptor de audio Un valor distinto de cero significa que admite el interruptor de audio. El código de la versión actual (con la mejora de seguridad) es 0x0102.
0x0000 o ninguna respuesta en 1 segundo significa que el interruptor de audio no es compatible con este dispositivo.
6 - 7 flags Marcas de capacidad del interruptor de audio del proveedor
Si el buscador envía esta información, se deben ignorar estos dos bytes.
varía
Consulta Marcas de capacidades del interruptor de audio.
8 a 15 Nonce de mensaje
Solo es obligatorio cuando lo envía Seeker
varía
16 a 23 Código de autenticación de mensajes
Solo es obligatorio cuando el solicitante lo envía.
varía

Tabla 4.3.1.1: Notifica la capacidad del interruptor de audio

Marcas de capacidades del cambio de audio
  1. Bit 0 (octeto 6, MSB): Estado del interruptor de audio

    • 1, si el estado del interruptor de audio está activado
    • 0, de lo contrario
  2. Bit 1: configurabilidad multipunto

    • 1, si el dispositivo admite la función multipunto y se puede activar o desactivar
    • 0, de lo contrario (no es compatible con multipunto o multipunto siempre está activado)
  3. Bit 2: Estado actual multipunto

    • 1, si la función multipunto está activada
    • 0, de lo contrario
  4. Bit 3: Detección de uso

    • 1, si este dispositivo admite la detección de cabeza (incluso si la detección de cabeza está desactivada ahora)
    • 0, de lo contrario
  5. Bit 4: Estado actual de la detección de uso

    • 1, si la detección de uso está activada
    • 0, de lo contrario (no admite la detección en la cabeza o está inhabilitada)
  6. Todos los demás bits están reservados, el valor predeterminado es 0.

Cómo establecer el estado multipunto

En los buscadores de interruptores de audio, es posible que proporcionemos la configuración para que los usuarios activen o desactiven la función multipunto. El buscador establecerá el estado multipunto en el proveedor con el siguiente mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Cómo establecer el estado multipunto 0x12
2 - 3 uint16 Longitud de los datos adicionales 17
4 uint8 Estado multipunto 0: Desactiva la función multipunto.
1: Activa la función multipunto.
De 5 a 12 Nonce de mensaje varía
De 13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.1.2: Establece el estado de multipunto

Cómo establecer la preferencia de cambio

Los buscadores de interruptores de audio pueden modificar la preferencia de cambio de multipunto y configurarla en el proveedor con el siguiente mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Cómo establecer la preferencia de cambio 0x20
2 - 3 uint16 Longitud de los datos adicionales 18
4 flags Preferencia de cambio varía
Consulta el marcador de preferencia de cambio de multipunto.
5 Configuración de cambio avanzada
Este byte está reservado, el valor predeterminado es 0.
varía
6 a 13 Nonce de mensaje varía
Entre 14 y 21 Código de autenticación de mensajes varía

Tabla 4.3.2.0: Establece la preferencia de cambio

Marca de preferencia de cambio multipunto
  • Bit 0 (MSB): A2DP vs. A2DP (predeterminado 0)
  • Bit 1: HFP o HFP (predeterminado 0)
  • Bit 2: A2DP o HFP (predeterminado: 0)
  • Bit 3: HFP o A2DP (predeterminado: 1)
  • Bits 4 a 7: reservados
  • Lo anterior representa "solicitud de perfil nuevo" en comparación con "perfil activo actual".
    • 0 para no cambiar
    • 1 para cambiar

Cómo obtener la preferencia de cambio

Los buscadores de interruptores de audio pueden consultar la preferencia de cambio de multipunto del proveedor con el siguiente mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Cómo obtener la configuración de cambio 0x21
2 - 3 uint16 Longitud de los datos adicionales 0

Tabla 4.3.2.1: Obtén la preferencia de cambio

Notificar preferencia de cambio

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Notificar preferencia de cambio 0x22
2 - 3 uint16 Longitud de los datos adicionales 2
4 flags Cómo cambiar las marcas de preferencia varía
Consulta el marcador de preferencia de cambio de multipunto.
5 Configuración de cambio avanzada
Este byte está reservado, el valor predeterminado debe ser 0.
varía

Tabla 4.3.2.2: Notificación de preferencia de cambio

Cambiar la fuente de audio activa (al dispositivo conectado)

Los buscadores de interruptores de audio pueden solicitar al proveedor multipunto que cambie la fuente de audio activa entre los dispositivos conectados con el siguiente mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Cambiar la fuente de audio activa (al dispositivo conectado) 0x30
2 - 3 uint16 Longitud de los datos adicionales 17
4 flags Cómo cambiar las marcas de eventos de fuente de audio activa varía
Consulta Cambio del evento de fuente de audio activa.
De 5 a 12 Nonce de mensaje varía
De 13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.3.0: Cambia la fuente de audio activa (al dispositivo conectado)

Cambio del evento de fuente de audio activa
  • Bit 0 (MSB): 1 cambia a este dispositivo, 0 cambia al segundo dispositivo conectado
  • Bit 1: 1 reanuda la reproducción cuando se cambia al dispositivo después del cambio, 0 de lo contrario. Reanudar la reproducción significa que el proveedor envía una notificación de REPRODUCIR al buscador a través del perfil AVRCP. Si el estado anterior (antes de cambiar) no era PLAY, el proveedor debe ignorar esta marca.
  • Bit 2: 1 rechaza SCO en el dispositivo conmutado, 0 de lo contrario
  • Bit 3: 1 desconecta Bluetooth en el dispositivo de cambio de modo, 0 en caso contrario.
  • Bits 4 a 7: reservados

Es posible que los buscadores de interruptores de audio no siempre conozcan su estado correctamente, por lo que es posible que el proveedor reciba un mensaje de "cambiar a este dispositivo" cuando el buscador ya sea el dispositivo activo. En este caso, para mostrar la IU correcta en Seeker, el proveedor puede enviar un NAK con el motivo del error 0x4: Acción redundante del dispositivo.

En el caso de un proveedor de audio LE que tiene más de un miembro del conjunto, el proveedor debe desconectar a todos los miembros del buscador. De lo contrario, la pila de Bluetooth del buscador se volverá a conectar al proveedor.

Volver (al dispositivo desconectado)

Si el cambio de conexión no es deseado, los usuarios pueden revertirlo y, en algunos casos, es conveniente restablecer la conexión de audio para minimizar las interrupciones. El buscador usará el siguiente mensaje para activar el cambio:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Volver (al dispositivo desconectado) 0x31
2 - 3 uint16 Longitud de los datos adicionales 17
4 uint8 Evento de cambio varía
0x01: volver a cambiar
0x02: volver a cambiar y reanudar la reproducción
De 5 a 12 Nonce de mensaje varía
De 13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.3.1: Cómo volver al dispositivo anterior (desconectado)

En el caso de los proveedores multipunto, para realizar un cambio de conexión, un proveedor puede desconectarse de un dispositivo de fuente de audio y pausar la sesión de audio en la otra fuente de audio. Por ejemplo, supongamos que los auriculares multipunto están conectados a una tableta y a un tercer dispositivo de cambio de audio compatible. El usuario mira un video en la tablet cuando recibe una llamada entrante en el teléfono. El teléfono activará un interruptor de conexión en los auriculares, que debe desconectar el tercer dispositivo para conectarse al teléfono y, al mismo tiempo, pausar la sesión multimedia en la tablet para obtener el tono de llamada del teléfono. Si el usuario rechaza la llamada, es posible que el teléfono le solicite al auricular que "regrese y reanude la reproducción". Cuando se recibe esta solicitud, los auriculares deben volver a conectarse al tercer dispositivo y reanudar la reproducción del video pausado en la tablet.

Notifica el evento de cambio de multipunto

Para que los usuarios sepan que se está produciendo un evento de cambio de interruptor multipunto, el buscador de interruptores de audio puede mostrarles una notificación. El proveedor debe notificar a los buscadores de interruptores de audio conectados sobre el evento de cambio.

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Notificar evento de cambio de varios puntos
El proveedor debe enviarlo en cada cambio, incluido el cambio de Audio Switch Seeker a no Audio Switch Seeker, el cambio de no Audio Switch Seeker a Audio Switch Seeker y el cambio de Audio Switch Seeker a Audio Switch Seeker
0x32
2 - 3 uint16 Longitud de los datos adicionales varía
4 uint8 Motivo del cambio
Este valor se debe determinar en función del estado de la conexión. En el caso de los casos de uso de audio LE, puede ser útil analizar la asignación entre el tipo de contexto de audio LE y el estado de conexión. Por ejemplo, el estado de conexión correspondiente a los asistentes de voz es 0x9(audio LE: transmisión de llamadas). Por lo tanto, el motivo del cambio para un cambio iniciado por los asistentes de voz debe ser 0x02.
varía
0x00: No especificado
0x01: Contenido multimedia (p.ej., transmisión de A2DP, transmisión de contenido multimedia de LEA)
0x02: Llamada (p.ej., transmisión de HFP, transmisión de llamadas de LEA)
5 uint8 Dispositivo de destino varía
0x01: este dispositivo
0x02: otro dispositivo conectado
6 - n utf8 Nombre del dispositivo de destino
(si el dispositivo de destino es un buscador de interruptores de audio, usa el nombre al que envió el buscador; de lo contrario, usa el nombre de BT; si no corresponde, usa los últimos 2 bytes de su dirección)
varía

Tabla 4.3.3.2: Notifica el evento de cambio de multipunto

Cómo obtener el estado de la conexión

El buscador puede obtener el estado de conexión actual del proveedor:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Cómo obtener el estado de la conexión 0x33
2 - 3 uint16 Longitud de los datos adicionales 0

Tabla 4.3.3.3: Cómo obtener el estado de conexión

Cuando reciba este mensaje, el proveedor deberá responder con el código de mensaje 0x34, notificar el estado de la conexión.

Notificar el estado de la conexión

Como se define en la carga útil publicitaria de BLE, para los proveedores multipunto, si cambia el estado de la conexión, excepto por el cambio del paquete de publicidad, el proveedor también debe notificar el cambio a los buscadores conectados que usan la misma clave de cuenta. Si el proveedor está conectado a un buscador de interruptores de audio y a un buscador de interruptores que no es de audio, y el buscador de interruptores que no es de audio está activo, el proveedor también debe notificar al buscador de interruptores de audio conectado sobre el estado de la conexión (con la clave de cuenta del buscador).

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Notificar el estado de la conexión 0x34
2 - 3 uint16 Longitud de los datos adicionales varía
4 uint8 Marca de dispositivo activo varía
0x00: Este buscador es pasivo y el dispositivo activo usa la misma clave de cuenta.
0x01: Este buscador es el dispositivo activo.
0x02: Este buscador es pasivo y el dispositivo activo no es un buscador de interruptores de audio.
5 - n Estado de la conexión encriptada varía
n+1 a n+8 Nonce de mensaje varía

Tabla 4.3.3.4: Notifica el estado de la conexión

Mensaje de estado de la conexión encriptada

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

Donde:

Notificar que se inició la conexión del cambio de audio

Es posible que los proveedores de interruptores de audio deban saber si el interruptor de audio activa el cambio de conexión para tener reacciones diferentes, p.ej., inhabilitar los tonos de alerta para los eventos del interruptor de audio. El buscador envía un mensaje para notificar al proveedor que esta conexión fue una conexión iniciada por el interruptor de audio.

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Notificar que se inició la conexión del cambio de audio 0x40
2 - 3 uint16 Longitud de los datos adicionales 17
4 uint8 Indicación de conexión iniciada por el cambio de audio varía
0: El interruptor de audio no activó esta conexión.
1: Esta fue una conexión iniciada por el interruptor de audio.
De 5 a 12 Nonce de mensaje varía
De 13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.4.0: Notifica la conexión iniciada del interruptor de audio

Indica la clave de cuenta en uso

Si varias claves de cuenta en el buscador (p.ej., multiusuario) están asociadas con el proveedor, el buscador usará el siguiente mensaje para indicar qué clave de cuenta se está usando.

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Indica la clave de cuenta en uso 0x41
2 - 3 uint16 Longitud de los datos adicionales 22
4 a 9 utf8 Cadena en uso UTF8 ("en uso")
10 - 17 Nonce de mensaje varía
Entre 18 y 25 años Código de autenticación de mensajes varía

Tabla 4.3.4.1: Clave de cuenta de uso

Cuando recibe este mensaje, el proveedor puede saber qué clave de cuenta se está usando verificando el código de autenticación del mensaje.

Envía datos personalizados

El buscador de interruptores de audio activo puede encapsular la información (p.ej., el uso de audio) de la transmisión de audio en un byte de datos personalizado y enviarla al proveedor con el siguiente mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Envía datos personalizados 0x42
2 - 3 uint16 Longitud de los datos adicionales 17
4 uint8 Datos personalizados varía
De 5 a 12 Nonce de mensaje varía
De 13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.4.2: Envía datos personalizados

Cuando reciba los datos personalizados, el proveedor actualizará el paquete de publicidad para incluirlos. En el caso de un proveedor multipunto, también debe notificar el cambio de estado de la conexión a otro buscador conectado con la misma clave de cuenta.

Cómo establecer el destino de la conexión de caída

En los auriculares multipunto, si la conexión preferida que se debe desconectar no es la que se usó menos recientemente, los buscadores de interruptores de audio pueden indicarle al proveedor qué dispositivo desconectar con el siguiente mensaje:

Octeto Tipo de datos Descripción Valor
0 uint8 Cambio de audio 0x07
1 uint8 Cómo establecer el destino de la conexión de caída 0x43
2 - 3 uint16 Longitud de los datos adicionales 17
4 uint8 Dispositivo conectado de destino que se soltará varía
1: este dispositivo
De 5 a 12 Nonce de mensaje varía
De 13 a 20 Código de autenticación de mensajes varía

Tabla 4.3.4.3: Establece el destino de la conexión de descarte