สวิตช์เสียง

เมื่อผู้ใช้ใช้อุปกรณ์แหล่งที่มาของเสียงหลายเครื่องในการทำงานประจำวันมากขึ้น ความต้องการโซลูชันที่จัดการการใช้งานหูฟังในอุปกรณ์ต่างๆ ได้ง่ายขึ้นจึงเพิ่มขึ้นตามไปด้วย สวิตช์เสียงจะเปลี่ยนการเชื่อมต่อชุดหูฟังระหว่างอุปกรณ์ต่างๆ อย่างราบรื่นโดยอิงตามกิจกรรมของผู้ใช้ (เช่น การเริ่มดูภาพยนตร์) และเหตุการณ์ที่มีลำดับความสำคัญ (เช่น สายเรียกเข้า)

หลักการ UX

  1. การเปลี่ยนการเชื่อมต่อควรรวดเร็วและอิงตามการกระทำของผู้ใช้
  2. การเปลี่ยนการเชื่อมต่อควรมีความโปร่งใสต่อผู้ใช้ ซึ่งจะช่วยให้ผู้ใช้ควบคุม/เปลี่ยนกลับได้หากไม่ต้องการการเปลี่ยน
  3. การเปลี่ยนควรเคารพความเป็นส่วนตัวของผู้ใช้

บทบาท

อุปกรณ์ค้นหาเพื่อสลับอุปกรณ์เสียง: อุปกรณ์ค้นหาเป็นอุปกรณ์แหล่งที่มาของเสียง (เช่น โทรศัพท์หรือแท็บเล็ต) ซึ่งจะค้นหาชุดหูฟังที่อยู่ใกล้เคียงเพื่อเชื่อมต่อด้วย (หากมี)

ผู้ให้บริการสวิตช์เสียง: โดยปกติแล้ว ผู้ให้บริการคือหูฟังที่โฆษณาสถานะการมีอยู่และการเชื่อมต่อเพื่อให้ผู้ค้นหาตัดสินใจเปลี่ยน

ภาพรวมของข้อกำหนด

ผู้ให้บริการต้องปฏิบัติตามข้อกำหนดต่อไปนี้เพื่อให้การสลับอัจฉริยะทำงานได้

ชื่อ คำอธิบาย ข้อกำหนด ต้องระบุหรือไม่
การสแกนหน้าเว็บ วิธียอมรับคําขอเชื่อมต่อใหม่จากผู้ค้นหารายอื่นเมื่อมีการเชื่อมต่ออยู่แล้ว
สําหรับผู้ให้บริการแบบจุดเดียว:
  • อุปกรณ์ต้นทางจะหยุดเล่นเสียงชั่วคราวโดยอัตโนมัติเมื่อผู้ให้บริการยกเลิกการเชื่อมต่อ
สำหรับผู้ให้บริการแบบหลายจุด
  • หากยังมีการเชื่อมต่อที่พร้อมใช้งานอยู่ ระบบจะยอมรับคําขอเชื่อมต่อ
  • หากแบนด์วิดท์ของการเชื่อมต่อเต็มแล้ว ระบบจะยกเลิกการเชื่อมต่อที่ใช้ล่าสุดน้อยที่สุด (เช่น ไม่มีเหตุการณ์เสียงเป็นเวลานาน) และยอมรับคําขอใหม่ขาเข้า
ต้องใช้โหมดการสแกนหน้าเว็บที่มีเวลาในการตอบสนองต่ำ (ช่วงเวลาการสแกนไม่ควรเกิน 640 มิลลิวินาที) เพื่อปรับปรุงประสิทธิภาพ
ผู้ให้บริการสามารถกำหนดโหมดการสแกนหน้าเว็บเริ่มต้นสำหรับกรณีส่วนใหญ่ (โหมดพลังงานต่ำ ช่วงเวลาการสแกนไม่ควรเกิน 1280 มิลลิวินาที) เพื่อแลกเปลี่ยนระหว่างอายุการใช้งานแบตเตอรี่กับประสิทธิภาพการสลับ แต่ต้องใช้โหมดค่าความหน่วงต่ำในสถานการณ์ต่อไปนี้
  • 30 วินาทีแรกของการเปิดเครื่อง
  • 30 วินาทีแรกที่ไม่มีการเชื่อมต่อหรือการเรียก
  • 30 วินาทีแรกของอุปกรณ์ที่ไม่ได้ใช้งาน
บังคับ
ประวัติการเชื่อมต่อ หากต้องการเปลี่ยนกลับไปใช้การเชื่อมต่อก่อนหน้าและเล่นต่อ (หากมี)
การเปลี่ยนกลับไปจะทริกเกอร์โดยการสื่อสารผ่าน Message Stream API
เหตุการณ์การหยุดเสียงชั่วคราวควรรวมอยู่ในบันทึกเพื่อเล่นต่อ (หากมี)
รักษาประวัติการเชื่อมต่อและใช้ Message Stream API บังคับ
สถานะการเชื่อมต่อ สำหรับ Seekers ที่จะตัดสินการเปลี่ยนการเชื่อมต่อ สถานะการเชื่อมต่อมีดังนี้
  • สถานะการเชื่อมต่อ
  • ประเภทเสียงของการเชื่อมต่อที่ใช้งานอยู่
  • ข้อมูลบัญชีของการเชื่อมต่อที่ใช้งานอยู่
  • อุปกรณ์ที่เชื่อมต่อ
