অডিও সুইচ

যেহেতু ব্যবহারকারীরা তাদের দৈনন্দিন কাজগুলি সম্পাদন করার জন্য একাধিক অডিও সোর্স ডিভাইসগুলিকে ক্রমবর্ধমানভাবে ব্যবহার করছেন, ডিভাইস জুড়ে হেডসেট ব্যবহার পরিচালনা করার জন্য একটি সহজ সমাধানের জন্য ক্রমবর্ধমান চাহিদা রয়েছে। অডিও সুইচ ব্যবহারকারীর কার্যকলাপের উপর ভিত্তি করে ডিভাইসগুলির মধ্যে হেডসেট সংযোগগুলিকে ট্রানজিশন করে (যেমন একটি চলচ্চিত্র শুরু করা) এবং অগ্রাধিকারপ্রাপ্ত ইভেন্টগুলি (যেমন একটি ইনকামিং কল)।

ইউএক্স নীতি

  1. সংযোগ স্যুইচিং দ্রুত এবং ব্যবহারকারীর কর্মের উপর ভিত্তি করে হওয়া উচিত।
  2. সংযোগ স্যুইচিং ব্যবহারকারীদের কাছে স্বচ্ছ হওয়া উচিত, ব্যবহারকারীদের সুইচিং অবাঞ্ছিত হলে নিয়ন্ত্রণ/প্রত্যাবর্তন করার অনুমতি দেয়।
  3. স্যুইচিং ব্যবহারকারীর গোপনীয়তাকে সম্মান করা উচিত।

ভূমিকা

অডিও সুইচ সিকার : সিকার হল একটি অডিও সোর্স ডিভাইস (উদাহরণস্বরূপ, একটি ফোন বা ট্যাবলেট), যখন প্রযোজ্য তখন সংযোগ করার জন্য কাছাকাছি একটি হেডসেট খুঁজছে।

অডিও স্যুইচ প্রদানকারী : প্রদানকারী সাধারণত একটি হেডসেট যা তার উপস্থিতি এবং সংযোগের অবস্থার বিজ্ঞাপন দেয় যাতে স্যুইচিং সিদ্ধান্ত নেওয়া যায়।

প্রয়োজনীয়তা ওভারভিউ

স্মার্ট সুইচিং অর্জন করতে, প্রদানকারীদের অবশ্যই নিম্নলিখিত প্রয়োজনীয়তাগুলি মেনে চলতে হবে:

নাম বর্ণনা প্রয়োজনীয়তা বাধ্যতামূলক?
পৃষ্ঠা স্ক্যান একটি বিদ্যমান সংযোগ থাকাকালীন অন্য অনুসন্ধানকারীর কাছ থেকে একটি নতুন সংযোগের অনুরোধ গ্রহণ করতে।
একক-পয়েন্ট প্রদানকারীদের জন্য:
  • প্রদানকারী সংযোগ বিচ্ছিন্ন করার সময় মূল উৎস ডিভাইসটি স্বয়ংক্রিয়ভাবে তার অডিও প্লেব্যাককে বিরতি দেবে।
মাল্টিপয়েন্ট প্রদানকারীদের জন্য:
  • যদি এখনও একটি উপলব্ধ সংযোগ থাকে তবে এটি সংযোগের অনুরোধ গ্রহণ করবে।
  • সংযোগ ব্যান্ডউইথ পূর্ণ হলে, সম্প্রতি ব্যবহৃত সংযোগ বিচ্ছিন্ন করুন (যেমন দীর্ঘ সময়ের জন্য কোনো অডিও ইভেন্ট নেই), এবং নতুন আগত অনুরোধ গ্রহণ করুন।
