Tombol Audio

Seiring makin banyaknya pengguna yang menggunakan beberapa perangkat sumber audio untuk melakukan tugas sehari-hari, semakin banyak permintaan untuk solusi yang lebih sederhana guna mengelola penggunaan headset di seluruh perangkat. Tombol audio dengan lancar mentransisikan koneksi headset antar-perangkat berdasarkan aktivitas pengguna (misalnya, memulai film) dan peristiwa yang diprioritaskan (misalnya, panggilan masuk).

Prinsip UX

  1. Peralihan koneksi harus cepat dan didasarkan pada tindakan pengguna.
  2. Pengalihan koneksi harus bersifat transparan bagi pengguna, sehingga pengguna dapat mengontrol/mengembalikan jika pengalihan tidak diinginkan.
  3. Pengalihan harus menghormati privasi pengguna.

Peran

Audio Switch Seeker: Seeker adalah perangkat sumber audio (misalnya, ponsel atau tablet), yang mencari headset di sekitar untuk dihubungkan jika berlaku.

Penyedia Tombol Audio: Penyedia biasanya adalah headset yang mengiklankan kehadiran dan status koneksinya agar Pencari dapat membuat keputusan untuk beralih.

Ringkasan Persyaratan

Untuk mencapai pengalihan yang cerdas, Penyedia harus mematuhi persyaratan berikut:

Nama Deskripsi Persyaratan Wajib?
Pemindaian Halaman Untuk menerima permintaan koneksi baru dari Pencari lain saat ada koneksi yang sudah ada.
Untuk Penyedia titik tunggal:
  • Perangkat sumber asli akan otomatis menjeda pemutaran audionya saat Koneksi terputus.
Untuk Penyedia multipoint:
  • Jika masih ada koneksi yang tersedia, koneksi tersebut akan menerima permintaan koneksi.
  • Jika bandwidth koneksi penuh, putuskan koneksi yang paling jarang digunakan (misalnya, tidak ada peristiwa audio dalam waktu lama), dan terima permintaan baru yang masuk.
Mode pemindaian halaman latensi rendah (interval pemindaian tidak boleh lebih besar dari 640 md) diperlukan untuk meningkatkan performa.
Untuk melakukan trade-off antara masa pakai baterai dan performa pengalihan, Penyedia dapat memiliki mode pemindaian halaman default untuk sebagian besar kasus (mode daya rendah, interval pemindaian tidak boleh lebih besar dari 1280 md). Namun, mode latensi rendah harus digunakan dalam situasi berikut:
  • 30 detik pertama saat dinyalakan
  • 30 detik pertama tanpa koneksi atau paging
  • 30 detik pertama perangkat tidak ada aktivitas
Wajib
Histori koneksi Untuk beralih kembali ke koneksi sebelumnya dan melanjutkan pemutaran jika berlaku.
Beralih kembali akan dipicu oleh komunikasi melalui Message Stream API.
Peristiwa audio yang dijeda harus disertakan dalam rekaman untuk melanjutkan pemutaran jika berlaku.
Mengelola histori koneksi dan menerapkan Message Stream API. Wajib
Status koneksi Agar Pencari dapat melakukan penilaian pengalihan koneksi.Status koneksi mencakup:
  • Status koneksi
  • Jenis audio koneksi aktif
  • Informasi akun koneksi aktif
  • Perangkat terhubung
Sertakan status koneksi di Streaming Pesan dan Iklan BLE. Wajib
Perubahan kemampuan runtime Tombol audio dapat diaktifkan dengan mengupgrade firmware di Penyedia, sehingga kemampuan perlu disinkronkan antara Pencari dan Penyedia saat runtime. Mengimplementasikan Message Stream API untuk mengakses kemampuan runtime. Wajib
Aturan pengalihan yang dapat dikonfigurasi Izinkan Pencari mengonfigurasi prioritas antara streaming audio aktif yang ada dan permintaan streaming audio baru melalui setelan preferensi pengguna.
Misalnya, Pencari tombol audio dapat menyediakan setelan UI untuk memungkinkan pengguna mengaktifkan/menonaktifkan pengalihan otomatis antara streaming media dan panggilan.
Pencari tombol audio akan menetapkan dan mendapatkan aturan pengalihan melalui Message Stream.
Khusus Penyedia Multipoint.
Terapkan Message Stream API untuk membuat aturan pengalihan antarperangkat terhubung dapat dikonfigurasi.
Opsional
Beralih perangkat aktif Izinkan Pencari tombol Audio menyimulasikan pengalihan Audio di antara perangkat yang terhubung.
Di sisi Pencari tombol Audio, mungkin ada UI bagi pengguna untuk beralih dengan mudah di antara perangkat yang terhubung.
Khusus Penyedia Multipoint.
Terapkan Message Stream API untuk Pencari tombol Audio guna menentukan sumber audio aktif di antara perangkat yang terhubung.
Wajib
Notifikasi pengalihan multipoint Izinkan Pencari tombol Audio menampilkan notifikasi pengalihan. Khusus Penyedia Multipoint.
Terapkan Message Stream API untuk memberi tahu Pencari tombol Audio yang terhubung saat pengalihan multipoint terjadi.
Wajib

