تنسيق بروتوكول وصف الجلسة (SDP) للخطة الموحّدة - خطة الانتقال

تخطط Google لنقل تنفيذ WebRTC في Chrome من تنسيق SDP الحالي (يُسمى "الخطة ب") إلى تنسيق متوافق مع المعايير ("الخطة الموحدة"، المسودة-ietf-rtcweb-jsep) على مدى الربعين المقبلين.

تتضمّن الخطة 5 مراحل وميزة واحدة عابرة لواجهة برمجة التطبيقات.

من سيتأثر بذلك

الأشخاص الذين يستخدمون مقاطع صوتية متعددة أو مقاطع فيديو متعددة في مقطع واحد سيتعين على PeerConnection اختبار منتجه ضمن Unified Plan والتكيّف مع وفقًا لذلك. في حال بدء مكالمة من نقطة نهاية غير Chrome وتم الرد عليه بواسطة Chrome، قد يتغير شكل العرض. الأشخاص الذين هل يجب إجراء تحليل تفصيلي عبر SDP والاهتمام بسمات msid للتحقق من يلتقط رمز التحليل الخاص به التنسيق الجديد (a=msid). التفاصيل المتعلقة بما إذا كان التغييرات، وكيف سيتم تقديم الطلبات يعتمد بشكل كبير. نعتقد أن جميع التطبيقات التي تستخدم صوتًا واحدًا فقط ولن يتأثر مسار فيديو واحد لكل RTCPeerConnection بالتغيير.

ميزة واجهة برمجة التطبيقات

نضيف ميزة جديدة إلى RTCConfiguration في RTCPeerConnection:

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


partial dictionary RTCConfiguration {
   SdpSemantics sdpSemantics;
}

ويمكن تمرير RTCConfiguration إلى الدالة الإنشائية لـ RTCPeerConnection، وستكون جميع العروض والإجابات التي تم إنشاؤها بتنسيق "الخطة الموحَّدة". ويتوقع أيضًا الاتصال بـ setLocalDescription وsetRemoteDescription أيضًا SDP بتنسيق الخطة الموحَّدة إذا كان بتنسيق Chrome القديم، سيتم تجاهل الكل باستثناء المقطع الصوتي الأول ومقطع الفيديو الأول.

هناك أيضًا علامة سطر أوامر (–enable-features=RTCUnifiedPlanByDefault في Chrome M71 والإصدارات الأحدث، –enable-blink-features=RTCUnifiedPlanByDefault في الإصدارات الأقدم) التي تسمح بضبط القيمة التلقائية لهذه العلامة على "خطة موحّدة".

المراحل

المرحلة 1: تنفيذ الخطة الموحَّدة

في هذه المرحلة، كان يتم تطوير "الخطة الموحَّدة" استنادًا إلى علامة تجريبية. متوفّرة بدءًا من الإصدار M65. لقد حرصنا على اختبار Chrome Canary باستخدام متصفِّح Chrome Canary قبل تنفيذ المرحلة الثانية. باستخدام “–enable-blink-features=RTCUnifiedPlan”.

المرحلة الثانية: إتاحة ميزة واجهة برمجة التطبيقات للجمهور العام

تم الإصدار في الإصدار M69 (إصدار تجريبي في آب (أغسطس) 2018، الإصدار الثابت في أيلول (سبتمبر) 2018)

في هذه المرحلة، كانت القيمة التلقائية لعلامة sdpSemantics هي "plan-b". ضِمن المرحلة الثانية، تم تحديد الأشخاص الذين لديهم عمليات تنفيذ اعتمدت على تنسيق SDP ومن المتوقع إجراء اختبارات لمعرفة ما إذا كانت تطبيقاتهم تعمل عند استخدام الخطة الموحدة استخدامها. بالنسبة إلى التطبيقات التي تدعم Firefox، نتوقع أن يكون هذا الإجراء تمرين: افعل ما تفعله مع فايرفوكس.

يمكن تغيير القيمة التلقائية لعلامة sdpSemantics في "chrome://flags". ابحث عن الميزة "WebRTC: استخدام دلالات بروتوكول SDP للخطة الموحدة تلقائيًا".

المرحلة 3: تبديل الإعداد التلقائي

وكان تاريخ التبديل هو M72 (الإصدار التجريبي في كانون الأول (ديسمبر) 2018، الثابت في كانون الثاني (يناير) 2019).

في هذه المرحلة، غيرنا القيمة التلقائية لعلامة sdpSemantics إلى "خطة موحّدة". التطبيقات التي اكتشفت أنها بحاجة إلى مزيد من الوقت قم بتحويل، قم بتعيين علامة sdpSemantics صراحةً على "plan-b" لاسترداد السلوك السابق.

المرحلة 4: طرح "الخطة ب"

في هذه المرحلة، ضبط علامة sdpSemantics على "plan-b" يؤدي إلى استثناء التي يتم رميها. لقد تم رمي الكناري من M93. اعتبارًا من الإصدار الرئيسي M96، يُستثنى من ذلك في جميع القنوات، بما في ذلك القناة الثابتة.

خلال هذه المرحلة، تكون مرحلة الإيقاف النهائي. التي سمحت باستخدام الخطة ب دون طرح استثناء ولكن فترة تجريبية قد توقفت عن العمل في 25 أيار (مايو) 2022

المرحلة 5: إزالة "الخطة ب" من Chromium

بعد انتهاء الفترة التجريبية، ستتم إزالة الخطة "ب" من Chrome. في هذه المرحلة، ستتم إزالة علامة sdpSemantics. جارٍ محاولة ضبطها على "plan-b" لن طرح استثناء، ولكن لن يكون له أي تأثير بعد ذلك.

لا تزال الخطة "ب" متاحة وراء علامات خاصة أو إصدارات خاصة، ولكن ستتم إزالة الرمز في النصف الثاني من 2022.

المرحلة 6: إيقاف "الخطة ب" نهائيًا وإزالتها من WebRTC

سبق وتم وضع علامة على الخطة (ب) على أنّها متوقّفة نهائيًا في WebRTC، ولكنّها لا تزال متوفّرة. من المفترض أن تتم عملية الإزالة في 2023.

تحضير طلبك للخطة الموحَّدة

للحصول على معلومات تفصيلية حول الاختلافات في الخطة "ب" و"الخطة الموحدة" وكيفية قد يلزم تحديث تطبيقك استعدادًا للخطة الموحدة، فراجع دليل النقل إلى "الخطة الموحّدة" (JavaScript)

بالنسبة إلى تطبيقات (C++ ) الأصلية، يُرجى الاطّلاع على المستند "نقل تطبيقك المحلي/الأجهزة الجوّالة إلى الخطة الموحّدة".