কর্মক্ষমতা উন্নত করার জন্য নিম্ন লেটেন্সি পেজ স্ক্যান মোড (স্ক্যানের ব্যবধান 640 ms এর বেশি হওয়া উচিত নয়) প্রয়োজন৷
ব্যাটারি লাইফ এবং স্যুইচিং পারফরম্যান্সের মধ্যে একটি ট্রেড-অফ করতে, প্রদানকারীর বেশিরভাগ ক্ষেত্রে একটি ডিফল্ট পৃষ্ঠা স্ক্যান মোড থাকতে পারে (লো-পাওয়ার মোড, স্ক্যানের ব্যবধান 1280 ms এর বেশি হওয়া উচিত নয়)৷ কিন্তু নিম্নোক্ত পরিস্থিতিতে লো লেটেন্সি মোড ব্যবহার করা আবশ্যক:
  • প্রথম 30 সেকেন্ডের পাওয়ার চালু
  • প্রথম 30 সেকেন্ড কোন সংযোগ বা পেজিং
  • প্রথম 30 সেকেন্ড ডিভাইস নিষ্ক্রিয়
বাধ্যতামূলক
সংযোগের ইতিহাস পূর্ববর্তী সংযোগে ফিরে যেতে এবং প্রযোজ্য হলে খেলা পুনরায় শুরু করতে।
মেসেজ স্ট্রীম API-এর মাধ্যমে যোগাযোগের মাধ্যমে ফিরে যাওয়া শুরু হবে।
প্রযোজ্য হলে বাজানো পুনরায় শুরু করার জন্য বিরতি দেওয়া অডিও ইভেন্ট রেকর্ডে অন্তর্ভুক্ত করা উচিত।
সংযোগের ইতিহাস বজায় রাখুন এবং মেসেজ স্ট্রিম এপিআই প্রয়োগ করুন। বাধ্যতামূলক
সংযোগ অবস্থা কানেকশন স্যুইচিং বিচার করার জন্য অনুসন্ধানকারীদের জন্য। সংযোগের অবস্থার মধ্যে রয়েছে:
  • সংযোগের অবস্থা
  • সক্রিয় সংযোগের অডিও প্রকার
  • সক্রিয় সংযোগের অ্যাকাউন্ট তথ্য
  • সংযুক্ত ডিভাইস(গুলি)
BLE বিজ্ঞাপন এবং বার্তা প্রবাহে সংযোগের অবস্থা অন্তর্ভুক্ত করুন। বাধ্যতামূলক
রানটাইম ক্ষমতা পরিবর্তন প্রোভাইডারে ফার্মওয়্যার আপগ্রেড করে অডিও সুইচ সক্ষম করা যেতে পারে, তাই রানটাইমে সিকার এবং প্রোভাইডারের মধ্যে সক্ষমতাগুলি সিঙ্ক্রোনাইজ করা প্রয়োজন৷ রানটাইম ক্ষমতা অ্যাক্সেস করতে মেসেজ স্ট্রিম এপিআই প্রয়োগ করুন। বাধ্যতামূলক
কনফিগারযোগ্য সুইচিং নিয়ম ব্যবহারকারীর পছন্দ সেটিংসের মাধ্যমে বিদ্যমান সক্রিয় অডিও স্ট্রিমিং এবং নতুন অডিও স্ট্রিমিং অনুরোধের মধ্যে অগ্রাধিকার কনফিগার করুন।
উদাহরণস্বরূপ, অডিও সুইচ সিকার ব্যবহারকারীদের মিডিয়া স্ট্রিমিং এবং কলিং এর মধ্যে স্বয়ংক্রিয় স্যুইচিং সক্ষম/অক্ষম করার জন্য UI সেটিংস প্রদান করতে পারে।
অডিও সুইচ সিকার সেট করবে এবং মেসেজ স্ট্রীমের মাধ্যমে সুইচিং নিয়ম পাবে।
শুধুমাত্র মাল্টিপয়েন্ট প্রদানকারী.
সংযুক্ত ডিভাইসগুলির মধ্যে পরিবর্তন করার নিয়মগুলি কনফিগারযোগ্য করতে বার্তা স্ট্রীম APIগুলি প্রয়োগ করুন৷
ঐচ্ছিক
সক্রিয় ডিভাইস স্যুইচিং অডিও সুইচ সিকারকে সংযুক্ত ডিভাইসগুলির মধ্যে অডিও স্যুইচিং অনুকরণ করতে দিন।
অডিও সুইচ সিকার সাইডে, ব্যবহারকারীদের সহজেই সংযুক্ত ডিভাইসগুলির মধ্যে স্যুইচ করার জন্য একটি UI থাকতে পারে৷
শুধুমাত্র মাল্টিপয়েন্ট প্রদানকারী.
সংযুক্ত ডিভাইসগুলির মধ্যে সক্রিয় অডিও উত্স নির্ধারণ করতে অডিও সুইচ সিকারের জন্য বার্তা স্ট্রীম APIগুলি প্রয়োগ করুন৷
বাধ্যতামূলক
মাল্টিপয়েন্ট সুইচিং বিজ্ঞপ্তি অডিও সুইচ সিকারকে সুইচিং বিজ্ঞপ্তি দেখাতে দিন। শুধুমাত্র মাল্টিপয়েন্ট প্রদানকারী.
যখন একটি মাল্টিপয়েন্ট স্যুইচিং হচ্ছে তখন সংযুক্ত অডিও সুইচ সিকারদের জানানোর জন্য মেসেজ স্ট্রীম এপিআই প্রয়োগ করুন।
বাধ্যতামূলক