รวมสถานะการเชื่อมต่อไว้ในสตรีมโฆษณาและข้อความ BLE บังคับ
การเปลี่ยนแปลงความสามารถของรันไทม์ คุณเปิดใช้สวิตช์เสียงได้โดยอัปเกรดเฟิร์มแวร์ในอุปกรณ์ของผู้ให้บริการ ดังนั้นความสามารถต่างๆ จึงต้องซิงค์กันระหว่างอุปกรณ์ค้นหาและอุปกรณ์ของผู้ให้บริการขณะรันไทม์ ใช้ Message Stream API เพื่อเข้าถึงความสามารถของรันไทม์ บังคับ
กฎการเปลี่ยนที่กำหนดค่าได้ อนุญาตให้ Seeker กำหนดลำดับความสำคัญระหว่างสตรีมมิงเสียงที่ใช้งานอยู่ในปัจจุบันกับคําขอสตรีมมิงเสียงใหม่ผ่านการตั้งค่าค่ากําหนดของผู้ใช้
เช่น Seeker สวิตช์เสียงอาจให้การตั้งค่า UI เพื่อให้ผู้ใช้เปิด/ปิดการสลับอัตโนมัติระหว่างสตรีมมิงสื่อกับการโทร
ตัวค้นหาสวิตช์เสียงจะตั้งค่าและรับกฎการสลับผ่านสตรีมข้อความ
ผู้ให้บริการแบบหลายจุดเท่านั้น
ใช้ Message Stream API เพื่อกำหนดค่ากฎการเปลี่ยนระหว่างอุปกรณ์ที่เชื่อมต่อ
ไม่บังคับ
การสลับอุปกรณ์ที่ใช้งานอยู่ ให้ผู้ค้นหาตัวสลับเสียงจำลองการสลับเสียงระหว่างอุปกรณ์ที่เชื่อมต่อ
ฝั่งผู้ค้นหาตัวสลับเสียงอาจมี UI เพื่อให้ผู้ใช้สลับระหว่างอุปกรณ์ที่เชื่อมต่อได้อย่างง่ายดาย
ผู้ให้บริการแบบหลายจุดเท่านั้น
ใช้ Message Stream API สำหรับ Audio Switch Seeker เพื่อระบุแหล่งที่มาของเสียงที่ใช้งานอยู่ระหว่างอุปกรณ์ที่เชื่อมต่อ
บังคับ
การแจ้งเตือนการเปลี่ยนหลายจุด ให้ผู้ค้นหาสวิตช์เสียงแสดงการแจ้งเตือนการเปลี่ยน ผู้ให้บริการแบบหลายจุดเท่านั้น
ใช้ Message Stream API เพื่อแจ้งให้ผู้ค้นหาอุปกรณ์เปลี่ยนเสียงที่เชื่อมต่ออยู่ทราบเมื่อมีการสลับหลายจุด
บังคับ

เพย์โหลดการโฆษณา

ผู้ให้บริการต้องระบุสถานะการเชื่อมต่อปัจจุบันในโฆษณา ซึ่งจะอิงตามข้อมูลบัญชีการจับคู่ด่วนที่อธิบายไว้ในการโฆษณา: เมื่อตรวจไม่พบ

โปรดทราบว่าเวอร์ชันของ table 4.2 คือ 0x1

ช่องสถานะการเชื่อมต่อ

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า ต้องระบุหรือไม่
0 uint8 ความยาวและประเภทฟิลด์
0bLLLLTTTT
  • L = ความยาวของสถานะการเชื่อมต่อเป็นไบต์
  • T = ประเภท
0bLLLL0101
  • ความยาว: แตกต่างกัน
  • type = 0b0101
บังคับ
1 uint8 สถานะการเชื่อมต่อ
0bHAFRSSSS
  • H = การตรวจจับการสวมกับศีรษะ
  • A = ความพร้อมของการเชื่อมต่อ
  • F = โหมดโฟกัส
  • R = เชื่อมต่อใหม่โดยอัตโนมัติ
  • S = สถานะการเชื่อมต่อ
0bHAFRSSSS
บังคับ
2 uint8 ข้อมูลที่กำหนดเอง
ปัจจุบันมีเฉพาะประเภทเนื้อหาที่ใช้อธิบายการใช้งานสตรีมมิงเสียงปัจจุบันเท่านั้น ผู้ค้นหาจะส่งคำขอไปยังผู้ให้บริการ
ระบบจะส่งค่าจากผู้ค้นหาสตรีมมิงที่ใช้งานอยู่ในปัจจุบันไปยังผู้ให้บริการผ่านสตรีมข้อความ 0 หากสตรีมมิงที่ใช้งานอยู่ในปัจจุบันไม่ได้มาจาก Seeker บังคับ
3 - var บิตแมปอุปกรณ์ที่เชื่อมต่อ
บิตแมปเพื่อแสดงอุปกรณ์ที่เชื่อมต่อกับผู้ให้บริการอยู่ในขณะนี้ อุปกรณ์ที่ผสานรวมทั้งหมดจะจัดเรียงตามลำดับ โดย 1 บิตสำหรับอุปกรณ์ที่ผสานรวม 1 เครื่อง ความยาวจะขึ้นอยู่กับจำนวนอุปกรณ์ที่ผูกไว้ของผู้ให้บริการ
บิตที่แมปจะตั้งค่าเป็น 1 หากอุปกรณ์เชื่อมต่อกับผู้ให้บริการอยู่ หรือเป็น 0 หากไม่ได้เชื่อมต่อ
ดูรายละเอียดได้ที่บิตแมปอุปกรณ์ที่เชื่อมต่อ
ไม่บังคับ

ตาราง 4.1: ข้อมูลดิบของฟิลด์สถานะการเชื่อมต่อ

การแจ้งเตือนการเชื่อมต่อ
  • 0bH = การตรวจจับการสวมกับศีรษะ

    • 1 กำลังอยู่ในหัว
    • 0 ไม่เช่นนั้น ไม่ได้อยู่บนศีรษะหรือไม่มีเซ็นเซอร์ OHD
  • 0bA = ความพร้อมของการเชื่อมต่อ

    • 1. มีการเชื่อมต่อที่พร้อมใช้งาน
    • 0 ไม่เช่นนั้น
  • 0bF = โหมดโฟกัส

    • 1. ในโหมดโฟกัสตอนนี้ ไม่อนุญาตให้สลับการเชื่อมต่อสําหรับการใช้งานสื่อ เช่น ไม่อนุญาตให้สลับ A2DP เป็น A2DP
    • 0 ไม่เช่นนั้น
  • 0bR = เชื่อมต่อใหม่โดยอัตโนมัติ

    • 1 หากผู้ให้บริการเชื่อมต่อการเชื่อมต่อปัจจุบันอีกครั้งโดยอัตโนมัติ ซึ่งหมายความว่าผู้ใช้ไม่ได้เชื่อมต่อ (สำหรับหลายจุด หากการเชื่อมต่อที่มีอยู่รายการใดรายการหนึ่งเชื่อมต่ออีกครั้งโดยอัตโนมัติ ก็ควรตั้งค่าเป็น 1)
    • 0 ไม่เช่นนั้น
สถานะการเชื่อมต่อ
  • 0x0: ไม่มีการเชื่อมต่อ
  • 0x1: การแบ่งหน้า
  • 0x2: เชื่อมต่อแล้วแต่ไม่มีการโอนข้อมูล
  • 0x3: การโอนข้อมูลที่ไม่ใช่เสียง (เฉพาะในกรณีที่สลับได้ หากไม่ได้ใช้ จะใช้ 0xF)
  • 0x4: สตรีมมิง A2DP, AVRCP ใช้ไม่ได้
  • 0x5: สตรีมมิง A2DP และการเล่น AVRCP
  • 0x6: การสตรีม HFP (การโทรทางโทรศัพท์/VoIP) ซึ่งรวมถึงเสียงเรียกเข้าในแบนด์และนอกแบนด์
  • 0x7: เสียง LE - สตรีมมิงสื่อแบบไม่มีการควบคุม
  • 0x8: เสียง LE - สตรีมมิงสื่อที่มีการควบคุม
  • 0x9: LE Audio - การสตรีมการโทร
  • 0xA: LE Audio - ออกอากาศ
  • 0xF: ปิดใช้สวิตช์การเชื่อมต่อชั่วคราว (เช่น การอัปเดตเฟิร์มแวร์)
