ऑडियो स्विच
उपयोगकर्ता अपने रोज़ाना के कामों के लिए कई ऑडियो सोर्स डिवाइसों का इस्तेमाल कर रहे हैं. ऐसे में, सभी डिवाइसों पर हेडसेट के इस्तेमाल को मैनेज करने के आसान तरीके की मांग बढ़ रही है. ऑडियो स्विच, उपयोगकर्ता की गतिविधि (जैसे कि फ़िल्म शुरू करना) और प्राथमिकता वाले इवेंट (जैसे कि आने वाला कॉल) के आधार पर, हेडसेट के कनेक्शन को आसानी से बदल देता है.
UX से जुड़े सिद्धांत
- कनेक्शन स्विच करने की प्रोसेस तेज़ होनी चाहिए और उपयोगकर्ता की कार्रवाई के हिसाब से होनी चाहिए.
- कनेक्शन स्विच करने की प्रोसेस, उपयोगकर्ताओं के लिए पारदर्शी होनी चाहिए. इससे लोगों को ऐसे बदलाव करने/वापस लेने की अनुमति मिलनी चाहिए जो उनके काम के न हों.
- स्विच करने से, उपयोगकर्ता की निजता का ध्यान रखा जाना चाहिए.
भूमिकाएं
ऑडियो स्विच सीकर: सीकर एक ऑडियो सोर्स डिवाइस होता है (उदाहरण के लिए, फ़ोन या टैबलेट), जो आस-पास मौजूद किसी हेडसेट को ढूंढता है, ताकि ज़रूरत पड़ने पर उससे कनेक्ट किया जा सके.
ऑडियो स्विच करने की सुविधा देने वाली कंपनी: सेवा देने वाली कंपनी आम तौर पर एक हेडसेट होती है. इसकी मदद से, ऐप्लिकेशन स्विच करने का फ़ैसला ले पाते हैं.
ज़रूरी शर्तों की खास जानकारी
स्मार्ट स्विचिंग की सुविधा पाने के लिए, सेवा देने वाली कंपनियों को इन शर्तों का पालन करना होगा:
नाम | ब्यौरा | ज़रूरी शर्तें | ज़रूरी है? |
---|---|---|---|
पेज स्कैन | मौजूदा कनेक्शन उपलब्ध होने पर, किसी दूसरे सीकर से नया कनेक्शन पाने का अनुरोध स्वीकार करने के लिए. सिंगल-पॉइंट वाली सेवा देने वाली कंपनियों के लिए:
|
परफ़ॉर्मेंस को बेहतर बनाने के लिए, इंतज़ार का समय कम करने वाला पेज स्कैन मोड (640 मि॰से॰ से ज़्यादा का स्कैन नहीं होना चाहिए) ज़रूरी है. ज़्यादातर मामलों में, सेवा देने वाली कंपनी के पास पेज स्कैन करने का डिफ़ॉल्ट मोड हो सकता है, ताकि बैटरी लाइफ़ और स्विचिंग परफ़ॉर्मेंस के बीच संतुलन बनाया जा सके (कम पावर मोड, स्कैन का इंटरवल 1280 मि॰से॰ से ज़्यादा नहीं होना चाहिए). हालांकि, इंतज़ार का समय कम करने वाले मोड का इस्तेमाल, इन स्थितियों में किया जाना चाहिए:
|
ज़रूरी है |
कनेक्शन इतिहास | पिछले कनेक्शन पर वापस स्विच करने और अगर लागू हो, तो फिर से चलाना शुरू करने के लिए. वापस स्विच करने पर, Message Stream API के ज़रिए हुई बातचीत को फिर से चालू किया जाएगा. अगर लागू हो, तो ऑडियो इवेंट को फिर से चलाने के लिए, इसे रिकॉर्ड में शामिल किया जाना चाहिए. |
कनेक्शन के इतिहास को बनाए रखें और Message Stream API को लागू करें. | ज़रूरी है |
कनेक्शन स्थिति | नौकरी ढूंढने वाले, कनेक्शन स्विच करने के फ़ैसले का इस्तेमाल कर सकते हैं.कनेक्शन की स्थिति में ये शामिल हैं:
|
BLE विज्ञापन और मैसेज स्ट्रीम में कनेक्शन की स्थिति शामिल करें. | ज़रूरी है |
रनटाइम की क्षमताओं में बदलाव | प्रोवाइडर पर फ़र्मवेयर को अपग्रेड करके ऑडियो स्विच करने की सुविधा चालू की जा सकती है. इसलिए, रनटाइम के दौरान सीकर और प्रोवाइडर के बीच क्षमताओं को सिंक करना ज़रूरी है. | रनटाइम की क्षमताओं को ऐक्सेस करने के लिए, Message Stream API को लागू करें. | ज़रूरी है |
स्विच करने के कॉन्फ़िगर किए जा सकने वाले नियम | Seeker को मौजूदा चालू ऑडियो स्ट्रीमिंग और नए ऑडियो स्ट्रीमिंग के अनुरोधों के बीच, उपयोगकर्ता की प्राथमिकता से जुड़ी सेटिंग के बीच प्राथमिकता कॉन्फ़िगर करने दें. उदाहरण के लिए, ऑडियो स्विच करने वाला सीकर, यूज़र इंटरफ़ेस (यूआई) सेटिंग उपलब्ध करा सकता है. इससे उपयोगकर्ता, मीडिया स्ट्रीमिंग और कॉल के बीच अपने-आप स्विच होने की सुविधा को चालू/बंद कर सकते हैं. ऑडियो स्विच करने वाला सीकर सेट कर दिया जाएगा और उसे मैसेज स्ट्रीम के ज़रिए स्विच करने का नियम मिलेगा. |
सिर्फ़ मल्टीपॉइंट की सुविधा देने वाली कंपनियां. मैसेज स्ट्रीम एपीआई लागू करें, ताकि कनेक्ट किए गए डिवाइसों के बीच स्विच करने के नियम लागू किए जा सकें. |
ज़रूरी नहीं |
डिवाइस स्विच करने की सुविधा चालू है | ऑडियो स्विच करने वाले सीकर को, कनेक्ट किए गए डिवाइसों के बीच ऑडियो स्विच करने की सुविधा दें. ऑडियो स्विच सीकर साइड पर, उपयोगकर्ताओं के लिए एक यूज़र इंटरफ़ेस (यूआई) हो सकता है, ताकि वे कनेक्ट किए गए डिवाइसों के बीच आसानी से स्विच कर सकें. |
सिर्फ़ मल्टीपॉइंट की सुविधा देने वाली कंपनियां. कनेक्ट किए गए डिवाइसों के बीच चालू ऑडियो सोर्स का पता लगाने के लिए, ऑडियो स्विच सीकर के लिए Message Stream API लागू करें. |
ज़रूरी है |
एक से ज़्यादा पॉइंट पर स्विच करने की सूचना | ऑडियो स्विच करने वाले सीकर को स्विच होने की सूचना दिखाने दें. | सिर्फ़ मल्टीपॉइंट की सुविधा देने वाली कंपनियां. जब एक से ज़्यादा पॉइंट पर स्विच किया जा रहा हो, तो कनेक्ट किए गए ऑडियो स्विच करने वाले लोगों को सूचना देने के लिए Message Stream API लागू करें. |
ज़रूरी है |
विज्ञापन पेलोड
सेवा देने वाली कंपनी को विज्ञापन में अपने कनेक्शन की मौजूदा स्थिति शामिल करनी होगी. यह स्टेटस, फ़ास्ट पेयर खाते के डेटा के साथ विज्ञापन: खोजे जाने लायक न होने पर सेक्शन में बताया गया है.
ध्यान दें कि टेबल 4.2 का वर्शन 0x1 है.
कनेक्शन स्टेटस फ़ील्ड
ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू | ज़रूरी है? |
---|---|---|---|---|
0 | uint8 |
फ़ील्ड की लंबाई और टाइप 0bLLLLTTTT
|
0bLLLL0101
|
ज़रूरी है |
1 | uint8 |
कनेक्शन की स्थिति 0bHAFRSSSS
|
0bHAFRSSSS
|
ज़रूरी है |
2 | uint8 |
कस्टम डेटा फ़िलहाल, इसमें सिर्फ़ उस तरह का कॉन्टेंट शामिल है जिसका इस्तेमाल मौजूदा ऑडियो स्ट्रीमिंग के इस्तेमाल के बारे में बताने के लिए किया जाता है. नौकरी ढूंढने वाला, इसे सेवा देने वाली कंपनी को भेज देगा. |
यह वैल्यू, मौजूदा चालू स्ट्रीमिंग के सीकर से, सेवा देने वाली कंपनी को मैसेज स्ट्रीम के ज़रिए भेजी जाती है. 0 अगर मौजूदा चालू स्ट्रीमिंग Seeker की नहीं है. | ज़रूरी है |
3 - वैरिएबल | कनेक्ट किए गए डिवाइसों के लिए बिट मैप यह दिखाने के लिए एक बिट मैप कि फ़िलहाल, सेवा देने वाली कंपनी से कौनसे डिवाइस कनेक्ट हैं. सभी बॉन्ड डिवाइसों को क्रम से लगाया जाता है. हर डिवाइस के लिए, एक बिट की जगह बराबर रखा जाता है. अवधि इस बात पर निर्भर करेगी कि सेवा देने वाली कंपनी के कितने डिवाइस बॉन्ड किए गए हैं. |
अगर डिवाइस फ़िलहाल प्रोवाइडर से कनेक्ट है, तो मैप किया गया बिट 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: HFP (फ़ोन/voip कॉल) स्ट्रीमिंग, जिसमें इनबाउंड और नॉन-इनबैंड रिंगटोन शामिल है
- 0x7: LE audio - बिना किसी कंट्रोल के मीडिया स्ट्रीमिंग
- 0x8: LE audio - कंट्रोल के साथ मीडिया स्ट्रीमिंग
- 0x9: LE audio - कॉल स्ट्रीमिंग
- 0xA: LE audio - ब्रॉडकास्ट
- 0xF: कनेक्शन स्विच करने की सुविधा को कुछ समय के लिए बंद करें (जैसे, फ़र्मवेयर अपडेट)
कनेक्ट किए गए डिवाइस का बिट मैप
अनचाहे कनेक्शन के स्विच होने से बचने के लिए, सीकर को यह पता होना चाहिए कि फ़िलहाल हेडसेट किस डिवाइस(डिवाइसों) से कनेक्ट है. उदाहरण के लिए, जब हेडसेट फ़ोन से कनेक्ट होता है, तब उपयोगकर्ता यह नहीं चाहता कि उसके परिवार का कोई सदस्य जब टैबलेट पर YouTube चालू करे, तब कनेक्शन स्विच होने में रुकावट क्यों न आए.
ध्यान रखें कि इस बिटमैप की पहचान छिपी होती है. ऐसे में, सीकर यह नहीं जान पाता कि सेवा देने वाली कंपनी से दूसरे कौनसे डिवाइस जुड़े हैं. उदाहरण के लिए, पांच बॉन्ड डिवाइस लें:
- 0: लैपटॉप (0bx0000000)
- 1: फ़ोनA (0b0x000000)
- 2: फ़ोनबी (0b00x00000)
- 3: टेबलेट (0b000x0000)
- 4: टीवी (0b0000x000)
अगर कनेक्ट किए गए मौजूदा डिवाइस एक लैपटॉप और टैबलेट हैं, तो बिटमैप की वैल्यू 0b10010000 होगी. ऑर्डर में बदलाव तब स्वीकार किया जा सकता है, जब उसे रोका न जा सके. उदाहरण के लिए, जब उपयोगकर्ता हेडसेट को फ़ैक्ट्री रीसेट करते हैं या फिर बॉन्ड वाले डिवाइस की संख्या ज़्यादा से ज़्यादा सीमा तक पहुंच जाती है.
रैंडम रिज़ॉल्वबल विज्ञापन
उपयोगकर्ता की निजता को ट्रैक करने और उसका सम्मान करने से बचने के लिए, सेवा देने वाली कंपनी को AES-सीटीआर का इस्तेमाल करके, खाता कुंजी का इस्तेमाल करके फ़ील्ड को घुमाना और एन्क्रिप्ट करना चाहिए:
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-बाइट ZEROs) है.
कनेक्शन की स्थिति का रॉ डेटा टेबल 4.1 में बताया गया है. अगर कनेक्शन की स्थिति में बदलाव होता है, तो सॉल्ट और आरपीए, विज्ञापन की उसी समयसीमा पर फिर से जनरेट होने चाहिए.
ऐसा करने से, एन्क्रिप्ट (सुरक्षित) किया गया कनेक्शन स्टेटस फ़ील्ड उसी समय घूमता है, जब खाता कुंजी के डेटा को घुमाया जाता है.
BLE विज्ञापन का स्ट्रक्चर इस तरह से बनाया जाएगा:
ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू | ज़रूरी है? |
---|---|---|---|---|
0 | uint8 |
वर्शन और फ़्लैग | 0x10 | ज़रूरी है |
1 - t | खाते के कुंजी का डेटा | अलग-अलग हो सकता है | ज़रूरी है | |
t+1 - s | बैटरी डेटा | अलग-अलग हो सकता है | ज़रूरी नहीं | |
s+1 - वैरिएबल | किसी भी क्रम में लगाया जा सकने वाला डेटा | अलग-अलग हो सकता है | ज़रूरी है, अगर खाता कुंजी सूची खाली नहीं है, तो इसे बाहर रखा जाएगा. |
टेबल 4.2: रैंडम रिज़ॉल्यूशन वाले डेटा के साथ BLE विज्ञापन
किसी भी क्रम में लगाए जा सकने वाले डेटा में ये चीज़ें शामिल होती हैं:
ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू | ज़रूरी है? |
---|---|---|---|---|
0 | uint8 |
फ़ील्ड की लंबाई और टाइप 0bLLLLTTTT
|
0bLLLL0110
|
ज़रूरी है |
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)
इस्तेमाल की जा रही खाता कुंजी
कनेक्शन स्विच करने का तरीका खाता-आधारित होता है, इसलिए सेवा देने वाली कंपनी को बीएलई विज्ञापन में मौजूदा कनेक्शन की खाते की जानकारी शामिल करनी चाहिए. अगर मौजूदा डिवाइस कनेक्ट किया गया कोई ऑडियो स्विच करने वाला डिवाइस है, तो सेवा देने वाली कंपनी के पास इस सीकर से जुड़ी खाता कुंजी पाने की सुविधा होनी चाहिए. साथ ही, कनेक्शन की स्थिति वाले फ़ील्ड को एन्क्रिप्ट करने के लिए इस खाता कुंजी का इस्तेमाल करना चाहिए. अगर कनेक्ट किया गया ऑडियो सोर्स, बिना ऑडियो स्विच वाला सीकर है, तो सेवा देने वाली कंपनी को हाल ही में इस्तेमाल की गई खाता कुंजी का इस्तेमाल करना चाहिए.
खाता कुंजी फ़िल्टर की गणना करने से पहले, सेवा देने वाली कंपनी को खाता कुंजियों के पहले बाइट में बदलाव करना चाहिए, ताकि इस्तेमाल के पैटर्न में इनमें से किसी एक को शामिल किया जा सके:
- 0b00000100
यह खाता कुंजी इस्तेमाल नहीं की जा रही है.
यह डिफ़ॉल्ट कोड है (खाता कुंजी देखें). - 0b00000101
यह खाता कुंजी, हाल ही में इस्तेमाल की गई खाता कुंजी है.
कनेक्शन की स्थिति वाले फ़ील्ड को, इस खाता कुंजी से एन्क्रिप्ट (सुरक्षित) किया जाता है. मौजूदा कनेक्शन की स्थिति के बारे में कोई खाता कुंजी जानकारी नहीं है. इसका मतलब यह हो सकता है कि कोई डिवाइस कनेक्ट नहीं है या कनेक्ट किया गया डिवाइस, ऑडियो स्विच करने वाला सीकर नहीं है. - 0b00000110
यह खाता कुंजी इस्तेमाल की जा रही खाता कुंजी है.
कनेक्शन की स्थिति वाले फ़ील्ड को इस खाता कुंजी से एन्क्रिप्ट (सुरक्षित) किया जाता है. साथ ही, कनेक्ट किया गया मौजूदा डिवाइस, इस खाता कुंजी से जुड़ा होता है.
ऑडियो स्विच करने वाले पेलोड के लिए स्कीमाटिक
नीचे दी गई इमेज में, ऑडियो स्विच करने के पेलोड का स्कीमा दिखाया गया है.
मैसेज
कनेक्ट होने पर, सीकर और सेवा देने वाली कंपनी मैसेज स्ट्रीम का इस्तेमाल ऑडियो स्विच करने की सुविधा को सिंक करने, कनेक्शन स्विच को ट्रिगर करने, स्विचिंग की प्राथमिकता सेट करने और पाने, कनेक्शन की स्थिति की सूचना देने वगैरह के लिए कर सकती हैं. नीचे दिए गए तरीके से, हम ऑडियो स्विच के लिए खास तौर पर एक मैसेज ग्रुप और मैसेज कोड बनाते हैं.
मैसेज ग्रुप का नाम | वैल्यू |
---|---|
ऑडियो स्विच | 0x07 |
नीचे दिए गए सेक्शन में, हर मैसेज कोड के बारे में ज़्यादा जानकारी दी गई है.
मैसेज कोड का नाम | वैल्यू | सिर्फ़ मल्टीपॉइंट | प्रेषक | जवाब देने वाला व्यक्ति | एन्क्रिप्ट करें | एमएसी | ACK |
---|---|---|---|---|---|---|---|
ऑडियो स्विच की सुविधा पाना | 0x10 | N | दोनों | दोनों, कोड 0x11 के ज़रिए | N | नहीं | N |
ऑडियो स्विच करने की सुविधा के बारे में सूचना देना | 0x11 साइज़ | N | दोनों | दोनों | N | हां | हां |
मल्टीपॉइंट की स्थिति सेट करें | 0x12 साइज़ | हां | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | N | हां | हां |
स्विचिंग प्राथमिकता सेट करना | 0x20 | हां | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | N | हां | हां |
स्विचिंग प्राथमिकता पाना | 0x21 | हां | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी, कोड 0x22 से | N | नहीं | N |
स्विचिंग प्राथमिकता को सूचना दें | 0x22 | हां | सेवा देने वाली कंपनी | नौकरी ढूंढने वाला | N | नहीं | N |
चालू ऑडियो सोर्स(कनेक्ट किए गए डिवाइस से) स्विच करना | 0x30 | हां | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | N | हां | हां |
वापस स्विच करें (डिसकनेक्ट किए गए डिवाइस पर) | 0x31 | N | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | N | हां | हां |
एक से ज़्यादा पॉइंट वाले स्विच के इवेंट की सूचना पाना | 0x32 | हां | सेवा देने वाली कंपनी | नौकरी ढूंढने वाला | N | नहीं | N |
कनेक्शन की स्थिति जानना | 0x33 | हां | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी, कोड 0x34 से | N | नहीं | N |
कनेक्शन की स्थिति की सूचना देना | 0x34 | हां | सेवा देने वाली कंपनी | नौकरी ढूंढने वाला | हां | नहीं | N |
ऑडियो स्विच करने की सुविधा शुरू किए जाने की सूचना दें | 0x40 | N | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | N | हां | हां |
यह बताना कि खाता कुंजी का इस्तेमाल किया जा रहा है | 0x41 | N | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | N | हां | हां |
कस्टम डेटा भेजना | 0x42 | N | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | N | हां | हां |
ड्रॉप कनेक्शन टारगेट सेट करना | 0x43 | हां | नौकरी ढूंढने वाला | सेवा देने वाली कंपनी | N | हां | हां |
टेबल 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 | कोई नहीं | 0x2 |
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 सेकंड के अंदर जवाब नहीं दिया जाता या 1 सेकंड में कोई जवाब नहीं मिलता, तो इसका मतलब है कि इस डिवाइस पर ऑडियो स्विच करने की सुविधा काम नहीं करती है |
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: 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 | फ़्लैग | स्विच करने के लिए प्राथमिकता वाले फ़्लैग | अलग-अलग एक से ज़्यादा डिवाइसों पर स्विच करने की प्राथमिकता वाला फ़्लैग देखें |
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 नहीं. गेम को फिर से शुरू करने का मतलब है कि सेवा देने वाली कंपनी, AVRCP प्रोफ़ाइल के ज़रिए सीकर को PLAY सूचना भेजती है. अगर पिछली स्थिति (बंद होने से पहले) 'चलाएं' पर नहीं थी, तो सेवा देने वाली कंपनी को इस फ़्लैग को अनदेखा करना चाहिए.
- बिट 2: स्विच अवे डिवाइस पर एससीओ को अस्वीकार करने का अनुरोध, 0 नहीं
- बिट 3: 1 स्विच अवे डिवाइस पर ब्लूटूथ डिसकनेक्ट करें, 0 नहीं तो.
- बिट 4 - 7: रिज़र्व किया गया.
ऐसा हो सकता है कि ऑडियो स्विच करने वाले लोगों को हमेशा अपनी स्थिति का सही पता न हो. इसलिए, हो सकता है कि सेवा देने वाली कंपनी को "इस डिवाइस पर स्विच करें" मैसेज मिले. ऐसा तब होता है, जब सीकर पहले से ही चालू डिवाइस पर हो. इस मामले में, Seeker पर सही यूज़र इंटरफ़ेस (यूआई) दिखाने के लिए, कॉन्टेंट देने वाला व्यक्ति गड़बड़ी की वजह, 0x4 - डिवाइस पर कार्रवाई की ज़रूरत के साथ NAK भेज सकता है.
वापस स्विच करें (डिसकनेक्ट किए गए डिवाइस पर)
अगर कनेक्शन स्विच करना अनचाहे हो, तो उपयोगकर्ता स्विचिंग को पहले जैसा कर सकते हैं. कुछ खास स्थितियों में, रुकावट को कम करने के लिए ऑडियो कनेक्शन को पहले जैसा करना सही रहेगा. वापस स्विच करने को ट्रिगर करने के लिए, नौकरी ढूंढने वाला नीचे दिए गए मैसेज का इस्तेमाल करेगा:
ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
---|---|---|---|
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 | स्विच करने की वजह | अलग-अलग 0x00: तय नहीं है 0x01: A2DP स्ट्रीमिंग 0x02: HFP |
5 | Uint8 | टारगेट डिवाइस | अलग-अलग 0x01: यह डिवाइस 0x02: कनेक्ट किया गया कोई दूसरा डिवाइस |
6 - n | utf8 | डिवाइस का नाम अगर टारगेट डिवाइस, ऑडियो स्विच करने वाला है, तो उसी नाम का इस्तेमाल करें जिस पर सीकर भेजा गया है. अगर लागू न हो, तो उसके पते के आखिरी 2 बाइट डेटा का इस्तेमाल करके, बीटी नाम का इस्तेमाल करें |
अलग-अलग हो सकता है |
टेबल 4.3.3.2: एक से ज़्यादा पॉइंट वाले स्विच के इवेंट की सूचना दें
कनेक्शन की स्थिति जानें
नौकरी ढूंढने वाला, सेवा देने वाली कंपनी से मौजूदा कनेक्शन की स्थिति पा सकता है:
ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
---|---|---|---|
0 | Uint8 | ऑडियो स्विच | 0x07 |
1 | Uint8 | कनेक्शन की स्थिति जानें | 0x33 |
2 से 3 | Uint16 | अतिरिक्त डेटा की लंबाई | 0 |
टेबल 4.3.3.3: कनेक्शन की स्थिति पाना
यह मैसेज मिलने के बाद, सेवा देने वाली कंपनी को मैसेज कोड 0x34 के ज़रिए जवाब देना होगा. कनेक्शन की स्थिति की सूचना दें.
कनेक्शन की स्थिति के बारे में सूचना दें
जैसा कि मल्टीपॉइंट की सेवा देने वाली कंपनियों के लिए, बीएलई के विज्ञापन पेलोड में बताया गया है, अगर कनेक्शन की स्थिति में बदलाव होता है, तो विज्ञापन पैकेट बदलने के अलावा, सेवा देने वाली कंपनी को ऐसे कनेक्टेड सीकर को भी सूचना देनी चाहिए जो बदलाव के बारे में एक ही खाता कुंजी का इस्तेमाल कर रहे हैं. अगर सेवा देने वाली कंपनी, किसी ऑडियो स्विच सीकर और बिना ऑडियो वाले स्विच
ऑक्टेट | डेटा टाइप | ब्यौरा | वैल्यू |
---|---|---|---|
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) है
connection_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 टूल की लाइब्रेरी देखें