العمل مع واجهة برمجة التطبيقات Meet eCDN On-Premises API

توضّح هذه الصفحة كيفية استخدام واجهة برمجة التطبيقات Meet eCDN On-Premises API من شبكة توصيل المحتوى في Enterprise من Google Meet (eCDN) للبث المباشر في Google Meet.

يسمح حلّ واجهة برمجة التطبيقات الموضّح هنا للعملاء باستخدام مجموعة الميزات الكاملة لشبكة eCDN من Meet بدون عرض معلومات عنوان IP الخاص على Google. يمكنك تحديد خدمة ويب جديدة داخل الشركة في شبكتك تمرِّر معرّفًا بدلاً من معلومات عنوان IP الخاص.

نظرة عامة على شبكة eCDN من Meet

شبكة eCDN مدمجة في Meet وتبدأ تلقائيًا أثناء أحداث البث المباشر بعد أن يضبطها مشرف Google Workspace. عند تفعيل شبكة eCDN من Meet، يمكن لمشاهدي البث المباشر ضمن شبكة محلية مشاركة الوسائط التي يتم بثها مباشرةً مع مستخدمين آخرين في الشبكة من خلال المشاركة من نظير إلى نظير (P2P). تتلقّى معظم الأجهزة الوسائط التي يتم بثها مباشرةً من مستخدمين قريبين ولا تحتاج إلى جلبها من خوادم Google. يؤدي ذلك إلى خفض إجمالي معدل نقل البيانات الذي يستخدمه المشاهدون. لمزيد من المعلومات حول إعداد شبكة eCDN من Meet واستخدامها، يُرجى الاطّلاع على مقالة استضافة أحداث بث مباشر كبيرة.

تتطلب شبكة eCDN من مشاهدي البث المباشر في Meet ترتيبهم في مجموعات تبادل المعلومات بين الشبكات. مجموعة تبادل المعلومات بين الشبكات هي مجموعة من العُقد التي يُسمح لها بمشاركة الوسائط مع بعضها البعض. يُسمح للأجهزة ضمن مجموعة تبادل المعلومات بين الشبكات بتبادل المعلومات بين الشبكات أو يتم حظرها عن ذلك. لا يمكن للأجهزة المسموح بها الاتصال إلا بأجهزة أخرى في مجموعة تبادل المعلومات بين الشبكات نفسها. لمزيد من المعلومات حول مجموعات تبادل المعلومات بين الشبكات، يُرجى الاطّلاع على مقالة قبل البدء باستضافة أحداث بث مباشر كبيرة.

متى يجب استخدام واجهة برمجة التطبيقات؟

يمكن لشبكة eCDN إنشاء مجموعات تبادل المعلومات بين الشبكات باستخدام عدة سياسات مختلفة لتبادل المعلومات بين الشبكات: random أو subnet أو custom rules. تشارك السياسة الأخيرة جدولاً بنطاقات الشبكة الخاصة مع خادم تتبُّع شبكة eCDN من Google لربط عناوين IP الخاصة لكل عُقدة نظير بمجموعة تبادل المعلومات بين الشبكات. سياسة custom rules هي الحلّ المفضّل ومناسبة لمعظم بيئات الإنتاج.

ومع ذلك، تتطلب سياسة custom rules مشاركة أجزاء كبيرة من بنية شبكتك الخاصة مع Google. بالإضافة إلى ذلك، يعرض المستخدمون الفرديون عناوين IP الخاصة التي تم رصدها محليًا على Google أثناء استخدام شبكة eCDN. بالنسبة إلى بعض المؤسسات، قد لا تسمح إرشادات الأمان الخاصة بها بمشاركة معلومات عنوان IP الخاص.

التطوير باستخدام واجهة برمجة التطبيقات Meet eCDN On-Premises API

توفّر واجهة برمجة التطبيقات Meet eCDN On-Premises API مواصفات لخادم ويب يمكنك تنفيذها واستضافتها محليًا في شبكة مؤسستك. يمكنك إنشاء خدمة ويب مخصّصة متوافقة مع واجهة برمجة التطبيقات لتنفيذ جميع المهام التي تعتمد على معلومات عنوان IP الخاص حتى لا تتم مشاركة المعلومات مع Google.

تشمل واجهة برمجة التطبيقات الخطوتَين الأساسيتَين لمطابقة عناوين IP الخاصة التي يتعامل معها عادةً خادم تتبُّع شبكة eCDN: ربط عناوين IP الخاصة بمجموعة تبادل المعلومات بين الشبكات وتبادل بيانات عرض الإجابة في بروتوكول وصف الجلسة (SDP) أثناء إشارات WebRTC.

بعد اكتمال خدمة الويب، عليك ضبط "وحدة تحكّم المشرف" لاستخدام سياسة تبادل المعلومات بين الشبكات On-premises service وتضمين عنوان URL لخدمة الويب المخصّصة.

المتطلبات