ประเภทบริบทและสถานะการเชื่อมต่อของ LE Audio

แนะนำให้ผู้ให้บริการ LE Audio ควรจัดการกับประเภทบริบททั้งหมดที่ระบุไว้ใน หมายเลขที่กำหนด 6.12.3 (เว้นแต่ผู้ให้บริการจะไม่รองรับประเภทบริบทหนึ่งๆ อย่างชัดเจน) และจับคู่ประเภทบริบทกับสถานะการเชื่อมต่อดังด้านล่าง

  • สนทนา: 0x9
  • สื่อ: 0x8
  • เกม: 0x7
  • วิธีการ: 0x7
  • ผู้ช่วยแบบเสียง: 0x9
  • ถ่ายทอดสด: 0x9
  • เอฟเฟกต์เสียง: 0x2
  • การแจ้งเตือน: 0x2
  • เสียงเรียกเข้า: 0x9
  • การแจ้งเตือน: 0x7
  • สัญญาณเตือนฉุกเฉิน: 0x9

สำหรับสถานการณ์ประเภทบริบทเสียง LE แบบผสม เช่น การเล่นสื่อระหว่างการโทร ผู้ให้บริการจะใช้สถานะการเชื่อมต่อที่มีลำดับความสำคัญสูงสุด เช่น ใช้ 0x9 (การโทร) สำหรับสถานการณ์ข้างต้นแทน 0x8 (สื่อ)

บิตแมปอุปกรณ์ที่เชื่อมต่อ

อุปกรณ์ค้นหาอาจต้องทราบว่าชุดหูฟังเชื่อมต่ออยู่กับอุปกรณ์ใดอยู่เพื่อหลีกเลี่ยงการเปลี่ยนการเชื่อมต่อที่ไม่ต้องการ เช่น เมื่อเชื่อมต่อหูฟังกับโทรศัพท์ ผู้ใช้ไม่ต้องการให้การสลับการเชื่อมต่อขัดจังหวะเมื่อสมาชิกในครอบครัวเริ่มเล่น YouTube บนแท็บเล็ต

โปรดทราบว่าบิตแมปนี้เป็นแบบไม่ระบุตัวตน ผู้ค้นหาจะไม่ทราบว่ามีอุปกรณ์อื่นๆ ใดบ้างที่เชื่อมโยงกับผู้ให้บริการ ตัวอย่างเช่น อุปกรณ์ที่ผสานรวม 5 เครื่อง

  • 0: แล็ปท็อป (0bx0000000)
  • 1: phoneA (0b0x000000)
  • 2: phoneB (0b00x00000)
  • 3: แท็บเล็ต (0b000x0000)
  • 4: ทีวี (0b0000x000)

หากอุปกรณ์ที่เชื่อมต่ออยู่ในปัจจุบันคือแล็ปท็อปและแท็บเล็ต ค่าของบิตแมปจะเป็น 0b10010000 เรายอมรับการเปลี่ยนแปลงคำสั่งซื้อหากหลีกเลี่ยงไม่ได้ เช่น เมื่อผู้ใช้รีเซ็ตหูฟังเป็นค่าเริ่มต้นหรือเมื่อจำนวนอุปกรณ์ที่เชื่อมโยงถึงขีดจำกัดบน

โฆษณาแบบสุ่มที่แก้ไขได้

ผู้ให้บริการควรหมุนเวียนและเข้ารหัสช่องตามคีย์บัญชีโดยใช้ AES-CTR เพื่อหลีกเลี่ยงการติดตามและเคารพความเป็นส่วนตัวของผู้ใช้

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

ที่ไหน

  1. คีย์มาจากคีย์บัญชีที่ใช้งานอยู่ ซึ่งจะระบุไว้ในส่วนถัดไป

    • คีย์สร้างขึ้นโดยฟังก์ชัน HKDF, IETF RFC 5869 โดยใช้ฟังก์ชันแฮช SHA-256

        Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
      
    • ผู้ให้บริการจะใช้คีย์บัญชีเดิมที่นี่ เช่น ไบต์แรกของคีย์คือ 0x04 ซึ่งไม่รวมอยู่ในรูปแบบการใช้งาน

  2. IV (เวกเตอร์เริ่มต้น) คือ Salt 2 ไบต์ของข้อมูลคีย์บัญชีที่มีการเติมค่า 0 กล่าวคือ IV คือ concat(salt, 14-byte ZEROs)

  3. ข้อมูลดิบของสถานะการเชื่อมต่อจะระบุไว้ในตาราง 4.1 หากสถานะการเชื่อมต่อมีการเปลี่ยนแปลง คุณควรสร้าง Salt และ RPA อีกครั้งในช่วงเวลาการโฆษณาเดียวกัน

ซึ่งจะทำให้ฟิลด์สถานะการเชื่อมต่อที่เข้ารหัสหมุนเวียนไปพร้อมๆ กับที่ข้อมูลคีย์บัญชีหมุนเวียน

โฆษณา BLE จะมีโครงสร้างดังนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า ต้องระบุหรือไม่
0 uint8 เวอร์ชันและธง 0x10 บังคับ
1 - t ข้อมูลคีย์บัญชี แตกต่างกัน บังคับ
t+1 - s ข้อมูลแบตเตอรี่ แตกต่างกัน ไม่บังคับ
s+1 - var ข้อมูลแบบสุ่มที่แก้ไขได้ แตกต่างกัน ต้องระบุหากรายการคีย์บัญชีไม่ว่างเปล่า
มิฉะนั้นจะยกเว้น

ตาราง 4.2: การโฆษณา BLE ที่มีข้อมูลที่แก้ไขได้แบบสุ่ม

ข้อมูลแบบสุ่มที่แก้ไขได้ประกอบด้วยข้อมูลต่อไปนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า ต้องระบุหรือไม่
0 uint8 ความยาวและประเภทฟิลด์
0bLLLLTTTT
  • L = ความยาวของข้อมูลที่เข้ารหัส
  • T = ประเภท
0bLLLL0110
  • ความยาว: แตกต่างกัน
  • type = 0b0110
บังคับ
1 - var ข้อมูลที่เข้ารหัส แตกต่างกัน บังคับ

ตาราง 4.2.1: ข้อมูลแบบสุ่มที่แก้ไขได้

ตัวอย่างเช่น หากข้อมูลแบบสุ่มที่แก้ไขได้ประกอบด้วยช่องสถานะการเชื่อมต่อที่เข้ารหัส ผลลัพธ์ที่ถอดรหัสแล้วจะกลายเป็น ช่องสถานะการเชื่อมต่อ