বিজ্ঞাপন পেলোড

প্রদানকারী বিজ্ঞাপনে তার বর্তমান সংযোগের অবস্থা অন্তর্ভুক্ত করবে, বিজ্ঞাপনে বর্ণিত ফাস্ট পেয়ার অ্যাকাউন্ট ডেটার উপরে নির্মিত: যখন আবিষ্কার করা যায় না

মনে রাখবেন যে টেবিল 4.2 এর সংস্করণটি 0x1।

সংযোগ স্থিতি ক্ষেত্র

অক্টেট ডেটা টাইপ বর্ণনা মান বাধ্যতামূলক?
0 uint8 ক্ষেত্রের দৈর্ঘ্য এবং প্রকার
0bLLLLTTTT
  • L = বাইটে সংযোগের স্থিতির দৈর্ঘ্য
  • T = প্রকার
0bLLLL0101
  • দৈর্ঘ্য: পরিবর্তিত হয়
  • প্রকার = 0b0101
বাধ্যতামূলক
1 uint8 সংযোগের অবস্থা
0bHAFRSSSS
  • H = মাথার উপর সনাক্তকরণ
  • A = সংযোগের প্রাপ্যতা
  • F = ফোকাস মোড
  • R = স্বয়ংক্রিয়-পুনঃসংযুক্ত
  • S = সংযোগ অবস্থা
0bHAFRSSSS
বাধ্যতামূলক
2 uint8 কাস্টম ডেটা
বর্তমানে, এটিতে শুধুমাত্র সামগ্রীর ধরন রয়েছে যা বর্তমান অডিও স্ট্রিমিংয়ের ব্যবহার বর্ণনা করতে ব্যবহৃত হয়। অনুসন্ধানকারী এটি প্রদানকারীর কাছে পাঠাবে।
মানটি বর্তমান সক্রিয় স্ট্রিমিংয়ের সন্ধানকারীর কাছ থেকে বার্তা স্ট্রিমের মাধ্যমে সরবরাহকারীকে পাঠানো হয়। 0 যদি বর্তমান সক্রিয় স্ট্রিমিং সিকার থেকে না হয়। বাধ্যতামূলক
3 - var সংযুক্ত ডিভাইস বিটম্যাপ
বর্তমানে কোন ডিভাইসগুলি প্রদানকারীর সাথে সংযুক্ত রয়েছে তা দেখানোর জন্য একটি বিটম্যাপ৷ সমস্ত বন্ডেড ডিভাইস ক্রমানুসারে সাজানো হয়, একটি বন্ডেড ডিভাইসের জন্য এক বিট। সরবরাহকারীর কতগুলি বন্ডেড ডিভাইস রয়েছে তার উপর দৈর্ঘ্য নির্ভর করবে।
ম্যাপ করা বিটটি 1 এ সেট করা হয়েছে যদি ডিভাইসটি বর্তমানে প্রদানকারীর সাথে সংযুক্ত থাকে, অন্যথায় 0।
বিস্তারিত জানার জন্য সংযুক্ত ডিভাইস বিটম্যাপ দেখুন
ঐচ্ছিক

