Meet eCDN অন-প্রিমিসেস API-এর সাথে কাজ করুন

এই পৃষ্ঠায় গুগল মিট লাইভ স্ট্রিমিংয়ের জন্য গুগল মিট এন্টারপ্রাইজ কন্টেন্ট ডেলিভারি নেটওয়ার্ক (eCDN) অন-প্রেমিসেস এপিআই কীভাবে ব্যবহার করতে হয়, তা ব্যাখ্যা করা হয়েছে।

এখানে বর্ণিত এপিআই সমাধানটি গ্রাহকদের গুগলের কাছে ব্যক্তিগত আইপি তথ্য প্রকাশ না করেই Meet eCDN-এর সম্পূর্ণ ফিচার সেট ব্যবহার করার সুযোগ দেয়। আপনি আপনার নিজের নেটওয়ার্কে একটি নতুন অন-প্রিমিসেস ওয়েব সার্ভিস সংজ্ঞায়িত করতে পারেন, যা ব্যক্তিগত আইপি অ্যাড্রেসের তথ্যের পরিবর্তে একটি আইডি প্রেরণ করে।

eCDN ওভারভিউ দেখুন

মিট (Meet)-এর মধ্যে ইসিডিএন (eCDN) বিল্ট-ইন থাকে এবং একজন গুগল ওয়ার্কস্পেস (Google Workspace) অ্যাডমিনিস্ট্রেটর এটি সেট আপ করার পর লাইভস্ট্রিমের সময় স্বয়ংক্রিয়ভাবে চালু হয়। মিট ইসিডিএন চালু থাকলে, একটি লোকাল নেটওয়ার্কের মধ্যে থাকা লাইভস্ট্রিম দর্শকরা পিয়ার-টু-পিয়ার (P2P) শেয়ারিংয়ের মাধ্যমে নেটওয়ার্কের অন্যান্য পিয়ারদের সাথে লাইভ-স্ট্রিম করা মিডিয়া শেয়ার করতে পারেন। বেশিরভাগ ডিভাইস কাছাকাছি থাকা পিয়ারদের কাছ থেকে লাইভ-স্ট্রিম করা মিডিয়া গ্রহণ করে এবং গুগলের সার্ভার থেকে তা আনার প্রয়োজন হয় না। এর ফলে দর্শকদের ব্যবহৃত মোট ব্যান্ডউইথ কমে যায়। মিট ইসিডিএন সেট আপ এবং ব্যবহার করার বিষয়ে আরও তথ্যের জন্য, ‘হোস্টিং লার্জ লাইভ স্ট্রিমস’ (Hosting large live streams) দেখুন।

eCDN অনুযায়ী Meet Live Streaming-এর দর্শকদের পিয়ারিং গ্রুপে অন্তর্ভুক্ত করতে হয়। একটি পিয়ারিং গ্রুপ হলো এমন কিছু নোডের সমষ্টি যাদের একে অপরের সাথে মিডিয়া শেয়ার করার অনুমতি রয়েছে। একটি পিয়ারিং গ্রুপের ডিভাইসগুলোকে হয় পিয়ার করার অনুমতি দেওয়া হয় অথবা পিয়ার করা থেকে ব্লক করা হয়। অনুমোদিত ডিভাইসগুলো শুধুমাত্র একই পিয়ারিং গ্রুপের অন্যান্য ডিভাইসের সাথেই সংযোগ করতে পারে। পিয়ারিং গ্রুপ সম্পর্কে আরও তথ্যের জন্য, “বড় লাইভ স্ট্রিম হোস্ট করা শুরু করার আগে” দেখুন।

কখন এপিআই ব্যবহার করতে হবে