Payload iklan

Penyedia harus menyertakan status koneksinya saat ini dalam iklan, yang dibuat berdasarkan data Akun Sambungan Cepat yang dijelaskan dalam Iklan: Jika tidak dapat ditemukan.

Perhatikan bahwa versi tabel 4.2 adalah 0x1.

Kolom Status Koneksi

Oktet Jenis data Deskripsi Nilai Wajib?
0 uint8 Panjang dan jenis kolom
0bLLLLTTTT
  • L = panjang status koneksi dalam byte
  • T = jenis
0bLLLL0101
  • length: bervariasi
  • type = 0b0101
Wajib
1 uint8 Status koneksi
0bHAFRSSSS
  • H = deteksi pada kepala
  • A = ketersediaan koneksi
  • F = mode fokus
  • R = terhubung kembali secara otomatis
  • S = status koneksi
0bHAFRSSSS
Wajib
2 uint8 Data kustom
Saat ini, data ini hanya berisi jenis konten yang digunakan untuk mendeskripsikan penggunaan streaming audio saat ini. Pencari akan mengirimkannya ke Penyedia.
Nilai dikirim dari Pencari streaming aktif saat ini ke Penyedia melalui aliran pesan. 0 jika streaming aktif saat ini bukan dari Pencari. Wajib
3 - var Bitmap perangkat terhubung
Bitmap untuk menampilkan perangkat yang saat ini terhubung ke Penyedia. Semua perangkat yang terikat diatur secara berurutan, satu bit untuk satu perangkat yang terikat. Durasinya akan bergantung pada jumlah perangkat yang terikat dari Penyedia.
Bit yang dipetakan ditetapkan ke 1 jika perangkat saat ini terhubung ke Penyedia, atau 0 jika tidak.
Lihat Bitmap Perangkat Terhubung untuk mengetahui detailnya
Opsional

Tabel 4.1: Data mentah kolom status koneksi

Flag Koneksi
  • 0bH = deteksi pada kepala

    • 1, on head now
    • 0, jika tidak, tidak ada di kepala atau tidak ada sensor OHD
  • 0bA = ketersediaan koneksi

    • 1, ada koneksi yang tersedia
    • 0, jika tidak
  • 0bF = mode fokus

    • 1, dalam mode fokus sekarang, pengalihan koneksi tidak diizinkan untuk penggunaan media, yaitu tidak ada pengalihan A2DP ke A2DP
    • 0, jika tidak
  • 0bR = terhubung kembali secara otomatis

    • 1, jika koneksi saat ini terhubung kembali secara otomatis oleh Penyedia, yang berarti koneksi tidak terhubung oleh pengguna (untuk multipoint, jika salah satu koneksi yang ada terhubung kembali secara otomatis, koneksi tersebut harus disetel ke 1)
    • 0, jika tidak
Status koneksi
  • 0x0: tidak ada koneksi
  • 0x1: paging
  • 0x2: terhubung, tetapi tidak ada transfer data
  • 0x3: Transfer data non-audio (hanya jika dapat dialihkan, jika tidak, gunakan 0xF)
  • 0x4: Streaming A2DP, AVRCP tidak berlaku
  • 0x5: Streaming A2DP dan pemutaran AVRCP
  • 0x6: Streaming HFP (panggilan telepon/voip), termasuk nada dering inband dan non-inband
  • 0x7: Audio LE - streaming media tanpa kontrol
  • 0x8: Audio LE - streaming media dengan kontrol
  • 0x9: LE audio - streaming panggilan
  • 0xA: LE audio - broadcast
  • 0xF: Menonaktifkan tombol koneksi untuk sementara (misalnya, update firmware)
Jenis Konteks Audio LE dan Status koneksi

