यूनिफ़ाइड प्लान एसडीपी फ़ॉर्मैट - ट्रांज़िशन प्लान

Google, Chrome के WebRTC को लागू करने के लिए, मौजूदा एसडीपी फ़ॉर्मैट (“प्लान B”) को मानक शर्तों के हिसाब से बनाए गए फ़ॉर्मैट (“यूनिफ़ाइड प्लान”, ड्राफ़्ट-ietf-rtcweb-jsep) से अगली कुछ तिमाहियों में बदल देगा.

इस प्लान में पांच चरणों और एक अस्थायी एपीआई सुविधा शामिल है.

इसका असर किस पर पड़ेगा

जो लोग एक ही प्रोफ़ाइल में एक से ज़्यादा ऑडियो ट्रैक या एक से ज़्यादा वीडियो ट्रैक इस्तेमाल करते हैं उन्हें यूनिफ़ाइड प्लान के तहत अपने प्रॉडक्ट की जांच करनी होगी. साथ ही, उन्हें अपने हिसाब से इस योजना में बदलाव करना होगा. अगर कॉल किसी गैर-Chrome एंडपॉइंट से शुरू किया जाता है और Chrome से जवाब दिया जाता है, तो ऑफ़र का फ़ॉर्म बदलना पड़ सकता है. जो लोग एसडीपी पार्सिंग और msid एट्रिब्यूट के बारे में ज़्यादा जानकारी देते हैं उन्हें यह देखना होगा कि उनका पार्सिंग कोड नए फ़ॉर्मैट (a=msid) का इस्तेमाल करता है या नहीं. ऐप्लिकेशन में किए जाने वाले बदलावों की ज़रूरत होगी या नहीं. साथ ही, यह भी दिखेगा कि ऐप्लिकेशन में किस तरह के बदलाव करने होंगे. हमें लगता है कि हर RTCPeerConnection पर सिर्फ़ एक ऑडियो और एक वीडियो ट्रैक का इस्तेमाल करने वाले सभी ऐप्लिकेशन पर इस बदलाव का कोई असर नहीं होगा.

एपीआई की सुविधा

हम RTCPeerConnection के आरटीसी कॉन्फ़िगरेशन में एक नई सुविधा जोड़ रहे हैं:

enum SdpSemantics {
  "plan-b",
  "unified-plan"
};


partial dictionary RTCConfiguration {
   SdpSemantics sdpSemantics;
}

RTCConfiguration को RTCPeerConnection के कंस्ट्रक्टर को पास किया जा सकता है. साथ ही, मिलने वाले सभी ऑफ़र और जवाब यूनिफ़ाइड प्लान फ़ॉर्मैट में होंगे. SD की जानकारी और setRemoteDescription के लिए किए गए कॉल में, यूनिफ़ाइड प्लान फ़ॉर्मैट में भी एसडीपी की उम्मीद होगी. अगर यह Chrome के पुराने फ़ॉर्मैट में है, तो पहला ऑडियो ट्रैक और पहले वीडियो ट्रैक को छोड़कर बाकी सभी को अनदेखा कर दिया जाएगा.

एक कमांड लाइन फ़्लैग भी मौजूद है (-Chrome M71 और इसके बाद के वर्शन में -enable-features=RTCUnifiedPlanByDefault, -शुरुआती-blink-features=RTCUnifiedPlanByDefault के पुराने वर्शन में) जो इस फ़्लैग की डिफ़ॉल्ट वैल्यू को "यूनिफ़ाइड प्लान" पर सेट करने की अनुमति देता है.

चरण

पहला चरण: यूनिफ़ाइड प्लान लागू करना

इस चरण में, यूनिफ़ाइड प्लान को M65 से उपलब्ध एक प्रयोग के फ़्लैग के तहत बनाया गया था. दूसरे चरण तक, “–enable-blink-features=RTCUnifiedPlan” का इस्तेमाल करके, Chrome कैनरी से जांच करना सबसे अच्छा था.

दूसरा चरण: एपीआई की सुविधा को आम तौर पर उपलब्ध कराना