คุณควรแก้ไขข้อมูลคีย์ของบัญชีด้านบนเล็กน้อยเพื่อป้องกันการดัดแปลงเมื่อรวมข้อมูลแบบสุ่มที่แก้ไขได้ไว้ในโฆษณา โดยทั่วไป เมื่อสร้างตัวกรองคีย์บัญชี ระบบจะสร้างค่า V โดยการรวมตัวกรองคีย์บัญชีเข้ากับ Salt แต่ในกรณีที่มีการโฆษณาข้อมูลแบบสุ่มที่แก้ไขได้ด้วย ให้สร้างค่า V ดังนี้

 V = concat(account_key, salt, random_resolvable_data)

หากมีการโฆษณาทั้งข้อมูลแบตเตอรี่และข้อมูลที่แก้ไขแบบสุ่มได้ V ควรสร้างขึ้นดังนี้

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

คีย์บัญชีที่ใช้งานอยู่

การเปลี่ยนการเชื่อมต่อจะอิงตามบัญชี ดังนั้นผู้ให้บริการจึงควรระบุข้อมูลบัญชีของการเชื่อมต่อปัจจุบันในการโฆษณา BLE หากอุปกรณ์ที่เชื่อมต่ออยู่ในปัจจุบันคืออุปกรณ์ค้นหาสวิตช์เสียง ผู้ให้บริการควรรับคีย์บัญชีที่เชื่อมโยงกับอุปกรณ์ค้นหานี้ได้ และใช้คีย์บัญชีนี้เพื่อเข้ารหัสฟิลด์สถานะการเชื่อมต่อ หากแหล่งที่มาของเสียงที่เชื่อมต่อไม่ใช่ Audio switch Seeker ผู้ให้บริการควรใช้คีย์บัญชีที่ใช้ล่าสุด

ก่อนคํานวณตัวกรองคีย์บัญชี ผู้ให้บริการควรแก้ไขไบต์แรกของคีย์บัญชีให้รวมรูปแบบการใช้งานอย่างใดอย่างหนึ่งต่อไปนี้

  1. 0b00000100
    ไม่มีการใช้คีย์บัญชีนี้
    ตัวเลือกนี้เป็นตัวเลือกเริ่มต้น (ดูคีย์บัญชี)
  2. 0b00000101
    คีย์บัญชีนี้เป็นคีย์บัญชีที่ใช้ล่าสุด
    คีย์บัญชีนี้จะเข้ารหัสช่องสถานะการเชื่อมต่อ ไม่มีข้อมูลคีย์บัญชีของสถานะการเชื่อมต่อปัจจุบัน ซึ่งอาจหมายความว่าไม่มีอุปกรณ์ที่เชื่อมต่ออยู่ หรืออุปกรณ์ที่เชื่อมต่อไม่ใช่ตัวค้นหาสวิตช์เสียง
  3. 0b00000110
    คีย์บัญชีนี้เป็นคีย์บัญชีที่ใช้อยู่
    ฟิลด์สถานะการเชื่อมต่อได้รับการเข้ารหัสโดยคีย์บัญชีนี้ และอุปกรณ์ที่เชื่อมต่ออยู่ในปัจจุบันจะเชื่อมโยงกับคีย์บัญชีนี้

แผนภาพสำหรับเพย์โหลดการเปลี่ยนเสียง

รูปภาพด้านล่างแสดงแผนภาพสำหรับเพย์โหลดสวิตช์เสียง

ข้อความ

เมื่อเชื่อมต่อแล้ว ผู้ค้นหาและผู้ให้บริการสามารถใช้สตรีมข้อความเพื่อซิงค์ความสามารถในการสลับเสียง ทริกเกอร์การสลับการเชื่อมต่อ ตั้งค่าและรับค่ากําหนดการสลับ แจ้งสถานะการเชื่อมต่อ และอื่นๆ เราสร้างกลุ่มข้อความและรหัสข้อความสำหรับสวิตช์เสียงโดยเฉพาะ ดังนี้

ชื่อกลุ่มข้อความ ค่า
สลับอุปกรณ์เสียง 0x07

รายละเอียดเพิ่มเติมสำหรับรหัสข้อความแต่ละรหัสมีอยู่ในหัวข้อต่อไปนี้

ชื่อรหัสข้อความ ค่า การเชื่อมต่อหลายอุปกรณ์เท่านั้น ผู้ส่ง Responder เข้ารหัส MAC ACK
ดูความสามารถของสวิตช์เสียง 0x10 N ทั้งคู่ ทั้ง 2 อย่างผ่านรหัส 0x11 N ไม่ N
แจ้งความสามารถของสวิตช์เสียง 0x11 N ทั้งคู่ ทั้งคู่ N ได้ Y
ตั้งค่าสถานะหลายจุด 0x12 Y ผู้ค้นหา ผู้ให้บริการ N ได้ Y
ตั้งค่ากำหนดการเปลี่ยน 0x20 Y ผู้ค้นหา ผู้ให้บริการ N ได้ Y
ดูค่ากำหนดการเปลี่ยน 0x21 Y ผู้ค้นหา ผู้ให้บริการผ่านรหัส 0x22 N ไม่ N
แจ้งค่ากำหนดการเปลี่ยน 0x22 Y ผู้ให้บริการ ผู้บรรยาย N ไม่ N
เปลี่ยนแหล่งที่มาของเสียงที่ใช้งานอยู่(ไปยังอุปกรณ์ที่เชื่อมต่อ) 0x30 Y ผู้ค้นหา ผู้ให้บริการ N ได้ Y
เปลี่ยนกลับ 0x31 N ผู้บรรยาย ผู้ให้บริการ N ได้ Y
แจ้งเหตุการณ์สวิตช์หลายจุด 0x32 Y ผู้ให้บริการ ผู้บรรยาย N ไม่ N
ดูสถานะการเชื่อมต่อ 0x33 Y ผู้ค้นหา ผู้ให้บริการผ่านรหัส 0x34 N ไม่ N
แจ้งสถานะการเชื่อมต่อ 0x34 Y ผู้ให้บริการ ผู้บรรยาย Y ไม่ N
แจ้งเตือนการเชื่อมต่อที่เริ่มต้นโดยสวิตช์เสียง 0x40 N ผู้บรรยาย ผู้ให้บริการ N ได้ Y
ระบุคีย์บัญชีที่ใช้อยู่ 0x41 N ผู้บรรยาย ผู้ให้บริการ N ได้ Y
ส่งข้อมูลที่กำหนดเอง 0x42 N ผู้บรรยาย ผู้ให้บริการ N ได้ Y
ตั้งค่าเป้าหมายการเชื่อมต่อแบบ Drop 0x43 Y ผู้ค้นหา ผู้ให้บริการ N ได้ Y