সারণি 4.1: সংযোগ স্থিতি ক্ষেত্র কাঁচা ডেটা

সংযোগ পতাকা
সংযোগের অবস্থা
সংযুক্ত ডিভাইস বিটম্যাপ

অবাঞ্ছিত সংযোগ পরিবর্তন এড়াতে, অনুসন্ধানকারীকে জানার প্রয়োজন হতে পারে যে হেডসেটটি বর্তমানে কোন ডিভাইসের সাথে সংযুক্ত রয়েছে৷ উদাহরণস্বরূপ, যখন হেডসেটটি ফোনের সাথে সংযুক্ত থাকে, তখন ব্যবহারকারী তাদের পরিবারের সদস্যদের মধ্যে কেউ ট্যাবলেটে YouTube চালু করলে সংযোগ স্যুইচিং দ্বারা বাধাগ্রস্ত হতে চান না৷

মনে রাখবেন যে এই বিটম্যাপটি বেনামী, অনুসন্ধানকারী জানতে অক্ষম যে অন্যান্য ডিভাইসগুলি প্রদানকারীর সাথে বন্ধন রয়েছে৷ উদাহরণস্বরূপ, 5টি বন্ডেড ডিভাইস নিন:

যদি বর্তমান সংযুক্ত ডিভাইসগুলি একটি ল্যাপটপ এবং একটি ট্যাবলেট হয়, তাহলে বিটম্যাপের মান হবে 0b10010000৷ অর্ডার পরিবর্তন গ্রহণযোগ্য যদি এটি অনিবার্য হয়, যেমন যখন ব্যবহারকারীরা হেডসেট ফ্যাক্টরি রিসেট করে বা যখন বন্ডেড ডিভাইসের সংখ্যা উপরের সীমাতে পৌঁছে যায়।

এলোমেলো সমাধানযোগ্য বিজ্ঞাপন

ট্র্যাকিং এড়াতে এবং ব্যবহারকারীর গোপনীয়তাকে সম্মান করতে, প্রদানকারীকে AES-CTR ব্যবহার করে অ্যাকাউন্ট কী দ্বারা ক্ষেত্রটি ঘোরানো এবং এনক্রিপ্ট করা উচিত:

 encrypted_connection_status_field = connection_status_raw_data ^ AES(Key, IV)

কোথায়

  1. কী ব্যবহার করা অ্যাকাউন্ট কী থেকে উদ্ভূত হয়েছে, যা পরবর্তী বিভাগে সংজ্ঞায়িত করা হয়েছে।

    • SHA-256 হ্যাশ ফাংশন ব্যবহার করে HKDF ফাংশন, IETF RFC 5869 দ্বারা কী তৈরি করা হয়।

        Key = HKDF(account_key, NULL, UTF8("SASS-RRD-KEY"),16)
      
    • প্রদানকারী এখানে মূল অ্যাকাউন্ট কী ব্যবহার করবে, অর্থাৎ কীটির প্রথম বাইট হল 0x04, ব্যবহারের প্যাটার্নে অন্তর্ভুক্ত নয়।

  2. IV (প্রাথমিক ভেক্টর) হল শূন্য প্যাডিং সহ অ্যাকাউন্ট কী ডেটার 2-বাইট সল্ট, অর্থাৎ IV হল কনক্যাট(লবণ, 14-বাইট জিরো)।

  3. সংযোগের স্থিতির কাঁচা ডেটা সারণি 4.1 এ সংজ্ঞায়িত করা হয়েছে, যদি সংযোগের স্থিতি পরিবর্তিত হয়, একই বিজ্ঞাপনের সময় ফ্রেমে লবণ এবং RPA পুনরায় তৈরি করা উচিত।

