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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  • मीटिंग की लाइव स्ट्रीमिंग देखने वाले लोग, 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 क्लाइंट, eCDN सेशन खत्म करता है.
200 शून्य BLOCKED क्लाइंट, eCDN सेशन खत्म करता है.
200 खाली नहीं है शून्य क्लाइंट, eCDN सेशन खत्म करता है.
302 (Found) क्लाइंट, जवाब के मुख्य हिस्से के Location हेडर में दिए गए नए यूआरएल पर रीडायरेक्ट हो जाता है.
कोई अन्य स्टेटस कोड कोई भी स्ट्रिंग कोई भी स्ट्रिंग क्लाइंट, eCDN सेशन खत्म करता है.

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

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

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

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

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

कोड के इस उदाहरण में, 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 कोई भी ऐसी स्ट्रिंग जिसमें कुछ लिखा हो शून्य क्लाइंट, eCDN सेशन खत्म करता है.
302 (Found) क्लाइंट, जवाब के मुख्य हिस्से के Location हेडर में दिए गए नए यूआरएल पर रीडायरेक्ट हो जाता है.
कोई अन्य स्टेटस कोड कोई भी मान कोई भी मान क्लाइंट, eCDN सेशन खत्म करता है.

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

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

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

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