Meet के eCDN On-Premises API के साथ काम करना

इस पेज पर, Google Meet की लाइव स्ट्रीमिंग के लिए, Google Meet Enterprise Content Delivery Network (eCDN) के ऑन-प्राइमिस API का इस्तेमाल करने का तरीका बताया गया है.

यहां बताए गए एपीआई समाधान की मदद से, ग्राहक Google को अपने निजी आईपी की जानकारी ज़ाहिर किए बिना, Meet eCDN की सभी सुविधाओं का इस्तेमाल कर सकते हैं. अपने नेटवर्क में, ऑन-प्राइमिस वेब सेवा के तौर पर कोई नई सेवा तय की जा सकती है. यह सेवा, निजी आईपी पते की जानकारी के बजाय आईडी पास करती है.

Meet के eCDN की खास जानकारी

ईसीडीएन, Meet में पहले से मौजूद होता है. Google Workspace एडमिन के सेट अप करने के बाद, यह लाइव स्ट्रीम के दौरान अपने-आप शुरू हो जाता है. Meet के ईसीडीएन की सुविधा चालू होने पर, किसी स्थानीय नेटवर्क में लाइव स्ट्रीम देखने वाले लोग, नेटवर्क में मौजूद दूसरे लोगों के साथ लाइव स्ट्रीम किया गया मीडिया शेयर कर सकते हैं. इसके लिए, उन्हें पीयर-टू-पीयर (पी2पी) शेयरिंग की सुविधा का इस्तेमाल करना होगा. ज़्यादातर डिवाइसों को लाइव स्ट्रीम किया गया मीडिया, आस-पास मौजूद डिवाइसों से मिलता है. इसके लिए, उन्हें Google के सर्वर से मीडिया फ़ेच करने की ज़रूरत नहीं होती. इससे दर्शकों के इस्तेमाल की कुल बैंडविड्थ कम हो जाती है. Meet eCDN को सेट अप करने और इस्तेमाल करने के बारे में ज़्यादा जानने के लिए, बड़ी लाइव स्ट्रीम होस्ट करना लेख पढ़ें.

eCDN के लिए ज़रूरी है कि Meet की लाइव स्ट्रीम के दर्शकों को, एक-दूसरे से कनेक्ट किए गए ग्रुप में बांटा जाए. पीयरिंग ग्रुप, नोड का एक कलेक्शन होता है. इन नोड को एक-दूसरे के साथ मीडिया शेयर करने की अनुमति होती है. पीयरिंग ग्रुप में शामिल डिवाइसों को, पीयरिंग की अनुमति दी जाती है या उन्हें पीयरिंग करने से ब्लॉक किया जाता है. अनुमति वाले डिवाइस, सिर्फ़ एक ही पीयरिंग ग्रुप के अन्य डिवाइसों से कनेक्ट कर सकते हैं. पियरिंग ग्रुप के बारे में ज़्यादा जानकारी के लिए, बड़ी लाइव स्ट्रीम होस्ट करने से पहले लेख पढ़ें.

एपीआई का इस्तेमाल कब करना चाहिए

eCDN, पीयरिंग की कई अलग-अलग नीतियों का इस्तेमाल करके पीयरिंग ग्रुप बना सकता है: random, subnet या custom rules. यह Google के ईसीडीएन ट्रैकर सर्वर के साथ निजी नेटवर्क की रेंज की टेबल शेयर करता है, ताकि हर पीयर नोड के निजी आईपी पतों को, पीयरिंग ग्रुप के साथ मैप किया जा सके. custom rules नीति, सबसे सही समाधान है और यह ज़्यादातर प्रोडक्शन एनवायरमेंट के लिए सही है.