এটি এনক্রিপ্ট করা সংযোগ স্থিতি ক্ষেত্রটিকে একই সময়ে ঘোরাতে সাহায্য করে যেমন অ্যাকাউন্ট কী ডেটা ঘোরে৷

BLE বিজ্ঞাপনটি নিম্নরূপ গঠন করা হবে:

অক্টেট ডেটা টাইপ বর্ণনা মান বাধ্যতামূলক?
0 uint8 সংস্করণ এবং পতাকা 0x10 বাধ্যতামূলক
1 - টি অ্যাকাউন্ট কী ডেটা পরিবর্তিত হয় বাধ্যতামূলক
t+1 - s ব্যাটারি ডেটা পরিবর্তিত হয় ঐচ্ছিক
s+1 - var এলোমেলো সমাধানযোগ্য ডেটা পরিবর্তিত হয় অ্যাকাউন্ট কী তালিকা খালি না থাকলে বাধ্যতামূলক,
অন্যথায় বাদ।

সারণি 4.2: এলোমেলো সমাধানযোগ্য ডেটা সহ BLE বিজ্ঞাপন

এলোমেলো সমাধানযোগ্য ডেটা রয়েছে:

অক্টেট ডেটা টাইপ বর্ণনা মান বাধ্যতামূলক?
0 uint8 ক্ষেত্রের দৈর্ঘ্য এবং প্রকার
0bLLLLTTTT
  • L = এনক্রিপ্ট করা ডেটার দৈর্ঘ্য
  • T = প্রকার
0bLLLL0110
  • দৈর্ঘ্য: পরিবর্তিত হয়
  • প্রকার = 0b0110
বাধ্যতামূলক
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 বিজ্ঞাপনে বর্তমান সংযোগের অ্যাকাউন্টের তথ্য অন্তর্ভুক্ত করা। যদি বর্তমান সংযুক্ত ডিভাইসটি একটি অডিও সুইচ সিকার হয়, তাহলে প্রদানকারীকে এই অনুসন্ধানকারীর সাথে সম্পর্কিত অ্যাকাউন্ট কী পেতে সক্ষম হতে হবে এবং সংযোগ স্থিতি ক্ষেত্রটি এনক্রিপ্ট করতে এই অ্যাকাউন্ট কীটি ব্যবহার করতে হবে৷ যদি সংযুক্ত অডিও উৎসটি অ-অডিও সুইচ সিকার হয়, তাহলে প্রদানকারীর অতি সম্প্রতি ব্যবহৃত অ্যাকাউন্ট কী ব্যবহার করা উচিত।

অ্যাকাউন্ট কী ফিল্টার কম্পিউট করার আগে, প্রদানকারীকে অ্যাকাউন্ট কীগুলির প্রথম বাইট পরিবর্তন করতে হবে যাতে ব্যবহার প্যাটার্নে নিম্নলিখিতগুলির মধ্যে একটি অন্তর্ভুক্ত করা যায়:

  1. 0b00000100
    এই অ্যাকাউন্ট কী ব্যবহার করা হচ্ছে না।
    এটি ডিফল্ট ( অ্যাকাউন্ট কী দেখুন)।
  2. 0b00000101
    এই অ্যাকাউন্ট কীটি সবচেয়ে সাম্প্রতিক ব্যবহৃত অ্যাকাউন্ট কী।
    সংযোগ স্থিতি ক্ষেত্র এই অ্যাকাউন্ট কী দ্বারা এনক্রিপ্ট করা হয়. বর্তমান সংযোগের অবস্থার কোনো অ্যাকাউন্ট কী তথ্য নেই, এর অর্থ হতে পারে কোনো ডিভাইস সংযুক্ত নেই বা সংযুক্ত ডিভাইসটি কোনো অডিও সুইচ অনুসন্ধানকারী নয়।
  3. 0b00000110
    এই অ্যাকাউন্ট কীটি ব্যবহার করা অ্যাকাউন্ট কী।
    সংযোগ স্থিতি ক্ষেত্রটি এই অ্যাকাউন্ট কী দ্বারা এনক্রিপ্ট করা হয়েছে, এবং বর্তমান সংযুক্ত ডিভাইসটি এই অ্যাকাউন্ট কীটির সাথে যুক্ত।