إذا كنت بحاجة إلى تفعيل أي من هذه المتطلبات لمؤسستك، اطلب من مشرف Google Workspace ما يلي:

  • يمكن لأي خادم ويب يستخدم HTTPS تنفيذ واجهة برمجة التطبيقات هذه.

  • استخدِم HTTPS لمنع حالات فشل المحتوى المختلط.

  • اقبَل بيانات JSON وأرسِلها. استخدِم أي ترميز محتوى متوافق مع متصفّحك.

  • قدِّم نقاط النهاية ضمن مسار /vn حيث n هو إصدار واجهة برمجة التطبيقات المحدّد. على سبيل المثال، /v1/get-peering-group.

  • يمكن لمشاهدي البث المباشر في Meet التعرّف على عنوان URL لخدمة الويب من خلال "وحدة تحكّم المشرف في Google". يمكن ضبط عنوان URL على مستوى العالم أو لكل وحدة تنظيمية أو لكل مجموعة. تأكَّد من أنّ المشاهدين يمكنهم الاتصال بالنسخة المخصّصة لهم من الخدمة. لمزيد من المعلومات، يُرجى الاطّلاع على مقالة ضبط "وحدة تحكّم المشرف".

  • يجب أن تعرض خدمتك ردًا في غضون ثانيتَين. وإلا، سيتم إيقاف عميل شبكة eCDN وسيواصل المشاهد مشاهدة الحدث المباشر كمستخدم عادي غير مستخدِم لشبكة eCDN، ما يحرمه من أي وفورات في معدل نقل البيانات.

  • يجب أن تضبط خدمتك عناوين مشاركة الموارد المتعدّدة المصادر (CORS) التالية:

    • Access-Control-Allow-Origin: meet.google.com
    • Access-Control-Allow-Headers: GET, POST, OPTIONS
    • Access-Control-Allow-Credentials: true

ربط عناوين IP الخاصة بمجموعة تبادل المعلومات بين الشبكات

يُجري عميل شبكة eCDN طلبًا في كل مرة يحاول فيها إعادة الاتصال بخادم تتبُّع شبكة eCDN. بعد أن يرصد الجهاز عنوان IP خاصًا، يجب ربط العنوان بمجموعة تبادل المعلومات بين الشبكات المناسبة. عليك إرسال عنوان IP الخاص إلى خادم على شبكتك وحلّه يدويًا إلى مجموعة تبادل المعلومات بين الشبكات باستخدام طريقة get-peering-group(). يتم عرض معرّف مجموعة تبادل المعلومات بين الشبكات في الردّ. عند التواصل مع Google، يتم تمرير معرّف مجموعة تبادل المعلومات بين الشبكات الناتج بدلاً من عناوين IP الخاصة.

كيفية ربط عناوين IP الخاصة بمجموعة ربط
الشكل 1. ربط عناوين IP الخاصة بمجموعة تبادل المعلومات بين الشبكات

يوضّح نموذج الرمز البرمجي التالي كيفية استدعاء طريقة get-peering-group() مع الردّ المحتمَل على الخطأ ونص الردّ المتوقّع:

POST /v1/get-peering-group
Content-Type: application/json

Request body:
{
  "availableIPs": []{
    "format": "ipv4"|"ipv6",
    "address": "DETECTED_ADDRESS"
  }
}

Error response:
{
  "result": null,
  "error": "ERROR_MESSAGE"
}

Response body:
{
  "allowed": boolean,
  "result": string,
  "error": null
}

يوضّح الجدول التالي تنسيقات الردّ المتوقّعة:

رموز حالة HTTP خطأ مسموح به النتيجة تفاعل العميل
200 null صحيح سلسلة غير فارغة يتم تصنيف العميل في مجموعة تبادل المعلومات بين الشبكات المحدّدة ويواصل الاتصال بخادم تتبُّع شبكة eCDN.
200 null خطأ سلسلة غير فارغة يتم وضع علامة على العميل على أنّه محظور من قِبل مجموعة تبادل المعلومات بين الشبكات المحدّدة، وسيظهر في أداة جودة تطبيق Meet (‫MQT)، ويتم إنهاء جلسة شبكة eCDN.
200 null سلسلة فارغة ينهي العميل جلسة شبكة eCDN.
200 سلسلة غير فارغة ينهي العميل جلسة شبكة eCDN.
‫302 (تم العثور عليه) يتّبع العميل عملية إعادة التوجيه إلى عنوان URL الجديد المحدّد في عنوان Location في نص الردّ.
أي رمز حالة آخر ينهي العميل جلسة شبكة eCDN.

تنسيق الردّ القديم

لم يكن الحقل allowed جزءًا من تنسيق الردّ في الإصدارات السابقة. بدلاً من ذلك، ستحدّد القيم المحجوزة الخاصة لـ result ما إذا كان سيتم حظر عنوان IP الخاص بالمشاهد من تبادل المعلومات بين الشبكات:

Legacy response body:
{
  "result": string,
  "error": null,
}

يوضّح الجدول التالي تنسيقات الردّ المتوقّعة إذا لم يتم ضبط الحقل allowed في رسالة الردّ:

رموز حالة HTTP خطأ النتيجة تفاعل العميل
200 null سلسلة غير فارغة يجب تصنيف العميل في مجموعة تبادل المعلومات بين الشبكات ويواصل الاتصال بخادم تتبُّع شبكة eCDN.
200 null NOT_FOUND ينهي العميل جلسة شبكة eCDN.
200 null BLOCKED ينهي العميل جلسة شبكة eCDN.
200 سلسلة غير فارغة ينهي العميل جلسة شبكة eCDN.
‫302 (تم العثور عليه) يتّبع العميل عملية إعادة التوجيه إلى عنوان URL الجديد المحدّد في عنوان Location في نص الردّ.
أي رمز حالة آخر ينهي العميل جلسة شبكة eCDN.

تبادل بيانات عرض الإجابة في بروتوكول وصف الجلسة (SDP)

لبدء اتصال WebRTC، يجب أن تتبادل الأجهزة عروض وإجابات بروتوكول وصف الجلسة (SDP)، بما في ذلك مرشّحو Interactive Connectivity Establishment (ICE)، التي تحتوي على معلومات عنوان IP الخاص. ويتم ذلك كجزء من عملية إشارات WebRTC.

على العملاء تشفير مرشّحي ICE داخل شبكتهم من خلال واجهة برمجة التطبيقات Meet eCDN On-Premises API، باستخدام طريقة encrypt-sdp(). تستخدم الطريقة مفتاحًا لا يتم عرضه مطلقًا على Google. بعد ذلك، يتم إرسال عرض بروتوكول وصف الجلسة (SDP) المشفّر إلى النظير باستخدام خادم تتبُّع شبكة eCDN. ثم يفكّ تشفير النظير العميل المعلومات التي تم تلقّيها داخل شبكته باستخدام طريقة decrypt-sdp(). بعد ذلك، تعيد Google توجيه العروض والإجابات بين النظراء المتصلين.

بعد إنشاء الاتصال باستخدام واجهة برمجة التطبيقات Meet eCDN On-Premises API، تعمل شبكة eCDN بشكلها العادي. توجِّه الأجهزة النظيرة الوسائط من خلال شبكة تبادل المعلومات بين الشبكات العادية ولا يمرّ نقل الوسائط عبر واجهة برمجة التطبيقات أو يستخدمها.

كيفية تشفير وفك تشفير بيانات عرض SDP والردّ عليه
الشكل 2. تشفير بيانات عرض الإجابة في بروتوكول وصف الجلسة (SDP) وفك تشفيرها

يوضّح عينة تعليمات برمجية التالي كيفية استدعاء طريقة encrypt-sdp() مع الردّ المحتمَل على الخطأ ونص الردّ المتوقّع:

POST /v1/encrypt-sdp
Content-Type: application/json

Request body:
{
  "data": "SDP_DATA"
},

Error response:
{
  "result": null,
  "error": "ERROR_MESSAGE"
}

Response body:
{
  "result": "ENCRYPTED_DATA_STRING",
  "error": null
}

يوضّح نموذج الرمز البرمجي التالي كيفية استدعاء طريقة decrypt-sdp() مع الردّ المحتمَل على الخطأ ونص الردّ المتوقّع:

POST /v1/decrypt-sdp
Content-Type: application/json

Request body:
{
  "data": "ENCRYPTED_DATA_STRING"
},

Error response:
{
  "result": null,
  "error": "ERROR_MESSAGE"
}

Response body:
{
  "result": "SDP_DATA",
  "error": null
}

يوضّح الجدول التالي تنسيقات الردّ المتوقّعة:

رموز حالة HTTP خطأ معرّف مجموعة تبادل المعلومات بين الشبكات تفاعل العميل
200 null سلسلة غير فارغة يتوقّع العميل استخدام بيانات بروتوكول وصف الجلسة (SDP) المشفّرة أو التي تم فك تشفيرها بشكلٍ صحيح.
200 أي سلسلة غير فارغة null ينهي العميل جلسة شبكة eCDN.
‫302 (تم العثور عليه) يتّبع العميل عملية إعادة التوجيه إلى عنوان URL الجديد المحدّد في عنوان Location في نص الردّ.
أي رمز حالة آخر أي قيمة أي قيمة ينهي العميل جلسة شبكة eCDN.

ضبط "وحدة تحكّم المشرف"

لاستخدام واجهة برمجة التطبيقات Meet eCDN On-Premises API، عليك ضبط شبكة eCDN في وحدة تحكّم المشرف لتضمين عنوان URL لـ خدمة الويب المخصّصة.

لضبط شبكة eCDN، أنشئ سياسة تبادل المعلومات بين الشبكات باستخدام On-premises service لمطابقة معلومات عنوان IP يدويًا مع مجموعات تبادل المعلومات بين الشبكات. يمكنك أيضًا تضمين رقم منفذ إذا كنت لا تستخدم المنفذ التلقائي 443. يجب أن يتطابق عنوان URL مع التنسيق التالي: WEB_SERVICE.example.com:8080، حيث WEB_SERVICE هو اسم خدمة الويب.

لمزيد من المعلومات حول ضبط سياسة تبادل المعلومات بين الشبكات، يُرجى الاطّلاع على مقالة ضبط تجميع الشبكات.