हालांकि, custom rules की नीति के मुताबिक, आपको अपने निजी नेटवर्क स्ट्रक्चर का ज़्यादातर हिस्सा Google के साथ शेयर करना होगा. इसके अलावा, eCDN का इस्तेमाल करते समय, अलग-अलग उपयोगकर्ता अपने स्थानीय तौर पर पता लगाए गए निजी आईपी पते को Google को दिखाते हैं. कुछ संगठनों के लिए, सुरक्षा से जुड़े दिशा-निर्देशों के तहत, निजी आईपी की जानकारी शेयर करने की अनुमति नहीं होती.

Meet के eCDN On-Premises API का इस्तेमाल करके डेवलप करना

Meet eCDN On-Premises API, वेब सर्वर की ऐसी खास जानकारी देता है जिसे अपने संगठन के नेटवर्क में लागू और होस्ट किया जा सकता है. एपीआई के साथ काम करने वाली कस्टम वेब सेवा बनाई जा सकती है. इससे निजी आईपी जानकारी पर आधारित सभी टास्क पूरे किए जा सकते हैं. इससे, जानकारी Google के साथ शेयर नहीं की जाती.

एपीआई में, निजी आईपी पतों को मैच करने के लिए दो अहम चरण शामिल होते हैं. आम तौर पर, इन्हें ईसीडीएन ट्रैकर सर्वर मैनेज करता है: वेबआरटीसी सिग्नल के दौरान, निजी आईपी पतों को किसी पियरिंग ग्रुप से मैप करना और सेशन डिस्क्रिप्शन प्रोटोकॉल (एसडीपी) ऑफ़र-आंसर डेटा एक्सचेंज करना.

वेबसाइट सेवा पूरी होने के बाद, आपको On-premises service पियरिंग नीति का इस्तेमाल करने के लिए, Admin console को कॉन्फ़िगर करना होगा. साथ ही, अपनी कस्टम वेबसाइट सेवा का यूआरएल शामिल करना होगा.

ज़रूरी शर्तें

अगर आपको अपने संगठन के लिए इनमें से किसी भी ज़रूरी शर्त को चालू करना है, तो अपने Google Workspace एडमिन से कहें:

  • एचटीटीपीएस का इस्तेमाल करने वाला कोई भी वेब सर्वर, इस एपीआई को लागू कर सकता है.

  • मिले-जुले कॉन्टेंट से जुड़ी समस्याओं से बचने के लिए, एचटीटीपीएस का इस्तेमाल करें.

  • JSON डेटा स्वीकार और दिखाएं. अपने ब्राउज़र पर काम करने वाले किसी भी कॉन्टेंट को एन्कोड करें.

  • /vn रूट के तहत एंडपॉइंट दिखाएं, जहां n चुना गया एपीआई वर्शन है. उदाहरण के लिए, /v1/get-peering-group.

  • Meet की लाइव स्ट्रीमिंग के दर्शक, Google Admin console में जाकर आपकी वेब सेवा के यूआरएल के बारे में जान सकते हैं. यूआरएल को संगठन की हर इकाई या ग्रुप के हिसाब से या फिर दुनिया भर के लिए सेट किया जा सकता है. पक्का करें कि दर्शक, सेवा के असाइन किए गए इंस्टेंस से कनेक्ट कर सकें. ज़्यादा जानकारी के लिए, Admin console को कॉन्फ़िगर करना लेख पढ़ें.

  • आपकी सेवा को दो सेकंड के अंदर जवाब देना चाहिए. ऐसा न करने पर, eCDN क्लाइंट बंद हो जाता है और दर्शक लाइव इवेंट को सामान्य, बिना eCDN वाले उपयोगकर्ता के तौर पर देखता रहता है. इससे, बैंडविड्थ की बचत नहीं होती.

  • आपकी सेवा को क्रॉस-ऑरिजिन रिसॉर्स शेयरिंग (सीओआरएस) के ये हेडर सेट करने होंगे:

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

निजी आईपी पतों को पियरिंग ग्रुप से मैप करना