অডিও সুইচ পেলোডের জন্য পরিকল্পিত

নীচের চিত্রটি অডিও সুইচ পেলোডের জন্য পরিকল্পিত দেখায়।

বার্তা

সংযুক্ত থাকাকালীন, অনুসন্ধানকারী এবং প্রদানকারী অডিও সুইচ ক্ষমতা সিঙ্ক করতে, একটি সংযোগ সুইচ ট্রিগার করতে, স্যুইচিং পছন্দ সেট করতে এবং পেতে, সংযোগের স্থিতি জানাতে এবং আরও অনেক কিছু করতে বার্তা স্ট্রীম ব্যবহার করতে পারে। আমরা নীচের মত অডিও সুইচের জন্য নির্দিষ্ট একটি বার্তা গ্রুপ এবং বার্তা কোড তৈরি করি।

বার্তা গ্রুপের নাম মান
অডিও সুইচ 0x07

প্রতিটি বার্তা কোডের জন্য অতিরিক্ত বিবরণ নিম্নলিখিত বিভাগে অন্তর্ভুক্ত করা হয়েছে।

বার্তা কোড নাম মান শুধুমাত্র মাল্টিপয়েন্ট প্রেরক উত্তরদাতা এনক্রিপ্ট করুন ম্যাক ACK
অডিও সুইচের ক্ষমতা পান 0x10 এন উভয় উভয়, কোড 0x11 এর মাধ্যমে এন এন এন
অডিও সুইচ এর ক্ষমতা বিজ্ঞপ্তি 0x11 এন উভয় উভয় এন Y Y
মাল্টিপয়েন্ট স্টেট সেট করুন 0x12 Y অন্বেষণকারী প্রদানকারী এন Y Y
সুইচিং পছন্দ সেট করুন 0x20 Y অন্বেষণকারী প্রদানকারী এন Y Y
সুইচিং পছন্দ পান 0x21 Y অন্বেষণকারী প্রদানকারী, কোড 0x22 এর মাধ্যমে এন এন এন
সুইচিং পছন্দকে জানান 0x22 Y প্রদানকারী অন্বেষণকারী এন এন এন
সক্রিয় অডিও উৎস পরিবর্তন করুন (সংযুক্ত ডিভাইসে) 0x30 Y অন্বেষণকারী প্রদানকারী এন Y Y
ফিরে যান (সংযোগ বিচ্ছিন্ন ডিভাইসে) 0x31 এন অন্বেষণকারী প্রদানকারী এন Y Y
মাল্টিপয়েন্ট-সুইচ ইভেন্ট অবহিত করুন 0x32 Y প্রদানকারী অন্বেষণকারী এন এন এন
সংযোগ স্থিতি পান 0x33 Y অন্বেষণকারী প্রদানকারী, কোড 0x34 এর মাধ্যমে এন এন এন
সংযোগের স্থিতি অবহিত করুন 0x34 Y প্রদানকারী অন্বেষণকারী Y এন এন
অডিও সুইচ শুরু সংযোগ বিজ্ঞপ্তি 0x40 এন অন্বেষণকারী প্রদানকারী এন Y Y
ব্যবহার অ্যাকাউন্ট কী নির্দেশ করুন 0x41 এন অন্বেষণকারী প্রদানকারী এন Y Y
কাস্টম ডেটা পাঠান 0x42 এন অন্বেষণকারী প্রদানকারী এন Y Y
ড্রপ সংযোগ লক্ষ্য সেট করুন 0x43 Y অন্বেষণকারী প্রদানকারী এন 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 অডিও সুইচের ক্ষমতা পান 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: অডিও সুইচের ক্ষমতা বিজ্ঞপ্তি