M69 में रिलीज़ किया गया (बीटा अगस्त 2018, स्थिर सितंबर 2018)

इस चरण में, sdpSemantics फ़्लैग की डिफ़ॉल्ट वैल्यू "प्लान-b" थी. दूसरे चरण में, एसडीपी फ़ॉर्मैट पर निर्भर करने वाले लोगों को जांच की ज़रूरत थी. इससे यह पता लगाया जा सकता था कि यूनिफ़ाइड प्लान का इस्तेमाल करने पर उनके ऐप्लिकेशन काम करते हैं या नहीं. Firefox के साथ काम करने वाले ऐप्लिकेशन के लिए, हमें उम्मीद है कि यह एक बहुत ही आसान तरीका है: जैसा कि आप Firefox के लिए करते हैं.

sdpSemantics फ़्लैग की डिफ़ॉल्ट वैल्यू "chrome://flags" में बदली जा सकती है; "WebRTC: डिफ़ॉल्ट रूप से यूनिफ़ाइड प्लान एसडीपी सेमेंटिक्स का इस्तेमाल करें" सुविधा ढूंढें.

तीसरा चरण: डिफ़ॉल्ट को स्विच करना

स्विच करने की तारीख M72 (बीटा दिसंबर 2018, जनवरी 2019) थी.

इस चरण में, हमने sdpSemantics फ़्लैग की डिफ़ॉल्ट वैल्यू को बदलकर “यूनिफ़ाइड प्लान” कर दिया है. जिन ऐप्लिकेशन को पता चला कि उन्हें पिछले व्यवहार को वापस पाने के लिए, sdpSemantics फ़्लैग को साफ़ तौर पर “प्लान-b” में बदलने में ज़्यादा समय लगा था.

चरण 4: “प्लान B” बनाएं

इस चरण में, sdpSemantics फ़्लैग को "plan-b&कोटेशन; पर सेट किया जाता है; जिससे अपवाद का सामना करना पड़ता है. यह फ़िल्म M93 से कैनरी में चली रही है. M96 में इस अपवाद को सभी चैनलों पर लागू किया जा रहा था, जिसमें स्टेबल चैनल भी शामिल है.

इस चरण के दौरान, समर्थन नहीं होने पर मुफ़्त में आज़माने की सुविधा उपलब्ध थी. इससे, प्लान बी को बिना किसी अपवाद के इस्तेमाल करने की अनुमति नहीं थी. हालांकि, 25 मई, 2022 को यह सुविधा काम नहीं करेगी.

चरण 5: Chromium से “प्लान B” हटाएं

ट्रायल खत्म होने के बाद, Chrome से प्लान B हटा दिया जाएगा. इस समय, sdpSemantics फ़्लैग हटा दिया जाएगा. इसे "plan-b&कोटेशन; पर सेट करने की कोशिश करने से कोई अपवाद नहीं होगा, लेकिन इसका कोई असर नहीं होगा.

योजना B अब भी खास झंडे या खास बिल्ड के साथ उपलब्ध है. हालांकि, 2022 की दूसरी तिमाही में कोड को पूरी तरह से हटाया जा सकता है.

फ़ेज़ 6: यूआरएल से ”प्लान B” को बंद करें और हटाएं

प्लान B को WebRTC में पहले से ही 'हटाया गया' के तौर पर मार्क किया गया है. हालांकि, यह अब भी उपलब्ध है. साल 2023 में हटा दिया जाना चाहिए.

आपके आवेदन को यूनिफ़ाइड प्लान के लिए तैयार करना

प्लान B और यूनिफ़ाइड प्लान के अंतर की ज़्यादा जानकारी और अपने आवेदन को यूनिफ़ाइड प्लान की तैयारी के लिए अपडेट करने का तरीका जानने के लिए, “यूनिफ़ाइड प्लान” का ट्रांज़िशन गाइड (JavaScript) देखें

नेटिव (C++) ऐप्लिकेशन के लिए, “अपने नेटिव/मोबाइल ऐप्लिकेशन को यूनिफ़ाइड प्लान में माइग्रेट करना” वाला दस्तावेज़ देखें