eCDN क्लाइंट, eCDN ट्रैकर सर्वर से दोबारा कनेक्ट करने की कोशिश करते समय हर बार कॉल करता है. जब किसी डिवाइस को निजी आईपी पता मिलता है, तो उस पते को सही पीयरिंग ग्रुप से मैप किया जाना चाहिए. आपको अपने नेटवर्क पर मौजूद किसी सर्वर पर निजी आईपी पता भेजना होगा. इसके बाद, get-peering-group() तरीके का इस्तेमाल करके, उसे मैन्युअल तरीके से किसी पीयरिंग ग्रुप में बदलना होगा. जवाब में, पियरिंग ग्रुप आईडी दिखता है. Google के साथ बातचीत करते समय, निजी आईपी पतों के बजाय, पियरिंग ग्रुप आईडी का इस्तेमाल किया जाता है.

निजी आईपी पतों को पियरिंग ग्रुप से कैसे मैप किया जाता है.
पहली इमेज. निजी आईपी पतों को पियरिंग ग्रुप से मैप करना.

यहां दिए गए कोड के सैंपल में, संभावित गड़बड़ी के जवाब और उम्मीद के मुताबिक रिस्पॉन्स बॉडी के साथ-साथ 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:
{
  "result": "PEERING_GROUP_ID",
  "error": null,
}

इस टेबल में, रिस्पॉन्स के लिए इस्तेमाल किए जाने वाले फ़ॉर्मैट के बारे में बताया गया है:

एचटीटीपी कोड स्थिति गड़बड़ी पीयरिंग ग्रुप आईडी क्लाइंट की प्रतिक्रिया
200 शून्य कोई स्ट्रिंग क्लाइंट को पियरिंग ग्रुप में बांटा जाना चाहिए और eCDN ट्रैकर सर्वर से कनेक्ट किया जाना चाहिए.
200 NOT_FOUND शून्य क्लाइंट, ईसीडीएन सेशन को खत्म कर देता है.
200 BLOCKED शून्य क्लाइंट, ईसीडीएन सेशन को खत्म कर देता है.
200 कोई दूसरी स्ट्रिंग जो खाली न हो शून्य क्लाइंट, ईसीडीएन सेशन को खत्म करता है.
302 (मिला) क्लाइंट, जवाब के मुख्य हिस्से के Location हेडर में बताए गए नए यूआरएल पर रीडायरेक्ट हो जाता है.
कोई अन्य स्टेटस कोड कोई भी स्ट्रिंग कोई भी स्ट्रिंग क्लाइंट, ईसीडीएन सेशन को खत्म करता है.

एसडीपी ऑफ़र-जवाब डेटा एक्सचेंज

WebRTC कनेक्शन शुरू करने के लिए, डिवाइसों को अपने एसडीपी ऑफ़र और जवाबों का आदान-प्रदान करना होगा. इनमें इंटरैक्टिव कनेक्टिविटी एस्टैब्लिशमेंट (आईसीई) कैंडिडेट भी शामिल हैं. इनमें निजी आईपी की जानकारी होती है. वे ऐसा, WebRTC सिग्नल प्रोसेस के हिस्से के तौर पर करते हैं.

क्लाइंट को अपने नेटवर्क में, encrypt-sdp() तरीके का इस्तेमाल करके, Meet eCDN On-Premises API की मदद से अपने आईसीई कैंडिडेट एन्क्रिप्ट करने होंगे. इस तरीके में, ऐसी कुंजी का इस्तेमाल किया जाता है जो कभी भी Google को नहीं दिखती. इसके बाद, एन्क्रिप्ट (सुरक्षित) किए गए एसडीपी ऑफ़र को ईसीडीएन ट्रैकर सर्वर का इस्तेमाल करके, पीयर को भेजा जाता है. इसके बाद, क्लाइंट पीयर अपने नेटवर्क में, decrypt-sdp() तरीके का इस्तेमाल करके, मिली जानकारी को डिक्रिप्ट करता है. इसके बाद, Google उन ऑफ़र और जवाबों को कनेक्ट किए गए पीयर के बीच फ़ॉरवर्ड करता है.

