Cambio audio

Poiché gli utenti utilizzano sempre più dispositivi di origine audio per svolgere le proprie attività quotidiane, è in crescita la domanda di una soluzione più semplice per gestire l'utilizzo delle cuffie su più dispositivi. La funzionalità Cambio audio gestisce in modo fluido il passaggio delle connessioni delle cuffie tra i dispositivi in base all'attività dell'utente (ad esempio l'avvio di un film) e agli eventi con priorità (ad esempio una chiamata in arrivo).

Principi UX

  1. Il passaggio da una connessione all'altra deve essere rapido e basarsi sull'azione dell'utente.
  2. Il passaggio da una connessione all'altra deve essere trasparente per gli utenti, che devono poter controllare/ripristinare la connessione precedente se il passaggio non è auspicabile.
  3. Il passaggio deve rispettare la privacy dell'utente.

Ruoli

Audio Switch Seeker: il cercatore è un dispositivo di origine audio (ad esempio uno smartphone o un tablet) che cerca una cuffia nelle vicinanze a cui connettersi, se applicabile.

Fornitore di switch audio: in genere, il fornitore è un auricolare che pubblicizza la sua presenza e lo stato di connessione per consentire ai Cercatori di prendere decisioni di passaggio.

Panoramica dei requisiti

Per poter usufruire del passaggio intelligente, i fornitori devono rispettare i seguenti requisiti:

Nome Descrizione Requisiti Obbligatorio?
Scansione pagina Per accettare una nuova richiesta di connessione da un altro cercatore quando esiste già una connessione.
Per i fornitori single-point:
  • Il dispositivo di origine originale mette automaticamente in pausa la riproduzione audio quando il fornitore si disconnette.
Per i fornitori multipunto:
  • Se è ancora disponibile una connessione, accetterà la richiesta di connessione.
  • Se la larghezza di banda della connessione è esaurita, scollega la connessione meno utilizzata di recente (ad es. nessun evento audio per molto tempo) e accetta la nuova richiesta in arrivo.
