تخطّط Google لنقل عملية تنفيذ WebRTC في Chrome من تنسيق SDP الحالي (المعروف باسم "الخطة ب") إلى تنسيق متوافق مع المعايير ("الخطة الموحدة"، المسودة ietf-rtcweb-jsep) خلال الربعَين التاليَين.
تتضمّن الخطة 5 مراحل وميزة واحدة لواجهة برمجة التطبيقات المؤقتة.
المستخدمون المتأثرون
على المستخدمين الذين يستخدمون مقاطع صوتية متعددة أو مقاطع فيديو متعددة في اتّصال وحيد عبر واجهة برمجة التطبيقات PeerConnection اختبار منتجهم ضمن "الخطة الموحّدة" والتكيّف مع التغييرات المتعلّقة بها. في حال بدء مكالمة من نقطة نهاية غير Chrome وردّ Chrome عليها، قد يكون من الضروري تغيير شكل العرض. على الأشخاص الذين يقومون بتحليل ملفات SDP التفصيلي ويهتمون بسمات msid التحقّق من أنّ رمز التحليل يرصد التنسيق الجديد (a=msid). تعتمد تفاصيل ما إذا كان مطلوبًا إجراء تغييرات وكيفية تغيير التطبيقات على التطبيق المعني. نعتقد أنّ جميع التطبيقات تقريبًا التي تستخدم مقطعًا صوتيًا واحدًا ومقطع فيديو واحدًا فقط لكل RTCPeerConnection لن تتأثر بهذا التغيير.
ميزة واجهة برمجة التطبيقات
نحن بصدد إضافة ميزة جديدة إلى RTCConfiguration في RTCPeerConnection:
enum SdpSemantics {
"plan-b",
"unified-plan"
};
partial dictionary RTCConfiguration {
SdpSemantics sdpSemantics;
}
يمكن تمرير RTCConfiguration إلى مُنشئ RTCPeerConnection، وسيتم إنشاء جميع العروض والإجابات بتنسيق Unified Plan. ستتوقع أيضًا طلبات setLocalDescription وsetRemoteDescription أن يكون ملف SDP بتنسيق Unified Plan. وإذا كان بتنسيق Chrome القديم، سيتم تجاهل كل المقاطع الصوتية والفيديو باستثناء المقطع الصوتي الأول ومقطع الفيديو الأول.
تتوفّر أيضًا علامة سطر أوامر (–enable-features=RTCUnifiedPlanByDefault في Chrome M71 والإصدارات الأحدث، و–enable-blink-features=RTCUnifiedPlanByDefault في الإصدارات الأقدم) تتيح ضبط القيمة التلقائية لهذه العلامة على "unified-plan".
المراحل
المرحلة 1: تنفيذ "الخطة الموحدة"
في هذه المرحلة، كان يتم تطوير "الخطة الموحدة" من خلال علامة تجريبية متاحة منذ الإصدار 65 من "إعلانات شبكة البحث". حتى المرحلة 2، كان من الأفضل إجراء الاختبار باستخدام Chrome Canary باستخدام "--enable-blink-features=RTCUnifiedPlan".
المرحلة 2: إتاحة ميزة واجهة برمجة التطبيقات للجمهور العام
تم طرحها في الإصدار 69 (الإصدار التجريبي في آب/أغسطس 2018 والإصدار الثابت في أيلول/سبتمبر 2018)
في هذه المرحلة، كانت القيمة التلقائية لعلامة sdpSemantics هي "plan-b". في المرحلة 2، كان من المتوقّع أن يُجري المستخدمون الذين لديهم عمليات تنفيذ تعتمد على تنسيق SDP اختبارات لمعرفة ما إذا كانت تطبيقاتهم تعمل عند استخدام "الخطة الموحّدة". بالنسبة إلى التطبيقات المتوافقة مع Firefox، نتوقع أن يكون هذا الإجراء بسيطًا جدًا: ما عليك سوى اتّباع الخطوات نفسها التي تتّبعها في Firefox.
يمكن تغيير القيمة التلقائية للعلامة sdpSemantics في chrome://flags. ابحث عن الميزة "WebRTC: استخدام Semantics SDP للخطّة الموحّدة تلقائيًا".
المرحلة 3: تبديل الإعداد التلقائي
كان تاريخ التبديل هو M72 (الإصدار التجريبي في كانون الأول/ديسمبر 2018، والإصدار الثابت في كانون الثاني/يناير 2019).
في هذه المرحلة، غيّرنا القيمة التلقائية لعلامة sdpSemantics إلى "unified-plan". أما التطبيقات التي اكتشفت أنّها بحاجة إلى مزيد من الوقت للتبديل، فغيّرت علامة sdpSemantics صراحةً إلى "plan-b" لاستعادة السلوك السابق.
المرحلة 4: تنفيذ "الخطة ب"
في هذه المرحلة، يؤدي ضبط علامة sdpSemantics على "plan-b" إلى طرح استثناء. لقد تم طرحه في Canary منذ الإصدار M93. اعتبارًا من الإصدار M96، كان يتم طرح الاستثناء في جميع القنوات، بما في ذلك الإصدار الثابت.
خلال هذه المرحلة، كانت فترة تجريبية لإيقاف الميزة نهائيًا متوفرة، ما سمح باستخدام الخطة ب بدون طرح استثناء، ولكن توقفت هذه الميزة عن العمل في 25 أيار (مايو) 2022.
المرحلة 5: إزالة "الخطة ب" من Chromium
بعد انتهاء الفترة التجريبية، ستتم إزالة "الخطة ب" من Chrome. في هذه المرحلة، ستتم إزالة علامة sdpSemantics. ولن يؤدي محاولة ضبطه على "خطة-ب" إلى طرح استثناء، ولكن لن يكون له أي تأثير بعد ذلك.
لا تزال الخطة "ب" متاحة من خلال علامات خاصة أو إصدارات خاصة، ولكن ستتم إزالة الرمز البرمجي بالكامل في النصف الثاني من عام 2022.
المرحلة 6: إيقاف "الخطة ب" نهائيًا وإزالتها من WebRTC
تم وضع علامة على الخطة B بأنّها متوقّفة نهائيًا في WebRTC، ولكنّها لا تزال متاحة. من المفترض أن تتم إزالة المحتوى في عام 2023.
تحضير طلبك للاستفادة من الخطة الموحّدة
للحصول على معلومات تفصيلية عن الاختلافات بين "الخطة ب" و"الخطة الموحّدة" وكيفية تعديل التطبيق استعدادًا للانتقال إلى "الخطة الموحّدة"، يُرجى الاطّلاع على دليل الانتقال إلى "الخطة الموحّدة" (JavaScript).
بالنسبة إلى التطبيقات الأصلية (C++)، يُرجى الاطّلاع على المستند "نقل تطبيقك الأصلي/المتوافق مع الأجهزة الجوّالة إلى "الخطة الموحّدة".