ऑडियो स्विच
लोग अपने काम करने के लिए, ऑडियो सोर्स वाले अलग-अलग डिवाइसों का इस्तेमाल तेज़ी से कर रहे हैं अब हेडसेट को मैनेज करने के आसान समाधान की मांग बढ़ रही है सभी डिवाइसों पर इस्तेमाल करते हैं. ऑडियो स्विच की मदद से, हेडसेट के कनेक्शन को आसानी से स्विच किया जा सकता है के आधार पर, उपयोगकर्ता की गतिविधि (जैसे कि फ़िल्म शुरू करना) और प्राथमिकता के हिसाब से तय किया जाता है इवेंट (जैसे कि इनकमिंग कॉल).
उपयोगकर्ता अनुभव से जुड़ी नीतियां
- कनेक्शन तेज़ी से स्विच होना चाहिए और उपयोगकर्ता की कार्रवाई पर आधारित होना चाहिए.
- कनेक्शन स्विच करने की प्रक्रिया, उपयोगकर्ताओं के लिए पारदर्शी होनी चाहिए, ताकि वे अगर स्विचिंग की ज़रूरत नहीं है, तो कंट्रोल/वापस लाएं.
- स्विच करने से उपयोगकर्ता की निजता का ध्यान रखना चाहिए.
भूमिकाएं
ऑडियो स्विच करने वाला व्यक्ति: नौकरी ढूंढने वाला एक ऑडियो सोर्स डिवाइस है. उदाहरण के लिए, फ़ोन या टैबलेट) से कनेक्ट कर सकते हैं.
ऑडियो स्विच की सेवा देने वाली कंपनी: आम तौर पर, सेवा देने वाला एक हेडसेट होता है जो नौकरी ढूंढने वाले लोगों के लिए मौजूदगी और कनेक्शन की स्थिति, ताकि वे स्विच करने का फ़ैसला ले सकें.
ज़रूरी शर्तों के बारे में खास जानकारी
स्मार्ट स्विचिंग की सुविधा का इस्तेमाल करने के लिए, सेवा देने वाली कंपनियों को ये शर्तें पूरी करनी होंगी:
नाम | ब्यौरा | ज़रूरी शर्तें | ज़रूरी है? |
---|---|---|---|
पेज स्कैन | इंटरनेट कनेक्शन होने पर, नौकरी ढूंढने वाले किसी दूसरे व्यक्ति का नया कनेक्शन अनुरोध स्वीकार करने के लिए. एक पॉइंट की सुविधा देने वाली कंपनियों के लिए:
|
परफ़ॉर्मेंस को बेहतर बनाने के लिए, लो इंतज़ार के समय वाला पेज स्कैन मोड (स्कैन इंटरवल 640 मि॰से॰ से ज़्यादा नहीं होना चाहिए) की ज़रूरत होती है. बैटरी लाइफ़ और परफ़ॉर्मेंस स्विच करने के बीच किसी भी तरह का बदलाव करने के लिए, सेवा देने वाली कंपनी ज़्यादातर मामलों में डिफ़ॉल्ट पेज स्कैन मोड चुन सकती है. इसमें कम पावर वाला मोड, स्कैन का इंटरवल 1280 मि॰से॰ से ज़्यादा नहीं होना चाहिए. हालांकि, इंतज़ार का समय कम करने वाले मोड का इस्तेमाल इन स्थितियों में किया जाना चाहिए:
|
ज़रूरी है |
कनेक्शन का इतिहास | पिछले कनेक्शन पर वापस जाने के लिए और अगर लागू हो, तो फिर से चलाना शुरू करने के लिए. मैसेज स्ट्रीम एपीआई के ज़रिए बातचीत के ज़रिए, ऑडियो इवेंट को रोकने की प्रक्रिया शुरू हो जाएगी. अगर लागू हो, तो ऑडियो इवेंट को रोकने के रिकॉर्ड को रिकॉर्ड में शामिल किया जाना चाहिए, ताकि वीडियो फिर से चलाया जा सके. |
कनेक्शन का इतिहास बनाए रखें और Message Stream API लागू करें. | ज़रूरी है |
कनेक्शन स्थिति | नौकरी ढूंढने वाले लोगों के लिए, कनेक्शन बदलने की प्रोसेस के बारे में फ़ैसला लेना.कनेक्शन के स्टेटस में ये चीज़ें शामिल हैं:
|
BLE विज्ञापन और मैसेज स्ट्रीम में कनेक्शन का स्टेटस शामिल करें. | ज़रूरी है |
रनटाइम की सुविधाओं में बदलाव | प्रोवाइडर पर फ़र्मवेयर को अपग्रेड करके, ऑडियो स्विच की सुविधा को चालू किया जा सकता है. इसलिए, रनटाइम के दौरान, सीकर और प्रोवाइडर के बीच सुविधाओं को सिंक करना ज़रूरी होता है. | रनटाइम की सुविधाओं को ऐक्सेस करने के लिए, Message Stream API को लागू करें. | ज़रूरी है |
कॉन्फ़िगर करने लायक स्विचिंग नियम | सीकर को उपयोगकर्ता की पसंद की सेटिंग में जाकर, मौजूदा चालू ऑडियो स्ट्रीमिंग और नए ऑडियो स्ट्रीमिंग अनुरोधों के बीच प्राथमिकता कॉन्फ़िगर करने दें. उदाहरण के लिए, ऑडियो स्विच करने वाला व्यक्ति, यूज़र इंटरफ़ेस (यूआई) सेटिंग उपलब्ध करा सकता है. इससे उपयोगकर्ता, मीडिया स्ट्रीमिंग और कॉलिंग के बीच अपने-आप स्विच होने की सुविधा को चालू/बंद कर सकते हैं. ऑडियो स्विच करने वाला व्यक्ति, मैसेज स्ट्रीम के ज़रिए स्विच करने का नियम सेट कर देगा और उसे मिलेगा. |
सिर्फ़ मल्टीपॉइंट प्रोवाइडर के लिए. मैसेज स्ट्रीम एपीआई लागू करें, ताकि कनेक्ट किए गए डिवाइसों के बीच स्विच करने के नियमों को कॉन्फ़िगर किया जा सके. |
वैकल्पिक |
डिवाइस स्विच करने की सुविधा चालू है | सीकर को ऑडियो स्विच करने की सुविधा, कनेक्ट किए गए डिवाइसों के बीच ऑडियो स्विच करने की सुविधा को सिम्युलेट करने की अनुमति दें. अगर आपको ऑडियो स्विच करने के लिए सुझाव चाहिए, तो आपको एक यूज़र इंटरफ़ेस (यूआई) मिल सकता है. इसकी मदद से, लोग कनेक्ट किए गए डिवाइसों के बीच आसानी से स्विच कर पाएंगे. |
सिर्फ़ मल्टीपॉइंट सेवा देने वाली कंपनियां. ऑडियो स्विच करने वाले के लिए, Message Stream API को लागू करें, ताकि कनेक्ट किए गए डिवाइसों के बीच ऑडियो का चालू सोर्स पता किया जा सके. |
ज़रूरी है |
मल्टीपॉइंट स्विच करने की सूचना | ऑडियो स्विच करने वाले को सीकर को स्विच करने की सूचना दिखाने दें. | सिर्फ़ मल्टीपॉइंट सेवा देने वाली कंपनियां. एक से ज़्यादा पॉइंट पर स्विच करने के दौरान, कनेक्ट किए गए ऑडियो स्विच करने वाले को सूचना देने के लिए, Message Stream API लागू करें. |
ज़रूरी है |
विज्ञापन पेलोड
सेवा देने वाली कंपनी, विज्ञापन में अपने इंटरनेट कनेक्शन की मौजूदा स्थिति की जानकारी देगी, में बताए गए फ़ास्ट पेयर खाते के डेटा के आधार पर बनाया जाता है विज्ञापन: खोजे जाने लायक न होने पर.
ध्यान दें कि टेबल 4.2 का वर्शन 0x1 है.
कनेक्शन स्टेटस फ़ील्ड
ऑक्टेट | डेटा टाइप | ब्यौरा | मान | ज़रूरी है? |
---|---|---|---|---|
0 | uint8 |
फ़ील्ड की लंबाई और टाइप 0bLLLLTTTT
|
0बीएलएलएल0101
|
ज़रूरी है |
1 | uint8 |
कनेक्शन की स्थिति 0bHAFRSSSS
|
0बीएचएएफ़आरएसएस
|
ज़रूरी है |
2 | uint8 |
कस्टम डेटा फ़िलहाल, इसमें सिर्फ़ ऐसा कॉन्टेंट टाइप है जिसका इस्तेमाल, मौजूदा ऑडियो स्ट्रीमिंग के इस्तेमाल के बारे में जानकारी देने के लिए किया जाता है. नौकरी ढूंढने वाला व्यक्ति इसे, सेवा देने वाली कंपनी को भेज देगा. |
वैल्यू, मौजूदा चालू स्ट्रीमिंग के नौकरी ढूंढने वाले व्यक्ति से मैसेज स्ट्रीम के ज़रिए प्रोवाइडर को भेजी जाती है. 0, अगर मौजूदा चालू स्ट्रीमिंग Seeker न हो. | ज़रूरी है |
3 - var | कनेक्ट किए गए डिवाइसों का बिटमैप यह दिखाने के लिए बिट मैप कि कौनसे डिवाइस फ़िलहाल प्रोवाइडर के साथ कनेक्ट हैं. सभी बॉन्ड किए गए डिवाइसों को क्रम से लगाया जाता है, ताकि एक बॉन्ड डिवाइस के लिए एक बिट का इस्तेमाल किया जा सके. लंबाई इस बात पर निर्भर करेगी कि प्रोवाइडर के कितने बॉन्ड डिवाइस हैं. |
अगर डिवाइस मौजूदा समय में प्रोवाइडर से कनेक्ट है, तो मैप किए गए बिट को 1 पर सेट किया जाता है. अगर ऐसा नहीं होता है, तो 0 पर सेट कर दिया जाता है. ज़्यादा जानकारी के लिए, कनेक्ट किए गए डिवाइस का बिटमैप देखें |
वैकल्पिक |
टेबल 4.1: कनेक्शन के स्टेटस वाले फ़ील्ड का रॉ डेटा
कनेक्शन फ़्लैग
0bH = सिर की पहचान करने पर
- 1, अभी सिर पर है
- 0 है, तो सिर पर नहीं है या ओएचडी सेंसर नहीं है
0bA = कनेक्शन की उपलब्धता
- 1, एक कनेक्शन उपलब्ध है
- 0, अन्य मामलों में
0bF = फ़ोकस मोड
- 1, फ़िलहाल फ़ोकस मोड में, मीडिया के लिए कनेक्शन स्विच करने की अनुमति नहीं है इस्तेमाल, यानी कि A2DP से A2DP पर स्विच नहीं किया जाएगा
- 0, अन्य मामलों में
0bR = अपने-आप जुड़ा हुआ
- 1, अगर सेवा देने वाली कंपनी ने मौजूदा कनेक्शन को अपने-आप फिर से कनेक्ट किया है, तो इसका मतलब है यह उपयोगकर्ताओं से कनेक्ट नहीं होता है (मल्टीपॉइंट के लिए, अगर मौजूदा कनेक्शन अपने-आप कनेक्ट हो गया हो, इसे 1 पर सेट किया जाना चाहिए)
- 0, अन्य मामलों में
कनेक्शन का स्टेटस
- 0x0: कोई कनेक्शन नहीं
- 0x1: पेजिंग
- 0x2: कनेक्ट है लेकिन कोई डेटा स्थानांतरण नहीं
- 0x3: बिना ऑडियो वाला डेटा ट्रांसफ़र किया जा रहा है (सिर्फ़ तब, जब स्विच किया जा सकता हो, अगर नहीं, तो 0xF का इस्तेमाल करके)
- 0x4: A2DP स्ट्रीमिंग, AVRCP लागू नहीं है
- 0x5: A2DP स्ट्रीमिंग और AVRCP चल रहा है
- 0x6: एचएफ़पी (फ़ोन/वीओआईपी कॉल) स्ट्रीमिंग, जिसमें इनबैंड और नॉन-इनबैंड रिंगटोन शामिल है
- 0x7: LE audio - बिना किसी कंट्रोल के मीडिया स्ट्रीमिंग
- 0x8: LE audio - कंट्रोल के साथ मीडिया स्ट्रीमिंग
- 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 Audio के लिए मिले-जुले कॉन्टेक्स्ट टाइप का उदाहरण कॉल करता है, तो सेवा देने वाला सबसे ज़्यादा प्राथमिकता वाली कनेक्शन स्थिति का इस्तेमाल करेगा, जैसे कि ऊपर दी गई स्थिति के लिए, 0x8 (मीडिया) के बजाय 0x9 (कॉल) का इस्तेमाल करें.
कनेक्ट किए गए डिवाइस का बिटमैप
अनचाहे कनेक्शन स्विच से बचने के लिए, नौकरी ढूंढने वाले को यह पता होना चाहिए कि डिवाइस(डिवाइसों) से हेडसेट कनेक्ट है. उदाहरण के लिए, जब हेडसेट फ़ोन से कनेक्ट हो, तो उपयोगकर्ता उसके काम में रुकावट नहीं डालना चाहता जब उनके परिवार का कोई सदस्य टैबलेट.
ध्यान रखें कि यह बिट मैप अनाम होता है, नौकरी ढूंढने वाला यह नहीं जान पाता कि दूसरी डिवाइस, सेवा देने वाली कंपनी के साथ जुड़े होते हैं. उदाहरण के लिए, पांच बॉन्ड किए गए डिवाइस लें:
- 0: लैपटॉप (0bx0000000)
- 1: फ़ोनA (0b0x000000)
- 2: फ़ोनबी (0b00x00000)
- 3: टैबलेट (0b000x0000)
- 4: टीवी (0b0000x000)
यदि वर्तमान में कनेक्ट किए गए डिवाइस, लैपटॉप और टैबलेट हैं, तो बिट मैप 0b10010000 होगा. आदेश परिवर्तन स्वीकार्य है यदि यह अपरिहार्य है, उदाहरण के लिए, जब उपयोगकर्ता हेडसेट को फ़ैक्ट्री रीसेट करते हैं या बॉन्ड किए गए डिवाइस की गिनती करते हैं इससे ज़्यादा आइटम नहीं बनाए जा सकते.
रैंडम तरीके से रिज़ॉल्व किया जा सकने वाला विज्ञापन
ट्रैकिंग से बचने और उपयोगकर्ता की निजता का सम्मान करने के लिए, सेवा देने वाली कंपनी को AES-CTR का इस्तेमाल करके खाता कुंजी से फ़ील्ड एन्क्रिप्ट करें:
encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)
कहां
कुंजी इस्तेमाल किए जा रहे खाते की कुंजी से ली गई है, जो की परिभाषा अगले सेक्शन में दी गई है.
कुंजी, SHA-256 का इस्तेमाल करके HKDF फ़ंक्शन, IETF RFC 5869 की मदद से जनरेट की गई है हैश फ़ंक्शन.
Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
सेवा देने वाली कंपनी यहां मूल खाता कुंजी यानी पहली बाइट का इस्तेमाल करेगी कुंजी 0x04 है और इस्तेमाल पैटर्न में शामिल नहीं है.
IV (शुरुआती वेक्टर) खाते के कुंजी डेटा का 2-बाइट वाला सॉल्ट है, जिसमें शून्य पैडिंग, यानी IV, Concat(salt, 14-byte ZEROs) है.
कनेक्शन की स्थिति का रॉ डेटा, टेबल 4.1 में बताया गया है, अगर कनेक्शन स्थिति में बदलाव होता है, तो सॉल्ट और आरपीए को विज्ञापन दिखाने की समयसीमा तय कर दी है.
इससे एन्क्रिप्ट किया गया कनेक्शन स्थिति फ़ील्ड उसी समय घूमता है जब खाते के डिजिटल बटन का डेटा घूमता रहता है.
BLE विज्ञापन का स्ट्रक्चर इस तरह से होगा:
ऑक्टेट | डेटा टाइप | ब्यौरा | मान | ज़रूरी है? |
---|---|---|---|---|
0 | uint8 |
वर्शन और फ़्लैग | 0x10 | ज़रूरी है |
1 - t | खाते के लिए कुंजी का डेटा | अलग-अलग | ज़रूरी है | |
t+1 - से॰ | बैटरी का डेटा | अलग-अलग | वैकल्पिक | |
s+1 - var | रैंडम रिज़ॉल्व किया जा सकने वाला डेटा | अलग-अलग | अगर खाते की कुंजी की सूची खाली नहीं है, तो इसे बाहर रखना ज़रूरी है. |
टेबल 4.2: रैंडम रिज़ॉल्व किए जा सकने वाले डेटा वाला BLE विज्ञापन
रैंडम रिज़ॉल्व किए जा सकने वाले डेटा में ये चीज़ें शामिल होती हैं:
ऑक्टेट | डेटा टाइप | ब्यौरा | मान | ज़रूरी है? |
---|---|---|---|---|
0 | uint8 |
फ़ील्ड की लंबाई और टाइप 0bLLLLTTTT
|
0बीएलएलएल0110
|
ज़रूरी है |
1 - var | एन्क्रिप्ट किया गया डेटा | अलग-अलग | ज़रूरी है |
टेबल 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
यह खाता कुंजी, इस्तेमाल की जा रही खाता कुंजी है.
अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है कनेक्शन स्थिति फ़ील्ड इस खाता कुंजी से एन्क्रिप्ट किया गया है और कनेक्ट किया गया डिवाइस, इस खाता कुंजी से जुड़ा है.
ऑडियो स्विच पेलोड के लिए स्कैमैटिक
नीचे दिए गए डायग्राम में, ऑडियो स्विच के पेलोड का स्कीमा दिखाया गया है.
मैसेज
कनेक्ट होने पर, नौकरी ढूंढने वाला और सेवा देने वाला व्यक्ति ऑडियो सिंक करने के लिए मैसेज स्ट्रीम का इस्तेमाल कर सकता है स्विच करने की क्षमता, कनेक्शन स्विच ट्रिगर करें, स्विच करें, और कनेक्शन स्थिति सूचित करें और इसी तरह के अन्य काम करें. हम एक मैसेज ग्रुप बनाते हैं और ऑडियो स्विच के लिए खास मैसेज कोड नीचे दिए गए हैं.
मैसेज ग्रुप का नाम | मान |
---|---|
ऑडियो स्विच | 0x07 |
नीचे दिए गए सेक्शन में हर मैसेज कोड के लिए अतिरिक्त जानकारी शामिल है.
मैसेज कोड का नाम | मान | सिर्फ़ मल्टीपॉइंट | प्रेषक | जवाब देने वाला व्यक्ति | एन्क्रिप्ट करें | MAC | एसीके |
---|---|---|---|---|---|---|---|
ऑडियो स्विच की सुविधा पाएं | 0x10 | नहीं | दोनों | दोनों, कोड 0x11 के ज़रिए | नहीं | नहीं | नहीं |
ऑडियो स्विच करने की सुविधा के बारे में सूचना देना | 0x11 | नहीं | दोनों | दोनों | नहीं | हां | Y |
मल्टीपॉइंट स्थिति सेट करना | 0x12 | Y | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | नहीं | हां | Y |
स्विचिंग की प्राथमिकता सेट करना | 0x20 | Y | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | नहीं | हां | Y |
स्विच करने का विकल्प चुनना | 0x21 | Y | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी, कोड 0x22 के ज़रिए | नहीं | नहीं | नहीं |
स्विच करने की प्राथमिकता के बारे में सूचना दें | 0x22 | Y | सेवा देने वाली कंपनी | नौकरी ढूंढने वाला | नहीं | नहीं | नहीं |
चालू ऑडियो सोर्स(कनेक्ट किए गए डिवाइस पर) पर स्विच करना | 0x30 | Y | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | नहीं | हां | Y |
वापस जाएं | 0x31 | नहीं | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | नहीं | हां | Y |
मल्टीपॉइंट-स्विच इवेंट की सूचना दें | 0x32 | Y | सेवा देने वाली कंपनी | नौकरी ढूंढने वाला | नहीं | नहीं | नहीं |
कनेक्शन की स्थिति की जानकारी पाना | 0x33 | Y | नौकरी ढूंढने वाला | 0x34 कोड के ज़रिए, सेवा देने वाली कंपनी | नहीं | नहीं | नहीं |
कनेक्शन की स्थिति के बारे में सूचना दें | 0x34 | Y | सेवा देने वाली कंपनी | नौकरी ढूंढने वाला | Y | नहीं | नहीं |
ऑडियो स्विच करने की प्रोसेस शुरू किए जाने के बारे में सूचना देना | 0x40 | नहीं | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | नहीं | हां | Y |
इस्तेमाल किए जा रहे खाते के पासकोड के बारे में बताएं | 0x41 | नहीं | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | नहीं | हां | Y |
कस्टम डेटा भेजना | 0x42 | नहीं | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | नहीं | हां | Y |
ड्रॉप कनेक्शन टारगेट सेट करना | 0x43 | Y | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | नहीं | हां | Y |
टेबल 4.3: ऑडियो स्विच करने वाले मैसेज
ऑडियो स्विच करने के मैसेज का MAC
मैसेज की पुष्टि करने की सुविधा देने के लिए, सभी ऑडियो स्विच मैसेज Seeker से प्रोवाइडर को भेजे गए डेटा के लिए, मैसेज की पुष्टि करने वाला कोड ज़रूरी है. टास्क कब शुरू होगा MAC वाला मैसेज मिला हो, तो इसे स्वीकार करना चाहिए, ताकि नौकरी ढूंढने वाला व्यक्ति को पता है कि सेवा देने वाले व्यक्ति ने मैसेज पर प्रतिक्रिया दी है या नहीं.
अगर संदेश प्रमाणीकरण सफल होता है, तो सेवा देने वाला संदेश:
ऑक्टेट | डेटा टाइप | ब्यौरा | मान |
---|---|---|---|
0 | uint8 | स्वीकार है | 0एक्सएफ़एफ़ |
1 | uint8 | एसीके | 0x01 |
2 से 3 | uint16 | डेटा की अतिरिक्त लंबाई | अलग-अलग |
4 | uint8 | ऑडियो स्विच | 0x07 |
5 | uint8 | ऑडियो स्विच करने के लिए मैसेज कोड | अलग-अलग |
6 - से॰ | अतिरिक्त डेटा | अलग-अलग |
अगर ऐसा नहीं हो पाता है, तो सेवा देने वाली कंपनी को मैसेज का एनएके भेजना होगा:
ऑक्टेट | डेटा टाइप | ब्यौरा | मान |
---|---|---|---|
0 | uint8 | स्वीकार है | 0एक्सएफ़एफ़ |
1 | uint8 | एनएके | 0x02 |
2 से 3 | uint16 | डेटा की अतिरिक्त लंबाई | 0x0003 |
4 | uint8 | गड़बड़ी का कारण | अलग-अलग |
5 | uint8 | ऑडियो स्विच | 0x07 |
6 | uint8 | ऑडियो स्विच करने के लिए मैसेज कोड | अलग-अलग |
ध्यान दें कि अगर सेवा देने वाला व्यक्ति ईमेल भेज रहा है, तो MAC की ज़रूरत नहीं है.
ऑडियो स्विच करने की सुविधा पाएं
ऑडियो स्विच करने की सुविधा देने वाली कंपनी और वीडियो खोजने वाला, दोनों यह देख सकते हैं कि डिवाइस से कनेक्ट किया गया फ़ास्ट पेयर, दोनों आपस में जुड़े हैं या नहीं नौकरी ढूंढने वाला/सेवा देने वाला व्यक्ति, ऑडियो स्विच करने की सुविधा देता है या नहीं, इसके लिए नीचे दिए गए मैसेज का इस्तेमाल करें:
ऑक्टेट | डेटा टाइप | ब्यौरा | मान |
---|---|---|---|
0 | uint8 | ऑडियो स्विच | 0x07 |
1 | uint8 | ऑडियो स्विच करने की सुविधा पाएं | 0x10 |
2 से 3 | uint16 | डेटा की अतिरिक्त लंबाई | 0 |
टेबल 4.3.1.0: ऑडियो स्विच करने की सुविधा पाना
ऑडियो स्विच करने की सुविधा के बारे में सूचना दें
ऑडियो स्विच करने की सुविधा पाने पर आगे, ऑडियो स्विच करने वाला सीकर/प्रोवाइडर इनमें से किसी एक विकल्प के साथ जवाब देगा फ़्लैग:
ऑक्टेट | डेटा टाइप | ब्यौरा | मान |
---|---|---|---|
0 | uint8 | ऑडियो स्विच | 0x07 |
1 | uint8 | ऑडियो स्विच करने की सुविधा के बारे में सूचना दें | 0x11 |
2 से 3 | uint16 | डेटा की अतिरिक्त लंबाई | 20, अगर इसे नौकरी देने वाले ने भेजा है 4, अगर इसे सेवा देने वाली कंपनी ने भेजा है |
4 से 5 | uint16 | ऑडियो स्विच करने के लिए वर्शन कोड | शून्य के अलावा किसी और वैल्यू का मतलब है कि इस पर ऑडियो स्विच किया जा सकता है. मौजूदा वर्शन (सुरक्षा को बेहतर बनाने की सुविधा के साथ) कोड 0x0102 है. 0x0000 या एक सेकंड में कोई जवाब नहीं मिलने का मतलब है कि इस डिवाइस पर, ऑडियो स्विच करने की सुविधा काम नहीं करती |
6 से 7 | फ़्लैग | सेवा देने वाले व्यक्ति या कंपनी के ऑडियो स्विच करने की क्षमता से जुड़े फ़्लैग अगर इसे सीकर ने भेजा है, तो इन दो बाइट को अनदेखा करना चाहिए. |
अलग-अलग ऑडियो स्विच की सुविधा से जुड़े फ़्लैग देखें |
8 से 15 | मैसेज नॉन्स सिर्फ़ तब ज़रूरी है, जब इसे सीकर ने भेजा हो |
अलग-अलग | |
16 से 23 | मैसेज की पुष्टि करने वाला कोड सिर्फ़ तब ज़रूरी है, जब इसे सीकर ने भेजा हो |
अलग-अलग |
टेबल 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 | बहुबिंदु स्थिति सेट करें | 0x12 |
2 से 3 | uint16 | डेटा की अतिरिक्त लंबाई | 17 |
4 | uint8 | एक से ज़्यादा पॉइंट की स्थिति | 0: मल्टीपॉइंट को बंद करें 1: मल्टीपॉइंट को चालू करें |
5 से 12 | संदेश नॉन्स | अलग-अलग | |
13 से 20 | मैसेज की पुष्टि करने वाला कोड | अलग-अलग |
टेबल 4.3.1.2: एक से ज़्यादा पॉइंट वाली स्थिति सेट करें
स्विच करने की प्राथमिकता सेट करें
ऑडियो स्विच करने वाले लोग, मल्टीपॉइंट और सेट स्विच करने की सेटिंग में बदलाव कर सकते हैं इसे नीचे दिए गए मैसेज का इस्तेमाल करके सेवा देने वाली कंपनी को भेजें:
ऑक्टेट | डेटा टाइप | ब्यौरा | मान |
---|---|---|---|
0 | uint8 | ऑडियो स्विच | 0x07 |
1 | uint8 | स्विच करने की प्राथमिकता सेट करें | 0x20 |
2 से 3 | uint16 | डेटा की अतिरिक्त लंबाई | 18 |
4 | फ़्लैग | प्राथमिकता स्विच करना | अलग-अलग एक से ज़्यादा बिंदु स्विच करने की प्राथमिकता वाला फ़्लैग देखें |
5 | स्विच करने की बेहतर सेटिंग यह बाइट रिज़र्व है, डिफ़ॉल्ट मान 0 है |
अलग-अलग | |
6 से 13 | संदेश नॉन्स | अलग-अलग | |
14 से 21 | मैसेज की पुष्टि करने वाला कोड | अलग-अलग |
टेबल 4.3.2.0: स्विच करने की प्राथमिकता सेट करना
एक से ज़्यादा पॉइंट पर स्विच करने के लिए, प्राथमिकता वाला फ़्लैग
- बिट 0 (MSB): A2DP बनाम A2DP (डिफ़ॉल्ट 0)
- बिट 1: एचएफ़पी बनाम एचएफ़पी (डिफ़ॉल्ट 0)
- बिट 2: A2DP बनाम एचएफ़पी (डिफ़ॉल्ट 0)
- बिट 3: एचएफ़पी बनाम 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 | फ़्लैग | प्राथमिकता वाले फ़्लैग स्विच करना | अलग-अलग एक से ज़्यादा बिंदु स्विच करने की प्राथमिकता वाला फ़्लैग देखें |
5 | स्विच करने की बेहतर सेटिंग यह बाइट रिज़र्व है, डिफ़ॉल्ट मान 0 होना चाहिए |
अलग-अलग |
टेबल 4.3.2.2: स्विच करने की प्राथमिकता की सूचना दें
चालू ऑडियो के सोर्स को (कनेक्ट किए गए डिवाइस पर) स्विच करें
ऑडियो स्विच करने वाले लोग, मल्टीपॉइंट की सेवा देने वाली कंपनी से, चालू की गई सेवा को स्विच करने का अनुरोध कर सकते हैं नीचे दिए गए मैसेज का इस्तेमाल करके, कनेक्ट किए गए डिवाइसों के बीच ऑडियो सोर्स:
ऑक्टेट | डेटा टाइप | ब्यौरा | मान |
---|---|---|---|
0 | uint8 | ऑडियो स्विच | 0x07 |
1 | uint8 | चालू ऑडियो के सोर्स को (कनेक्ट किए गए डिवाइस पर) स्विच करें | 0x30 |
2 से 3 | uint16 | डेटा की अतिरिक्त लंबाई | 17 |
4 | फ़्लैग | चालू ऑडियो सोर्स इवेंट फ़्लैग स्विच किए जा रहे हैं | अलग-अलग चालू ऑडियो सोर्स इवेंट को बदलना देखें |
5 से 12 | संदेश नॉन्स | अलग-अलग | |
13 से 20 | मैसेज की पुष्टि करने वाला कोड | अलग-अलग |
टेबल 4.3.3.0: चालू ऑडियो सोर्स (कनेक्ट किए गए डिवाइस पर) स्विच करें
चालू ऑडियो सोर्स इवेंट को स्विच किया जा रहा है
- बिट 0 (MSB): इस डिवाइस पर 1 स्विच करें. इसके बाद, कनेक्ट किए गए दूसरे डिवाइस पर 0 स्विच करें
- स्विच करने के बाद, बिट 1: 1 को डिवाइस पर स्विच करने पर फिर से चलाना शुरू करें, नहीं तो 0. चलाना फिर से शुरू करने का मतलब है कि सेवा देने वाला व्यक्ति, सीकर को PLAY सूचना भेजता है को ऐक्सेस किया जा सकता है. अगर पिछली स्थिति (स्विच बंद करने से पहले) नहीं थी PLAY, सेवा देने वाली कंपनी को इस फ़्लैग को अनदेखा करना चाहिए.
- बिट 2: 1, स्विच किए गए डिवाइस पर एससीओ को अस्वीकार करता है, नहीं तो 0
- बिट 3: 1 स्विच अवे डिवाइस पर ब्लूटूथ को डिसकनेक्ट करें, 0 नहीं.
- बिट 4 - 7: रिज़र्व किया गया.
ऐसा हो सकता है कि ऑडियो स्विच करने वाले लोगों को अपनी स्थिति के बारे में हमेशा सही जानकारी न हो. इसलिए, ऐसा करना मुमकिन है सेवा देने वाली कंपनी को "इस डिवाइस पर स्विच करें" सूचना मिले मैसेज मिलने पर, जब नौकरी ढूंढने वाला व्यक्ति यह डिवाइस पहले से ही चालू है. इस मामले में, Seeker पर सही यूज़र इंटरफ़ेस (यूआई) दिखाने के लिए, सेवा देने वाली कंपनी, गड़बड़ी की वजह 0x4 - डिवाइस से जुड़ी ग़ैर-ज़रूरी कार्रवाई के साथ एनएके भेज सकती है.
LE Audio प्रोवाइडर के लिए, जिसके एक से ज़्यादा सेट मेंबर हैं, सेवा देने वाले को यह करना चाहिए सीकर से सभी सदस्यों को डिसकनेक्ट करने में मदद मिलेगी. अगर ऐसा नहीं होता है, तो ब्लूटूथ स्टैक को नौकरी ढूंढने वाला व्यक्ति, सेवा देने वाली कंपनी से फिर से कनेक्ट हो जाएगा.
वापस स्विच करें (डिसकनेक्ट किए गए डिवाइस पर)
अगर कनेक्शन स्विच अनचाही है, तो उपयोगकर्ता स्विचिंग को वापस ला सकते हैं. साथ ही, कुछ मामलों में, ऑडियो कनेक्शन को पुनर्स्थापित करना उचित होता है समस्या है. नौकरी ढूंढने वाला व्यक्ति, वापस स्विच करने के लिए नीचे दिए गए मैसेज का इस्तेमाल करेगा:
ऑक्टेट | डेटा टाइप | ब्यौरा | मान |
---|---|---|---|
0 | uint8 | ऑडियो स्विच | 0x07 |
1 | uint8 | वापस स्विच करें (डिसकनेक्ट किए गए डिवाइस पर) | 0x31 |
2 से 3 | uint16 | डेटा की अतिरिक्त लंबाई | 17 |
4 | uint8 | इवेंट पर स्विच करें | अलग-अलग 0x01: वापस स्विच करें 0x02: वापस स्विच करें और वीडियो फिर से चलाएं |
5 से 12 | संदेश नॉन्स | अलग-अलग | |
13 से 20 | मैसेज की पुष्टि करने वाला कोड | अलग-अलग |
टेबल 4.3.3.1: वापस स्विच करें (डिसकनेक्ट किए गए डिवाइस पर)
एक से ज़्यादा पॉइंट पाने वाली कंपनियों के लिए, कनेक्शन स्विच करने के लिए, सेवा देने वाली कंपनी यह एक ऑडियो सोर्स डिवाइस से कनेक्ट करता है और दूसरे ऑडियो सेशन को रोक देता है ऑडियो सोर्स. उदाहरण के लिए, मान लें कि मल्टीपॉइंट हेडसेट किसी दूसरे डिवाइस से कनेक्ट है टैबलेट और एक तीसरा समर्थित ऑडियो स्विच डिवाइस. उपयोगकर्ता इस पर वीडियो देख रहा है टैबलेट पर कॉल कर सकते हैं. फ़ोन हेडसेट पर कनेक्शन स्विच, जिसे तीसरे डिवाइस का मीडिया को रोके रखते हुए, फ़ोन से कनेक्ट करने के लिए कनेक्शन सत्र का उपयोग करें. अगर उपयोगकर्ता अस्वीकार कर देता है कॉल करते हैं, तो फ़ोन, हेडसेट से "वापस स्विच करके चलाना फिर से शुरू करने" के लिए कह सकता है. यह अनुरोध मिलने पर, हेडसेट को तीसरे डिवाइस से फिर से कनेक्ट करना होगा और रोके गए वीडियो को टैबलेट पर फिर से चलाना शुरू करें.
मल्टीपॉइंट-स्विच इवेंट की सूचना दें
उपयोगकर्ताओं को मल्टीपॉइंट-स्विच इवेंट की जानकारी देने के लिए, ऑडियो स्विच नौकरी ढूंढने वाला व्यक्ति, लोगों को सूचना दिखा सकता है. सेवा देने वाली कंपनी को, कनेक्ट किए गए नंबर पर सूचना देनी चाहिए स्विच करने के इवेंट के बारे में ऑडियो स्विच करने वाले लोगों को.
ऑक्टेट | डेटा टाइप | ब्यौरा | मान |
---|---|---|---|
0 | uint8 | ऑडियो स्विच | 0x07 |
1 | uint8 | मल्टीपॉइंट-स्विच इवेंट की सूचना दें सेवा देने वाले को हर स्विच पर इसे भेजना चाहिए. इसमें ऑडियो स्विच करने वाले से गैर-ऑडियो स्विच सीकर, गैर-ऑडियो स्विच सीकर से ऑडियो स्विच सीकर और ऑडियो स्विच सीकर से ऑडियो स्विच सीकर तक शामिल हैं |
0x32 |
2 से 3 | uint16 | डेटा की अतिरिक्त लंबाई | अलग-अलग |
4 | uint8 | स्विच करने की वजह इस वैल्यू को कनेक्शन की स्थिति के आधार पर तय किया जाना चाहिए. LE Audio के इस्तेमाल के उदाहरणों के लिए, LE Audio कॉन्टेक्स्ट टाइप और कनेक्शन की स्थिति के बीच मैपिंग करना मददगार हो सकता है. उदाहरण के लिए, वॉइस असिस्टेंट के कनेक्शन की स्थिति 0x9(LE Audio - कॉल स्ट्रीमिंग) है. इसलिए, वॉइस असिस्टेंट की सुविधा के ज़रिए स्विच करने की वजह 0x02 होनी चाहिए. |
अलग-अलग 0x00: जानकारी नहीं दी गई है 0x01: मीडिया (जैसे, A2DP स्ट्रीमिंग, LEA मीडिया स्ट्रीमिंग) 0x02: कॉल (जैसे कि HFP स्ट्रीमिंग, LEA कॉल स्ट्रीमिंग) |
5 | uint8 | टारगेट डिवाइस | अलग-अलग 0x01: यह डिवाइस 0x02: कनेक्ट किया गया अन्य डिवाइस |
6 - नहीं | utf8 | टारगेट डिवाइस का नाम अगर टारगेट किया गया डिवाइस, ऑडियो स्विच करने वाला है. इसके लिए, सीकर को वही नाम इस्तेमाल करना होगा जिसे सीकर ने भेजा है. इसके अलावा, अगर लागू नहीं हो, तो उसके पते के आखिरी दो बाइट का इस्तेमाल करके, ब्लूटूथ के नाम का इस्तेमाल करें |
अलग-अलग |
टेबल 4.3.3.2: मल्टीपॉइंट-स्विच इवेंट की सूचना देना
इंटरनेट कनेक्शन की स्थिति जानें
नौकरी ढूंढने वाले को, सेवा देने वाली कंपनी से मौजूदा कनेक्शन स्थिति मिल सकती है:
ऑक्टेट | डेटा टाइप | ब्यौरा | मान |
---|---|---|---|
0 | uint8 | ऑडियो स्विच | 0x07 |
1 | uint8 | इंटरनेट कनेक्शन की स्थिति जानें | 0x33 |
2 से 3 | uint16 | डेटा की अतिरिक्त लंबाई | 0 |
टेबल 4.3.3.3: कनेक्शन की स्थिति पाना
यह मैसेज मिलने के बाद, सेवा देने वाली कंपनी को मैसेज कोड के ज़रिए जवाब देना होगा 0x34 पर, कनेक्शन की स्थिति के बारे में सूचना दें.
कनेक्शन स्थिति सूचित करें
जैसा कि BLE विज्ञापन पेलोड में बताया गया है, एक से ज़्यादा जानकारी देने वाली कंपनियां, अगर कनेक्शन की स्थिति में बदलाव होता है, लेकिन इसमें बदलाव नहीं होता विज्ञापन पैकेट के मुताबिक, सेवा देने वाले संगठन से जुड़े नौकरी ढूंढने वालों को यह सूचना भी देनी चाहिए कि बदलाव के लिए एक ही खाता कुंजी का इस्तेमाल कर रहे हैं. अगर सेवा देने वाली कंपनी कनेक्ट है अगर ऑडियो स्विच करने वाला व्यक्ति, ऑडियो स्विच करने वाले और बिना ऑडियो वाले सीकर का स्विच करने वाला व्यक्ति ऐक्टिव है, लेकिन सेवा देने वाली कंपनी को कनेक्ट किए गए ऑडियो को भी सूचना देनी चाहिए नौकरी ढूंढने वाले को कनेक्शन की स्थिति के बारे में बताएं (इसके लिए, नौकरी खोजने वाले के खाते की कुंजी का इस्तेमाल करें).
ऑक्टेट | डेटा टाइप | ब्यौरा | मान |
---|---|---|---|
0 | uint8 | ऑडियो स्विच | 0x07 |
1 | uint8 | कनेक्शन स्थिति सूचित करें | 0x34 |
2 से 3 | uint16 | डेटा की अतिरिक्त लंबाई | अलग-अलग |
4 | uint8 | ऐक्टिव डिवाइस फ़्लैग | अलग-अलग 0x00: यह सीकर पैसिव है और सक्रिय डिवाइस एक ही खाता कुंजी 0x01 का इस्तेमाल कर रहा है: यह सीकर सक्रिय डिवाइस है 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) है
कनेक्शन_status_raw_data = concat(CONNECTION_state, custom_data, Connected_devices) के बारे में जानकारी दी गई हो, जो कि BLE में बताई गई है विज्ञापन का पेलोड ध्यान दें कि फ़ील्ड की लंबाई और टाइप के लिए बाइट को शामिल नहीं किया जाना चाहिए, क्योंकि यहां हमारे पास संदेश कोड और डेटा की लंबाई है.
ऑडियो स्विच करने की प्रोसेस शुरू किए जाने वाले कनेक्शन की सूचना दें
ऑडियो स्विच करने की सुविधा देने वाली कंपनियों को, यह जानने की ज़रूरत पड़ सकती है कि कनेक्शन स्विच हो रहा है या नहीं ऑडियो स्विच का इस्तेमाल करके, अलग-अलग प्रतिक्रियाओं का इस्तेमाल करें. जैसे, ऑडियो के लिए ईयरकॉन बंद करें इवेंट स्विच करें. नौकरी ढूंढने वाला व्यक्ति, सेवा देने वाली कंपनी को यह बताने के लिए एक मैसेज भेजता है कि कनेक्शन, ऑडियो स्विच करने की शुरुआत किया गया कनेक्शन था.
ऑक्टेट | डेटा टाइप | ब्यौरा | मान |
---|---|---|---|
0 | uint8 | ऑडियो स्विच | 0x07 |
1 | uint8 | ऑडियो स्विच करने की प्रोसेस शुरू किए जाने वाले कनेक्शन की सूचना दें | 0x40 |
2 से 3 | uint16 | डेटा की अतिरिक्त लंबाई | 17 |
4 | uint8 | ऑडियो स्विच के शुरू किए गए कनेक्शन का संकेत | अलग-अलग 0: यह कनेक्शन, ऑडियो स्विच करने की सुविधा से ट्रिगर नहीं हुआ था 1: यह ऑडियो स्विच करने की शुरुआत किया गया कनेक्शन था |
5 से 12 | संदेश नॉन्स | अलग-अलग | |
13 से 20 | मैसेज की पुष्टि करने वाला कोड | अलग-अलग |
टेबल 4.3.4.0: ऑडियो स्विच करने के शुरू किए गए कनेक्शन की सूचना दें
इस्तेमाल किए जा रहे खाते की कुंजी बताएं
अगर सीकर पर एक से ज़्यादा खाता कुंजियां (जैसे कि एक से ज़्यादा उपयोगकर्ता) जोड़ी गई हैं सेवा देने वाला व्यक्ति, नीचे दिए गए मैसेज का इस्तेमाल करके यह बताएगा कि किस खाते को कुंजी का उपयोग किया जा रहा है.
ऑक्टेट | डेटा टाइप | ब्यौरा | मान |
---|---|---|---|
0 | uint8 | ऑडियो स्विच | 0x07 |
1 | uint8 | इस्तेमाल किए जा रहे खाते की कुंजी बताएं | 0x41 |
2 से 3 | uint16 | डेटा की अतिरिक्त लंबाई | 22 |
4 से 9 | utf8 | इस्तेमाल की जा रही स्ट्रिंग | UTF8 ("इस्तेमाल में है") |
10 से 17 | संदेश नॉन्स | अलग-अलग | |
18 से 25 | मैसेज की पुष्टि करने वाला कोड | अलग-अलग |
टेबल 4.3.4.1: इस्तेमाल की जाने वाली खाता कुंजी के बारे में बताना
यह मैसेज मिलने पर, सेवा देने वाली कंपनी को यह पता चल सकता है कि किस खाता कुंजी का इस्तेमाल किया जा रहा है मैसेज की पुष्टि करने वाले कोड की पुष्टि करके.
कस्टम डेटा भेजें
ऑडियो स्विच करने वाला व्यक्ति, जानकारी को एन्क्रिप्ट (सुरक्षित) कर सकता है. जैसे, ऑडियो का उपयोग) करना होगा और इसे नीचे दिया गया मैसेज:
ऑक्टेट | डेटा टाइप | ब्यौरा | मान |
---|---|---|---|
0 | uint8 | ऑडियो स्विच | 0x07 |
1 | uint8 | कस्टम डेटा भेजें | 0x42 |
2 से 3 | uint16 | डेटा की अतिरिक्त लंबाई | 17 |
4 | uint8 | कस्टम डेटा | अलग-अलग |
5 से 12 | संदेश नॉन्स | अलग-अलग | |
13 से 20 | मैसेज की पुष्टि करने वाला कोड | अलग-अलग |
टेबल 4.3.4.2: कस्टम डेटा भेजना
पसंद के मुताबिक डेटा मिलने के बाद, सेवा देने वाली कंपनी विज्ञापन पैकेट को अपडेट कर देगी कस्टम डेटा शामिल करने के लिए. एक से ज़्यादा पॉइंट पाने वाली कंपनी के लिए, उसे यह सूचना भी देनी चाहिए कनेक्शन की स्थिति उसी खाता कुंजी का इस्तेमाल करके कनेक्ट किए गए किसी अन्य नौकरी ढूंढने वाले के साथ बदली जा सकती है.
ड्रॉप कनेक्शन टारगेट सेट करें
मल्टीपॉइंट हेडसेट पर, अगर छोड़ा जाने वाला पसंदीदा कनेक्शन वह नहीं है कम से कम हाल ही में इस्तेमाल किया गया एक ही डिवाइस है. ऑडियो स्विच करने वाले लोग, प्रोवाइडर को यह बता सकते हैं कि कौनसा डिवाइस नीचे दिए गए मैसेज का इस्तेमाल करके छोड़ें:
ऑक्टेट | डेटा टाइप | ब्यौरा | मान |
---|---|---|---|
0 | uint8 | ऑडियो स्विच | 0x07 |
1 | uint8 | ड्रॉप कनेक्शन टारगेट सेट करें | 0x43 |
2 से 3 | uint16 | डेटा की अतिरिक्त लंबाई | 17 |
4 | uint8 | कनेक्ट किए गए डिवाइस को लक्षित करें | अलग-अलग 1: यह डिवाइस |
5 से 12 | संदेश नॉन्स | अलग-अलग | |
13 से 20 | मैसेज की पुष्टि करने वाला कोड | अलग-अलग |
टेबल 4.3.4.3: ड्रॉप कनेक्शन टारगेट सेट करना
रेफ़रंस फ़ाइलों को लागू करना
रेफ़रंस फ़ाइल को लागू करने के बारे में जानने के लिए, आस-पास मौजूद SDK टूल की एम्बेड की गई लाइब्रेरी देखें