অডিও সুইচ ক্ষমতা পতাকা
  1. বিট 0 (অক্টেট 6, MSB): অডিও সুইচ অবস্থা

  2. বিট 1: মাল্টিপয়েন্ট কনফিগারযোগ্যতা

  3. বিট 2: মাল্টিপয়েন্ট বর্তমান অবস্থা

  4. বিট 3: মাথায় সনাক্তকরণ

  5. বিট 4: মাথার উপর সনাক্তকরণ বর্তমান অবস্থা

  6. অন্যান্য সমস্ত বিট সংরক্ষিত, ডিফল্ট 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 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: সক্রিয় অডিও উৎস পরিবর্তন করুন (সংযুক্ত ডিভাইসে)

সক্রিয় অডিও উৎস ইভেন্ট স্যুইচ করা হচ্ছে

অডিও স্যুইচ অনুসন্ধানকারীরা সর্বদা তাদের অবস্থা সঠিকভাবে নাও জানতে পারে, তাই যখন অনুসন্ধানকারী ইতিমধ্যেই সক্রিয় ডিভাইস থাকে তখন প্রদানকারীর পক্ষে "এই ডিভাইসে স্যুইচ করুন" বার্তা পাওয়া সম্ভব। এই ক্ষেত্রে, অনুসন্ধানকারীকে সঠিক UI দেখানোর জন্য, প্রদানকারী ত্রুটির কারণ, 0x4 - অপ্রয়োজনীয় ডিভাইস ক্রিয়া সহ একটি NAK পাঠাতে পারে।

ফিরে যান (সংযোগ বিচ্ছিন্ন ডিভাইসে)

যদি সংযোগ স্যুইচিং অবাঞ্ছিত হয়, ব্যবহারকারীরা সুইচিংটি প্রত্যাবর্তন করতে পারেন এবং কিছু পরিস্থিতিতে, বিঘ্ন কমাতে অডিও সংযোগ পুনরুদ্ধার করা বোধগম্য। অন্বেষক নীচের বার্তাটি ব্যবহার করে ফিরে যেতে ট্রিগার করবে:

অক্টেট ডেটা টাইপ বর্ণনা মান
0 uint8 অডিও সুইচ 0x07
1 uint8 ফিরে যান (সংযোগ বিচ্ছিন্ন ডিভাইসে) 0x31
2 - 3 uint16 অতিরিক্ত ডেটা দৈর্ঘ্য 17
4 uint8 ইভেন্ট ফিরে যান পরিবর্তিত হয়
0x01: ফিরে যান
0x02: ফিরে যান এবং খেলা আবার শুরু করুন
5 - 12 বার্তা না পরিবর্তিত হয়
13 - 20 বার্তা প্রমাণীকরণ কোড পরিবর্তিত হয়

সারণি 4.3.3.1: ফিরে যান (সংযোগ বিচ্ছিন্ন ডিভাইসে)

মাল্টিপয়েন্ট প্রদানকারীদের জন্য, একটি সংযোগ সুইচ করতে, একটি প্রদানকারী একটি অডিও উৎস ডিভাইসের সাথে সংযোগ বাদ দিতে পারে এবং অন্য অডিও উত্সে অডিও সেশনটি বিরতি দিতে পারে৷ উদাহরণস্বরূপ, অনুমান করুন মাল্টিপয়েন্ট হেডসেটটি একটি ট্যাবলেট এবং একটি 3য় সমর্থিত অডিও সুইচ ডিভাইসের সাথে সংযুক্ত৷ ব্যবহারকারী ট্যাবলেটে ভিডিও দেখছেন যখন তাদের ফোনে একটি ইনকামিং কল আছে। ফোনটি হেডসেটে একটি সংযোগ সুইচ ট্রিগার করবে, যা ফোনের সাথে সংযোগ করার জন্য 3য় ডিভাইসের সংযোগটি ড্রপ করতে হবে, পাশাপাশি ফোন থেকে রিংটোন পেতে ট্যাবলেটে মিডিয়া সেশনকে বিরতি দিতে হবে৷ ব্যবহারকারী কল প্রত্যাখ্যান করলে, ফোনটি হেডসেটটিকে "ব্যাক সুইচ এবং প্লে আবার শুরু করতে" বলতে পারে। এই অনুরোধটি পাওয়ার পরে, হেডসেটটিকে অবশ্যই 3য় ডিভাইসের সাথে পুনরায় সংযোগ করতে হবে এবং ট্যাবলেটে বিরতি দেওয়া ভিডিওটি পুনরায় চালু করতে হবে৷