Menyarankan bahwa Penyedia Audio LE harus menangani semua jenis konteks yang ditentukan dalam Assigned Numbers 6.12.3 (kecuali jika Penyedia secara eksplisit tidak mendukung jenis konteks tertentu) dan memetakan jenis konteks ke status koneksi seperti di bawah.

  • Percakapan: 0x9
  • Media: 0x8
  • Game: 0x7
  • Instruksional: 0x7
  • Asisten Suara: 0x9
  • Live: 0x9
  • Efek Suara: 0x2
  • Notifikasi: 0x2
  • Nada dering: 0x9
  • Notifikasi: 0x7
  • Alarm Darurat: 0x9

Untuk skenario jenis konteks Audio LE campuran seperti memutar media selama panggilan, Penyedia harus menggunakan status koneksi dengan prioritas tertinggi, yaitu menggunakan 0x9 (panggilan) untuk skenario di atas, bukan 0x8 (media).

Bitmap Perangkat Terhubung

Untuk menghindari pengalihan koneksi yang tidak diinginkan, Pencari mungkin perlu mengetahui perangkat yang saat ini terhubung ke headset. Misalnya, saat headset terhubung ke ponsel, pengguna tidak ingin terganggu oleh perpindahan koneksi saat salah satu anggota keluarganya memulai YouTube di tablet.

Perhatikan bahwa bitmap ini bersifat anonim, Pencari tidak dapat mengetahui perangkat lain yang terikat dengan Penyedia. Misalnya, ambil 5 perangkat yang terikat:

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

Jika perangkat yang terhubung saat ini adalah laptop dan tablet, nilai bitmap akan menjadi 0b10010000. Perubahan urutan dapat diterima jika tidak dapat dihindari, misalnya saat pengguna mereset headset ke setelan pabrik atau saat jumlah perangkat yang terikat mencapai batas atas.

Iklan yang Dapat Di-resolve secara Acak

Untuk menghindari pelacakan dan menghormati privasi pengguna, Penyedia harus memutar dan mengenkripsi kolom berdasarkan kunci akun menggunakan AES-CTR:

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

di mana

  1. Kunci berasal dari kunci akun yang sedang digunakan, yang ditentukan di bagian berikutnya.

    • Kunci dihasilkan oleh fungsi HKDF, IETF RFC 5869, menggunakan fungsi hash SHA-256.

        Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
      
    • Penyedia harus menggunakan kunci akun asli di sini, yaitu byte pertama kunci adalah 0x04, tidak disertakan dalam pola penggunaan.

  2. IV (vektor awal) adalah salt 2 byte dari Data Kunci Akun dengan padding nol, yaitu IV adalah concat(salt, 14-byte ZEROs).

  3. Data mentah status koneksi ditentukan dalam tabel 4.1. Jika status koneksi berubah, salt dan RPA harus dibuat ulang pada jangka waktu iklan yang sama.

Hal ini membuat kolom status koneksi terenkripsi berputar secara bersamaan dengan Data Kunci Akun yang berputar.

Iklan BLE akan disusun sebagai berikut:

Oktet Jenis data Deskripsi Nilai Wajib?
0 uint8 Versi dan flag 0x10 Wajib
1 - t Data Kunci Akun bervariasi Wajib
t+1 - s Data Baterai bervariasi Opsional
s+1 - var Data yang Dapat Di-resolve Acak bervariasi Wajib jika Daftar Kunci Akun tidak kosong,
jika tidak, Dikecualikan.

Tabel 4.2: Iklan BLE dengan Data yang Dapat Di-resolve Acak

Data yang Dapat Di-resolve Acak berisi:

Oktet Jenis data Deskripsi Nilai Wajib?
0 uint8 Panjang dan jenis kolom
0bLLLLTTTT
  • L = panjang data terenkripsi
  • T = jenis
0bLLLL0110
  • length: bervariasi
  • type = 0b0110
Wajib
1 - var Data terenkripsi bervariasi Wajib

Tabel 4.2.1: Data yang Dapat Di-resolve secara Acak

Misalnya, jika Data yang Dapat Di-resolve Acak berisi kolom status koneksi ter-enkripsi, hasil yang didekripsi akan berupa kolom status koneksi.

Untuk mencegah modifikasi tidak sah, Data Kunci Akun di atas harus sedikit diubah saat Data yang Dapat Di-resolve Acak disertakan dalam iklan. Biasanya, saat mem-build filter kunci akun, nilai V dihasilkan dengan menggabungkan filter kunci akun dengan salt. Sebagai gantinya, saat Data yang Dapat Di-resolve Acak juga diiklankan, nilai V harus dibuat sebagai:

 V = concat(account_key, salt, random_resolvable_data)

Jika Data Baterai dan Data yang Dapat Di-resolve Acak diiklankan, V harus dibuat sebagai:

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

