تبديل مصدر الصوت
مع تزايد استخدام المستخدمين لأجهزة متعددة ذات مصادر صوت لأداء مهامهم اليومية، يتزايد الطلب على استخدام حلّ أبسط لإدارة استخدام سماعات الرأس على مختلف الأجهزة. تعمل ميزة "تبديل مصدر الصوت" بسلاسة على نقل اتصالات سماعات الرأس بين الأجهزة بناءً على نشاط المستخدِم (مثل بدء مشاهدة فيلم) والأحداث ذات الأولوية (مثل مكالمة واردة).
مبادئ تجربة المستخدم
- يجب أن يكون تبديل الاتصال سريعًا ويستند إلى إجراء المستخدم.
- يجب أن يكون تبديل الاتصال واضحًا للمستخدمين، مما يسمح للمستخدمين بالتحكم/الرجوع إذا كان التبديل غير مرغوب فيه.
- يجب أن يحترم التبديل خصوصية المستخدم.
الأدوار
أداة البحث عن تبديل الصوت: The Seeker هو جهاز مصدر صوت (على سبيل المثال، هاتف أو جهاز لوحي)، يبحث عن سماعة رأس قريبة للاتصال بها عندما يكون ذلك ممكنًا.
موفِّر خدمة تبديل الصوت: عادةً ما يكون مقدّم الخدمة عبارة عن سماعة رأس تُعلِن عن حضورها وحالة الاتصال بها للباحثين عن الأجهزة اللازمة لاتخاذ قرارات التبديل.
نظرة عامة على المتطلبات
لتحقيق التبديل الذكي، يجب أن يلتزم مقدّمو الخدمات بالمتطلبات التالية:
الاسم | الوصف | المتطلّبات | إلزامي؟ |
---|---|---|---|
مسح الصفحة ضوئيًا | لقبول طلب ربط جديد من باحث آخر عند توفّر اتصال حالي. بالنسبة إلى مقدّمي الخدمات الذين يستخدمون نقطة واحدة:
|
لتحسين الأداء، يجب استخدام وضع "وقت استجابة بطيء" لفحص الصفحات (يجب ألا يزيد الفاصل الزمني للفحص عن 640 ملي ثانية). لإجراء مفاضلة بين عمر البطارية وتبديل الأداء، يمكن لموفّر الخدمة ضبط وضع البحث التلقائي للصفحات في معظم الحالات (وضع الطاقة المنخفضة، يجب ألا يكون الفاصل الزمني للفحص أكبر من 1280 ملي ثانية). مع ذلك، يجب استخدام وضع وقت الاستجابة السريع في الحالات التالية:
|
إلزامي |
سجلّ الاتصالات | للرجوع إلى الاتصال السابق واستئناف التشغيل إن أمكن. سيتم بدء التبديل مرة أخرى من خلال الاتصالات عبر واجهات برمجة تطبيقات بث الرسائل. يجب تضمين الحدث الصوتي الذي تم إيقافه مؤقتًا في السجل لاستئناف تشغيله إذا كان ذلك ممكنًا. |
الاحتفاظ بسجلّ الاتصال وتنفيذ واجهات برمجة تطبيقات "بث الرسائل". | إلزامي |
حالة الاتصال | لكي يتمكن الباحثون من اتخاذ قرار تبديل الاتصال.تتضمن حالة الاتصال ما يلي:
|
تضمين حالة الاتصال في إعلان BLE وتدفق الرسائل | إلزامي |
تغيير إمكانات وقت التشغيل | يمكن تفعيل ميزة "تبديل مصدر الصوت" من خلال ترقية البرامج الثابتة على "مقدِّم الخدمة"، وبالتالي يجب مزامنة الإمكانات بين "Seeker" و"مقدِّم الخدمة" في وقت التشغيل. | تنفيذ واجهات برمجة التطبيقات لتدفق الرسائل للوصول إلى إمكانات وقت التشغيل | إلزامي |
قواعد التبديل القابلة للضبط | يمكنك السماح لـ Seeker بضبط الأولوية بين البث الصوتي النشط الحالي وطلبات البث الصوتي الجديدة من خلال الإعدادات المفضّلة للمستخدم. على سبيل المثال، يمكن أن يوفّر تطبيق Seeker إعدادات واجهة المستخدم للسماح للمستخدمين بتفعيل/إيقاف التبديل التلقائي بين بث الوسائط والاتصال. سيتم ضبط "أداة البحث عن تبديل الصوت" والحصول على قاعدة التبديل من خلال "بث الرسائل". |
لموفّري النقاط المتعددين فقط. يمكنك تنفيذ واجهات برمجة تطبيقات "بث الرسائل" لإتاحة إمكانية ضبط قواعد التبديل بين الأجهزة المتصلة. |
إجراء اختياري |
التبديل النشط بين الأجهزة | يمكنك السماح لأداة "تبديل مصدر الصوت" بمحاكاة ميزة "تبديل مصدر الصوت" بين الأجهزة المتصلة. على جانب "أداة البحث عن الصوت"، قد تظهر واجهة مستخدم تتيح للمستخدمين التبديل بسهولة بين الأجهزة المتصلة. |
لموفّري النقاط المتعددين فقط. يمكنك تنفيذ واجهات برمجة تطبيقات "بث الرسائل" لميزة "تبديل مصدر الصوت" لتحديد مصدر الصوت النشط بين الأجهزة المتصلة. |
إلزامي |
إشعار بتبديل النقاط المتعددة | السماح لـ "أداة البحث عن تبديل الصوت" بعرض إشعار التبديل. | موفِّرو النقاط المتعددون فقط. يمكنك تنفيذ واجهات برمجة تطبيقات بث الرسائل لإشعار الباحثين عن تبديل الصوت المتصلين عند حدوث تبديل متعدد النقاط. |
إلزامي |
حمولة الإعلانات
يجب أن يُدرِج موفّر الخدمة حالة الاتصال الحالية في الإعلان، والتي تستند إلى بيانات الحساب التي تستخدم ميزة "الإقران السريع" والموضّحة في الإعلان: حالات عدم الاكتشاف.
تجدر الإشارة إلى أنّ إصدار الجدول 4.2 هو 0x1.
حقل حالة الاتصال
ثُمانِي واحد | نوع البيانات | الوصف | القيمة | إلزامي؟ |
---|---|---|---|---|
0 | uint8 |
طول الحقل ونوعه 0bLLLLTTTT
|
0bLL0101
|
إلزامي |
1 | uint8 |
حالة الاتصال 0bHAFRSSSS
|
0bHAFRSSSS
|
إلزامي |
2 | uint8 |
بيانات مخصّصة تتضمّن حاليًا فقط نوع المحتوى الذي يُستخدم لوصف الاستخدام الحالي للبث الصوتي. يرسلها الباحث إلى مقدم الخدمة. |
يتم إرسال القيمة من الباحث عن البث النشط الحالي إلى موفّر المحتوى عبر بث الرسائل. 0 إذا كان البث النشط الحالي غير معروض من Seeker. | إلزامي |
3 - var | صورة نقطية للأجهزة المتصلة صورة نقطية لتوضيح الأجهزة المتصلة حاليًا بمقدِّم الخدمة جميع الأجهزة المترابطة مرتّبة بالترتيب، بمقدار وحدة بت واحدة لجهاز مترابط واحد. ويعتمد طول هذه المدة على عدد الأجهزة المرتبطة لدى مقدّم الخدمة. |
يتم ضبط البت المرتبط على 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 (مكالمة هاتفية/مكالمات عبر بروتوكول الإنترنت)، بما في ذلك نغمة الرنين الداخلية ونغمة غير النطاق
- 0x7: LE audio - بث الوسائط بدون تحكُّم
- 0x8: LE Audio - بث الوسائط مع عنصر تحكم
- 0x9: LE audio - بث المكالمات
- 0xA: صوت LE audio - بث
- 0xF: إيقاف مفتاح تبديل الاتصال مؤقتًا (مثلاً تحديث البرامج الثابتة)
الصورة النقطية للجهاز المتصل
لتجنب تبديل الاتصال غير المرغوب فيه، قد يحتاج الباحث إلى معرفة الأجهزة التي تتصل بها حاليًا سماعة الرأس. على سبيل المثال، عندما تكون سماعة الرأس متصلة بالهاتف، لا يريد المستخدم أن يتم مقاطعتها بسبب تبديل الاتصال عندما يبدأ أحد أفراد عائلته تشغيل 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)
أين
يتم استخلاص المفتاح من مفتاح الحساب قيد الاستخدام، الذي يتم تحديده في القسم التالي.
يتم إنشاء المفتاح من خلال دالة HKDF، IETF RFC 5869، باستخدام دالة التجزئة SHA-256.
Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
يجب أن يستخدم الموفّر مفتاح الحساب الأصلي هنا، أي أنّ البايت الأول من المفتاح هو 0x04، ولا يتم تضمينه في نمط الاستخدام.
IV (المتجهات الأولية) هو القيمة العشوائية المكونة من 2 بايت لبيانات مفتاح الحساب بدون مساحة متروكة، أي أنّ IV هي دالة concat(salt، 14 بايت ZEROs).
يتم تحديد البيانات الأولية لحالة الربط في الجدول 4.1. وفي حال تغيّرت حالة الاتصال، يجب إعادة إنشاء القيمة العشوائية وإعلانات RPA في الإطار الزمني نفسه للإعلان.
يؤدي ذلك إلى تدوير حقل حالة الاتصال المشفّر في نفس الوقت الذي يتم فيه تدوير بيانات مفتاح الحساب.
سيتم تنظيم إعلان BLE على النحو التالي:
ثُمانِي واحد | نوع البيانات | الوصف | القيمة | إلزامي؟ |
---|---|---|---|---|
0 | uint8 |
الإصدار والعلامات | 0×10 | إلزامي |
1 - t | البيانات الأساسية للحساب | يختلف | إلزامي | |
t+1 - s | بيانات البطارية | يختلف | إجراء اختياري | |
s+1 - var | البيانات العشوائية القابلة للتحليل | يختلف | يكون هذا الإجراء إلزاميًا في حال لم تكن "قائمة مفاتيح الحساب" فارغة، وإلّا يتم استبعادها. |
الجدول 4.2: إعلان تقنية البلوتوث المنخفض الطاقة (BLE) الذي يتضمّن بيانات عشوائية قابلة للتحليل
تحتوي البيانات العشوائية القابلة للتحليل على ما يلي:
ثُمانِي واحد | نوع البيانات | الوصف | القيمة | إلزامي؟ |
---|---|---|---|---|
0 | uint8 |
طول الحقل ونوعه 0bLLLLTTTT
|
0bLL0110
|
إلزامي |
1 - صيغة | البيانات المشفَّرة | يختلف | إلزامي |
الجدول 4.2.1: البيانات العشوائية القابلة للتحليل
على سبيل المثال، إذا كانت البيانات العشوائية القابلة للحلّ تحتوي على حقل حالة اتصال مشفّر، ستكون النتيجة التي تم فك تشفيرها هي حقل حالة الاتصال.
لمنع التلاعب، يجب إدخال تعديلات طفيفة على "بيانات مفتاح الحساب" الواردة أعلاه عند تضمين "البيانات العشوائية القابلة للتحليل" في الإعلان. في العادة، عند إنشاء فلتر مفتاح الحساب، يتم إنشاء القيمة V من خلال دمج فلتر مفتاح الحساب مع قيمة عشوائية. بدلاً من ذلك، عندما يتم أيضًا الإعلان عن البيانات العشوائية القابلة للتحليل، يجب إنشاء القيمة V على النحو التالي:
V = concat(account_key, salt, random_resolvable_data)
إذا كان يتم الإعلان عن كل من بيانات البطارية والبيانات العشوائية القابلة للتحليل، فيجب إنشاء V على النحو التالي:
V = concat(account_key, salt, battery_data, random_resolvable_data)
مفتاح الحساب المستخدَم
يستند تبديل الاتصال إلى الحساب، لذلك على موفّر الخدمة تضمين معلومات الحساب للاتصال الحالي في إعلان تقنية البلوتوث المنخفض الطاقة (BLE). إذا كان الجهاز المتّصل الحالي هو "باحث مبدِّل الصوت"، من المفترض أن يتمكّن موفّر الخدمة من الحصول على مفتاح الحساب المرتبط بـ "الباحث عن الصوت"، واستخدام مفتاح الحساب هذا لتشفير حقل حالة الاتصال. إذا لم يكن مصدر الصوت المتصل هو أداة بحث تبديل مصدر الصوت، يجب أن يستخدم موفّر الخدمة أحدث مفتاح حساب تم استخدامه.
قبل احتساب فلتر مفتاح الحساب، على موفّر المحتوى تعديل البايت الأول من مفاتيح الحساب لتضمين أحد أنماط الاستخدام التالية:
- 0b00000100
مفتاح الحساب هذا غير مستخدَم.
هذا هو المفتاح التلقائي (يمكنك الاطّلاع على مفتاح الحساب). - 0b00000101
مفتاح الحساب هذا هو أحدث مفتاح حساب تم استخدامه.
يتم تشفير حقل حالة الاتصال باستخدام مفتاح الحساب هذا. لا توجد معلومات أساسية للحساب لحالة الاتصال الحالية، وقد يعني ذلك أنه ما من أجهزة متصلة أو أن الجهاز المتصل ليس 'باحثًا لتبديل الصوت". - 0b00000110
مفتاح الحساب هذا هو مفتاح الحساب قيد الاستخدام.
يتم تشفير حقل حالة الاتصال بواسطة مفتاح الحساب هذا، ويتم ربط الجهاز المتصل الحالي بمفتاح الحساب هذا.
المخطط الخاص بحمولة تبديل الصوت
يوضِّح الشكل أدناه الرسم التخطيطي لحمولة تبديل الصوت.
![](https://developers.google.com/nearby/fast-pair/images/SASS-ble-payload-schematic.png?authuser=2&hl=ar)
الرسائل
عند الاتصال، يمكن للباحث والموفِّر استخدام بث الرسائل لمزامنة إمكانية تبديل الصوت، وتشغيل تبديل الاتصال، وتعيين تفضيل التبديل والحصول عليه، وإعلام حالة الاتصال، وما إلى ذلك. ننشئ مجموعة رسائل ورموز رسائل خاصة بميزة "تبديل مصدر الصوت" على النحو التالي.
اسم مجموعة الرسائل | القيمة |
---|---|
تبديل مصدر الصوت | 0x07 |
يتم تضمين تفاصيل إضافية لكل رمز رسالة في الأقسام التالية.
اسم رمز الرسالة | القيمة | اتصال متعدد النقاط فقط | المرسل | المجيب | تشفير | معرّف MAC | ACK |
---|---|---|---|---|---|---|---|
الحصول على إمكانية تبديل مصدر الصوت | 0×10 | N | كلاهما | كلاهما، عبر الرمز 0x11 | N | لا | N |
إمكانية الإشعار بتبديل مصدر الصوت | 0 × 11 | N | كلاهما | كلاهما | N | Y | Y |
ضبط حالة النقاط المتعددة | 0×12 | Y | باحث | موفِّر الخدمة | N | Y | Y |
ضبط الإعدادات المفضّلة للتبديل | 0×20 | Y | باحث | موفِّر الخدمة | N | Y | Y |
الحصول على الإعدادات المفضّلة للتبديل | 0 × 21 | Y | باحث | مقدّم الخدمة، عبر الرمز 0x22 | N | لا | N |
تفضيل تبديل الإشعارات | 0x22 | Y | موفِّر الخدمة | باحث | N | لا | N |
تبديل مصدر الصوت النشط(إلى جهاز متصل) | 0×30 | Y | باحث | موفِّر الخدمة | N | Y | Y |
التبديل مرة أخرى (إلى جهاز غير متصل) | 0 × 31 | N | باحث | موفِّر الخدمة | N | Y | Y |
إرسال إشعار بحدث التبديل المتعدد النقاط | 0 × 32 | Y | موفِّر الخدمة | باحث | N | لا | N |
التعرُّف على حالة الاتصال | 0 × 33 | Y | باحث | مقدّم الخدمة، عبر الرمز 0x34 | N | لا | N |
الإبلاغ عن حالة الاتصال | 0 × 34 | Y | موفِّر الخدمة | باحث | Y | لا | N |
إرسال إشعار عبر ميزة "تبديل مصدر الصوت" | 0 × 40 | N | باحث | موفِّر الخدمة | N | Y | Y |
الإشارة إلى مفتاح الحساب قيد الاستخدام | 0 × 41 | N | باحث | موفِّر الخدمة | N | Y | Y |
إرسال بيانات مخصّصة | 0 × 42 | N | باحث | موفِّر الخدمة | N | Y | Y |
ضبط هدف "انخفاض الاتصال" | 0 × 43 | Y | باحث | موفِّر الخدمة | N | Y | 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 مطلوبًا.
الحصول على إمكانية تبديل مصدر الصوت
يمكن لكل من "مقدِّم خدمة تبديل الصوت" و"الباحث" التحقّق مما إذا كان تطبيق "الإقران السريع" المرتبط يتيح تفعيل ميزة "تبديل مصدر الصوت" أم لا، وذلك باستخدام الرسالة التالية:
ثُمانِي واحد | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | تبديل مصدر الصوت | 0x07 |
1 | uint8 | الحصول على إمكانية تبديل مصدر الصوت | 0×10 |
من 2 إلى 3 | uint16 | طول البيانات الإضافية | 0 |
الجدول 4.3.1.0: الحصول على إمكانية "تبديل مصدر الصوت"
إمكانية الإشعار بتبديل مصدر الصوت
عند تلقّي إمكانية الحصول على رمز رسالة تبديل الصوت، سيستجيب "الباحث عن موفّر الصوت/مفتاح تبديل الصوت" بإحدى العلامات التالية:
ثُمانِي واحد | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | تبديل مصدر الصوت | 0x07 |
1 | uint8 | إمكانية الإشعار بتبديل مصدر الصوت | 0 × 11 |
من 2 إلى 3 | uint16 | طول البيانات الإضافية | 20 إذا تم إرسال هذا بواسطة "الباحث" 4 إذا كان هذا مُرسَلاً من موفّر المحتوى |
من 4 إلى 5 سنوات | uint16 | رمز إصدار تبديل مصدر الصوت | تعني القيمة غير الصفرية أنّها تتيح ميزة "تبديل مصدر الصوت". رمز الإصدار الحالي (مع تحسين الأمان) هو 0x0102. إنّ 0x0000 أو عدم الاستجابة خلال ثانية واحدة يعني أنّ ميزة "تبديل مصدر الصوت" غير متاحة على هذا الجهاز. |
من 6 إلى 7 سنوات | أعلام | علامات إمكانية تبديل الصوت لدى الموفِّر في حال تم إرسال هذه البيانات من خلال Seeker، يجب تجاهل وحدات البايت هذه. |
تختلف الاطّلاع على علامات إمكانية تبديل الصوت |
من 8 إلى 15 سنة | رسالة خاصّة مطلوبة فقط عندما يرسل Seeker هذه الرسالة |
يختلف | |
من 16 إلى 23 | رمز مصادقة الرسالة مطلوب فقط عندما يتم إرسال هذه الرسالة من قِبل Seeker |
يختلف |
الجدول 4.3.1.1: إمكانية الإشعار بتبديل مصدر الصوت
علامات إمكانية تبديل الصوت
البت 0 (ثماني بتات 6، MSB): حالة تبديل الصوت
- 1، إذا كانت حالة "تبديل مصدر الصوت" مفعَّلة
- 0، بخلاف ذلك
البت 1: قابلية التهيئة متعددة النقاط
- 1، إذا كان الجهاز يتيح استخدام نقاط متعددة ويمكن التبديل بين تشغيله وإيقافه
- 0، وإلا (لا يتوافق الجهاز مع النقاط المتعدّدة أو تكون النقاط المتعدّدة مفعَّلة دائمًا)
البت 2: الحالة الحالية متعددة النقاط
- 1، إذا كانت النقاط المتعددة مفعَّلة
- 0، بخلاف ذلك
البت 3: اكتشاف الرأس
- 1، إذا كان هذا الجهاز يتيح ميزة "الكشف من الأعلى" (حتى إذا كانت ميزة "الرصد من الأعلى" غير مفعّلة الآن)
- 0، بخلاف ذلك
البت 4: الحالة الحالية لكشف الجهاز
- 1، في حال تفعيل ميزة "رصد الجهاز من الأعلى"
- 0، بخلاف ذلك (لا يتوافق مع ميزة "الكشف عن الوجه" أو تم إيقاف ميزة "الكشف عن الجهاز أثناء التشغيل")
جميع وحدات البت الأخرى محجوزة، وتكون القيمة التلقائية 0.
ضبط حالة النقاط المتعددة
في ما يخص "باحثو تبديل الصوت"، قد نوفّر إعدادًا يتيح للمستخدمين تفعيل/إيقاف الوظائف المتعدّدة النقاط. سيضبط الباحث حالة النقاط المتعددة على الموفر باستخدام الرسالة أدناه:
ثُمانِي واحد | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | تبديل مصدر الصوت | 0x07 |
1 | uint8 | ضبط حالة النقاط المتعددة | 0×12 |
من 2 إلى 3 | uint16 | طول البيانات الإضافية | 17 |
4 | uint8 | حالة متعددة النقاط | 0: إيقاف تشغيل النقاط المتعددة 1: تفعيل النقاط المتعددة |
من 5 إلى 12 سنة | رقم الرسالة | يختلف | |
من 13 إلى 20 | رمز مصادقة الرسالة | يختلف |
الجدول 4.3.1.2: ضبط حالة النقاط المتعددة
ضبط الإعدادات المفضّلة للتبديل
يجوز للباحثين عن تبديل الصوت تعديل تفضيل تبديل النقاط المتعددة وضبطه على الموفر باستخدام الرسالة أدناه:
ثُمانِي واحد | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | تبديل مصدر الصوت | 0x07 |
1 | uint8 | ضبط الإعدادات المفضّلة للتبديل | 0×20 |
من 2 إلى 3 | uint16 | طول البيانات الإضافية | 18 |
4 | أعلام | تبديل الخيار المفضّل | متفاوت عرض علامة الخيار المفضّل للتبديل بين نقاط متعددة |
5 | إعدادات التبديل المتقدمة هذا البايت محجوز، القيمة التلقائية هي 0 |
يختلف | |
من 6 إلى 13 سنة | رقم الرسالة | يختلف | |
من 14 إلى 21 | رمز مصادقة الرسالة | يختلف |
الجدول 4.3.2.0: ضبط تفضيل التبديل
علامة الخيار المفضّل للتبديل بين النقاط المتعددة
- بت 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 | الحصول على إعدادات التبديل | 0 × 21 |
من 2 إلى 3 | uint16 | طول البيانات الإضافية | 0 |
الجدول 4.3.2.1: الحصول على تفضيل التبديل
تفضيل تبديل الإشعارات
ثُمانِي واحد | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | تبديل مصدر الصوت | 0x07 |
1 | uint8 | تفضيل تبديل الإشعارات | 0x22 |
من 2 إلى 3 | uint16 | طول البيانات الإضافية | 2 |
4 | أعلام | تبديل علامات التفضيلات | متفاوت عرض علامة الخيار المفضّل للتبديل بين نقاط متعددة |
5 | إعدادات التبديل المتقدمة هذا البايت محجوز، ويجب أن تكون القيمة التلقائية 0 |
يختلف |
الجدول 4.3.2.2: الخيار المفضّل لتبديل الإشعارات
تبديل مصدر الصوت النشط (إلى جهاز متصل)
يمكن للباحثين عن تبديل الصوت أن يطلبوا من موفّر المحتوى المتعدد النقاط تبديل مصدر الصوت النشط بين الأجهزة المتصلة باستخدام الرسالة أدناه:
ثُمانِي واحد | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | تبديل مصدر الصوت | 0x07 |
1 | uint8 | تبديل مصدر الصوت النشط (إلى جهاز متصل) | 0×30 |
من 2 إلى 3 | uint16 | طول البيانات الإضافية | 17 |
4 | أعلام | تبديل علامات أحداث مصدر الصوت النشط | يختلف الاطّلاع على تبديل حدث مصدر الصوت النشط |
من 5 إلى 12 سنة | رقم الرسالة | يختلف | |
من 13 إلى 20 | رمز مصادقة الرسالة | يختلف |
الجدول 4.3.3.0: تبديل مصدر الصوت النشط (إلى جهاز متصل)
جارٍ تبديل حدث مصدر الصوت النشط
- بت 0 (MSB): مفتاح واحد لهذا الجهاز، 0 مفتاح إلى الجهاز الثاني المتصل
- البت 1: يتم تشغيل 1 مرة من التبديل إلى الجهاز بعد التبديل، 0 إذا لم يكن الأمر كذلك. ويعني استئناف التشغيل أنّ موفّر المحتوى يرسل إشعار PLAY إلى مقدّم الطلب باستخدام ملف AVRCP الشخصي. إذا كانت الحالة السابقة (قبل التبديل بعيدًا) هي PLAY، على موفّر الخدمة تجاهل هذه العلامة.
- بت 2: 1 رفض SCO على جهاز تم تبديله، 0
- البت 3: 1 عليك فصل البلوتوث عند تبديل الجهاز، أو 0 بخلاف ذلك.
- البت 4 - 7: محجوز.
قد لا يعرف الباحثون عن إمكانية تبديل الصوت حالتهم بشكل صحيح في كل الأوقات، لذا من الممكن أن يتلقى موفّر المحتوى رسالة "التبديل إلى هذا الجهاز" عندما يكون "Seeker" هو الجهاز النشط. في هذه الحالة، لعرض واجهة المستخدم الصحيحة على Seeker، يمكن لموفّر المحتوى إرسال NAK مع سبب الخطأ، 0x4 - إجراء جهاز مكرّر.
التبديل مرة أخرى (إلى جهاز غير متصل)
في حال كان تبديل الاتصال غير مرغوب فيه، يمكن للمستخدمين التراجع عن هذا التبديل، وفي بعض الحالات، يكون من المنطقي استعادة الاتصال الصوتي للحدّ من انقطاع الخدمة. سيستخدم Seeker الرسالة أدناه لتشغيل التبديل مرة أخرى:
ثُمانِي واحد | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | تبديل مصدر الصوت | 0x07 |
1 | uint8 | التبديل مرة أخرى (إلى جهاز غير متصل) | 0 × 31 |
من 2 إلى 3 | uint16 | طول البيانات الإضافية | 17 |
4 | uint8 | رجوع الحدث | يختلف 0x01: رجوع 0x02: التبديل مرة أخرى واستئناف التشغيل |
من 5 إلى 12 سنة | رقم الرسالة | يختلف | |
من 13 إلى 20 | رمز مصادقة الرسالة | يختلف |
الجدول 4.3.3.1: التبديل مرة أخرى (إلى جهاز غير متصل)
بالنسبة إلى مقدّمي الخدمات المتعدّدة النقاط، لإجراء عملية تبديل الاتصال، قد يتجاهل موفّر المحتوى الاتصال بجهاز مصدر صوت واحد ويوقف جلسة الصوت مؤقتًا على مصدر الصوت الآخر. لنفترض على سبيل المثال أن سماعة الرأس المتعددة النقاط متصلة بجهاز لوحي وجهاز خارجي متوافق لتبديل مصدر الصوت. المستخدم يشاهد الفيديو على الجهاز اللوحي عندما تكون هناك مكالمة واردة على هاتفه. سيشغّل الهاتف مفتاح اتصال عبر سماعة الرأس، والذي يحتاج إلى قطع اتصال الجهاز الثالث للاتصال بالهاتف، مع إيقاف جلسة الوسائط مؤقتًا على الجهاز اللوحي للحصول على نغمة الرنين من الهاتف. إذا رفض المستخدم المكالمة، قد يطلب الهاتف من سماعة الرأس "التبديل مرة أخرى واستئناف التشغيل". بعد تلقي هذا الطلب، يجب إعادة توصيل سماعة الرأس بالجهاز الثالث، واستئناف تشغيل الفيديو المتوقف مؤقتًا على الجهاز اللوحي.
إرسال إشعار بحدث التبديل المتعدد النقاط
لتنبيه المستخدمين بحدوث حدث تبديل متعدد النقاط، قد يعرض "باحث تبديل الصوت" إشعارًا للمستخدمين. على موفّر الخدمة إشعار المستخدمين المتصلين بتبديل أجهزة الصوت بشأن حدث التبديل.
ثُمانِي واحد | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | تبديل مصدر الصوت | 0x07 |
1 | uint8 | إرسال إشعار بحدث مفاتيح التبديل المتعدد النقاط على موفّر المحتوى أن يرسله عند كل مفتاح، بما في ذلك "أداة البحث عن تبديل الصوت" إلى "الباحث عن تبديل الصوت"، و"الباحث عن تبديل الصوت" إلى "الباحث عن تبديل الصوت"، و"الباحث عن تبديل الصوت" إلى "الباحث عن تبديل الصوت" |
0 × 32 |
من 2 إلى 3 | uint16 | طول البيانات الإضافية | يختلف |
4 | uint8 | سبب التبديل | يختلف 0x00: غير محدد 0x01: بث A2DP 0x02: HFP |
5 | uint8 | الجهاز المستهدف | يختلف 0x01: هذا الجهاز 0x02: جهاز آخر متصل |
6 - n | utf8 | اسم الجهاز المستهدَف إذا كان الجهاز المستهدَف هو ميزة "البحث عن ميزة تبديل الصوت"، وذلك باستخدام الاسم الذي تم إرسال الطلب إليه، أو استخدام اسم BT، إن لم يكن منطبقًا، باستخدام آخر 2 بايت من عنوانه |
يختلف |
الجدول 4.3.3.2: إشعار حدث التبديل المتعدد النقاط
الحصول على حالة الاتصال
يمكن للباحث الحصول على حالة الاتصال الحالية من الموفر:
ثُمانِي واحد | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | تبديل مصدر الصوت | 0x07 |
1 | uint8 | الحصول على حالة الاتصال | 0 × 33 |
من 2 إلى 3 | uint16 | طول البيانات الإضافية | 0 |
الجدول 4.3.3.3: الحصول على حالة الاتصال
عند استلام هذه الرسالة، سيستجيب موفّر المحتوى برمز الرسالة 0x34، وسيتم إبلاغه بحالة الاتصال.
الإبلاغ عن حالة الاتصال
على النحو المحدّد في حمولة البيانات في تقنية البلوتوث المنخفض الطاقة (BLE)، بالنسبة إلى مقدّمي الخدمات متعددي النقاط، في حال تغيّرت حالة الاتصال، باستثناء تغيير حزمة الإعلانات، على "مقدِّم الخدمة" أيضًا إشعار "الباحثين المرتبطين" الذين يستخدمون مفتاح الحساب نفسه بشأن التغيير. إذا كان موفّر المحتوى متصلاً بأداة البحث عن مفتاح تبديل الصوت وبمستخدم لا يسعى إلى تبديل الصوت، في حال كان "الباحث عن مفتاح تبديل الصوت" نشطًا، على موفّر المحتوى أيضًا إبلاغ "الباحث عن مفتاح تبديل الصوت" المرتبط بحالة الاتصال (باستخدام مفتاح حساب "الباحث").
ثُمانِي واحد | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | تبديل مصدر الصوت | 0x07 |
1 | uint8 | الإبلاغ عن حالة الاتصال | 0 × 34 |
من 2 إلى 3 | uint16 | طول البيانات الإضافية | يختلف |
4 | uint8 | علامة جهاز نشط | يختلف 0x00: يكون تطبيق Seeker سلبيًا، ويستخدم الجهاز النشط مفتاح الحساب نفسه 0x01: هذا Seeker هو الجهاز النشط 0x02: هذا الإشعار سلبي، والجهاز النشط لا يستخدم ميزة "أداة البحث عن مفتاح تبديل الصوت". |
5 - n | حالة الاتصال المشفّرة | يختلف | |
n+1 - n+8 | رقم الرسالة | يختلف |
الجدول 4.3.3.4: إشعار حالة الاتصال
رسالة حالة الاتصال المشفّرة
encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)
المكان:
يتم اشتقاق المفتاح من مفتاح الحساب المستخدَم. يُرجى الاطّلاع على إعلان عشوائي قابل للتحليل.
Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
IV هي concat(Session_nonce, Message_nonce)
contact_status_raw_data = concat(connection_state, custom_data, connect_devices) المحدّد في حمولة الإعلانات المستندة إلى تقنية البلوتوث المنخفض الطاقة (BLE) تجدر الإشارة إلى أنّه يجب عدم تضمين البايت الخاص بطول الحقل ونوعه لأنّ لدينا رمز الرسالة وطول البيانات هنا.
تم بدء الاتصال بعملية تبديل الصوت
قد يحتاج مقدّمو خدمة تبديل الصوت إلى معرفة ما إذا كان يتم تفعيل عملية تبديل الاتصال من خلال ميزة "تبديل مصدر الصوت" للحصول على تفاعلات مختلفة، مثلاً إيقاف الرموز الصوتية لأحداث تبديل الصوت. يرسل "الباحث" رسالة لإعلام "مقدِّم الخدمة" بأنّ هذا الاتصال كان عبارة عن اتصال تم بدء عملية تبديل الصوت.
ثُمانِي واحد | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | تبديل مصدر الصوت | 0x07 |
1 | uint8 | تم بدء الاتصال بعملية تبديل الصوت | 0 × 40 |
من 2 إلى 3 | uint16 | طول البيانات الإضافية | 17 |
4 | uint8 | مؤشر الاتصال الذي تم بدء تشغيل ميزة تبديل الصوت فيه | يختلف 0: لم يتم تفعيل هذا الاتصال من خلال ميزة "تبديل مصدر الصوت" 1: لقد كان هذا الاتصال عبارة عن اتصال تم بدء تبديل الصوت. |
من 5 إلى 12 سنة | رقم الرسالة | يختلف | |
من 13 إلى 20 | رمز مصادقة الرسالة | يختلف |
الجدول 4.3.4.0: إشعار الاتصال الذي تم بدءه من خلال تبديل الصوت
الإشارة إلى مفتاح الحساب قيد الاستخدام
في حال ارتباط عدة مفاتيح حساب في مقدِّم الطلب (مثل عدة مستخدمين) بالمقدِّم، سيستخدم الباحث الرسالة أدناه للإشارة إلى مفتاح الحساب قيد الاستخدام.
ثُمانِي واحد | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | تبديل مصدر الصوت | 0x07 |
1 | uint8 | الإشارة إلى مفتاح الحساب قيد الاستخدام | 0 × 41 |
من 2 إلى 3 | uint16 | طول البيانات الإضافية | 22 |
من 4 إلى 9 | utf8 | سلسلة قيد الاستخدام | UTF8 ("in-use") |
من 10 إلى 17 سنة | رقم الرسالة | يختلف | |
بين 18 و25 عامًا | رمز مصادقة الرسالة | يختلف |
الجدول 4.3.4.1: الإشارة إلى مفتاح الحساب قيد الاستخدام
عند استلام هذه الرسالة، يمكن لموفّر المحتوى معرفة مفتاح الحساب قيد الاستخدام عن طريق التحقق من رمز مصادقة الرسالة.
إرسال بيانات مخصصة
يمكن لـ "أداة البحث عن تغيير الصوت" النشطة تضمين معلومات (مثل استخدام الصوت) للبث الصوتي في بايت بيانات مخصص، وإرسالها إلى موفّر المحتوى باستخدام الرسالة التالية:
ثُمانِي واحد | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | تبديل مصدر الصوت | 0x07 |
1 | uint8 | إرسال بيانات مخصصة | 0 × 42 |
من 2 إلى 3 | uint16 | طول البيانات الإضافية | 17 |
4 | uint8 | البيانات المخصّصة | يختلف |
من 5 إلى 12 سنة | رقم الرسالة | يختلف | |
من 13 إلى 20 | رمز مصادقة الرسالة | يختلف |
الجدول 4.3.4.2: إرسال بيانات مخصّصة
عند استلام البيانات المخصّصة، سيحدّث الموفّر حزمة الإعلانات لتضمين البيانات المخصّصة. بالنسبة إلى موفر خدمة النقاط المتعددة، يجب عليه أيضًا إرسال إشعار بتغيير حالة الاتصال إلى باحث آخر متصل باستخدام مفتاح الحساب نفسه.
ضبط هدف انخفاض الاتصال
في سمّاعات الرأس المتعدّدة النقاط، إذا كان الاتصال المفضّل الذي سيتم قطعه ليس هو الأقل استخدامًا مؤخرًا، يمكن للباحثين عن ميزة تبديل الصوت إبلاغ موفّر المحتوى بالجهاز الذي يجب تركه، وذلك باستخدام الرسالة أدناه:
ثُمانِي واحد | نوع البيانات | الوصف | القيمة |
---|---|---|---|
0 | uint8 | تبديل مصدر الصوت | 0x07 |
1 | uint8 | ضبط هدف انخفاض الاتصال | 0 × 43 |
من 2 إلى 3 | uint16 | طول البيانات الإضافية | 17 |
4 | uint8 | سيتم تجاهل الجهاز المرتبط المستهدَف | يختلف 1: هذا الجهاز |
من 5 إلى 12 سنة | رقم الرسالة | يختلف | |
من 13 إلى 20 | رمز مصادقة الرسالة | يختلف |
الجدول 4.3.4.3: ضبط هدف "انخفاض الاتصال"
استخدام المراجع
راجِع مكتبة حزمة تطوير البرامج (SDK) المضمَّنة في الأجهزة المجاورة للتعرّف على عملية التنفيذ المرجعية