ตาราง 4.3: ข้อความสลับอุปกรณ์เสียง

MAC ของข้อความสลับอุปกรณ์เสียง

หากต้องการตรวจสอบสิทธิ์ข้อความ ข้อความสวิตช์เสียงทั้งหมดที่มีข้อมูลเพิ่มเติมที่ส่งจากผู้ค้นหาไปยังผู้ให้บริการจะต้องมี รหัสการตรวจสอบสิทธิ์ข้อความ เมื่อได้รับข้อความที่มี MAC คุณควรรับทราบเพื่อให้ผู้ค้นหาทราบว่าผู้ให้บริการได้ตอบสนองต่อข้อความหรือไม่

หากการตรวจสอบสิทธิ์ข้อความสําเร็จ ผู้ให้บริการจะส่ง ACK สําหรับข้อความ ดังนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 รับทราบ 0xFF
1 uint8 ACK 0x01
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม แตกต่างกัน
4 uint8 สลับอุปกรณ์เสียง 0x07
5 uint8 รหัสข้อความสลับอุปกรณ์เสียง แตกต่างกัน
6 - วินาที ข้อมูลเพิ่มเติม แตกต่างกัน

หากไม่สำเร็จ ผู้ให้บริการจะต้องส่ง NAK สำหรับข้อความดังกล่าว

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 รับทราบ 0xFF
1 uint8 NAK 0x02
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 0x0003
4 uint8 สาเหตุของข้อผิดพลาด แตกต่างกัน
5 uint8 สลับอุปกรณ์เสียง 0x07
6 uint8 รหัสข้อความสลับอุปกรณ์เสียง แตกต่างกัน

โปรดทราบว่าหากผู้ให้บริการเป็นผู้ส่ง ก็ไม่จำเป็นต้องระบุ MAC

ดูความสามารถของสวิตช์เสียง

ทั้งผู้ให้บริการและอุปกรณ์ค้นหาสวิตช์เสียงสามารถตรวจสอบว่าอุปกรณ์ที่เชื่อมต่ออยู่ซึ่งใช้การจับคู่ด่วน (Seeker/ผู้ให้บริการ) รองรับสวิตช์เสียงหรือไม่โดยใช้ข้อความด้านล่างนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สลับอุปกรณ์เสียง 0x07
1 uint8 ดูความสามารถของสวิตช์เสียง 0x10
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 0

ตาราง 4.3.1.0: รับความสามารถของสวิตช์เสียง

แจ้งความสามารถของสวิตช์เสียง

เมื่อได้รับรหัสข้อความ get capability of Audio switch ผู้ค้นหา/ผู้ให้บริการสวิตช์เสียงจะตอบกลับด้วย Flag รายการใดรายการหนึ่งต่อไปนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สลับอุปกรณ์เสียง 0x07
1 uint8 แจ้งความสามารถของสวิตช์เสียง 0x11
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 20 หากส่งโดยผู้ค้นหา
4 หากส่งโดยผู้ให้บริการ
4 - 5 uint16 รหัสเวอร์ชันของการเปลี่ยนเสียง ค่าที่ไม่ใช่ 0 หมายความว่าอุปกรณ์รองรับสวิตช์เสียง รหัสเวอร์ชันปัจจุบัน (ที่มีการปรับปรุงความปลอดภัย) คือ 0x0102
0x0000 หรือการไม่ตอบกลับภายใน 1 วินาทีหมายความว่าอุปกรณ์นี้ไม่รองรับสวิตช์เสียง
6 - 7 ธง Flag ความสามารถของปุ่มสลับเสียงของผู้ให้บริการ
หาก Seeker ส่งข้อมูลนี้ ระบบจะไม่สนใจไบต์ 2 ตัวนี้
แตกต่างกันไป
ดูFlag ความสามารถของสวิตช์เสียง
8 - 15 ข้อความ Nonce
ต้องระบุเฉพาะเมื่อส่งโดยผู้ค้นหา
แตกต่างกัน
16 - 23 รหัสการตรวจสอบสิทธิ์ข้อความ
ต้องระบุเฉพาะในกรณีที่ผู้ค้นหาส่ง
แตกต่างกัน

ตาราง 4.3.1.1: ความสามารถในการแจ้งของสวิตช์เสียง

Flag ความสามารถของสวิตช์เสียง
  1. บิต 0 (อ็อกเต็ต 6, MSB): สถานะสวิตช์เสียง

    • 1, หากสถานะการสลับอุปกรณ์เสียงเปิดอยู่
    • 0 ไม่เช่นนั้น
  2. บิตที่ 1: ความสามารถในการกำหนดค่าแบบหลายจุด

    • 1. หากอุปกรณ์รองรับการเชื่อมต่อหลายจุดและสามารถสลับระหว่างเปิดและปิดได้
    • 0 ไม่เช่นนั้น (ไม่รองรับหลายจุดหรือหลายจุดเปิดอยู่เสมอ)
  3. บิต 2: สถานะปัจจุบันแบบหลายจุด

    • 1 หากเปิดการเชื่อมต่อหลายจุดไว้
    • 0 ไม่เช่นนั้น
  4. บิตที่ 3: การตรวจจับบนศีรษะ

    • 1. หากอุปกรณ์นี้รองรับการตรวจจับการสวมบนศีรษะ (แม้ว่าตอนนี้จะปิดการตรวจจับการสวมบนศีรษะอยู่ก็ตาม)
    • 0 ไม่เช่นนั้น
  5. บิต 4: สถานะปัจจุบันของการตรวจจับเมื่อสวมใส่

    • 1 หากเปิดการตรวจจับการสวมบนศีรษะไว้
    • 0 ไม่เช่นนั้น (ไม่รองรับการตรวจจับการสวมใส่หูฟังหรือการตรวจจับการสวมใส่หูฟังปิดอยู่)
  6. บิตอื่นๆ ทั้งหมดเป็นค่าที่สงวนไว้ โดยค่าเริ่มต้นคือ 0

ตั้งค่าสถานะหลายจุด

ในรีโมตคอนโทรลแบบเปลี่ยนช่องเสียง เราอาจให้การตั้งค่าสำหรับให้ผู้ใช้เปิด/ปิดฟังก์ชันการทำงานแบบหลายจุด ผู้ค้นหาจะตั้งค่าสถานะหลายจุดให้กับผู้ให้บริการโดยใช้ข้อความด้านล่าง

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สลับอุปกรณ์เสียง 0x07
1 uint8 ตั้งค่าสถานะหลายจุด 0x12
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 17
4 uint8 สถานะหลายจุด 0: ปิดการเชื่อมต่อหลายจุด
1: เปิดการเชื่อมต่อหลายจุด
5 - 12 Nonce ของข้อความ แตกต่างกัน
13 - 20 รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกัน

