Switch audio

À mesure que les utilisateurs utilisent de plus en plus de sources audio pour effectuer leurs tâches quotidiennes, la demande d'une solution plus simple pour gérer l'utilisation des casques sur plusieurs appareils augmente. Le switch audio permet de passer de façon fluide les connexions du casque entre les appareils en fonction de l'activité de l'utilisateur (par exemple, démarrer un film) et des événements prioritaires (par exemple, un appel entrant).

Principes de l'expérience utilisateur

  1. Le changement de connexion doit être rapide et basé sur l'action de l'utilisateur.
  2. Le changement de connexion doit être transparent pour les utilisateurs, qui doivent pouvoir le contrôler/annuler s'il n'est pas souhaitable.
  3. Le changement doit respecter la confidentialité des utilisateurs.

Rôles

Recherche de contact audio: la recherche de contact audio est un appareil source audio (par exemple, un téléphone ou une tablette) qui recherche un casque à proximité pour s'y connecter, le cas échéant.

Fournisseur de commutateur audio: le fournisseur est généralement un casque qui annonce sa présence et son état de connexion pour que les chercheurs puissent prendre des décisions de commutation.

Présentation des exigences

Pour que le basculement intelligent soit possible, les fournisseurs doivent respecter les exigences suivantes:

Nom Description Conditions requises Obligatoire ?
Analyse de la page Pour accepter une nouvelle demande de connexion d'un autre chercheur lorsqu'une connexion existe déjà.
Pour les fournisseurs à point unique:
  • L'appareil source d'origine met automatiquement en pause la lecture audio lorsque le fournisseur se déconnecte.