মাল্টিপয়েন্ট-সুইচ ইভেন্ট অবহিত করুন

একটি মাল্টিপয়েন্ট-সুইচ ইভেন্ট সংঘটিত হওয়ার বিষয়ে ব্যবহারকারীদের সচেতন করতে, অডিও সুইচ সিকার ব্যবহারকারীদের একটি বিজ্ঞপ্তি দেখাতে পারে। প্রদানকারীর উচিত সংযুক্ত অডিও সুইচ অনুসন্ধানকারীদের সুইচিং ইভেন্ট সম্পর্কে অবহিত করা।

অক্টেট ডেটা টাইপ বর্ণনা মান
0 uint8 অডিও সুইচ 0x07
1 uint8 মাল্টিপয়েন্ট-সুইচ ইভেন্ট অবহিত করুন
অডিও সুইচ সিকার থেকে নন-অডিও সুইচ সিকার, নন-অডিও স্যুইচ সিকার থেকে অডিও সুইচ সিকার এবং অডিও স্যুইচ সিকার থেকে অডিও সুইচ সিকার সহ প্রতিটি সুইচে প্রদানকারীর এটি পাঠানো উচিত
0x32
2 - 3 uint16 অতিরিক্ত ডেটা দৈর্ঘ্য পরিবর্তিত হয়
4 uint8 কারণ পরিবর্তন পরিবর্তিত হয়
0x00: অনির্দিষ্ট
0x01: A2DP স্ট্রিমিং
0x02: HFP
5 uint8 টার্গেট ডিভাইস পরিবর্তিত হয়
0x01: এই ডিভাইস
0x02: আরেকটি সংযুক্ত ডিভাইস
6 - এন utf8 টার্গেট ডিভাইসের নাম
যদি টার্গেট ডিভাইসটি অডিও সুইচ সিকার হয়, সেকারের পাঠানো নাম ব্যবহার করে, অন্যথায় BT নাম ব্যবহার করে, যদি প্রযোজ্য না হয়, তার ঠিকানার শেষ 2 বাইট ব্যবহার করে
পরিবর্তিত হয়

সারণি 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+1 - n+8 বার্তা না পরিবর্তিত হয়

সারণি 4.3.3.4: সংযোগের স্থিতি অবহিত করুন

এনক্রিপ্ট করা সংযোগ স্থিতি বার্তা

 encrypted_connection_status = connection_status_raw_data ^ AES(Key, IV)

কোথায়:

অডিও সুইচ শুরু সংযোগ বিজ্ঞপ্তি

অডিও সুইচ প্রদানকারীদের জানার প্রয়োজন হতে পারে যে সংযোগ স্যুইচিং অডিও সুইচ দ্বারা ট্রিগার হয়েছে কিনা তা ভিন্ন প্রতিক্রিয়ার জন্য, যেমন অডিও সুইচ ইভেন্টের জন্য ইয়ারকন অক্ষম করুন। এই সংযোগটি একটি অডিও সুইচ সূচিত সংযোগ ছিল তা প্রদানকারীকে অবহিত করার জন্য অনুসন্ধানকারী একটি বার্তা পাঠায়৷

অক্টেট ডেটা টাইপ বর্ণনা মান
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 লাইব্রেরি দেখুন