ตาราง 4.3.1.2: ตั้งค่าสถานะหลายจุด

ตั้งค่ากำหนดการเปลี่ยน

ผู้ขอรับสิทธิ์สวิตช์เสียงสามารถแก้ไขค่ากำหนดการเปลี่ยนของหลายจุดและตั้งค่าให้กับผู้ให้บริการได้โดยใช้ข้อความด้านล่าง

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สลับอุปกรณ์เสียง 0x07
1 uint8 ตั้งค่ากำหนดการเปลี่ยน 0x20
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 18
4 ธง ค่ากำหนดการเปลี่ยน แตกต่างกันไป
ดูFlag ค่ากำหนดการเปลี่ยนหลายจุด
5 การตั้งค่าการเปลี่ยนขั้นสูง
ไบต์นี้สงวนไว้ ค่าเริ่มต้นคือ 0
แตกต่างกัน
6 - 13 Nonce ของข้อความ แตกต่างกัน
14 - 21 ปี รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกัน

ตาราง 4.3.2.0: ตั้งค่ากำหนดการเปลี่ยน

Flag ค่ากำหนดการเปลี่ยนโหมดหลายจุด
  • บิต 0 (MSB): A2DP เทียบกับ A2DP (ค่าเริ่มต้น 0)
  • บิตที่ 1: HFP เทียบกับ HFP (ค่าเริ่มต้น 0)
  • บิต 2: A2DP เทียบกับ HFP (ค่าเริ่มต้น 0)
  • บิต 3: HFP เทียบกับ A2DP (ค่าเริ่มต้น 1)
  • บิตที่ 4-7: สงวนไว้
  • ด้านบนแสดงเป็น "คําขอโปรไฟล์ใหม่" เทียบกับ "โปรไฟล์ที่ใช้งานอยู่ในปัจจุบัน"
    • 0 สำหรับการไม่เปลี่ยน
    • 1 สำหรับการสลับ

ดูค่ากำหนดการเปลี่ยน

ผู้ค้นหาสวิตช์เสียงสามารถสอบถามค่ากำหนดการเปลี่ยนโหมดหลายจุดจากผู้ให้บริการได้โดยใช้ข้อความด้านล่างนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สลับอุปกรณ์เสียง 0x07
1 uint8 รับการกำหนดค่าการเปลี่ยน 0x21
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 0

ตาราง 4.3.2.1: รับค่ากําหนดการเปลี่ยน

แจ้งค่ากำหนดการเปลี่ยน

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สลับอุปกรณ์เสียง 0x07
1 uint8 แจ้งค่ากำหนดการเปลี่ยน 0x22
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 2
4 ธง การเปลี่ยนสถานะค่ากําหนด แตกต่างกันไป
ดูFlag ค่ากำหนดการเปลี่ยนหลายจุด
5 การตั้งค่าการเปลี่ยนขั้นสูง
ไบต์นี้สงวนไว้ ค่าเริ่มต้นควรเป็น 0
แตกต่างกัน

ตาราง 4.3.2.2: แจ้งค่ากําหนดการเปลี่ยน

เปลี่ยนแหล่งที่มาของเสียงที่ใช้งานอยู่ (ไปยังอุปกรณ์ที่เชื่อมต่อ)

ผู้ค้นหาสวิตช์เสียงสามารถขอให้ผู้ให้บริการแบบหลายจุดสลับแหล่งที่มาของเสียงที่ใช้งานอยู่ระหว่างอุปกรณ์ที่เชื่อมต่อโดยใช้ข้อความด้านล่าง

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สลับอุปกรณ์เสียง 0x07
1 uint8 เปลี่ยนแหล่งที่มาของเสียงที่ใช้งานอยู่ (ไปยังอุปกรณ์ที่เชื่อมต่อ) 0x30
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 17
4 ธง การเปลี่ยน Flag เหตุการณ์แหล่งที่มาของเสียงที่ใช้งานอยู่ แตกต่างกันไป
ดูเหตุการณ์การสลับแหล่งที่มาของเสียงที่ใช้งานอยู่
5 - 12 Nonce ของข้อความ แตกต่างกัน
13 - 20 รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกัน

ตาราง 4.3.3.0: สลับแหล่งที่มาของเสียงที่ใช้งานอยู่ (ไปยังอุปกรณ์ที่เชื่อมต่อ)

การเปลี่ยนเหตุการณ์แหล่งที่มาของเสียงที่เล่นอยู่
  • บิต 0 (MSB): 1 สลับไปยังอุปกรณ์นี้ 0 สลับไปยังอุปกรณ์ที่เชื่อมต่อที่ 2
  • บิตที่ 1: 1 เล่นต่อเมื่อเปลี่ยนไปใช้อุปกรณ์อื่นหลังจากสลับ 0 ไม่เช่นนั้น การเล่นต่อหมายความว่าผู้ให้บริการส่งการแจ้งเตือน "เล่น" ไปยังอุปกรณ์ค้นหาผ่านโปรไฟล์ AVRCP หากสถานะก่อนหน้า (ก่อนที่จะเปลี่ยน) ไม่ใช่ PLAY ผู้ให้บริการควรละเว้นการแจ้งนี้
  • บิต 2: 1 ปฏิเสธ SCO ในอุปกรณ์ที่เปลี่ยนไปใช้อุปกรณ์อื่น 0 ไม่เช่นนั้น
  • บิต 3: 1 ยกเลิกการเชื่อมต่อบลูทูธในอุปกรณ์สวิตช์ออก ไม่เช่นนั้นจะเป็น 0
  • บิต 4-7: สงวนไว้

ผู้ค้นหาสวิตช์เสียงอาจไม่ทราบสถานะของตนอย่างถูกต้องเสมอไป จึงเป็นไปได้ที่ผู้ให้บริการจะได้รับข้อความ "เปลี่ยนไปใช้อุปกรณ์นี้" เมื่อผู้ค้นหาเป็นอุปกรณ์ที่ใช้งานอยู่ ในกรณีนี้ หากต้องการแสดง UI ที่ถูกต้องใน Seeker ผู้ให้บริการสามารถส่ง NAK พร้อมเหตุผลของข้อผิดพลาด 0x4 - การดำเนินการกับอุปกรณ์ซ้ำซ้อน

สําหรับผู้ให้บริการเสียง LE ที่มีสมาชิกชุดมากกว่า 1 คน ผู้ให้บริการควรยกเลิกการเชื่อมต่อสมาชิกทั้งหมดจากอุปกรณ์ค้นหา มิฉะนั้นสแต็กบลูทูธของอุปกรณ์ค้นหาจะเชื่อมต่อกับผู้ให้บริการอีกครั้ง

เปลี่ยนกลับไป (ไปยังอุปกรณ์ที่ไม่ได้เชื่อมต่อ)