Kunci Akun yang Sedang Digunakan

Pengalihan koneksi berbasis akun, sehingga Penyedia harus menyertakan informasi akun koneksi saat ini dalam iklan BLE. Jika perangkat yang terhubung saat ini adalah Pencari tombol Audio, Penyedia harus dapat mendapatkan kunci akun yang terkait dengan Pencari ini, dan menggunakan kunci akun ini untuk mengenkripsi kolom status koneksi. Jika sumber audio yang terhubung bukan Pencari tombol Audio, Penyedia harus menggunakan kunci akun yang paling baru digunakan.

Sebelum menghitung filter kunci akun, Penyedia harus mengubah byte pertama kunci akun untuk menyertakan salah satu pola penggunaan berikut:

  1. 0b00000100
    Kunci akun ini tidak digunakan.
    Ini adalah kunci default (lihat Kunci akun).
  2. 0b00000101
    Kunci akun ini adalah kunci akun yang paling baru digunakan.
    Bidang status koneksi dienkripsi oleh kunci akun ini. Tidak ada informasi kunci akun dari status koneksi saat ini, yang dapat berarti tidak ada perangkat yang terhubung atau perangkat yang terhubung bukan Pencari tombol Audio.
  3. 0b00000110
    Kunci akun ini adalah kunci akun yang sedang digunakan.
    Bidang status koneksi dienkripsi oleh kunci akun ini, dan perangkat yang terhubung saat ini dikaitkan dengan kunci akun ini.

Skema untuk payload tombol Audio

Gambar di bawah menunjukkan skema untuk payload tombol Audio.

Pesan

Saat terhubung, Pencari dan Penyedia dapat menggunakan Aliran pesan untuk menyinkronkan kemampuan tombol Audio, memicu tombol koneksi, menetapkan dan mendapatkan preferensi pengalihan, memberi tahu status koneksi, dan sebagainya. Kita membuat grup pesan dan kode pesan khusus untuk tombol Audio seperti di bawah.

Nama Grup Pesan Nilai
Beralih audio 0x07

Detail tambahan untuk setiap kode pesan disertakan di bagian berikut.

Nama Kode Pesan Nilai Khusus multipoint Pengirim Responder Enkripsikan MAC ACK
Mendapatkan kemampuan Tombol audio 0x10 T Keduanya Keduanya, melalui kode 0x11 T T T
Kemampuan pemberitahuan tombol Audio 0x11 T Keduanya Keduanya T Y Y
Menetapkan status multipoint 0x12 Y Pencari Penyedia T Y Y
Menetapkan preferensi pengalihan 0x20 Y Pencari Penyedia T Y Y
Mendapatkan preferensi pengalihan 0x21 Y Pencari Penyedia, melalui kode 0x22 T T T
Preferensi beralih pemberitahuan 0x22 Y Penyedia Pencari T T T
Beralih sumber audio aktif(ke perangkat terhubung) 0x30 Y Pencari Penyedia T Y Y
Beralih kembali 0x31 T Pencari Penyedia T Y Y
Memberi tahu peristiwa peralihan multipoint 0x32 Y Penyedia Pencari T T T
Mendapatkan status koneksi 0x33 Y Pencari Penyedia, melalui kode 0x34 T T T
Memberi tahu status koneksi 0x34 Y Penyedia Pencari Y T T
Menginformasikan koneksi yang dimulai oleh tombol Audio 0x40 T Pencari Penyedia T Y Y
Menunjukkan kunci akun yang sedang digunakan 0x41 T Pencari Penyedia T Y Y
Mengirim data kustom 0x42 T Pencari Penyedia T Y Y
Menetapkan target koneksi drop 0x43 Y Pencari Penyedia T Y Y

Tabel 4.3: Pesan tombol audio

MAC Pesan Tombol Audio

Untuk memberikan autentikasi pesan, semua pesan tombol Audio dengan data tambahan yang dikirim dari Pencari ke Penyedia memerlukan Kode Autentikasi Pesan. Saat diterima, pesan dengan MAC harus dikonfirmasi agar Pencari mengetahui apakah Penyedia telah bereaksi terhadap pesan tersebut atau tidak.

Jika autentikasi pesan berhasil, Penyedia akan mengirimkan ACK untuk pesan:

Oktet Jenis Data Deskripsi Nilai
0 uint8 Persetujuan 0xFF
1 uint8 ACK 0x01
2 - 3 uint16 Panjang data tambahan bervariasi
4 uint8 Beralih audio 0x07
5 uint8 Kode pesan tombol audio bervariasi
6 - s Tambahan data bervariasi

