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

تخطط Google لنقل تنفيذ WebRTC من تنسيق 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، وستكون جميع العروض والإجابات التي تم إنشاؤها بتنسيق الخطة الموحّدة. من المتوقع أيضًا أن تكون البيانات التي تم ضبطها على setLocalDescription وset RemoteDescription هي بتنسيق SDP، فلو كان بتنسيق Chrome القديم، سيتم تجاهل كل المقاطع الصوتية باستثناء المقطع الصوتي الأول ومسار الفيديو الأول.

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

المراحل

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

في هذه المرحلة، تم تطوير الخطة الموحّدة ضِمن علامة تجريبية متاحة منذ الإصدار الرئيسي M65. كان إصدار نظام Chrome Chrome لاختباره إلى المرحلة الثانية، كان بفضل "–enable-blink-features=RTCUnifiedPlan".

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

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

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

يمكن تغيير القيمة التلقائية لعلامة sdpSemantics في "chrome://flags"، ابحَث عن الميزة "WebRTC: Use Unified Plan SDPemics بشكل تلقائي".

المرحلة الثالثة: الانتقال إلى الإعداد التلقائي

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

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

المرحلة الرابعة: رمي الخطة "ب"

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

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

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

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

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

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

تم وضع علامة على الخطة ب على أنها متوقفة في WebRTC، ولكنها لا تزال متاحة. ومن المفترض أن تتم عملية الإزالة في عام 2023.

تجهيز طلبك للخطة الموحَّدة

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

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