Meet के ईसीडीएन ऑन-प्राइमिस एपीआई का इस्तेमाल करके कनेक्शन सेट अप होने के बाद, ईसीडीएन सामान्य तरीके से काम करता है. पियर, मीडिया को सामान्य पियरिंग नेटवर्क के ज़रिए रूट करते हैं और मीडिया ट्रैफ़िक, एपीआई से नहीं गुज़रता या उसका इस्तेमाल नहीं करता.

एसडीपी ऑफ़र और जवाब के डेटा को एन्क्रिप्ट और डिक्रिप्ट करने का तरीका.
दूसरी इमेज. एसडीपी ऑफ़र और जवाब के डेटा को एन्क्रिप्ट और डिक्रिप्ट करना.

नीचे दिए गए कोड के सैंपल में, संभावित गड़बड़ी के जवाब और अनुमानित रिस्पॉन्स बॉडी के साथ-साथ encrypt-sdp() तरीके को कॉल करने का तरीका बताया गया है:

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

Request body:
{
  "data": "SDP_DATA" // raw SDP data
},

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

Response body:
{
  "result": "ENCRYPTED_DATA_STRING", // encrypted data as string
  "error": null,
}

नीचे दिए गए कोड के सैंपल में, संभावित गड़बड़ी के जवाब और उम्मीद के मुताबिक रिस्पॉन्स बॉडी के साथ-साथ decrypt-sdp() तरीके को कॉल करने का तरीका बताया गया है:

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

Request body:
{
  "data": "ENCRYPTED_DATA_STRING", // encrypted data as string (size limit: 1 MB)
},

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

Response body:
{
  "result": "SDP_DATA" // raw SDP data
  "error": null,
}

इस टेबल में, रिस्पॉन्स के लिए इस्तेमाल किए जाने वाले फ़ॉर्मैट दिखाए गए हैं:

एचटीटीपी कोड स्थिति गड़बड़ी पीयरिंग ग्रुप आईडी क्लाइंट की प्रतिक्रिया
200 शून्य कोई स्ट्रिंग क्लाइंट को उम्मीद है कि सही तरीके से कोड किए गए या डिकोड किए गए एसडीपी डेटा का इस्तेमाल किया जाएगा.
200 कोई भी स्ट्रिंग जो खाली न हो शून्य क्लाइंट, ईसीडीएन सेशन को खत्म करता है.
302 (मिला) क्लाइंट, जवाब के मुख्य हिस्से के Location हेडर में बताए गए नए यूआरएल पर रीडायरेक्ट हो जाता है.
कोई अन्य स्टेटस कोड कोई भी मान कोई भी मान क्लाइंट, ईसीडीएन सेशन को खत्म करता है.

Admin console को कॉन्फ़िगर करना

Meet के ईसीडीएन ऑन-प्राइमिस एपीआई का इस्तेमाल करने के लिए, आपको Admin console में ईसीडीएन को कॉन्फ़िगर करना होगा, ताकि अपनी कस्टम वेब सेवा का यूआरएल शामिल किया जा सके.

eCDN सेट करने के लिए, On-premises service का इस्तेमाल करके पीयरिंग नीति बनाएं. इससे, पीयरिंग ग्रुप के साथ आईपी जानकारी को मैन्युअल तरीके से मैच किया जा सकता है. अगर डिफ़ॉल्ट 443 का इस्तेमाल नहीं किया जा रहा है, तो पोर्ट नंबर भी शामिल किया जा सकता है. यूआरएल इस फ़ॉर्मैट में होना चाहिए: WEB_SERVICE.example.com:8080, जहां WEB_SERVICE आपकी वेब सेवा का नाम है.

पीयरिंग नीति सेट करने के बारे में ज़्यादा जानने के लिए, नेटवर्क ग्रुपिंग कॉन्फ़िगर करना लेख पढ़ें.