Jika gagal, Penyedia harus mengirim NAK untuk pesan tersebut:

Oktet Jenis Data Deskripsi Nilai
0 uint8 Persetujuan 0xFF
1 uint8 NAK 0x02
2 - 3 uint16 Panjang data tambahan 0x0003
4 uint8 Penyebab kesalahan bervariasi
5 uint8 Beralih audio 0x07
6 uint8 Kode pesan tombol audio bervariasi

Perhatikan bahwa, jika Penyedia adalah pengirim, MAC tidak diperlukan.

Mendapatkan kemampuan Tombol audio

Penyedia dan Pencari tombol Audio dapat memeriksa apakah Pencari/Penyedia Sambungan Cepat yang terhubung mendukung tombol Audio atau tidak dengan menggunakan pesan di bawah ini:

Oktet Jenis Data Deskripsi Nilai
0 uint8 Beralih audio 0x07
1 uint8 Mendapatkan kemampuan Tombol audio 0x10
2 - 3 uint16 Panjang data tambahan 0

Tabel 4.3.1.0: Mendapatkan kemampuan Tombol audio

Kemampuan pemberitahuan Pengalihan audio

Setelah menerima kode pesan get capability of Audio switch, Pencari/Penyedia tombol Audio akan merespons dengan salah satu flag berikut:

Oktet Jenis Data Deskripsi Nilai
0 uint8 Beralih audio 0x07
1 uint8 Kemampuan pemberitahuan Pengalihan audio 0x11
2 - 3 uint16 Panjang data tambahan 20 jika dikirim oleh Pencari
4 jika dikirim oleh Penyedia
4 - 5 uint16 Kode versi tombol audio Nilai yang bukan nol berarti mendukung tombol Audio. Kode versi saat ini (dengan peningkatan keamanan) adalah 0x0102.
0x0000 atau tidak ada respons dalam 1 detik berarti Tombol audio tidak didukung di perangkat ini
6 - 7 flags Flag kemampuan tombol audio dari Penyedia
Jika dikirim oleh Pencari, dua byte ini harus diabaikan.
bervariasi
Lihat Flag kemampuan tombol audio
8 - 15 Nonce pesan
Hanya diperlukan jika dikirim oleh Pencari
bervariasi
16 - 23 Kode autentikasi pesan
Hanya diperlukan jika dikirim oleh Pencari
bervariasi

Tabel 4.3.1.1: Kemampuan pemberitahuan Tombol audio

Flag kemampuan tombol audio
  1. Bit 0 (octet 6, MSB): Status tombol audio

    • 1, jika status Tombol audio aktif
    • 0, jika tidak
  2. Bit 1: kemampuan konfigurasi multipoint

    • 1, jika perangkat mendukung multipoint dan dapat diaktifkan dan dinonaktifkan
    • 0, jika tidak (tidak mendukung multipoint atau multipoint selalu aktif)
  3. Bit 2: status multipoint saat ini

    • 1, jika multipoint aktif
    • 0, jika tidak
  4. Bit 3: deteksi di kepala

    • 1, jika perangkat ini mendukung deteksi kepala (meskipun deteksi kepala dimatikan sekarang)
    • 0, jika tidak
  5. Bit 4: status saat ini deteksi di kepala

    • 1, jika deteksi kepala diaktifkan
    • 0, jika tidak (tidak mendukung deteksi di kepala atau deteksi di kepala dinonaktifkan)
  6. Semua bit lainnya dicadangkan, default 0.

Menetapkan status multipoint

Pada Pencari tombol Audio, kami dapat menyediakan setelan bagi pengguna untuk mengaktifkan/menonaktifkan fungsi multipoint. Pencari akan menetapkan status multipoint ke Penyedia menggunakan pesan di bawah:

Oktet Jenis Data Deskripsi Nilai
0 uint8 Beralih audio 0x07
1 uint8 Menetapkan status multipoint 0x12
2 - 3 uint16 Panjang data tambahan 17
4 uint8 Status multipoint 0: menonaktifkan multipoint
1: mengaktifkan multipoint
5 - 12 Nonce pesan bervariasi
13 - 20 Message authentication code bervariasi

Tabel 4.3.1.2: Menetapkan status multipoint

Menetapkan preferensi pengalihan

Pencari tombol audio dapat mengubah preferensi pengalihan multipoint dan menetapkannya ke Penyedia menggunakan pesan di bawah ini:

Oktet Jenis Data Deskripsi Nilai
0 uint8 Beralih audio 0x07
1 uint8 Menetapkan preferensi pengalihan 0x20
2 - 3 uint16 Panjang data tambahan 18
4 flags Preferensi pengalihan bervariasi
Lihat flag preferensi pengalihan multipoint
5 Setelan pengalihan lanjutan
Byte ini dicadangkan, nilai defaultnya adalah 0
bervariasi
6 - 13 Nonce pesan bervariasi
14 - 21 tahun Message authentication code bervariasi

Tabel 4.3.2.0: Menetapkan preferensi pengalihan

Flag preferensi pengalihan multi-titik
  • Bit 0 (MSB): A2DP vs A2DP (default 0)
  • Bit 1: HFP vs HFP (default 0)
  • Bit 2: A2DP vs HFP (default 0)
  • Bit 3: HFP vs A2DP (default 1)
  • Bit 4 - 7: dicadangkan
  • Di atas menunjukkan "permintaan profil baru" vs "profil aktif saat ini"
    • 0 untuk tidak beralih
    • 1 untuk beralih

Mendapatkan preferensi pengalihan

Pencari tombol audio dapat mengkueri preferensi pengalihan multipoint dari Penyedia menggunakan pesan di bawah:

Oktet Jenis Data Deskripsi Nilai
0 uint8 Beralih audio 0x07
1 uint8 Mendapatkan konfigurasi pengalihan 0x21
2 - 3 uint16 Panjang data tambahan 0

Tabel 4.3.2.1: Mendapatkan preferensi pengalihan

Preferensi notifikasi pengalihan

Oktet Jenis Data Deskripsi Nilai
0 uint8 Beralih audio 0x07
1 uint8 Preferensi notifikasi pengalihan 0x22
2 - 3 uint16 Panjang data tambahan 2
4 flags Mengganti tanda preferensi bervariasi
Lihat flag preferensi pengalihan multipoint
5 Setelan pengalihan lanjutan
Byte ini dicadangkan, nilai defaultnya harus 0
bervariasi

Tabel 4.3.2.2: Memberi tahu preferensi pengalihan

Mengganti sumber audio aktif (ke perangkat yang terhubung)

Pencari tombol audio dapat meminta Penyedia multipoint untuk mengalihkan sumber audio aktif di antara perangkat yang terhubung menggunakan pesan di bawah:

Oktet Jenis Data Deskripsi Nilai
0 uint8 Beralih audio 0x07
1 uint8 Mengganti sumber audio aktif (ke perangkat yang terhubung) 0x30
2 - 3 uint16 Panjang data tambahan 17
4 flags Mengubah flag peristiwa sumber audio aktif bervariasi
Lihat mengganti peristiwa sumber audio aktif
5 - 12 Nonce pesan bervariasi
13 - 20 Message authentication code bervariasi

Tabel 4.3.3.0: Mengalihkan sumber audio aktif (ke perangkat yang terhubung)

Mengalihkan peristiwa sumber audio aktif
  • Bit 0 (MSB): 1 beralih ke perangkat ini, 0 beralih ke perangkat kedua yang terhubung
  • Bit 1: 1 melanjutkan pemutaran saat beralih ke perangkat setelah beralih, 0 jika tidak. Melanjutkan pemutaran berarti Penyedia mengirimkan notifikasi PLAY ke Pencari melalui profil AVRCP. Jika status sebelumnya (sebelum beralih) bukan PLAY, Penyedia harus mengabaikan tanda ini.
  • Bit 2: 1 menolak SCO di perangkat yang dimatikan, 0 jika tidak
  • Bit 3: 1 memutuskan hubungan Bluetooth pada perangkat tombol jauh, 0 jika tidak.
  • Bit 4 - 7: dicadangkan.

Pencari tombol audio mungkin tidak selalu mengetahui statusnya dengan benar, sehingga Penyedia dapat menerima pesan "beralih ke perangkat ini" saat Pencari sudah menjadi perangkat aktif. Dalam hal ini, untuk menampilkan UI yang benar di Pencari, Penyedia dapat mengirim NAK dengan alasan error, 0x4 - Tindakan perangkat redundan.

Untuk Penyedia Audio LE yang memiliki lebih dari satu anggota set, Penyedia harus memutuskan semua anggota dari Pencari. Jika tidak, stack Bluetooth Pencari akan terhubung kembali ke Penyedia.

Beralih kembali (ke perangkat yang terputus)

Jika pengalihan koneksi tidak diinginkan, pengguna dapat mengembalikan pengalihan, dan dalam skenario tertentu, sebaiknya pulihkan koneksi audio untuk meminimalkan gangguan. Pencari akan menggunakan pesan di bawah untuk memicu pengaktifan kembali:

Oktet Jenis Data Deskripsi Nilai
0 uint8 Beralih audio 0x07
1 uint8 Beralih kembali (ke perangkat yang terputus) 0x31
2 - 3 uint16 Panjang data tambahan 17
4 uint8 Peristiwa beralih kembali bervariasi
0x01: beralih kembali
0x02: beralih kembali dan melanjutkan pemutaran
5 - 12 Nonce pesan bervariasi
13 - 20 Message authentication code bervariasi

Tabel 4.3.3.1: Beralih kembali (ke perangkat yang terputus)

Untuk Penyedia multipoint, untuk melakukan pengalihan koneksi, Penyedia dapat memutuskan koneksi dengan satu perangkat sumber audio dan menjeda sesi audio di sumber audio lainnya. Misalnya, asumsikan headset multipoint terhubung ke tablet dan perangkat Audio switch pihak ketiga yang didukung. Pengguna sedang menonton video di tablet saat ada panggilan masuk di ponselnya. Ponsel akan memicu tombol koneksi di headset, yang perlu memutuskan koneksi perangkat ke-3 agar dapat terhubung ke ponsel, sekaligus menjeda sesi media di tablet untuk mendapatkan nada dering dari ponsel. Jika pengguna menolak panggilan, ponsel dapat meminta headset untuk "beralih kembali dan melanjutkan pemutaran". Setelah menerima permintaan ini, headset harus terhubung kembali ke perangkat ke-3, dan melanjutkan pemutaran video yang dijeda di tablet.

Memberi tahu peristiwa multipoint-switch

Agar pengguna mengetahui peristiwa tombol akses multi-titik yang terjadi, Pencari tombol akses Audio dapat menampilkan notifikasi kepada pengguna. Penyedia harus memberi tahu Pencari tombol Audio yang terhubung tentang peristiwa pengalihan.

Oktet Jenis Data Deskripsi Nilai
0 uint8 Beralih audio 0x07
1 uint8 Memberi tahu peristiwa pengalihan multipoint
Penyedia harus mengirimkannya di setiap pengalihan, termasuk Pencari pengalihan Audio ke Pencari pengalihan non-Audio, Pencari pengalihan non-Audio ke Pencari pengalihan Audio, dan Pencari pengalihan Audio ke Pencari pengalihan Audio
0x32
2 - 3 uint16 Panjang data tambahan bervariasi
4 uint8 Alasan beralih
Nilai ini harus ditentukan berdasarkan Status koneksi. Untuk kasus penggunaan Audio LE, melihat pemetaan antara Jenis Konteks Audio LE dan Status koneksi mungkin berguna. Misalnya, status koneksi yang sesuai dengan Asisten Suara adalah 0x9(audio LE - streaming panggilan). Jadi, alasan pengalihan untuk pengalihan yang dimulai oleh Asisten Suara harus 0x02.
bervariasi
0x00: Tidak ditentukan
0x01: Media (misalnya, streaming A2DP, streaming media LEA)
0x02: Panggilan (misalnya, streaming HFP, streaming panggilan LEA)
5 uint8 Perangkat target bervariasi
0x01: perangkat ini
0x02: perangkat lain yang terhubung
6 - n utf8 Nama perangkat target
jika perangkat target adalah Pencari tombol Audio, menggunakan nama yang dikirim Pencari, jika tidak, menggunakan nama BT, jika tidak berlaku, menggunakan 2 byte terakhir alamatnya
bervariasi

Tabel 4.3.3.2: Memberi tahu peristiwa multipoint-switch

Mendapatkan status koneksi

Pencari dapat mendapatkan status koneksi saat ini dari Penyedia:

Oktet Jenis Data Deskripsi Nilai
0 uint8 Beralih audio 0x07
1 uint8 Mendapatkan status koneksi 0x33
2 - 3 uint16 Panjang data tambahan 0

Tabel 4.3.3.3: Mendapatkan status koneksi

Setelah menerima pesan ini, Penyedia harus merespons dengan kode pesan 0x34, memberi tahu status koneksi.

Memberi tahu status koneksi

Seperti yang ditentukan dalam payload iklan BLE, untuk Penyedia multipoint, jika status koneksi berubah, kecuali untuk mengubah paket iklan, Penyedia juga harus memberi tahu Pencari yang terhubung yang menggunakan kunci akun yang sama tentang perubahan tersebut. Jika Penyedia terhubung dengan Pencari tombol Audio dan Pencari tombol non-Audio, jika Pencari tombol non-Audio aktif, Penyedia juga harus memberi tahu Pencari tombol Audio yang terhubung tentang status koneksi (menggunakan kunci akun Pencari).