eCDN বিভিন্ন ধরনের পিয়ারিং পলিসি ব্যবহার করে পিয়ারিং গ্রুপ গঠন করতে পারে: random , subnet , বা custom rules । শেষোক্তটি প্রতিটি পিয়ার নোডের প্রাইভেট আইপি অ্যাড্রেসকে একটি পিয়ারিং গ্রুপের সাথে ম্যাপ করার জন্য গুগলের eCDN ট্র্যাকার সার্ভারের সাথে প্রাইভেট নেটওয়ার্ক রেঞ্জের একটি টেবিল শেয়ার করে। custom rules পলিসিটিই সবচেয়ে পছন্দের সমাধান এবং এটি বেশিরভাগ প্রোডাকশন এনভায়রনমেন্টের জন্য উপযুক্ত।

তবে, custom rules পলিসির কারণে আপনাকে আপনার প্রাইভেট নেটওয়ার্ক কাঠামোর একটি বড় অংশ গুগলের সাথে শেয়ার করতে হয়। এছাড়াও, ইসিডিএন (eCDN) ব্যবহার করার সময় ব্যবহারকারীরা তাদের স্থানীয়ভাবে শনাক্ত করা প্রাইভেট আইপি অ্যাড্রেস গুগলের কাছে প্রকাশ করে ফেলেন। কিছু প্রতিষ্ঠানের ক্ষেত্রে, তাদের নিরাপত্তা নির্দেশিকা প্রাইভেট আইপি তথ্য শেয়ার করার অনুমতি নাও দিতে পারে।

Meet eCDN অন-প্রেমিসেস API দিয়ে ডেভেলপ করুন

Meet eCDN অন-প্রেমিসেস API একটি ওয়েব সার্ভার স্পেসিফিকেশন প্রদান করে, যা আপনি আপনার প্রতিষ্ঠানের নেটওয়ার্কে স্থানীয়ভাবে ইমপ্লিমেন্ট ও হোস্ট করতে পারেন। আপনি API-এর সাথে সামঞ্জস্যপূর্ণ একটি কাস্টম ওয়েব সার্ভিস তৈরি করতে পারেন, যা প্রাইভেট আইপি তথ্যের উপর নির্ভরশীল সমস্ত কাজ সম্পাদন করবে, ফলে সেই তথ্য গুগলের সাথে শেয়ার হবে না।

এই এপিআই-টি প্রাইভেট আইপি অ্যাড্রেস মেলানোর জন্য দুটি গুরুত্বপূর্ণ ধাপ অন্তর্ভুক্ত করে, যা সাধারণত ইসিডিএন ট্র্যাকার সার্ভার দ্বারা পরিচালিত হয়: প্রাইভেট আইপি অ্যাড্রেসকে একটি পিয়ারিং গ্রুপের সাথে ম্যাপ করা এবং ওয়েবআরটিসি সিগন্যালিংয়ের সময় সেশন ডেসক্রিপশন প্রোটোকল (এসডিপি) অফার-অ্যানসার ডেটা বিনিময়

ওয়েব সার্ভিসটি সম্পূর্ণ হয়ে গেলে, আপনাকে অবশ্যই অ্যাডমিন কনসোলটি একটি On-premises service পিয়ারিং পলিসি ব্যবহার করার জন্য কনফিগার করতে হবে এবং আপনার কাস্টম ওয়েব সার্ভিসের URL-টি অন্তর্ভুক্ত করতে হবে।

প্রয়োজনীয়তা