หากไม่ต้องการการสลับการเชื่อมต่อ ผู้ใช้สามารถเปลี่ยนกลับได้ และในบางสถานการณ์ การกู้คืนการเชื่อมต่อเสียงเพื่อลดการหยุดชะงักก็เป็นสิ่งที่ควรทำ ผู้ค้นหาจะใช้ข้อความด้านล่างเพื่อทริกเกอร์การเปลี่ยนกลับ

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สลับอุปกรณ์เสียง 0x07
1 uint8 เปลี่ยนกลับไป (ไปยังอุปกรณ์ที่ไม่ได้เชื่อมต่อ) 0x31
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 17
4 uint8 เหตุการณ์เปลี่ยนกลับ แตกต่างกัน
0x01: เปลี่ยนกลับ
0x02: เปลี่ยนกลับและเล่นต่อ
5 - 12 Nonce ของข้อความ แตกต่างกัน
13 - 20 รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกัน

ตาราง 4.3.3.1: เปลี่ยนกลับไป (ไปยังอุปกรณ์ที่ยกเลิกการเชื่อมต่อ)

สำหรับผู้ให้บริการแบบหลายจุด หากต้องการเปลี่ยนการเชื่อมต่อ ผู้ให้บริการอาจยกเลิกการเชื่อมต่อกับอุปกรณ์แหล่งที่มาของเสียงเครื่องหนึ่งและหยุดเซสชันเสียงในแหล่งที่มาของเสียงอีกเครื่องไว้ชั่วคราว ตัวอย่างเช่น สมมติว่าชุดหูฟังแบบเชื่อมต่อหลายจุดเชื่อมต่ออยู่กับแท็บเล็ตและอุปกรณ์สลับเสียงของบุคคลที่สามที่รองรับ ผู้ใช้กำลังดูวิดีโอบนแท็บเล็ตเมื่อมีสายเรียกเข้าในโทรศัพท์ โทรศัพท์จะทริกเกอร์สวิตช์การเชื่อมต่อบนชุดหูฟัง ซึ่งจะต้องยกเลิกการเชื่อมต่อของอุปกรณ์ที่ 3 เพื่อเชื่อมต่อกับโทรศัพท์ พร้อมกับหยุดเซสชันสื่อในแท็บเล็ตชั่วคราวเพื่อรับเสียงเรียกเข้าจากโทรศัพท์ หากผู้ใช้ปฏิเสธสายเรียกเข้า โทรศัพท์อาจขอให้หูฟัง "เปลี่ยนกลับไปและเล่นต่อ" เมื่อได้รับคำขอนี้ เฮดเซ็ตต้องเชื่อมต่อกับอุปกรณ์ที่ 3 อีกครั้ง และเล่นวิดีโอที่หยุดชั่วคราวบนแท็บเล็ตต่อ

แจ้งเหตุการณ์การเปลี่ยนหลายจุด

ตัวค้นหาสวิตช์เสียงอาจแสดงการแจ้งเตือนให้ผู้ใช้ทราบเพื่อให้ผู้ใช้ทราบว่ามีเหตุการณ์สวิตช์หลายจุดเกิดขึ้น ผู้ให้บริการควรแจ้งให้ผู้ค้นหาตัวสลับเสียงที่เชื่อมต่ออยู่ทราบเกี่ยวกับเหตุการณ์การสลับ

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สลับอุปกรณ์เสียง 0x07
1 uint8 แจ้งเหตุการณ์สวิตช์หลายจุด
ผู้ให้บริการควรส่งสวิตช์ทุกครั้ง ซึ่งรวมถึงผู้ค้นหาสวิตช์เสียงไปยังผู้ค้นหาสวิตช์ที่ไม่ใช่เสียง ผู้ค้นหาสวิตช์ที่ไม่ใช่เสียงไปยังผู้ค้นหาสวิตช์เสียง และผู้ค้นหาสวิตช์เสียงไปยังผู้ค้นหาสวิตช์เสียง
0x32
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม แตกต่างกัน
4 uint8 เหตุผลในการเปลี่ยน
ค่านี้ควรพิจารณาตามสถานะการเชื่อมต่อ สําหรับกรณีการใช้งาน LE Audio การดูการแมประหว่างประเภทบริบทของ LE Audio กับสถานะการเชื่อมต่ออาจมีประโยชน์ ตัวอย่างเช่น สถานะการเชื่อมต่อที่สอดคล้องกับผู้ช่วยเสียงคือ 0x9(เสียง LE - สตรีมมิงการโทร) ดังนั้น เหตุผลในการเปลี่ยนสำหรับการเปลี่ยนที่เริ่มต้นโดยผู้ช่วยเสียงควรเป็น 0x02
แตกต่างกัน
0x00: ไม่ระบุ
0x01: สื่อ (เช่น สตรีมมิง A2DP, สตรีมมิงสื่อ LEA)
0x02: การโทร (เช่น สตรีมมิง HFP, สตรีมมิงการโทร LEA)
5 uint8 อุปกรณ์เป้าหมาย แตกต่างกัน
0x01: อุปกรณ์นี้
0x02: อุปกรณ์อื่นที่เชื่อมต่ออยู่
6 - n utf8 ชื่ออุปกรณ์เป้าหมาย
หากอุปกรณ์เป้าหมายคือตัวค้นหาสวิตช์เสียง ให้ใช้ชื่อที่ตัวค้นหาส่งไป หรือใช้ชื่อ BT หากไม่เกี่ยวข้อง ให้ใช้ 2 ไบต์สุดท้ายของที่อยู่
แตกต่างกัน

ตาราง 4.3.3.2: แจ้งเหตุการณ์สวิตช์หลายจุด

รับสถานะการเชื่อมต่อ

ผู้ค้นหาดูสถานะการเชื่อมต่อปัจจุบันจากผู้ให้บริการได้ ดังนี้

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สลับอุปกรณ์เสียง 0x07
1 uint8 รับสถานะการเชื่อมต่อ 0x33
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 0

ตาราง 4.3.3.3: รับสถานะการเชื่อมต่อ

เมื่อได้รับข้อความนี้ ผู้ให้บริการจะตอบกลับด้วยรหัสข้อความ 0x34 แจ้งสถานะการเชื่อมต่อ

แจ้งสถานะการเชื่อมต่อ