Per migliorare le prestazioni, è necessaria la modalità di scansione delle pagine a bassa latenza (l'intervallo di scansione non deve superare i 640 ms).
Per trovare un compromesso tra la durata della batteria e le prestazioni del passaggio, il fornitore può avere una modalità di scansione delle pagine predefinita per la maggior parte dei casi (modalità a basso consumo, l'intervallo di scansione non deve superare i 1280 ms). Tuttavia, la modalità a bassa latenza deve essere utilizzata nelle seguenti situazioni:
  • Primi 30 secondi di accensione
  • Primi 30 secondi senza connessione o ricerca
  • Primi 30 secondi di inattività del dispositivo
Obbligatorio
Cronologia delle connessioni Per tornare alla connessione precedente e riprendere la riproduzione, se applicabile.
Il ritorno alla connessione precedente verrà attivato dalle comunicazioni tramite le API Message Stream.
L'evento di messa in pausa dell'audio deve essere incluso nel record per riprendere la riproduzione, se applicabile.
Gestisci la cronologia delle connessioni e implementa le API Message Stream. Obbligatorio
Stato della connessione Per consentire ai Cercatori di effettuare il giudizio sul passaggio di connessione.Lo stato della connessione include:
  • Stato connessione
  • Tipo di audio della connessione attiva
  • Dati dell'account della connessione attiva
  • Dispositivi connessi
Includi lo stato della connessione nello stream di annunci e messaggi BLE. Obbligatorio
Modifica delle funzionalità di runtime L'audio switch può essere attivato eseguendo l'upgrade del firmware sul fornitore, pertanto le funzionalità devono essere sincronizzate tra cercatore e fornitore in fase di esecuzione. Implementa le API Message Stream per accedere alle funzionalità di runtime. Obbligatorio
Regole di commutazione configurabili Consenti a Seeker di configurare la priorità tra lo streaming audio attivo esistente e le nuove richieste di streaming audio tramite le impostazioni delle preferenze dell'utente.
Ad esempio, il cercatore di comandi audio potrebbe fornire impostazioni dell'interfaccia utente per consentire agli utenti di attivare/disattivare il passaggio automatico tra lo streaming di contenuti multimediali e le chiamate.
Il cercatore di cambio audio imposterà e riceverà la regola di trasferimento tramite lo stream di messaggi.
Solo per i fornitori multipunto.
Implementa le API Message Stream per rendere configurabili le regole di passaggio tra i dispositivi connessi.
Facoltativo
Passaggio da un dispositivo attivo all'altro Consenti a Audio switch Seeker di simulare il passaggio dell'audio tra i dispositivi connessi.
Lato Audio switch Seeker, potrebbe essere presente un'interfaccia utente che consenta agli utenti di passare facilmente da un dispositivo connesso all'altro.
Solo per i fornitori multipunto.
Implementa le API Message Stream per la ricerca di dispositivi con Cambio audio per determinare la sorgente audio attiva tra i dispositivi connessi.
Obbligatorio
Notifica di passaggio automatico tra punti di accesso Lascia che la ricerca di cambio audio mostri la notifica di cambio. Solo fornitori multipunto.
Implementa le API Message Stream per notificare i Cercatori di cambio audio connessi quando si verifica un passaggio multipunto.
Obbligatorio

Payload pubblicitario

Il fornitore deve includere nell'annuncio il proprio stato di connessione corrente, basato sui dati dell'account di accoppiamento rapido descritti in Pubblicità: quando non è rilevabile.

Tieni presente che la versione della tabella 4.2 è 0x1.

Campo Stato connessione

Ottetto Tipo di dati Descrizione Valore Obbligatorio?
0 uint8 Lunghezza e tipo di campo
0bLLLLTTTT
  • L = lunghezza dello stato della connessione in byte
  • T = tipo
0bLLLL0101
  • durata: varia
  • type = 0b0101
Obbligatorio
1 uint8 Stato connessione
0bHAFRSSSS
  • H = rilevamento sulla testa
  • A = disponibilità della connessione
  • F = modalità di messa a fuoco
  • R = ricollegamento automatico
  • S = stato della connessione
0bHAFRSSSS
Obbligatorio
2 uint8 Dati personalizzati
Al momento, contiene solo il tipo di contenuti utilizzato per descrivere l'utilizzo dello streaming audio corrente. Il cercatore la invierà al fornitore.
Il valore viene inviato dal cercatore dello streaming attivo corrente al fornitore tramite lo stream di messaggi. 0 se lo streaming attivo corrente non proviene da Seeker. Obbligatorio
3 - var Bitmap dei dispositivi connessi
Una bitmap che mostra i dispositivi attualmente connessi al provider. Tutti i dispositivi accoppiati sono disposti in ordine, un bit per ogni dispositivo accoppiato. La durata dipende dal numero di dispositivi associati del fornitore.
Il bit mappato impostato su 1 se il dispositivo è attualmente connesso al provider, su 0 in caso contrario.
Per maggiori dettagli, consulta la sezione Bitmap dei dispositivi connessi
Facoltativo

Tabella 4.1: dati non elaborati del campo Stato connessione

Indicatori di connessione
  • 0bH = rilevamento sulla testa

    • 1, ora è attivo
    • 0, altrimenti non è sulla testa o non è presente alcun sensore OHD
  • 0bA = disponibilità della connessione

    • 1, è disponibile una connessione
    • 0, altrimenti
  • 0bF = modalità Niente distrazioni

    • 1. Ora, in modalità di concentrazione, il passaggio da una connessione all'altra non è consentito per l'utilizzo dei contenuti multimediali, ad esempio non è possibile passare da A2DP ad A2DP
    • 0, altrimenti
  • 0bR = ricollegamento automatico

    • 1, se la connessione attuale viene ricollegata automaticamente dal fornitore, il che significa che non è collegata dagli utenti (per il multipoint, se una delle connessioni esistenti viene ricollegata automaticamente, deve essere impostato su 1)
    • 0, altrimenti
Stato connessione
  • 0x0: nessuna connessione
  • 0x1: paging
  • 0x2: connesso, ma nessun trasferimento di dati
  • 0x3: trasferimento di dati non audio (solo se commutabile, in caso contrario viene utilizzato 0xF)
  • 0x4: streaming A2DP, AVRCP non applicabile
  • 0x5: streaming A2DP e riproduzione AVRCP
  • 0x6: streaming HFP (chiamate su rete fissa/VoIP), inclusi suoni di chiamata in banda e non in banda
  • 0x7: audio LE - streaming di contenuti multimediali senza controllo
  • 0x8: LE audio - streaming di contenuti multimediali con controllo
  • 0x9: LE audio - streaming di chiamate
  • 0xA: LE audio - trasmissione
  • 0xF: disattiva temporaneamente l'opzione di connessione (ad es. aggiornamento del firmware)
Tipo di contesto LE Audio e stato della connessione

Consigliamo al fornitore LE Audio di gestire tutti i tipi di contesto specificati in Assigned Numbers 6.12.3 (a meno che il fornitore non supporti esplicitamente un determinato tipo di contesto) e mappare il tipo di contesto allo stato di connessione come indicato di seguito.

  • Conversazionale: 0x9
  • Media: 0x8
  • Gioco: 0x7
  • Istruzioni: 0x7
  • Assistenti vocali: 0x9
  • Live: 0x9
  • Effetti sonori: 0x2
  • Notifiche: 0x2
  • Suoneria: 0x9
  • Avvisi: 0x7
  • Allarme di emergenza: 0x9

Per lo scenario di tipo di contesto LE Audio misto, ad esempio la riproduzione di contenuti multimediali durante la chiamata, il fornitore deve utilizzare lo stato di connessione con la massima priorità, ovvero 0x9 (chiamata) per lo scenario precedente anziché 0x8 (contenuti multimediali).

Bitmap dei dispositivi connessi

Per evitare il passaggio a una connessione indesiderata, l'utente che cerca assistenza potrebbe dover sapere a quali dispositivi è attualmente connesso l'auricolare. Ad esempio, quando le cuffie sono collegate allo smartphone, l'utente non vuole essere interrotto dal cambio di connessione quando uno dei membri del gruppo Famiglia avvia YouTube sul tablet.

Tieni presente che questa bitmap è anonima e che l'utente che cerca non è in grado di sapere quali altri dispositivi sono accoppiati con il fornitore. Ad esempio, prendiamo 5 dispositivi accoppiati:

  • 0: laptop (0bx0000000)
  • 1: telefono A (0b0x000000)
  • 2: telefono B (0b00x00000)
  • 3: tablet (0b000x0000)
  • 4: TV (0b0000x000)

Se i dispositivi connessi attuali sono un laptop e un tablet, il valore del bitmap sarà 0b10010000. La modifica dell'ordine è accettabile se è inevitabile, ad esempio quando gli utenti ripristinano i dati di fabbrica dell'auricolare o quando il numero di dispositivi accoppiati raggiunge il limite superiore.

Annuncio risolvibile casuale

Per evitare il monitoraggio e rispettare la privacy degli utenti, il fornitore deve ruotare e criptare il campo in base alla chiave dell'account utilizzando AES-CTR:

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

dove

  1. La chiave è ricavata dalla chiave dell'account in uso, che è definita nella sezione successiva.

    • La chiave viene generata dalla funzione HKDF, IETF RFC 5869, utilizzando la funzione hash SHA-256.

        Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
      
    • Il fornitore deve utilizzare qui la chiave dell'account originale, ovvero il primo byte della chiave è 0x04, non incluso nel pattern di utilizzo.

  2. IV (vettore iniziale) è il sale di 2 byte dei dati della chiave dell'account con padding zero, ovvero IV è concat(sale, 14 byte ZERO).

  3. I dati non elaborati dello stato della connessione sono definiti nella tabella 4.1. Se lo stato della connessione cambia, il sale e l'RPA devono essere rigenerati nello stesso periodo di tempo della pubblicità.

In questo modo, il campo dello stato della connessione criptata ruota contemporaneamente ai dati della chiave dell'account.

L'annuncio BLE sarà strutturato come segue:

Ottetto Tipo di dati Descrizione Valore Obbligatorio?
0 uint8 Versione e flag 0x10 Obbligatorio
1 - t Dati della chiave dell'account varia Obbligatorio
t+1 - s Dati batteria varia Facoltativo
s+1 - var Dati risolvibili casuali varia Obbligatorio se l'elenco delle chiavi dell'account non è vuoto,
in caso contrario Esclusa.

Tabella 4.2: annunci BLE con dati risolvibili casuali

I dati risolvibili in modo casuale contengono:

Ottetto Tipo di dati Descrizione Valore Obbligatorio?
0 uint8 Lunghezza e tipo di campo
0bLLLLTTTT
  • L = lunghezza dei dati criptati
  • T = tipo
0bLLLL0110
  • durata: varia
  • type = 0b0110
Obbligatorio
1 - var Dati criptati varia Obbligatorio

Tabella 4.2.1: dati risolvibili casuali

Ad esempio, se i dati risolvibili casuali contengono un campo dello stato della connessione criptato, il risultato decriptato sarà il campo dello stato della connessione.

Per evitare manomissioni, i dati della chiave dell'account riportati sopra devono essere leggermente modificati quando i dati risolvibili in modo casuale sono inclusi nell'annuncio. Normalmente, quando si crea il filtro della chiave dell'account, viene prodotto un valore V combinando il filtro della chiave dell'account con un valore di sicurezza. Tuttavia, quando vengono pubblicizzati anche i dati risolvibili in modo casuale, il valore V deve essere costruito come segue:

 V = concat(account_key, salt, random_resolvable_data)

Se vengono pubblicizzati sia i dati della batteria sia i dati risolvibili in modo casuale, V deve essere costituito come segue:

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

Chiave account in uso

Il passaggio da una connessione all'altra si basa sull'account, pertanto il fornitore deve includere i dati dell'account della connessione corrente nell'annuncio BLE. Se il dispositivo attualmente connesso è un cercatore di audio, il fornitore dovrebbe essere in grado di recuperare la chiave dell'account associata a questo cercatore e utilizzarla per criptare il campo dello stato della connessione. Se la sorgente audio collegata non è un cercatore di Audioswitch, il fornitore deve utilizzare la chiave dell'account utilizzata più di recente.

Prima di calcolare il filtro delle chiavi dell'account, il fornitore deve modificare il primo byte delle chiavi dell'account in modo da includere uno dei seguenti pattern di utilizzo:

  1. 0b00000100
    Questa chiave dell'account non è in uso.
    Si tratta della chiave predefinita (vedi Chiave account).
  2. 0b00000101
    Questa è la chiave dell'account utilizzata più di recente.
    Il campo dello stato della connessione è criptato da questa chiave dell'account. Non sono presenti informazioni sulla chiave dell'account relative allo stato attuale della connessione. Ciò potrebbe significare che non sono collegati dispositivi o che il dispositivo connesso non è un cercatore di audio switch.
  3. 0b00000110
    Questa chiave account è la chiave account in uso.
    Il campo dello stato della connessione è criptato da questa chiave dell'account e il dispositivo attualmente collegato è associato a questa chiave dell'account.

Schema del payload del cambio audio

La figura seguente mostra lo schema del payload Audio switch.

Messaggi

Quando sono connessi, il cercatore e il fornitore possono utilizzare lo stream di messaggi per sincronizzare la funzionalità di trasferimento audio, attivare un trasferimento di connessione, impostare e recuperare la preferenza di trasferimento, notificare lo stato della connessione e così via. Creiamo un gruppo di messaggi e codici di messaggio specifici per l'audio come indicato di seguito.

Nome gruppo di messaggi Valore
Cambio audio 0x07

Ulteriori dettagli per ciascun codice messaggio sono inclusi nelle sezioni seguenti.

Nome del codice messaggio Valore Solo multipunto Mittente Responder Cripta MAC ACK
Ottenere la funzionalità Cambio Audio 0x10 No Entrambi Entrambi, tramite il codice 0x11 No N No
Notifica della funzionalità di cambio audio 0x11 No Entrambi Entrambi No S Y
Impostare lo stato multipunto 0x12 Y Ricercatore Provider No S Y
Impostare la preferenza di trasferimento 0x20 Y Ricercatore Provider No S Y
Impostare la preferenza di trasferimento 0x21 Y Ricercatore Fornitore, tramite il codice 0x22 No N No
Notificare la preferenza di trasferimento 0x22 Y Provider Ricercatore No N No
Cambiare l'origine audio attiva(sul dispositivo connesso) 0x30 Y Ricercatore Provider No S Y
Tornare indietro 0x31 No Ricercatore Provider No S Y
Notifica evento di interruttore multipunto 0x32 Y Provider Ricercatore No N No
Ottenere lo stato della connessione 0x33 Y Ricercatore Fornitore, tramite il codice 0x34 No N No
Notifica lo stato della connessione 0x34 Y Provider Ricercatore Y N No
Notifica di inizio connessione per il cambio audio 0x40 No Ricercatore Provider No S Y
Indicare la chiave dell'account in uso 0x41 No Ricercatore Provider No S Y
Inviare dati personalizzati 0x42 No Ricercatore Provider No S Y
Impostare la destinazione della connessione con interruzione 0x43 Y Ricercatore Provider No S Y

Tabella 4.3: messaggi di cambio audio

MAC dei messaggi di cambio audio

Per fornire l'autenticazione dei messaggi, tutti i messaggi di trasferimento audio con dati aggiuntivi inviati dal cercatore al fornitore richiedono un codice di autenticazione dei messaggi. Quando viene ricevuto un messaggio con MAC, deve essere acquisito in modo che il cercatore sappia se il fornitore ha reagito o meno al messaggio.

Se l'autenticazione del messaggio ha esito positivo, il fornitore deve inviare l'ACK per il messaggio:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Accettazione 0xFF
1 uint8 ACK 0x01
2 - 3 uint16 Lunghezza dati aggiuntiva varia
4 uint8 Cambio audio 0x07
5 uint8 Codice messaggio cambio audio varia
6 - s Dati aggiuntivi varia

In caso di esito negativo, il fornitore deve inviare il NAK per il messaggio:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Accettazione 0xFF
1 uint8 NAK 0x02
2 - 3 uint16 Lunghezza dati aggiuntiva 0x0003
4 uint8 Motivo errore varia
5 uint8 Cambio audio 0x07
6 uint8 Codice messaggio cambio audio varia

Tieni presente che, se il fornitore è il mittente, il MAC non è obbligatorio.

Ottenere la funzionalità Cambio audio

Sia il fornitore sia il cercatore di Audio Switch possono verificare se il cercatore/fornitore di accoppiamento rapido collegato supporta o meno Audio Switch utilizzando il messaggio riportato di seguito:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio audio 0x07
1 uint8 Ottenere la funzionalità Cambio audio 0x10
2 - 3 uint16 Lunghezza dati aggiuntiva 0

Tabella 4.3.1.0: ottieni la funzionalità di Cambio Audio

Funzionalità di notifica del cambio audio

Al ricevimento del codice messaggio get capability of Audio switch, il cercatore/fornitore di Audio Switch risponderà con uno dei seguenti flag:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio audio 0x07
1 uint8 Funzionalità di notifica del cambio audio 0x11
2 - 3 uint16 Lunghezza dati aggiuntiva 20 se inviata dal cercatore
4 se inviata dal fornitore
4 - 5 uint16 Codice versione del cambio audio Un valore diverso da zero indica che supporta l'opzione Audio switch. Il codice della versione corrente (con il miglioramento della sicurezza) è 0x0102.
0x0000 o nessuna risposta entro 1 secondo indica che il controllo audio non è supportato su questo dispositivo
6 - 7 bandiere Flag delle funzionalità di trasferimento audio del fornitore
Se questo valore viene inviato dal cercatore, questi due byte devono essere ignorati.
varia
Consulta Flag delle funzionalità di cambio audio
8 - 15 Nonce messaggio
Obbligatorio solo se inviato da Seeker
varia
16 - 23 Codice di autenticazione del messaggio
Obbligatorio solo se inviato da Seeker
varia

Tabella 4.3.1.1: funzionalità di notifica del cambio audio

Flag delle funzionalità di cambio audio
  1. Bit 0 (ottavo 6, MSB): stato del cambio audio

    • 1, se lo stato del cambio audio è attivo
    • 0, altrimenti
  2. Bit 1: configurabilità multipunto

    • 1, se il dispositivo supporta il multipunto e può essere attivato e disattivato
    • 0, altrimenti (non supporta il multipunto o il multipunto è sempre attivo)
  3. Bit 2: stato attuale multipoint

    • 1, se la connettività multipunto è attiva
    • 0, altrimenti
  4. Bit 3: rilevamento all'uso

    • 1, se questo dispositivo supporta il rilevamento della testa (anche se al momento è disattivato)
    • 0, altrimenti
  5. Bit 4: stato attuale del rilevamento all'uso

    • 1, se il rilevamento della testa è attivo
    • 0, altrimenti (non supporta il rilevamento sulla testa o il rilevamento sulla testa è disabilitato)
  6. Tutti gli altri bit sono riservati, valore predefinito 0.

Impostare lo stato multipunto

Per i cercapunti audio, potremmo fornire l'impostazione per attivare/disattivare la funzionalità multipoint. Il cercatore imposterà lo stato multipoint sul fornitore utilizzando il seguente messaggio:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio audio 0x07
1 uint8 Impostare lo stato multipunto 0x12
2 - 3 uint16 Lunghezza dati aggiuntiva 17
4 uint8 Stato multipunto 0: disattiva la connettività multipunto
1: attiva la connettività multipunto
5 - 12 Nonce messaggio varia
13 - 20 Codice di autenticazione dei messaggi varia

Tabella 4.3.1.2: imposta lo stato multipunto

Impostare la preferenza di passaggio

Gli utenti che cercano di cambiare l'audio possono modificare la preferenza di commutazione del multipoint e impostarla sul fornitore utilizzando il messaggio riportato di seguito:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio audio 0x07
1 uint8 Impostare la preferenza di passaggio 0x20
2 - 3 uint16 Lunghezza dati aggiuntiva 18
4 bandiere Preferenza di commutazione varia
Vedi flag della preferenza di commutazione multipunto
5 Impostazioni di commutazione avanzate
Questo byte è riservato, il valore predefinito è 0
varia
6 - 13 Nonce messaggio varia
14 - 21 Codice di autenticazione dei messaggi varia

Tabella 4.3.2.0: imposta la preferenza di trasferimento

Flag della preferenza di commutazione multipunto
  • Bit 0 (MSB): A2DP vs A2DP (valore predefinito 0)
  • Bit 1: HFP vs HFP (predefinito 0)
  • Bit 2: A2DP o HFP (predefinito 0)
  • Bit 3: HFP vs A2DP (valore predefinito 1)
  • Bit 4-7: riservati
  • La figura sopra mostra la differenza tra "Nuova richiesta di profilo" e "Profilo attivo corrente".
    • 0 per mancata attivazione
    • 1 per il passaggio

Ottenere la preferenza di trasferimento

Gli utenti che cercano un commutatore audio possono eseguire query sulla preferenza di commutazione del multipoint dal fornitore utilizzando il messaggio riportato di seguito:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio audio 0x07
1 uint8 Recuperare la configurazione del passaggio 0x21
2 - 3 uint16 Lunghezza dati aggiuntiva 0

Tabella 4.3.2.1: ottieni la preferenza di trasferimento

Preferenza di notifica del passaggio

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio audio 0x07
1 uint8 Preferenza di notifica del passaggio 0x22
2 - 3 uint16 Lunghezza dati aggiuntiva 2
4 bandiere Modifica dei flag delle preferenze varia
Vedi flag della preferenza di commutazione multipunto
5 Impostazioni di commutazione avanzate
Questo byte è riservato, il valore predefinito deve essere 0
varia

Tabella 4.3.2.2: preferenza di notifica del passaggio

Cambiare la sorgente audio attiva (sul dispositivo connesso)

Gli utenti che cercano la funzionalità Cambio audio possono chiedere al fornitore multipunto di cambiare la fonte audio attiva tra i dispositivi connessi utilizzando il messaggio riportato di seguito:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio audio 0x07
1 uint8 Cambiare la sorgente audio attiva (sul dispositivo connesso) 0x30
2 - 3 uint16 Lunghezza dati aggiuntiva 17
4 bandiere Cambio di indicatori di eventi relativi all'origine audio attiva varies
Vedi evento di cambio della sorgente audio attiva
5 - 12 Nonce messaggio varia
13 - 20 Codice di autenticazione dei messaggi varia

Tabella 4.3.3.0: cambia l'origine audio attiva (sul dispositivo connesso)

Evento di cambio della sorgente audio attiva
  • Bit 0 (MSB): 1 passa a questo dispositivo, 0 passa al secondo dispositivo connesso
  • Bit 1: 1 per riprendere la riproduzione dopo il passaggio a un altro dispositivo, 0 in caso contrario. La ripresa della riproduzione significa che il fornitore invia una notifica PLAY al cercatore tramite il profilo AVRCP. Se lo stato precedente (prima del passaggio) non era MEDIA_PLAY, il fornitore deve ignorare questo flag.
  • Bit 2: 1 rifiuta SCO sul dispositivo disconnesso, 0 in caso contrario
  • Bit 3: 1 per scollegare il Bluetooth sul dispositivo di allontanamento, 0 in caso contrario.
  • Bit 4-7: riservati.

I Cercatori di dispositivi di commutazione audio potrebbero non conoscere sempre correttamente il loro stato, pertanto è possibile che il fornitore riceva un messaggio "Passa a questo dispositivo" quando il dispositivo attivo è già il cercatore. In questo caso, per mostrare l'interfaccia utente corretta su Seeker, il fornitore può inviare un NAK con il motivo dell'errore 0x4 - Azione dispositivo ridondante.

Per un fornitore LE Audio con più di un membro dell'insieme, il fornitore deve scollegare tutti i membri dal cercatore, altrimenti lo stack Bluetooth del cercatore si ricollegherà al fornitore.

Tornare al dispositivo disconnesso

Se il passaggio da una connessione all'altra non è voluto, gli utenti possono annullarlo e, in alcuni scenari, ha senso ripristinare la connessione audio per ridurre al minimo l'interruzione. Il cercatore utilizzerà il messaggio riportato di seguito per attivare il ritorno al canale precedente:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio audio 0x07
1 uint8 Tornare al dispositivo disconnesso 0x31
2 - 3 uint16 Lunghezza dati aggiuntiva 17
4 uint8 Evento di ritorno varia
0x01: torna indietro
0x02: torna indietro e riprendi la riproduzione
5 - 12 Nonce messaggio varia
13 - 20 Codice di autenticazione dei messaggi varia

Tabella 4.3.3.1: Torna al dispositivo disconnesso

Per i fornitori multipunto, per eseguire il passaggio da una connessione all'altra, un fornitore potrebbe disconnettere un dispositivo di sorgente audio e mettere in pausa la sessione audio sull'altra sorgente audio. Ad esempio, supponiamo che le cuffie multipunto siano connesse a un tablet e a un terzo dispositivo con cambio audio supportato. L'utente sta guardando un video sul tablet quando riceve una chiamata sul suo smartphone. Lo smartphone attiverà un interruttore di connessione sulle cuffie, che deve disconnettere il terzo dispositivo per connettersi allo smartphone, mettendo in pausa anche la sessione multimediale sul tablet per ricevere la suoneria dallo smartphone. Se l'utente rifiuta la chiamata, lo smartphone potrebbe chiedere all'auricolare di "tornare alla riproduzione e riprendere la riproduzione". Alla ricezione di questa richiesta, le cuffie devono ricollegarsi al terzo dispositivo e riprendere la riproduzione del video in pausa sul tablet.

Notifica evento di commutazione multipunto

Per informare gli utenti di un evento di interruttore multipunto in corso, lo Strumento di ricerca di interruttori audio potrebbe mostrare una notifica. Il fornitore deve informare i Cercatori di comandi audio collegati dell'evento di commutazione.

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio audio 0x07
1 uint8
Il fornitore deve inviare l'evento di notifica di cambio multipunto su ogni cambio, tra cui cercatore con cambio audio a cercatore senza cambio audio, cercatore senza cambio audio a cercatore con cambio audio e cercatore con cambio audio a cercatore con cambio audio
0x32
2 - 3 uint16 Lunghezza dati aggiuntiva varia
4 uint8 Motivo del passaggio
Questo valore deve essere determinato in base allo stato della connessione. Per i casi d'uso LE Audio, può essere utile esaminare la mappatura tra il tipo di contesto LE Audio e lo stato della connessione. Ad esempio, lo stato di connessione corrispondente agli assistenti vocali è 0x9(LE audio - call streaming). Pertanto, il motivo del passaggio per un trasferimento avviato dagli assistenti vocali deve essere 0x02.
varia
0x00: non specificato
0x01: contenuti multimediali (ad es. streaming A2DP, streaming multimediale LEA)
0x02: chiamata (ad es. streaming HFP, streaming di chiamate LEA)
5 uint8 Dispositivo di destinazione varia
0x01: questo dispositivo
0x02: un altro dispositivo connesso
6 - n utf8 Nome del dispositivo di destinazione
se il dispositivo di destinazione è il cercatore di audio, utilizza il nome a cui è stato inviato il cercatore, altrimenti utilizza il nome BT, se non applicabile, utilizza gli ultimi 2 byte del suo indirizzo
varia

Tabella 4.3.3.2: notifica evento interruttore multipunto

Ottenere lo stato della connessione

Il cercatore può ottenere lo stato attuale della connessione dal fornitore:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio audio 0x07
1 uint8 Ottenere lo stato della connessione 0x33
2 - 3 uint16 Lunghezza dati aggiuntiva 0

Tabella 4.3.3.3: ottieni lo stato della connessione

Al ricevimento di questo messaggio, il fornitore deve rispondere con il codice messaggio 0x34, Invia stato connessione.

Notifica stato connessione

Come definito nel payload della pubblicità BLE, per i fornitori multipunto, se lo stato della connessione cambia, ad eccezione del pacchetto pubblicitario, il fornitore deve notificare la modifica anche ai cercatori collegati che utilizzano la stessa chiave dell'account. Se il fornitore è collegato con un cercatore di switch audio e un cercatore di switch non audio, se quest'ultimo è attivo, il fornitore deve notificare anche al cercatore di switch audio collegato lo stato della connessione (utilizzando la chiave dell'account del cercatore).

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio audio 0x07
1 uint8 Notifica stato connessione 0x34
2 - 3 uint16 Lunghezza dati aggiuntiva varia
4 uint8 Flag dispositivo attivo varies
0x00: questo cercatore è passivo e il dispositivo attivo utilizza la stessa chiave dell'account
0x01: questo cercatore è il dispositivo attivo
0x02: questo cercatore è passivo e il dispositivo attivo è un cercatore di comandi audio.
5 - n Stato della connessione criptata varia
n+1 - n+8 Nonce messaggio varia

Tabella 4.3.3.4: notifica lo stato della connessione

Messaggio di stato della connessione criptata

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

dove:

Notifica di inizio connessione con il cambio audio

I fornitori di servizi di cambio audio potrebbero dover sapere se il cambio di connessione viene attivato dall'audio per avere reazioni diverse, ad esempio disattivare gli annunci per gli eventi di cambio audio. Il cercatore invia un messaggio per informare il fornitore che questa connessione è stata avviata da un interruttore audio.

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio audio 0x07
1 uint8 Notifica di inizio connessione con il cambio audio 0x40
2 - 3 uint16 Lunghezza dati aggiuntiva 17
4 uint8 Indicazione della connessione avviata dal cambio audio varia
0: questa connessione non è stata attivata dal cambio audio
1: questa è stata una connessione avviata dal cambio audio
5 - 12 Nonce messaggio varia
13 - 20 Codice di autenticazione dei messaggi varia

Tabella 4.3.4.0: notifica della connessione avviata dal cambio audio

Indica la chiave dell'account in uso

Se al cercatore (ad es. multiutente) sono associate più chiavi account al fornitore, il cercatore utilizzerà il messaggio riportato di seguito per indicare quale chiave account è in uso.

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio audio 0x07
1 uint8 Indica la chiave dell'account in uso 0x41
2 - 3 uint16 Lunghezza dati aggiuntiva 22
4 - 9 utf8 Stringa in uso UTF8 ("in uso")
10 - 17 Nonce messaggio varia
18 - 25 Codice di autenticazione dei messaggi varia

Tabella 4.3.4.1: chiave account in uso

Una volta ricevuto questo messaggio, il fornitore può sapere quale chiave dell'account è in uso verificando il codice di autenticazione del messaggio.

Inviare dati personalizzati

Il cercatore di switch audio attivo può incapsulare le informazioni (ad es. l'utilizzo dell'audio) dello stream audio in un byte di dati personalizzati e inviarlo al fornitore utilizzando il messaggio riportato di seguito:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio audio 0x07
1 uint8 Inviare dati personalizzati 0x42
2 - 3 uint16 Lunghezza dati aggiuntiva 17
4 uint8 Dati personalizzati varia
5 - 12 Nonce messaggio varia
13 - 20 Codice di autenticazione dei messaggi varia

Tabella 4.3.4.2: inviare dati personalizzati

Una volta ricevuti i dati personalizzati, il fornitore aggiornerà il pacchetto pubblicitario in modo da includerli. Per un fornitore multipunto, deve anche notificare la variazione dello stato della connessione a un altro cercatore collegato che utilizza la stessa chiave dell'account.

Impostare la destinazione della connessione in caso di interruzione

Sugli auricolari multipunto, se la connessione preferita da disconnettere non è quella meno utilizzata di recente, gli utenti che cercano di utilizzare il cambio audio possono indicare al fornitore il dispositivo da disconnettere utilizzando il seguente messaggio:

Ottetto Tipo di dati Descrizione Valore
0 uint8 Cambio audio 0x07
1 uint8 Impostare la destinazione della connessione in caso di interruzione 0x43
2 - 3 uint16 Lunghezza dati aggiuntiva 17
4 uint8 Dispositivo connesso di destinazione da eliminare varia
1: questo dispositivo
5 - 12 Nonce messaggio varia
13 - 20 Codice di autenticazione dei messaggi varia

Tabella 4.3.4.3: imposta la destinazione della connessione di abbandono