আপনার প্রতিষ্ঠানের জন্য এই শর্তগুলোর কোনোটি চালু করার প্রয়োজন হলে, আপনার গুগল ওয়ার্কস্পেস অ্যাডমিনিস্ট্রেটরকে জানান:

  • HTTPS ব্যবহারকারী যেকোনো ওয়েব সার্ভার এই API-টি বাস্তবায়ন করতে পারে।

  • মিশ্র কন্টেন্টের ব্যর্থতা এড়াতে HTTPS ব্যবহার করুন।

  • JSON ডেটা গ্রহণ ও ফেরত দিন। আপনার ব্রাউজার দ্বারা সমর্থিত যেকোনো কন্টেন্ট এনকোডিং ব্যবহার করুন।

  • এন্ডপয়েন্টগুলিকে একটি /v n রুটের অধীনে পরিবেশন করুন, যেখানে n হলো নির্বাচিত API সংস্করণ। উদাহরণস্বরূপ, /v1/get-peering-group

  • Meet Live Streaming-এর দর্শকরা Google Admin কনসোলের মাধ্যমে আপনার ওয়েব সার্ভিসের URL সম্পর্কে জানতে পারেন। URL-টি বিশ্বব্যাপী, সাংগঠনিক ইউনিট অনুযায়ী, বা গ্রুপ অনুযায়ী সেট করা যেতে পারে। নিশ্চিত করুন যে দর্শকরা সার্ভিসের তাদের জন্য নির্ধারিত ইনস্ট্যান্সে সংযোগ করতে পারেন। আরও তথ্যের জন্য, অ্যাডমিন কনসোল কনফিগার করুন দেখুন।

  • আপনার পরিষেবাটির দুই সেকেন্ডের মধ্যে একটি প্রতিক্রিয়া জানানো উচিত। অন্যথায়, eCDN ক্লায়েন্টটি বন্ধ হয়ে যায় এবং দর্শক একজন সাধারণ, নন-eCDN ব্যবহারকারী হিসেবে লাইভ ইভেন্টটি দেখতে থাকেন, যার ফলে তিনি কোনো ব্যান্ডউইথ সাশ্রয়ের সুবিধা পান না।

  • আপনার পরিষেবাতে অবশ্যই নিম্নলিখিত ক্রস-অরিজিন রিসোর্স শেয়ারিং (CORS) হেডারগুলি সেট করতে হবে:

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

প্রাইভেট আইপি অ্যাড্রেসগুলোকে একটি পিয়ারিং গ্রুপের সাথে ম্যাপ করুন।

eCDN ক্লায়েন্ট প্রতিবার eCDN ট্র্যাকার সার্ভারের সাথে পুনরায় সংযোগ করার চেষ্টা করার সময় একটি কল করে। কোনো ডিভাইস একটি প্রাইভেট আইপি অ্যাড্রেস শনাক্ত করার পর, অ্যাড্রেসটিকে অবশ্যই সঠিক পিয়ারিং গ্রুপে ম্যাপ করতে হবে। আপনাকে অবশ্যই আপনার নেটওয়ার্কের একটি সার্ভারে প্রাইভেট আইপি অ্যাড্রেসটি পাঠাতে হবে এবং get-peering-group() মেথড ব্যবহার করে ম্যানুয়ালি এটিকে একটি পিয়ারিং গ্রুপে রিজলভ করতে হবে। রেসপন্সে একটি পিয়ারিং গ্রুপ আইডি ফেরত আসে। গুগলের সাথে যোগাযোগের সময়, প্রাইভেট আইপি অ্যাড্রেসের পরিবর্তে প্রাপ্ত পিয়ারিং গ্রুপ আইডিটি পাস করা হয়।

কীভাবে প্রাইভেট আইপি অ্যাড্রেসগুলোকে একটি পিয়ারিং গ্রুপের সাথে ম্যাপ করা হয়।
চিত্র ১. প্রাইভেট আইপি অ্যাড্রেসকে একটি পিয়ারিং গ্রুপে সংযুক্ত করা।

নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে সম্ভাব্য ত্রুটিপূর্ণ প্রতিক্রিয়া এবং প্রত্যাশিত প্রতিক্রিয়া বডি সহ 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 অবস্থা ত্রুটি অনুমোদিত ফলাফল ক্লায়েন্টের প্রতিক্রিয়া
২০০ নাল সত্য অ-খালি স্ট্রিং ক্লায়েন্টকে নির্দিষ্ট পিয়ারিং গ্রুপে অন্তর্ভুক্ত করা হয় এবং এটি eCDN ট্র্যাকার সার্ভারের সাথে সংযোগ স্থাপনের জন্য অগ্রসর হয়।
২০০ নাল মিথ্যা অ-খালি স্ট্রিং ক্লায়েন্টকে নির্দিষ্ট পিয়ারিং গ্রুপ দ্বারা ব্লক করা হিসাবে চিহ্নিত করা হলে, তাকে মিট কোয়ালিটি টুল (MQT)- এ দেখা যাবে এবং eCDN সেশনটি শেষ হয়ে যাবে।
২০০ নাল খালি স্ট্রিং ক্লায়েন্ট eCDN সেশনটি বন্ধ করে দেয়।
২০০ অ-খালি স্ট্রিং ক্লায়েন্ট eCDN সেশনটি বন্ধ করে দেয়।
৩০২ (পাওয়া গেছে) ক্লায়েন্ট রেসপন্স বডির Location হেডারে উল্লেখিত নতুন ইউআরএল-এ রিডাইরেক্ট অনুসরণ করে।
অন্য কোনো স্ট্যাটাস কোড ক্লায়েন্ট eCDN সেশনটি বন্ধ করে দেয়।

ঐতিহ্যবাহী প্রতিক্রিয়া বিন্যাস

allowed ফিল্ডটি পূর্ববর্তী সংস্করণগুলির প্রতিক্রিয়া বিন্যাসের অংশ ছিল না। পরিবর্তে, result জন্য বিশেষ সংরক্ষিত মানগুলি নির্ধারণ করত যে কোনও দর্শকের আইপি ঠিকানা পিয়ারিং থেকে ব্লক করা হবে কিনা:

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

নিম্নলিখিত সারণিতে প্রত্যাশিত প্রতিক্রিয়ার বিন্যাস দেখানো হয়েছে, যদি প্রতিক্রিয়া বার্তায় allowed ক্ষেত্রটি সেট করা না থাকে:

HTTP অবস্থা ত্রুটি ফলাফল ক্লায়েন্টের প্রতিক্রিয়া
২০০ নাল অ-খালি স্ট্রিং ক্লায়েন্টকে একটি পিয়ারিং গ্রুপে অন্তর্ভুক্ত করার পর সে eCDN ট্র্যাকার সার্ভারের সাথে সংযোগ স্থাপন করে।
২০০ নাল NOT_FOUND ক্লায়েন্ট eCDN সেশনটি বন্ধ করে দেয়।
২০০ নাল BLOCKED ক্লায়েন্ট eCDN সেশনটি বন্ধ করে দেয়।
২০০ অ-খালি স্ট্রিং ক্লায়েন্ট eCDN সেশনটি বন্ধ করে দেয়।
৩০২ (পাওয়া গেছে) ক্লায়েন্ট রেসপন্স বডির Location হেডারে উল্লেখিত নতুন ইউআরএল-এ রিডাইরেক্ট অনুসরণ করে।
অন্য কোনো স্ট্যাটাস কোড ক্লায়েন্ট eCDN সেশনটি বন্ধ করে দেয়।

এসডিপি প্রস্তাব-উত্তর ডেটা বিনিময়

একটি WebRTC সংযোগ শুরু করার জন্য, ডিভাইসগুলিকে তাদের SDP অফার এবং উত্তর বিনিময় করতে হয়, যার মধ্যে ইন্টারেক্টিভ কানেক্টিভিটি এস্টাবলিশমেন্ট (ICE) ক্যান্ডিডেটও অন্তর্ভুক্ত থাকে, যেগুলিতে প্রাইভেট আইপি তথ্য থাকে। WebRTC সিগন্যালিং প্রক্রিয়ার অংশ হিসেবেই তারা এটি করে থাকে।