Pour les fournisseurs multipoints:
  • Si une connexion est encore disponible, il accepte la demande de connexion.
  • Si la bande passante de la connexion est saturée, déconnectez la connexion la moins utilisée récemment (par exemple, s'il n'y a pas eu d'événement audio depuis longtemps) et acceptez la nouvelle requête entrante.
Le mode d'analyse des pages à faible latence (l'intervalle d'analyse ne doit pas dépasser 640 ms) est nécessaire pour améliorer les performances.
Pour trouver un compromis entre l'autonomie de la batterie et les performances de commutation, le fournisseur peut définir un mode d'analyse des pages par défaut dans la plupart des cas (mode basse consommation, l'intervalle d'analyse ne doit pas dépasser 1 280 ms). Toutefois, le mode à faible latence doit être utilisé dans les cas suivants:
  • 30 premières secondes de l'allumage
  • 30 premières secondes sans connexion ni page
  • 30 premières secondes d'inactivité de l'appareil
Obligatoire
Historique des connexions Pour revenir à la connexion précédente et reprendre la lecture, le cas échéant.
Le retour en arrière est déclenché par les communications via les API Message Stream.
L'événement audio de mise en pause doit être inclus dans l'enregistrement pour reprendre la lecture, le cas échéant.
Gérer l'historique des connexions et implémenter les API Message Stream Obligatoire
État de la connexion Pour que les chercheurs puissent effectuer le jugement de changement de connexion, l'état de la connexion inclut les éléments suivants:
  • État de la connexion
  • Type audio de la connexion active
  • Informations sur le compte de la connexion active
  • Appareil(s) connecté(s)
Incluez l'état de la connexion dans l'annonce BLE et le flux de messages. Obligatoire
Modification des fonctionnalités d'exécution Le commutateur audio peut être activé en mettant à niveau le micrologiciel du fournisseur. Les fonctionnalités doivent donc être synchronisées entre le chercheur et le fournisseur au moment de l'exécution. Implémentez les API Message Stream pour accéder aux fonctionnalités d'exécution. Obligatoire
Règles de commutation configurables Laissez le Seeker configurer la priorité entre le streaming audio actif existant et les nouvelles requêtes de streaming audio via les paramètres de préférence de l'utilisateur.
Par exemple, le Seeker de commutateur audio peut fournir des paramètres d'interface utilisateur permettant aux utilisateurs d'activer/de désactiver le basculement automatique entre le streaming multimédia et l'appel.
Le sélecteur de commutateur audio définira et obtiendra la règle de commutation via le flux de messages.
Fournisseurs multipoints uniquement.
Implémentez des API Message Stream pour rendre les règles de commutation entre les appareils connectés configurables.
Facultatif
Changement d'appareil actif La recherche de commutateur audio permet de simuler le changement d'audio entre les appareils connectés.
Du côté de la recherche de commutateur audio, une UI peut permettre aux utilisateurs de basculer facilement entre les appareils connectés.
Fournisseurs multipoints uniquement.
Implémentez les API Message Stream pour le sélecteur de switch audio afin de déterminer la source audio active entre les appareils connectés.
Obligatoire
Notification de basculement multipoint La recherche de commutateur audio doit afficher la notification de commutation. Fournisseurs multipoints uniquement.
Implémentez des API Message Stream pour informer les chercheurs de switch audio connectés lorsqu'un basculement multipoint a lieu.
Obligatoire

Charge utile publicitaire

Le fournisseur doit inclure son état de connexion actuel dans l'annonce, basé sur les données du compte Fast Pair décrites dans la section Publicité: lorsque l'appareil n'est pas détectable.

Notez que la version de la table 4.2 est 0x1.

Champ "État de la connexion"

Octet Type de données Description Valeur Obligatoire ?
0 uint8 Longueur et type de champ
0bLLLLTTTT
  • L = longueur de l'état de la connexion en octets
  • T = type
0bLLLL0101
  • durée: variable
  • type = 0b0101
Obligatoire
1 uint8 État de la connexion
0bHAFRSSSS
  • H = détection du port des écouteurs
  • A = disponibilité de la connexion
  • F = mode Concentré
  • R = reconnecté automatiquement
  • S = état de la connexion
0bHAFRSSSS
Obligatoire
2 uint8 Données personnalisées
Actuellement, il ne contient que le type de contenu, qui permet de décrire l'utilisation du streaming audio actuel. Le demandeur l'enverra au fournisseur.
La valeur est envoyée par le chercheur du flux actif actuel au fournisseur via le flux de messages. 0 si le streaming actif actuel ne provient pas de Seeker. Obligatoire
3 - var Bitmap des appareils connectés
Bitmap permettant d'afficher les appareils actuellement connectés au fournisseur. Tous les appareils associés sont disposés dans l'ordre, un bit par appareil associé. La longueur dépend du nombre d'appareils associés du fournisseur.
Le bit mappé est défini sur 1 si l'appareil est actuellement connecté au fournisseur, et sur 0 dans le cas contraire.
Pour en savoir plus, consultez Bitmap de l'appareil connecté.
Facultatif

Tableau 4.1:Données brutes du champ "État de la connexion"

Options de connexion
  • 0bH = détection du port des écouteurs

    • 1, on head now
    • 0, sinon, pas sur la tête ou pas de capteur OHD
  • 0 bA = disponibilité de la connexion

    • 1 : une connexion est disponible
    • 0, sinon
  • 0bF = mode Concentré

    • 1 : En mode concentré, le changement de connexion n'est plus autorisé pour l'utilisation multimédia, c'est-à-dire qu'il n'y a plus de changement d'A2DP en A2DP.
    • 0, sinon
  • 0bR = reconnexion automatique

    • 1, si la connexion actuelle est automatiquement reconnectée par le fournisseur, ce qui signifie qu'elle n'est pas connectée par les utilisateurs (pour le multipoint, si l'une des connexions existantes est automatiquement reconnectée, elle doit être définie sur 1)
    • 0, sinon
État de la connexion
  • 0x0: aucune connexion
  • 0x1: pagination
  • 0x2: connecté, mais pas de transfert de données
  • 0x3: transfert de données non audio (uniquement lorsqu'il est possible de l'activer/de le désactiver, sinon utiliser 0xF)
  • 0x4: Streaming A2DP, AVRCP non applicable
  • 0x5: streaming A2DP et lecture AVRCP
  • 0x6: streaming HFP (appel téléphonique/VoIP), y compris sonnerie en bande et hors bande
  • 0x7 : Audio LE : streaming multimédia sans contrôle
  • 0x8 : Audio LE : streaming multimédia avec contrôle
  • 0x9: LE Audio - streaming des appels
  • 0xA: LE Audio – broadcast
  • 0xF: Désactivation temporaire du bouton de connexion (par exemple, lors d'une mise à jour du micrologiciel)
Type de contexte audio LE et état de la connexion

Nous recommandons au fournisseur LE Audio de gérer tous les types de contexte spécifiés dans la section Numéros attribués 6.12.3 (sauf si le fournisseur ne prend pas explicitement en charge un type de contexte donné) et de mapper le type de contexte à l'état de la connexion, comme indiqué ci-dessous.

  • Conversationnel: 0x9
  • Média: 0x8
  • Match: 0x7
  • Instructions: 0x7
  • Assistants vocaux: 0x9
  • En direct: 0x9
  • Effets sonores: 0x2
  • Notifications: 0x2
  • Sonnerie: 0x9
  • Alertes: 0x7
  • Alarme d'urgence: 0x9

Pour le scénario de type de contexte Audio LE mixte, tel que la lecture de contenu multimédia pendant l'appel, le fournisseur doit utiliser l'état de connexion ayant la priorité la plus élevée, c'est-à-dire 0x9 (appel) pour le scénario ci-dessus au lieu de 0x8 (multimédia).

Bitmap d'appareil connecté

Pour éviter un changement de connexion indésirable, le chercheur peut avoir besoin de savoir à quel ou quels appareils le casque est actuellement connecté. Par exemple, lorsque le casque est connecté au téléphone, l'utilisateur ne souhaite pas être interrompu par le changement de connexion lorsqu'un membre de sa famille lance YouTube sur la tablette.

Notez que ce bitmap est anonyme. Le chercheur ne peut pas savoir quels autres appareils sont associés au fournisseur. Prenons l'exemple de cinq appareils associés:

  • 0: ordinateur portable (0bx0000000)
  • 1: phoneA (0b0x000000)
  • 2: phoneB (0b00x00000)
  • 3: tablette (0b000x0000)
  • 4: TV (0b0000x000)

Si les appareils connectés actuels sont un ordinateur portable et une tablette, la valeur du bitmap sera 0b10010000. Le changement d'ordre est acceptable s'il est inévitable, par exemple lorsque les utilisateurs rétablissent la configuration d'usine du casque ou lorsque le nombre d'appareils associés atteint la limite supérieure.

Annonce aléatoire résolvable

Pour éviter le suivi et respecter la confidentialité des utilisateurs, le fournisseur doit faire pivoter et chiffrer le champ à l'aide de la clé de compte avec AES-CTR:

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

  1. La clé est dérivée de la clé de compte utilisée, qui est définie dans la section suivante.

    • La clé est générée par la fonction HKDF, RFC 5869 de l'IETF, à l'aide de la fonction de hachage SHA-256.

        Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
      
    • Le fournisseur doit utiliser la clé de compte d'origine ici, c'est-à-dire que le premier octet de la clé est 0x04, qui n'est pas inclus dans le modèle d'utilisation.

  2. L'IV (vecteur d'initialisation) est le sel de 2 octets des données de clé de compte avec remplissage à zéro, c'est-à-dire que l'IV est concat(sel, 14 octets de zéros).

  3. Les données brutes sur l'état de la connexion sont définies dans le tableau 4.1. Si l'état de la connexion change, le sel et l'RPA doivent être régénérés au même moment que la période publicitaire.

Le champ d'état de la connexion chiffrée est ainsi remplacé en même temps que les données de clé de compte.

La publicité BLE sera structurée comme suit:

Octet Type de données Description Valeur Obligatoire ?
0 uint8 Version et indicateurs 0x10 Obligatoire
1 - t Données de clé de compte varie ; Obligatoire
t+1 - s Données sur la batterie varie ; Facultatif
s+1 - var Données aléatoires résolvables varie ; Obligatoire si la liste des clés de compte n'est pas vide,
sinon "Excluded" (Exclu).

Tableau 4.2:Annonces BLE avec données aléatoires résolvables

Les données aléatoires résolvables contiennent les éléments suivants:

Octet Type de données Description Valeur Obligatoire ?
0 uint8 Longueur et type de champ
0bLLLLTTTT
  • L = longueur des données chiffrées
  • T = type
0bLLLL0110
  • durée: varie
  • type = 0b0110
Obligatoire
1 - var Données chiffrées varie ; Obligatoire

Tableau 4.2.1:Données aléatoires résolvables

Par exemple, si les données aléatoires résolvables contiennent un champ d'état de connexion chiffré, le résultat déchiffré sera le champ d'état de la connexion.

Pour éviter toute falsification, les données de clé de compte ci-dessus doivent être légèrement modifiées lorsque les données aléatoires résolvables sont incluses dans l'annonce. Normalement, lors de la création du filtre de clé de compte, une valeur V est générée en combinant le filtre de clé de compte avec un sel. À la place, lorsque des données aléatoires résolvables sont également annoncées, la valeur V doit être construite comme suit:

 V = concat(account_key, salt, random_resolvable_data)

Si les données de batterie et les données aléatoires résolvables sont annoncées, V doit être construit comme suit:

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

Dans "Utiliser la clé de compte"

Le changement de connexion est basé sur le compte. Le fournisseur doit donc inclure les informations de compte de la connexion actuelle dans l'annonce BLE. Si l'appareil actuellement connecté est un détecteur de commutateur audio, le fournisseur doit pouvoir obtenir la clé de compte associée à ce détecteur et l'utiliser pour chiffrer le champ d'état de la connexion. Si la source audio connectée n'est pas un sélecteur de commutateur audio, le fournisseur doit utiliser la clé de compte la plus récemment utilisée.

Avant de calculer le filtre de clé de compte, le fournisseur doit modifier le premier octet des clés de compte pour inclure l'un des éléments suivants dans les modèles d'utilisation:

  1. 0b00000100
    Cette clé de compte n'est pas utilisée.
    Il s'agit de la valeur par défaut (voir Clé de compte).
  2. 0b00000101
    Cette clé de compte est la clé de compte la plus récemment utilisée.
    Le champ d'état de la connexion est chiffré par cette clé de compte. Aucune information sur la clé de compte de l'état de connexion actuel n'est disponible. Cela peut signifier qu'aucun appareil n'est connecté ou que l'appareil connecté n'est pas un détecteur de commutateur audio.
  3. 0b00000110
    Cette clé de compte est la clé de compte utilisée.
    Le champ d'état de la connexion est chiffré par cette clé de compte, et l'appareil actuellement connecté est associé à cette clé de compte.

Schéma de la charge utile du commutateur audio

La figure ci-dessous montre le schéma de la charge utile du commutateur audio.

Messages

Lorsqu'ils sont connectés, le chercheur et le fournisseur peuvent utiliser le flux de messages pour synchroniser la fonctionnalité de commutation audio, déclencher un changement de connexion, définir et obtenir la préférence de commutation, notifier l'état de la connexion, etc. Nous créons un groupe de messages et des codes de message spécifiques au bouton Audio, comme indiqué ci-dessous.

Nom du groupe de messages Valeur
Switch audio 0x07

Des informations supplémentaires sur chaque code de message sont incluses dans les sections suivantes.

Nom du code de message Valeur Multipoint uniquement Expéditeur Responder Chiffrer Mac CONFIRMATION
Obtenir la fonctionnalité de basculement audio 0x10 N Les deux Les deux, via le code 0x11 N N N
Fonctionnalité de notification du bouton bascule audio 0x11 N Les deux Les deux N O O
Définir l'état multipoint 0x12 O Chercheur Fournisseur N O O
Définir une préférence de commutation 0x20 O Chercheur Fournisseur N O O
Obtenir la préférence de changement 0x21 O Chercheur Fournisseur, via le code 0x22 N N N
Notifier la préférence de changement 0x22 O Fournisseur Chercheur N N N
Changer la source audio active(vers l'appareil connecté) 0x30 O Chercheur Fournisseur N O O
Revenir 0x31 N Chercheur Fournisseur N O O
Notifier un événement de commutation multipoint 0x32 O Fournisseur Chercheur N N N
Obtenir l'état de la connexion 0x33 O Chercheur Fournisseur, via le code 0x34 N N N
Notifier l'état de la connexion 0x34 O Fournisseur Chercheur O N N
Notifier la connexion initiée par le bouton bascule audio 0x40 N Chercheur Fournisseur N O O
Indiquer la clé de compte utilisée 0x41 N Chercheur Fournisseur N O O
Envoyer des données personnalisées 0x42 N Chercheur Fournisseur N O O
Définir la cible de la connexion à abandonner 0x43 O Chercheur Fournisseur N O O

Tableau 4.3:Messages de basculement audio

MAC des messages de switch audio

Pour fournir une authentification des messages, tous les messages de commutation audio avec des données supplémentaires envoyés du chercheur au fournisseur nécessitent un code d'authentification des messages. Lorsqu'un message avec MAC est reçu, il doit être confirmé pour que le chercheur sache si le fournisseur a réagi ou non au message.

Si l'authentification du message réussit, le fournisseur doit envoyer l'acquittement du message:

Octet Type de données Description Valeur
0 uint8 Acceptation 0xFF
1 uint8 CONFIRMATION 0x01
2 à 3 uint16 Longueur des données supplémentaires varie ;
4 uint8 Switch audio 0x07
5 uint8 Code de message de basculement audio varie ;
6 - s Données supplémentaires varie ;

En cas d'échec, le fournisseur doit envoyer le NAK pour le message:

Octet Type de données Description Valeur
0 uint8 Acceptation 0xFF
1 uint8 NAK 0x02
2 à 3 uint16 Longueur des données supplémentaires 0x0003
4 uint8 Motif de l'erreur varie ;
5 uint8 Switch audio 0x07
6 uint8 Code de message de basculement audio varie ;

Notez que si le fournisseur est l'expéditeur, l'adresse MAC n'est pas obligatoire.

Obtenir la capacité du switch audio

Le fournisseur et le demandeur de l'Audio Switch peuvent vérifier si le demandeur/fournisseur d'Association express connecté est compatible avec l'Audio Switch à l'aide du message ci-dessous:

Octet Type de données Description Valeur
0 uint8 Switch audio 0x07
1 uint8 Obtenir la capacité du switch audio 0x10
2 à 3 uint16 Longueur des données supplémentaires 0

Tableau 4.3.1.0:Obtenir la capacité du switch audio

Fonctionnalité de notification du switch audio

Lorsque le code de message get capability of Audio switch est reçu, le demandeur/fournisseur de commutateur audio répond avec l'un des indicateurs suivants:

Octet Type de données Description Valeur
0 uint8 Switch audio 0x07
1 uint8 Fonctionnalité de notification du switch audio 0x11
2 à 3 uint16 Longueur des données supplémentaires 20 si l'envoi est effectué par le demandeur
 4 si l'envoi est effectué par le fournisseur
4 à 5 uint16 Code de version du switch audio Une valeur non nulle signifie qu'il est compatible avec le bouton Audio. Le code de la version actuelle (avec l'amélioration de la sécurité) est 0x0102.
 0x0000 ou aucune réponse en 1 seconde signifie que le bouton Audio n'est pas compatible avec cet appareil
6 - 7 flags Indicateurs de capacité de commutation audio du fournisseur
Si cet élément est envoyé par le chercheur, ces deux octets doivent être ignorés.
varie
 Voir Indicateurs de capacité de basculement audio
8 à 15 Nonce de message
Uniquement requis lorsqu'il est envoyé par le chercheur
varie ;
16 - 23 Code d'authentification des messages
Uniquement requis lorsqu'il est envoyé par le chercheur
varie ;

Tableau 4.3.1.1:Fonctionnalité de notification du bouton bascule audio

Options d'activation de la fonctionnalité de switch audio
  1. Bit 0 (octet 6, MSB): état du switch audio

    • 1, si l'état du switch audio est activé
    • 0, sinon
  2. Bit 1: configurabilité multipoint

    • 1 si l'appareil est compatible avec la connectivité multipoint et qu'il peut être activé ou désactivé
    • 0, sinon (la multipoint n'est pas prise en charge ou elle est toujours activée)
  3. Bit 2: état actuel du multipoint

    • 1, si la connectivité multipoint est activée
    • 0, sinon
  4. Bit 3: détection de l'appareil lorsqu'il est porté

    • 1 si cet appareil est compatible avec la détection de port (même si elle est désactivée pour le moment)
    • 0, sinon
  5. Bit 4: État actuel de la détection de port

    • 1, si la détection de l'appareil lorsqu'il est porté est activée
    • 0, sinon (la détection du port des écouteurs n'est pas prise en charge ou est désactivée)
  6. Tous les autres bits sont réservés et la valeur par défaut est 0.

Définir l'état multipoint

Sur les détecteurs de contacteurs audio, nous pouvons fournir aux utilisateurs le paramètre permettant d'activer/de désactiver la fonctionnalité multipoint. Le demandeur définira l'état multipoint sur le fournisseur à l'aide du message ci-dessous:

Octet Type de données Description Valeur
0 uint8 Switch audio 0x07
1 uint8 Définir l'état multipoint 0x12
2 à 3 uint16 Longueur des données supplémentaires 17
4 uint8 État multipoint 0: désactiver la connectivité multipoint
1: activer la connectivité multipoint
5 à 12 Nonce de message varie ;
13 - 20 Code d'authentification de message varie ;

Tableau 4.3.1.2:Définir l'état multipoint

Définir une préférence de commutation

Les chercheurs de commutateurs audio peuvent modifier la préférence de commutation de la connectivité multipoint et la définir sur le fournisseur à l'aide du message ci-dessous:

Octet Type de données Description Valeur
0 uint8 Switch audio 0x07
1 uint8 Définir une préférence de commutation 0x20
2 à 3 uint16 Longueur des données supplémentaires 18
4 flags Préférence de commutation varie
 Voir Indicateur de préférence de commutation multipoint
5 Paramètres de commutation avancés
Cet octet est réservé. La valeur par défaut est 0.
varie ;
6 à 13 Nonce du message varie ;
Entre 14 et 21 ans Code d'authentification de message varie ;

Tableau 4.3.2.0:Définir la préférence de commutation

Indicateur de préférence pour le basculement multipoint
  • Bit 0 (MSB) : A2DP par rapport à A2DP (valeur par défaut : 0)
  • Bit 1 : HFP vs HFP (par défaut : 0)
  • Bit 2 : A2DP ou HFP (par défaut : 0)
  • Bit 3 : HFP ou A2DP (par défaut : 1)
  • Bits 4 à 7: réservés
  • La figure ci-dessus représente "nouvelle demande de profil" par rapport au "profil actif actuel".
    • 0 correspond à "Ne pas changer"
    • 1 pour le changement

Obtenir la préférence de commutation

Les demandeurs de commutateur audio peuvent interroger le fournisseur sur la préférence de commutation du multipoint à l'aide du message ci-dessous:

Octet Type de données Description Valeur
0 uint8 Switch audio 0x07
1 uint8 Obtenir la configuration de commutation 0x21
2 à 3 uint16 Longueur des données supplémentaires 0

Tableau 4.3.2.1:Obtenir la préférence de commutation

Préférence de notification de changement

Octet Type de données Description Valeur
0 uint8 Switch audio 0x07
1 uint8 Préférence de notification de changement 0x22
2 à 3 uint16 Longueur des données supplémentaires 2
4 flags Indicateurs de préférences de commutation varie
 Voir Indicateur de préférence de commutation multipoint
5 Paramètres de commutation avancés
Cet octet est réservé. La valeur par défaut doit être 0.
varie ;

Tableau 4.3.2.2:Préférence de notification de changement

Changer de source audio active (vers un appareil connecté)

Les demandeurs de commutateur audio peuvent demander au fournisseur multipoint de basculer la source audio active entre les appareils connectés à l'aide du message ci-dessous:

Octet Type de données Description Valeur
0 uint8 Switch audio 0x07
1 uint8 Changer de source audio active (vers un appareil connecté) 0x30
2 à 3 uint16 Longueur des données supplémentaires 17
4 flags Changer les indicateurs d'événement de source audio active varie
 Voir Événement de changement de source audio active
5 à 12 Nonce de message varie ;
13 - 20 Code d'authentification de message varie ;

Tableau 4.3.3.0:Changer la source audio active (vers l'appareil connecté)

Événement de changement de source audio active
  • Bit 0 (MSB): 1 correspond à ce périphérique, 0 correspond au deuxième périphérique connecté
  • Bit 1 : 1 : reprendre la lecture lors du passage à un appareil après le changement, 0 : sinon. La reprise de la lecture signifie que le fournisseur envoie une notification PLAY au chercheur via le profil AVRCP. Si l'état précédent (avant la désactivation) n'était pas "PLAY", le fournisseur doit ignorer cet indicateur.
  • Bit 2 : 1 : rejet de la SCO sur l'appareil dont la connexion a été interrompue, 0 : rejet de la SCO
  • Bit 3 : 1 : Déconnecte le Bluetooth sur l'appareil en déplacement, 0 : sinon.
  • Bits 4 à 7: réservés.

Les demandeurs de commutateur audio ne connaissent pas toujours correctement leur état. Il est donc possible que le fournisseur reçoive un message "Passer à cet appareil" alors que l'appareil de recherche est déjà l'appareil actif. Dans ce cas, pour afficher l'UI appropriée sur le Seeker, le fournisseur peut envoyer un NAK avec le motif d'erreur 0x4, "Action d'appareil redondante".

Pour un fournisseur Audio LE qui compte plusieurs membres d'un ensemble, le fournisseur doit dissocier tous les membres du chercheur. Sinon, la pile Bluetooth du chercheur se reconnectera au fournisseur.

Revenir à l'appareil déconnecté

Si le changement de connexion est indésirable, les utilisateurs peuvent l'annuler. Dans certains cas, il est judicieux de restaurer la connexion audio pour minimiser les perturbations. Le chercheur utilisera le message ci-dessous pour déclencher le changement de mode:

Octet Type de données Description Valeur
0 uint8 Switch audio 0x07
1 uint8 Revenir à l'appareil déconnecté 0x31
2 à 3 uint16 Longueur des données supplémentaires 17
4 uint8 Événement de retour varie
0x01: revenir à l'application précédente
0x02: revenir à l'application précédente et reprendre la lecture
5 à 12 Nonce de message varie ;
13 - 20 Code d'authentification de message varie ;

Tableau 4.3.3.1:Retour (à l'appareil déconnecté)

Pour les fournisseurs multipoints, pour effectuer un changement de connexion, un fournisseur peut interrompre la connexion avec un appareil source audio et suspendre la session audio sur l'autre source audio. Par exemple, supposons que le casque multipoint soit connecté à une tablette et à un troisième appareil compatible avec le switch audio. L'utilisateur regarde une vidéo sur sa tablette lorsqu'un appel entrant est reçu sur son téléphone. Le téléphone déclenche un commutateur de connexion sur le casque, qui doit interrompre la connexion du troisième appareil pour se connecter au téléphone, tout en suspendant la session multimédia sur la tablette pour obtenir la sonnerie du téléphone. Si l'utilisateur refuse l'appel, le téléphone peut demander au casque de "revenir en arrière et de reprendre la lecture". À la réception de cette requête, le casque doit se reconnecter au troisième appareil et reprendre la lecture de la vidéo mise en pause sur la tablette.

Envoyer une notification d'événement de commutation multipoint

Pour informer les utilisateurs d'un événement de commutation multipoint, le détecteur de commutateur audio peut leur envoyer une notification. Le fournisseur doit informer les chercheurs de commutateurs audio connectés de l'événement de commutation.

Octet Type de données Description Valeur
0 uint8 Switch audio 0x07
1 uint8 Notify multipoint-switch event
Le fournisseur doit l'envoyer sur chaque commutateur, y compris de l'explorateur de commutateur audio à l'explorateur de commutateur non audio, de l'explorateur de commutateur non audio à l'explorateur de commutateur audio et de l'explorateur de commutateur audio à l'explorateur de commutateur audio
0x32
2 à 3 uint16 Longueur des données supplémentaires varie ;
4 uint8 Raison de la commutation
Cette valeur doit être déterminée en fonction de l'état de la connexion. Pour les cas d'utilisation de l'audio LE, il peut être utile d'examiner le mappage entre le type de contexte audio LE et l'état de la connexion. Par exemple, l'état de connexion correspondant aux assistants vocaux est 0x9(audio LE : streaming d'appels). Par conséquent, la raison du changement pour un changement déclenché par des assistants vocaux doit être 0x02.
varie
0x00: non spécifié
0x01: multimédia (streaming A2DP, streaming multimédia LEA)
0x02: appel (streaming HFP, streaming d'appel LEA)
5 uint8 Appareil cible varie
0x01: cet appareil
0x02: un autre appareil connecté
6 - n utf8 Nom de l'appareil cible
si l'appareil cible est le détecteur de commutateur audio, en utilisant le nom auquel le détecteur a envoyé le message, sinon en utilisant le nom BT, le cas échéant, en utilisant les deux derniers octets de son adresse
varie ;

Tableau 4.3.3.2:Notification d'événement de commutation multipoint

Obtenir l'état de la connexion

Le demandeur peut obtenir l'état actuel de la connexion auprès du fournisseur:

Octet Type de données Description Valeur
0 uint8 Switch audio 0x07
1 uint8 Obtenir l'état de la connexion 0x33
2 à 3 uint16 Longueur des données supplémentaires 0

Tableau 4.3.3.3:Obtenir l'état de la connexion

À la réception de ce message, le fournisseur doit répondre avec le code de message 0x34, Notify connection status (Notifier l'état de la connexion).

Envoyer une notification sur l'état de la connexion

Comme défini dans la charge utile publicitaire BLE, pour les fournisseurs multipoints, si l'état de la connexion change, à l'exception du changement de paquet publicitaire, le fournisseur doit également informer les chercheurs connectés qui utilisent la même clé de compte de ce changement. Si le fournisseur est connecté à un explorateur de commutateurs audio et à un explorateur de commutateurs non audio, et si l'explorateur de commutateurs non audio est actif, le fournisseur doit également informer l'explorateur de commutateurs audio connecté de l'état de la connexion (à l'aide de la clé de compte de l'explorateur).

Octet Type de données Description Valeur
0 uint8 Switch audio 0x07
1 uint8 Envoyer une notification sur l'état de la connexion 0x34
2 à 3 uint16 Longueur des données supplémentaires varie ;
4 uint8 Indicateur d'appareil actif varie
0x00: ce chercheur est passif et l'appareil actif utilise la même clé de compte
0x01: cet appareil est l'appareil actif
0x02: ce chercheur est passif et l'appareil actif est un chercheur de commutateur audio.
5 - n État de la connexion chiffrée varie ;
n+1 - n+8 Nonce du message varie ;

Tableau 4.3.3.4:Notify connection status

Message d'état de la connexion chiffrée

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

où :

Notifier la connexion initiée par le switch audio

Les fournisseurs de switch audio peuvent avoir besoin de savoir si le changement de connexion est déclenché par le switch audio pour avoir des réactions différentes, par exemple désactiver les alertes sonores pour les événements de switch audio. Le chercheur envoie un message pour informer le fournisseur que cette connexion était une connexion initiée par un commutateur audio.

Octet Type de données Description Valeur
0 uint8 Switch audio 0x07
1 uint8 Notifier la connexion initiée par le switch audio 0x40
2 à 3 uint16 Longueur des données supplémentaires 17
4 uint8 Indication de connexion initiée par le switch audio varie
0: cette connexion n'a pas été déclenchée par le bouton Audio
1: cette connexion a été initiée par le bouton Audio
5 à 12 Nonce de message varie ;
13 - 20 Code d'authentification de message varie ;

Tableau 4.3.4.0:Notification de la connexion initiée par le bouton bascule audio

Indiquer la clé de compte utilisée

Si plusieurs clés de compte de l'Utilisateur (par exemple, multi-utilisateurs) sont associées au Fournisseur, l'Utilisateur utilise le message ci-dessous pour indiquer la clé de compte utilisée.

Octet Type de données Description Valeur
0 uint8 Switch audio 0x07
1 uint8 Indiquer la clé de compte utilisée 0x41
2 à 3 uint16 Longueur des données supplémentaires 22
4 à 9 utf8 Chaîne "En cours d'utilisation" UTF8 ("en cours d'utilisation")
10 à 17 Nonce du message varie ;
18 - 25 Code d'authentification de message varie ;

Tableau 4.3.4.1:Clé de compte utilisée

À la réception de ce message, le fournisseur peut savoir quelle clé de compte est utilisée en vérifiant le code d'authentification du message.

Envoyer des données personnalisées

Le sélecteur de commutateur audio actif peut encapsuler les informations (par exemple, l'utilisation de l'audio) du flux audio dans un octet de données personnalisé et l'envoyer au fournisseur à l'aide du message ci-dessous:

Octet Type de données Description Valeur
0 uint8 Switch audio 0x07
1 uint8 Envoyer des données personnalisées 0x42
2 à 3 uint16 Longueur des données supplémentaires 17
4 uint8 Données personnalisées varie ;
5 à 12 Nonce de message varie ;
13 - 20 Code d'authentification de message varie ;

Tableau 4.3.4.2:Envoi de données personnalisées

À la réception des données personnalisées, le fournisseur met à jour le paquet publicitaire pour inclure les données personnalisées. Pour un fournisseur multipoint, il doit également informer le changement d'état de la connexion à un autre chercheur connecté à l'aide de la même clé de compte.

Définir la cible de la perte de connexion

Sur les casques multipoints, si la connexion à abandonner de préférence n'est pas la moins utilisée récemment, les chercheurs de commutateurs audio peuvent indiquer au fournisseur l'appareil à abandonner à l'aide du message ci-dessous:

Octet Type de données Description Valeur
0 uint8 Switch audio 0x07
1 uint8 Définir la cible de la perte de connexion 0x43
2 à 3 uint16 Longueur des données supplémentaires 17
4 uint8 Appareil connecté cible à supprimer varie
 1: cet appareil
5 à 12 Nonce de message varie ;
13 - 20 Code d'authentification de message varie ;

Tableau 4.3.4.3:Définir la cible de la connexion de suppression