ตามที่ระบุไว้ใน BLE advertising payload สำหรับผู้ให้บริการแบบหลายจุด หากสถานะการเชื่อมต่อมีการเปลี่ยนแปลง นอกเหนือจากการเปลี่ยนแปลงแพ็กเก็ตโฆษณา ผู้ให้บริการควรแจ้งให้ผู้ค้นหาที่เชื่อมต่ออยู่ซึ่งใช้คีย์บัญชีเดียวกันทราบเกี่ยวกับการเปลี่ยนแปลงด้วย หากผู้ให้บริการเชื่อมต่อกับ Seeker ที่เป็น Switch เสียงและ Seeker ที่เป็น Switch ที่ไม่ใช้เสียง หาก Seeker ที่เป็น Switch ที่ไม่ใช้เสียงทำงานอยู่ ผู้ให้บริการควรแจ้งสถานะการเชื่อมต่อให้ Seeker ที่เป็น Switch เสียงที่เชื่อมต่ออยู่ทราบด้วย (โดยใช้คีย์บัญชีของ Seeker)

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สลับอุปกรณ์เสียง 0x07
1 uint8 แจ้งสถานะการเชื่อมต่อ 0x34
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม แตกต่างกัน
4 uint8 Flag อุปกรณ์ที่ใช้งานอยู่ แตกต่างกัน
0x00: ตัวค้นหานี้ไม่ได้ใช้งาน และอุปกรณ์ที่ใช้งานอยู่ใช้คีย์บัญชีเดียวกัน
0x01: ตัวค้นหานี้คืออุปกรณ์ที่ใช้งานอยู่
0x02: ตัวค้นหานี้ไม่ได้ใช้งาน และอุปกรณ์ที่ใช้งานอยู่ไม่ใช่ตัวค้นหาสวิตช์เสียง
5 - n สถานะการเชื่อมต่อที่เข้ารหัส แตกต่างกัน
n+1 - n+8 Nonce ของข้อความ แตกต่างกัน

ตาราง 4.3.3.4: แจ้งสถานะการเชื่อมต่อ

ข้อความสถานะการเชื่อมต่อที่เข้ารหัส

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

where:

แจ้งเตือนการเชื่อมต่อที่เริ่มต้นโดยสวิตช์เสียง

ผู้ให้บริการสวิตช์เสียงอาจต้องทราบว่าการสลับการเชื่อมต่อทริกเกอร์โดยสวิตช์เสียงหรือไม่เพื่อให้มีปฏิกิริยาที่ต่างกัน เช่น ปิดใช้เสียงแจ้งสำหรับเหตุการณ์สวิตช์เสียง ผู้ค้นหาจะส่งข้อความเพื่อแจ้งให้ผู้ให้บริการทราบว่าการเชื่อมต่อนี้เป็นการเชื่อมต่อที่เริ่มต้นโดยสวิตช์เสียง

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สลับอุปกรณ์เสียง 0x07
1 uint8 แจ้งเตือนการเชื่อมต่อที่เริ่มต้นโดยสวิตช์เสียง 0x40
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 17
4 uint8 สัญญาณบอกสถานะการเชื่อมต่อที่เริ่มต้นโดยสวิตช์เสียง แตกต่างกัน
0: การเชื่อมต่อนี้ไม่ได้ทริกเกอร์โดยสวิตช์เสียง
1: การเชื่อมต่อนี้เป็นการเริ่มต้นโดยสวิตช์เสียง
5 - 12 Nonce ของข้อความ แตกต่างกัน
13 - 20 รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกัน

ตาราง 4.3.4.0: แจ้งการเชื่อมต่อที่เริ่มต้นโดยสวิตช์เสียง

ระบุคีย์บัญชีที่ใช้อยู่

หากมีการใช้คีย์บัญชีหลายรายการในเครื่องมือค้นหา (เช่น ผู้ใช้หลายคน) กับผู้ให้บริการ เครื่องมือค้นหาจะใช้ข้อความด้านล่างเพื่อระบุว่ามีการใช้คีย์บัญชีใดอยู่

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สลับอุปกรณ์เสียง 0x07
1 uint8 ระบุคีย์บัญชีที่ใช้อยู่ 0x41
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 22
4 - 9 utf8 สตริง "ใช้งานอยู่" UTF8 ("ใช้งานอยู่")
10 - 17 Nonce ของข้อความ แตกต่างกัน
18 - 25 ปี รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกัน

ตาราง 4.3.4.1: ระบุคีย์บัญชีที่ใช้อยู่

เมื่อได้รับข้อความนี้ ผู้ให้บริการจะทราบได้ว่ามีการใช้คีย์บัญชีใดอยู่โดยยืนยันรหัสการตรวจสอบสิทธิ์ข้อความ

ส่งข้อมูลที่กำหนดเอง

Seeker สวิตช์เสียงที่ใช้งานอยู่สามารถรวมข้อมูล (เช่น การใช้งานเสียง) ของสตรีมเสียงไว้ในไบต์ข้อมูลที่กำหนดเอง และส่งไปยังผู้ให้บริการโดยใช้ข้อความด้านล่าง

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สลับอุปกรณ์เสียง 0x07
1 uint8 ส่งข้อมูลที่กำหนดเอง 0x42
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 17
4 uint8 ข้อมูลที่กำหนดเอง แตกต่างกัน
5 - 12 Nonce ของข้อความ แตกต่างกัน
13 - 20 รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกัน

ตาราง 4.3.4.2: ส่งข้อมูลที่กำหนดเอง

เมื่อได้รับข้อมูลที่กำหนดเอง ผู้ให้บริการจะอัปเดตแพ็กเก็ตโฆษณาเพื่อรวมข้อมูลที่กำหนดเอง สําหรับผู้ให้บริการแบบหลายจุด ผู้ให้บริการควรแจ้งการเปลี่ยนแปลงสถานะการเชื่อมต่อไปยังผู้ค้นหารายอื่นที่เชื่อมต่ออยู่โดยใช้คีย์บัญชีเดียวกันด้วย

ตั้งค่าเป้าหมายการเชื่อมต่อที่หยุด

ในชุดหูฟังแบบหลายจุด หากการเชื่อมต่อที่ต้องการยกเลิกไม่ใช่การเชื่อมต่อที่ใช้ล่าสุด ผู้ค้นหาสวิตช์เสียงจะบอกผู้ให้บริการได้ว่าต้องการยกเลิกการเชื่อมต่ออุปกรณ์ใดโดยใช้ข้อความด้านล่าง

อ็อกเท็ต ประเภทข้อมูล คำอธิบาย ค่า
0 uint8 สลับอุปกรณ์เสียง 0x07
1 uint8 ตั้งค่าเป้าหมายการเชื่อมต่อที่หยุดทำงาน 0x43
2 - 3 uint16 ความยาวข้อมูลเพิ่มเติม 17
4 uint8 อุปกรณ์ที่เชื่อมต่อเป้าหมายที่จะยกเลิก แตกต่างกัน
1: อุปกรณ์นี้
5 - 12 Nonce ของข้อความ แตกต่างกัน
13 - 20 รหัสการตรวจสอบสิทธิ์ข้อความ แตกต่างกัน

ตาราง 4.3.4.3: ตั้งค่าเป้าหมายการเชื่อมต่อที่ตัดทิ้ง