ক্লায়েন্টদের অবশ্যই Meet eCDN On-Premises API-এর মাধ্যমে তাদের নেটওয়ার্কের ভেতরে encrypt-sdp() মেথড ব্যবহার করে তাদের ICE ক্যান্ডিডেটগুলো এনক্রিপ্ট করতে হবে। এই মেথডটি এমন একটি কী ব্যবহার করে যা কখনোই গুগলের কাছে প্রকাশ করা হয় না। এরপর এনক্রিপ্ট করা SDP অফারটি eCDN ট্র্যাকার সার্ভার ব্যবহার করে পিয়ারের কাছে পাঠানো হয়। ক্লায়েন্ট পিয়ার তখন তাদের নেটওয়ার্কের ভেতরে decrypt-sdp() মেথড ব্যবহার করে প্রাপ্ত তথ্য ডিক্রিপ্ট করে। এরপর গুগল সংযুক্ত পিয়ারগুলোর মধ্যে অফার এবং উত্তরগুলো ফরওয়ার্ড করে দেয়।

Meet eCDN On-Premises API ব্যবহার করে একবার সংযোগ স্থাপিত হলে, eCDN স্বাভাবিকভাবে কাজ করে। পিয়ারগুলো সাধারণ পিয়ারিং নেটওয়ার্কের মাধ্যমে মিডিয়া রাউট করে এবং মিডিয়া ট্র্যাফিক এর মধ্য দিয়ে যায় না বা API ব্যবহার করে না।

এসডিপি অফার এবং উত্তরের ডেটা কীভাবে এনক্রিপ্ট এবং ডিক্রিপ্ট করা হয়
চিত্র ২. এসডিপি অফার ও অ্যানসার ডেটা এনক্রিপ্ট এবং ডিক্রিপ্ট করা।

নিম্নলিখিত কোড নমুনাটি দেখায় কিভাবে সম্ভাব্য ত্রুটিপূর্ণ প্রতিক্রিয়া এবং প্রত্যাশিত প্রতিক্রিয়া বডি সহ 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 অবস্থা ত্রুটি পিয়ারিং গ্রুপ আইডি ক্লায়েন্টের প্রতিক্রিয়া
২০০ নাল অ-খালি স্ট্রিং ক্লায়েন্ট আশা করে যে যথাযথভাবে এনকোড বা ডিকোড করা এসডিপি ডেটা ব্যবহার করা হবে।
২০০ যেকোনো অ-খালি স্ট্রিং নাল ক্লায়েন্ট eCDN সেশনটি বন্ধ করে দেয়।
৩০২ (পাওয়া গেছে) ক্লায়েন্ট রেসপন্স বডির Location হেডারে উল্লেখিত নতুন ইউআরএল-এ রিডাইরেক্ট অনুসরণ করে।
অন্য কোনো স্ট্যাটাস কোড যেকোনো মান যেকোনো মান ক্লায়েন্ট eCDN সেশনটি বন্ধ করে দেয়।

অ্যাডমিন কনসোল কনফিগার করুন

Meet eCDN অন-প্রেমিসেস API ব্যবহার করতে হলে, আপনাকে অ্যাডমিন কনসোলে আপনার কাস্টম ওয়েব সার্ভিসের URL অন্তর্ভুক্ত করার জন্য eCDN কনফিগার করতে হবে।

eCDN সেট করতে, On-premises service ব্যবহার করে একটি পিয়ারিং পলিসি তৈরি করুন এবং ম্যানুয়ালি আইপি তথ্যকে পিয়ারিং গ্রুপের সাথে মেলান। আপনি যদি ডিফল্ট ৪৪৩ পোর্ট ব্যবহার না করেন, তবে একটি পোর্ট নম্বরও অন্তর্ভুক্ত করতে পারেন। URL-টি অবশ্যই নিম্নলিখিত ফরম্যাটের সাথে মিলতে হবে: WEB_SERVICE.example.com:8080 , যেখানে WEB_SERVICE হলো আপনার ওয়েব সার্ভিসের নাম।

পিয়ারিং পলিসি সেট করার বিষয়ে আরও তথ্যের জন্য, নেটওয়ার্ক গ্রুপিং কনফিগার করুন দেখুন।