Google আগামী কয়েক কোয়ার্টারে ক্রোমের ওয়েবআরটিসি বাস্তবায়নকে বর্তমান এসডিপি ফরম্যাট (যাকে "প্ল্যান বি" বলা হয়) থেকে একটি মানসম্মত ফর্ম্যাটে ("ইউনিফাইড প্ল্যান", ড্রাফ্ট-ietf-rtcweb-jsep) রূপান্তর করার পরিকল্পনা করছে৷
পরিকল্পনায় 5টি পর্যায় এবং একটি ক্ষণস্থায়ী API বৈশিষ্ট্য রয়েছে।
কারা ক্ষতিগ্রস্ত হবে
যারা একক পিয়ার কানেকশনে একাধিক অডিও ট্র্যাক বা একাধিক ভিডিও ট্র্যাক ব্যবহার করেন তাদের ইউনিফাইড প্ল্যানের অধীনে তাদের পণ্য পরীক্ষা করতে হবে এবং সেই অনুযায়ী মানিয়ে নিতে হবে। যে ক্ষেত্রে একটি কল একটি নন-Chrome এন্ডপয়েন্ট থেকে শুরু করা হয় এবং Chrome দ্বারা উত্তর দেওয়া হয়, সেই ক্ষেত্রে অফারের ফর্ম পরিবর্তন করতে হতে পারে। যারা বিস্তারিত SDP পার্সিং করেন এবং msid অ্যাট্রিবিউটের যত্ন নেন তাদের পরীক্ষা করতে হবে যে তাদের পার্সিং কোড নতুন ফর্ম্যাট (a=msid) বেছে নিয়েছে। পরিবর্তনের প্রয়োজন হবে কিনা এবং অ্যাপগুলি কীভাবে পরিবর্তন করতে হবে তার বিশদ বিবরণ অ্যাপ্লিকেশন নির্ভর হবে। আমরা মনে করি যে RTCPeerConnection প্রতি শুধুমাত্র একটি অডিও এবং একটি ভিডিও ট্র্যাক ব্যবহার করে এমন প্রায় সমস্ত অ্যাপ্লিকেশন পরিবর্তন দ্বারা প্রভাবিত হবে না।
API বৈশিষ্ট্য
আমরা RTCPeerConnection এর RTCC কনফিগারেশনে একটি নতুন বৈশিষ্ট্য যোগ করছি:
enum SdpSemantics {
"plan-b",
"unified-plan"
};
partial dictionary RTCConfiguration {
SdpSemantics sdpSemantics;
}
RTCC কনফিগারেশনটি RTCPeerConnection-এর কনস্ট্রাক্টরের কাছে পাঠানো যেতে পারে, এবং তৈরি করা সমস্ত অফার এবং উত্তরগুলি ইউনিফাইড প্ল্যান ফর্ম্যাটে হবে। setLocalDescription এবং setRemoteDescription-এ কল করলেও SDP ইউনিফাইড প্ল্যান ফরম্যাটে হবে বলে আশা করবে; যদি এটি লিগ্যাসি ক্রোম ফরম্যাটে হয়, তাহলে প্রথম অডিও ট্র্যাক এবং প্রথম ভিডিও ট্র্যাক ছাড়া বাকি সবগুলি উপেক্ষা করা হবে৷
এছাড়াও একটি কমান্ড লাইন পতাকা রয়েছে (Chrome M71 এবং তার উপরে -enable-features=RTCUnifiedPlanByDefault, -enable-blink-features=RTCUnifiedPlanByDefault পূর্ববর্তী সংস্করণগুলিতে) যা এই পতাকার ডিফল্ট মানটিকে "ইউনিফাইড-প্ল্যান" এ সেট করার অনুমতি দেয়।
পর্যায়গুলি
পর্যায় 1: ইউনিফাইড প্ল্যান বাস্তবায়ন করুন
এই পর্যায়ে, M65 সাল থেকে উপলব্ধ একটি পরীক্ষামূলক পতাকার পিছনে ইউনিফাইড প্ল্যান তৈরি করা হচ্ছিল। ফেজ 2 পর্যন্ত, "–enable-blink-features=RTCUnifiedPlan" ব্যবহার করে Chrome Canary-এর সাথে পরীক্ষা করা সবচেয়ে বুদ্ধিমানের কাজ ছিল।
পর্যায় 2: API বৈশিষ্ট্যটি সাধারণভাবে উপলব্ধ করুন
M69 এ প্রকাশিত হয়েছে (বিটা আগস্ট 2018, স্থিতিশীল সেপ্টেম্বর 2018)
এই পর্যায়ে, sdpSemantics পতাকার ডিফল্ট মান ছিল "প্ল্যান-বি"। ফেজ 2-এ, যাদের এসডিপি ফরম্যাটের উপর নির্ভরশীল বাস্তবায়ন ছিল তারা ইউনিফাইড প্ল্যান ব্যবহার করার সময় তাদের অ্যাপ্লিকেশনগুলি কাজ করে কিনা তা দেখার জন্য পরীক্ষা চালানোর আশা করা হয়েছিল। ফায়ারফক্স সমর্থন করে এমন অ্যাপ্লিকেশনগুলির জন্য, আমরা এটি একটি খুব সাধারণ অনুশীলন বলে আশা করি: আপনি ফায়ারফক্সের জন্য যেমনটি করবেন ঠিক তেমনটি করুন।
sdpSemantics পতাকার ডিফল্ট মান "chrome://flags" এ পরিবর্তন করা যেতে পারে; “WebRTC: ইউনিফাইড প্ল্যান এসডিপি শব্দার্থবিদ্যা ডিফল্টরূপে ব্যবহার করুন” বৈশিষ্ট্যটি সন্ধান করুন।
পর্যায় 3: ডিফল্ট পরিবর্তন করুন
স্যুইচের তারিখ ছিল M72 (বিটা ডিসেম্বর 2018, স্থিতিশীল জানুয়ারি 2019)।
এই পর্বে, আমরা sdpSemantics পতাকার ডিফল্ট মানকে "ইউনিফাইড-প্ল্যান" এ পরিবর্তন করেছি। যে অ্যাপ্লিকেশনগুলি আবিষ্কার করেছে যে তাদের আগের আচরণ পুনরুদ্ধার করার জন্য sdpSemantics পতাকাকে স্পষ্টভাবে "প্ল্যান-বি" তে রূপান্তর করতে আরও সময় প্রয়োজন।
পর্যায় 4: "প্ল্যান বি" নিক্ষেপ করুন
এই পর্যায়ে, sdpSemantics পতাকাকে "প্ল্যান-বি" তে সেট করার ফলে একটি ব্যতিক্রম নিক্ষেপ করা হয়। এটি M93 থেকে ক্যানারিতে নিক্ষেপ করা হয়েছে। M96 হিসাবে, স্টেবল সহ সমস্ত চ্যানেলে ব্যতিক্রম ছিল।
এই পর্যায়ে, একটি অবচয় ট্রায়াল উপলব্ধ ছিল যা ব্যতিক্রম নিক্ষেপ ছাড়াই প্ল্যান বি ব্যবহার করার অনুমতি দেয় কিন্তু 25 মে, 2022 থেকে ট্রায়ালটি কাজ করা বন্ধ করে দেয়।
ধাপ 5: Chromium থেকে "প্ল্যান বি" সরান
ট্রায়াল শেষ হওয়ার পরে, প্ল্যান বি Chrome থেকে সরানো হবে। এই সময়ে, sdpSemantics পতাকা সরানো হবে। এটিকে "প্ল্যান-বি" তে সেট করার চেষ্টা করা একটি ব্যতিক্রম নিক্ষেপ করবে না, তবে এটি আর কোনো প্রভাব ফেলবে না।
প্ল্যান বি এখনও বিশেষ পতাকা বা বিশেষ বিল্ডগুলির পিছনে উপলব্ধ রয়েছে তবে সম্পূর্ণ কোড অপসারণ H2, 2022 এ ঘটবে।
ফেজ 6: WebRTC থেকে "প্ল্যান বি" বাতিল করুন এবং সরান
প্ল্যান B ইতিমধ্যেই WebRTC-এ অবচিত হিসাবে চিহ্নিত করা হয়েছে, কিন্তু এটি এখনও উপলব্ধ। 2023 সালে অপসারণ হওয়া উচিত।
ইউনিফাইড প্ল্যানের জন্য আপনার আবেদন প্রস্তুত করা হচ্ছে
প্ল্যান বি এবং ইউনিফাইড প্ল্যানের পার্থক্য সম্পর্কে বিস্তারিত তথ্যের জন্য এবং ইউনিফাইড প্ল্যানের প্রস্তুতির জন্য কীভাবে আপনার আবেদন আপডেট করতে হবে, দেখুন "ইউনিফাইড প্ল্যান" ট্রানজিশন গাইড (জাভাস্ক্রিপ্ট)
নেটিভ (C++) অ্যাপ্লিকেশনের জন্য, "ইউনিফাইড প্ল্যানে আপনার নেটিভ/মোবাইল অ্যাপ্লিকেশন স্থানান্তর করা" নথিটি দেখুন
,Google আগামী কয়েক কোয়ার্টারে ক্রোমের ওয়েবআরটিসি বাস্তবায়নকে বর্তমান এসডিপি ফরম্যাট (যাকে "প্ল্যান বি" বলা হয়) থেকে একটি মানসম্মত ফর্ম্যাটে ("ইউনিফাইড প্ল্যান", ড্রাফ্ট-ietf-rtcweb-jsep) রূপান্তর করার পরিকল্পনা করছে৷
পরিকল্পনায় 5টি পর্যায় এবং একটি ক্ষণস্থায়ী API বৈশিষ্ট্য রয়েছে।
কারা ক্ষতিগ্রস্ত হবে
যারা একক পিয়ার কানেকশনে একাধিক অডিও ট্র্যাক বা একাধিক ভিডিও ট্র্যাক ব্যবহার করেন তাদের ইউনিফাইড প্ল্যানের অধীনে তাদের পণ্য পরীক্ষা করতে হবে এবং সেই অনুযায়ী মানিয়ে নিতে হবে। যে ক্ষেত্রে একটি কল একটি নন-Chrome এন্ডপয়েন্ট থেকে শুরু করা হয় এবং Chrome দ্বারা উত্তর দেওয়া হয়, সেই ক্ষেত্রে অফারের ফর্ম পরিবর্তন করতে হতে পারে। যারা বিস্তারিত SDP পার্সিং করেন এবং msid অ্যাট্রিবিউটের যত্ন নেন তাদের পরীক্ষা করতে হবে যে তাদের পার্সিং কোড নতুন ফর্ম্যাট (a=msid) বেছে নিয়েছে। পরিবর্তনের প্রয়োজন হবে কিনা এবং অ্যাপগুলি কীভাবে পরিবর্তন করতে হবে তার বিশদ বিবরণ অ্যাপ্লিকেশন নির্ভর হবে। আমরা মনে করি যে RTCPeerConnection প্রতি শুধুমাত্র একটি অডিও এবং একটি ভিডিও ট্র্যাক ব্যবহার করে এমন প্রায় সমস্ত অ্যাপ্লিকেশন পরিবর্তন দ্বারা প্রভাবিত হবে না।
API বৈশিষ্ট্য
আমরা RTCPeerConnection এর RTCC কনফিগারেশনে একটি নতুন বৈশিষ্ট্য যোগ করছি:
enum SdpSemantics {
"plan-b",
"unified-plan"
};
partial dictionary RTCConfiguration {
SdpSemantics sdpSemantics;
}
RTCC কনফিগারেশনটি RTCPeerConnection-এর কনস্ট্রাক্টরের কাছে পাঠানো যেতে পারে, এবং তৈরি করা সমস্ত অফার এবং উত্তরগুলি ইউনিফাইড প্ল্যান ফর্ম্যাটে হবে। setLocalDescription এবং setRemoteDescription-এ কল করলেও SDP ইউনিফাইড প্ল্যান ফরম্যাটে হবে বলে আশা করবে; যদি এটি লিগ্যাসি ক্রোম ফরম্যাটে হয়, তাহলে প্রথম অডিও ট্র্যাক এবং প্রথম ভিডিও ট্র্যাক ছাড়া বাকি সবগুলি উপেক্ষা করা হবে৷
এছাড়াও একটি কমান্ড লাইন পতাকা রয়েছে (Chrome M71 এবং তার উপরে -enable-features=RTCUnifiedPlanByDefault, -enable-blink-features=RTCUnifiedPlanByDefault পূর্ববর্তী সংস্করণগুলিতে) যা এই পতাকার ডিফল্ট মানটিকে "ইউনিফাইড-প্ল্যান" এ সেট করার অনুমতি দেয়।
পর্যায়গুলি
পর্যায় 1: ইউনিফাইড প্ল্যান বাস্তবায়ন করুন
এই পর্যায়ে, M65 সাল থেকে উপলব্ধ একটি পরীক্ষামূলক পতাকার পিছনে ইউনিফাইড প্ল্যান তৈরি করা হচ্ছিল। ফেজ 2 পর্যন্ত, "–enable-blink-features=RTCUnifiedPlan" ব্যবহার করে Chrome Canary-এর সাথে পরীক্ষা করা সবচেয়ে বুদ্ধিমানের কাজ ছিল।
পর্যায় 2: API বৈশিষ্ট্যটি সাধারণভাবে উপলব্ধ করুন
M69 এ প্রকাশিত হয়েছে (বিটা আগস্ট 2018, স্থিতিশীল সেপ্টেম্বর 2018)
এই পর্যায়ে, sdpSemantics পতাকার ডিফল্ট মান ছিল "প্ল্যান-বি"। ফেজ 2-এ, যাদের এসডিপি ফরম্যাটের উপর নির্ভরশীল বাস্তবায়ন ছিল তারা ইউনিফাইড প্ল্যান ব্যবহার করার সময় তাদের অ্যাপ্লিকেশনগুলি কাজ করে কিনা তা দেখার জন্য পরীক্ষা চালানোর আশা করা হয়েছিল। ফায়ারফক্স সমর্থন করে এমন অ্যাপ্লিকেশনগুলির জন্য, আমরা এটি একটি খুব সাধারণ অনুশীলন বলে আশা করি: আপনি ফায়ারফক্সের জন্য যেমনটি করবেন ঠিক তেমনটি করুন।
sdpSemantics পতাকার ডিফল্ট মান "chrome://flags" এ পরিবর্তন করা যেতে পারে; “WebRTC: ইউনিফাইড প্ল্যান এসডিপি শব্দার্থবিদ্যা ডিফল্টরূপে ব্যবহার করুন” বৈশিষ্ট্যটি সন্ধান করুন।
পর্যায় 3: ডিফল্ট পরিবর্তন করুন
স্যুইচের তারিখ ছিল M72 (বিটা ডিসেম্বর 2018, স্থিতিশীল জানুয়ারি 2019)।
এই পর্বে, আমরা sdpSemantics পতাকার ডিফল্ট মানকে "ইউনিফাইড-প্ল্যান" এ পরিবর্তন করেছি। যে অ্যাপ্লিকেশনগুলি আবিষ্কার করেছে যে তাদের আগের আচরণ পুনরুদ্ধার করার জন্য sdpSemantics পতাকাকে স্পষ্টভাবে "প্ল্যান-বি" তে রূপান্তর করতে আরও সময় প্রয়োজন।
পর্যায় 4: "প্ল্যান বি" নিক্ষেপ করুন
এই পর্বে, sdpSemantics পতাকাকে "প্ল্যান-বি" তে সেট করার ফলে একটি ব্যতিক্রম নিক্ষেপ করা হয়। এটি M93 থেকে ক্যানারিতে নিক্ষেপ করা হয়েছে। M96 হিসাবে, স্টেবল সহ সমস্ত চ্যানেলে ব্যতিক্রম ছিল।
এই পর্যায়ে, একটি অবচয় ট্রায়াল উপলব্ধ ছিল যা ব্যতিক্রম নিক্ষেপ ছাড়াই প্ল্যান বি ব্যবহার করার অনুমতি দেয় কিন্তু 25 মে, 2022 থেকে ট্রায়ালটি কাজ করা বন্ধ করে দেয়।
ধাপ 5: Chromium থেকে "প্ল্যান বি" সরান
ট্রায়াল শেষ হওয়ার পরে, প্ল্যান বি Chrome থেকে সরানো হবে। এই সময়ে, sdpSemantics পতাকা সরানো হবে। এটিকে "প্ল্যান-বি" তে সেট করার চেষ্টা করা একটি ব্যতিক্রম নিক্ষেপ করবে না, তবে এটি আর কোনো প্রভাব ফেলবে না।
প্ল্যান বি এখনও বিশেষ পতাকা বা বিশেষ বিল্ডগুলির পিছনে উপলব্ধ রয়েছে তবে সম্পূর্ণ কোড অপসারণ H2, 2022 এ ঘটবে।
ফেজ 6: WebRTC থেকে "প্ল্যান বি" বাতিল করুন এবং সরান
প্ল্যান B ইতিমধ্যেই WebRTC-এ অবচিত হিসাবে চিহ্নিত করা হয়েছে, কিন্তু এটি এখনও উপলব্ধ। 2023 সালে অপসারণ হওয়া উচিত।
ইউনিফাইড প্ল্যানের জন্য আপনার আবেদন প্রস্তুত করা হচ্ছে
প্ল্যান বি এবং ইউনিফাইড প্ল্যানের পার্থক্য সম্পর্কে বিস্তারিত তথ্যের জন্য এবং ইউনিফাইড প্ল্যানের প্রস্তুতির জন্য কীভাবে আপনার আবেদন আপডেট করতে হবে, দেখুন "ইউনিফাইড প্ল্যান" ট্রানজিশন গাইড (জাভাস্ক্রিপ্ট)
নেটিভ (C++) অ্যাপ্লিকেশনের জন্য, "ইউনিফাইড প্ল্যানে আপনার নেটিভ/মোবাইল অ্যাপ্লিকেশন স্থানান্তর করা" নথিটি দেখুন