Oktet Jenis Data Deskripsi Nilai
0 uint8 Beralih audio 0x07
1 uint8 Memberi tahu status koneksi 0x34
2 - 3 uint16 Panjang data tambahan bervariasi
4 uint8 Tanda perangkat aktif bervariasi
0x00: Pencari ini pasif, dan perangkat aktif menggunakan kunci akun yang sama
0x01: Pencari ini adalah perangkat aktif
0x02: Pencari ini pasif, dan perangkat aktif adalah Pencari tombol non-Audio.
5 - n Status koneksi terenkripsi bervariasi
n+1 - n+8 Nonce pesan bervariasi

Tabel 4.3.3.4: Memberi tahu status koneksi

Pesan status koneksi terenkripsi

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

dalam hal ini:

Notifikasi Koneksi yang dimulai oleh tombol Audio

Penyedia tombol audio mungkin perlu mengetahui apakah pengalihan koneksi dipicu oleh tombol audio agar memiliki reaksi yang berbeda, misalnya menonaktifkan earcon untuk peristiwa tombol audio. Pencari mengirim pesan untuk memberi tahu Penyedia bahwa koneksi ini adalah koneksi yang dimulai oleh tombol Audio.

Oktet Jenis Data Deskripsi Nilai
0 uint8 Beralih audio 0x07
1 uint8 Notifikasi Koneksi yang dimulai oleh tombol Audio 0x40
2 - 3 uint16 Panjang data tambahan 17
4 uint8 Indikasi koneksi yang dimulai oleh tombol audio bervariasi
0: koneksi ini tidak dipicu oleh tombol Audio
1: koneksi ini dimulai oleh tombol Audio
5 - 12 Nonce pesan bervariasi
13 - 20 Message authentication code bervariasi

Tabel 4.3.4.0: Menginformasikan koneksi yang dimulai oleh Tombol audio

Menunjukkan kunci akun yang sedang digunakan

Jika beberapa kunci akun di Pencari (misalnya multi-pengguna) dikaitkan dengan Penyedia, Pencari akan menggunakan pesan di bawah untuk menunjukkan kunci akun mana yang sedang digunakan.

Oktet Jenis Data Deskripsi Nilai
0 uint8 Beralih audio 0x07
1 uint8 Menunjukkan kunci akun yang sedang digunakan 0x41
2 - 3 uint16 Panjang data tambahan 22
4 - 9 utf8 String sedang digunakan UTF8 ("sedang digunakan")
10 - 17 Nonce pesan bervariasi
18 - 25 Message authentication code bervariasi

Tabel 4.3.4.1: Menunjukkan kunci akun yang sedang digunakan

Setelah menerima pesan ini, Penyedia dapat mengetahui kunci akun mana yang digunakan dengan memverifikasi kode autentikasi pesan.

Mengirim data kustom

Pencari tombol Audio aktif dapat mengenkapsulasi informasi (misalnya penggunaan audio) streaming audio dalam byte data kustom, dan mengirimkannya ke Penyedia menggunakan pesan di bawah:

Oktet Jenis Data Deskripsi Nilai
0 uint8 Beralih audio 0x07
1 uint8 Mengirim data kustom 0x42
2 - 3 uint16 Panjang data tambahan 17
4 uint8 Data kustom bervariasi
5 - 12 Nonce pesan bervariasi
13 - 20 Message authentication code bervariasi

Tabel 4.3.4.2: Mengirim data kustom

Setelah menerima data kustom, Penyedia akan memperbarui paket iklan untuk menyertakan data kustom. Untuk Penyedia multipoint, Penyedia juga harus memberi tahu perubahan status koneksi ke Pencari lain yang terhubung menggunakan kunci akun yang sama.

Menetapkan target koneksi drop

Pada headset multipoint, jika koneksi pilihan yang akan dihentikan bukan koneksi yang paling baru digunakan, Pencari tombol Audio dapat memberi tahu Penyedia perangkat mana yang akan dihentikan menggunakan pesan di bawah:

Oktet Jenis Data Deskripsi Nilai
0 uint8 Beralih audio 0x07
1 uint8 Menetapkan target koneksi drop 0x43
2 - 3 uint16 Panjang data tambahan 17
4 uint8 Target perangkat terhubung yang akan dihapus bervariasi
1: perangkat ini
5 - 12 Nonce pesan bervariasi
13 - 20 Message authentication code bervariasi

Tabel 4.3.4.3: Menetapkan target koneksi drop