मोबाइल डेटा प्लान शेयर करने की सुविधा का इस्तेमाल शुरू करना

शब्दावली

  • GTAF: Google Traffic Application Function. Google की एक ऐसी सेवा जो Data Plan Sharing API को लागू करती है और Google ऐप्लिकेशन की ओर से डीपीए के साथ इंटरैक्ट करती है. Google ऐप्लिकेशन, उपयोगकर्ता के डेटा प्लान की जानकारी के लिए GTAF से क्वेरी कर सकते हैं. इसके अलावा, अगर Google ऐप्लिकेशन GTAF के साथ रजिस्टर करते हैं, तो GTAF उपयोगकर्ता के डेटा प्लान के बारे में अपडेट भेज सकता है.
  • MSISDN: मोबाइल स्टेशन इंटरनेशनल सब्सक्राइबर डायरेक्टरी नंबर. यह एक ऐसा नंबर होता है जो मोबाइल नेटवर्क में किसी सदस्यता की यूनीक पहचान करता है. इसे आम तौर पर फ़ोन नंबर के तौर पर जाना जाता है.
  • सीपीआईडी एंडपॉइंट: यह मोबाइल नेटवर्क ऑपरेटर की लागू की गई एक सेवा है. यह कैरियर प्लान आइडेंटिफ़ायर (सीपीआईडी) जनरेट करती है. इसका इस्तेमाल, उपयोगकर्ता के डेटा प्लान की जानकारी देखने के लिए किया जा सकता है. CPID की मदद से, ऐप्लिकेशन किसी व्यक्ति के डेटा प्लान की जानकारी के लिए क्वेरी कर सकता है. इसके लिए, उसे व्यक्ति के MSISDN को ऐक्सेस करने की ज़रूरत नहीं होती. सीपीआईडी जनरेट करने की प्रोसेस के बारे में यहां बताया गया है.
  • उपयोगकर्ता की कुंजी: उपयोगकर्ता की कुंजी एक स्ट्रिंग होती है. इसका इस्तेमाल, उपयोगकर्ता के डेटा प्लान की पहचान करने के लिए किया जा सकता है. यह CPID या MSISDN हो सकता है. यह उन ऐप्लिकेशन के लिए है जिनके पास MSISDN का ऐक्सेस है.
  • डीपीए: डेटा प्लान एजेंट, मोबाइल नेटवर्क ऑपरेटर की ओर से लागू की गई एक सेवा है. यह सेवा, उपयोगकर्ता के डेटा प्लान की जानकारी GTAF के साथ शेयर करती है. डेटा प्लान एजेंट, Google Mobile Data Plan Sharing API का इस्तेमाल करके डेटा भेज सकता है. साथ ही, Data Plan Agent API को लागू करके, GTAF के साथ जानकारी शेयर कर सकता है. डीपीए, सीपीआईडी एंडपॉइंट के तौर पर भी काम कर सकता है. हालांकि, यह ज़रूरी नहीं है.
  • UE: User Equipment, उपयोगकर्ता की ओर से इस्तेमाल किया जाने वाला डिवाइस.

ज़रूरी भाषा

इन गाइड में दिए गए कीवर्ड "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", और "OPTIONAL" का मतलब वही है जो RFC 2119 में बताया गया है.

मोबाइल डेटा प्लान शेयर करने की सुविधा

मोबाइल डेटा प्लान शेयर करने की सुविधा में, ये तीन मुख्य हिस्से शामिल होते हैं:

  1. मोबाइल और इंटरनेट सेवा देने वाली कंपनी के प्लान आइडेंटिफ़ायर (सीपीआईडी) को सेट अप और अपडेट करने का तरीका. इसका इस्तेमाल उपयोगकर्ता की कुंजी के तौर पर किया जा सकता है. जिन ऐप्लिकेशन के पास MSISDN का ऐक्सेस होता है वे इसे उपयोगकर्ता कुंजी के तौर पर इस्तेमाल कर सकते हैं.
  2. Google Mobile Data Plan Sharing API, जो डीपीए को किसी उपयोगकर्ता के डेटा प्लान की जानकारी Google को भेजने की अनुमति देता है. उदाहरण के लिए, अगर डीपीए को किसी उपयोगकर्ता को ऑफ़र के बारे में सूचना देनी है, तो वह GTAF को सूचना दे सकता है. इसके बाद, GTAF उपयोगकर्ता को सूचना देगा.
  3. यह DPA की ओर से लागू किया गया Data Plan Agent API है. इससे GTAF, DPA से उपयोगकर्ता के डेटा प्लान के बारे में क्वेरी कर सकता है. उदाहरण के लिए, अगर किसी ऐप्लिकेशन को उपयोगकर्ता को मौजूदा डेटा प्लान का बैलेंस दिखाना है, तो वह GTAF से क्वेरी कर सकता है. इसके बाद, GTAF, DPA से क्वेरी करता है.

इस पेज के बाकी हिस्से में, डेटा प्लान से जुड़े शब्दों के बारे में बताया गया है. साथ ही, CPID बनाने का तरीका बताया गया है. Google Mobile Data Plan Sharing API और Data Plan Agent API की खास बातें यहां दी गई हैं.

डेटा प्लान से जुड़ी शब्दावली

एपीआई में तय किए गए planStatus का स्कीमा, उपयोगकर्ताओं को ऑपरेटर की ओर से ऑफ़र किए जाने वाले डेटा प्लान को दिखाने में सक्षम होना चाहिए. यह एपीआई, डेटा प्लान तय करने की सुविधा देता है.इन प्लान में, यूआरएल के किसी सेट पर आने वाले सभी ट्रैफ़िक के लिए, उपयोगकर्ताओं से अलग-अलग शुल्क लिया जाता है. उदाहरण के लिए, *.acmefake.com पर आने वाले सभी ट्रैफ़िक के लिए, अलग-अलग शुल्क लिया जाता है. यह एपीआई, ऐसे डेटा प्लान के साथ भी काम करता है जिनमें ऐप्लिकेशन में कुछ खास तरह की कार्रवाइयों के लिए अलग-अलग शुल्क लिया जाता है. हम इन्हें सब-ऐप्लिकेशन डेटा प्लान कहते हैं. सब-ऐप्लिकेशन डेटा प्लान का एक उदाहरण यह है कि वीडियो ब्राउज़ करने के लिए कोई शुल्क नहीं लिया जाता (यानी कि शून्य शुल्क), जबकि ऐप्लिकेशन में वीडियो देखने पर, सदस्य के डेटा बैलेंस से डेटा कट जाता है. इसके बाद, वीडियो ऐप्लिकेशन को डेटा प्लान की जानकारी के लिए क्वेरी करते समय, यह जानकारी मिलनी चाहिए.

यहां हम डेटा प्लान से जुड़े कुछ शब्दों के बारे में बता रहे हैं. पहले डायग्राम में, डेटा प्लान के कुछ ऐसे उदाहरण दिए गए हैं जिनसे हमें उन कॉन्सेप्ट के बारे में पता चलता है जिनके बारे में हम जानकारी इकट्ठा करना चाहते हैं.

डेटा प्लान: यह मोबाइल सेवा का सबसे ऊपरी लेवल का पैकेज होता है, जिसे कोई सदस्य खरीदता है. यह "30 दिनों के लिए 10 जीबी मोबाइल डेटा" जैसा आसान हो सकता है. इसके अलावा, इसे कॉम्पोनेंट के कलेक्शन के तौर पर भी तय किया जा सकता है. इसे मॉड्यूल भी कहा जाता है. डेटा प्लान में ये शामिल होते हैं:

  • डेटा प्लान का नाम, जैसे कि "ACME Red".
  • डेटा प्लान आइडेंटिफ़ायर. इसका इस्तेमाल प्लान के बारे में बताने के लिए किया जाता है. उदाहरण के लिए, खरीदारी के दौरान.
  • खत्म होने का समय, जब डेटा प्लान खत्म हो जाता है.
  • प्लान की कैटगरी, जैसे कि प्रीपेड प्लान या पोस्टपेड प्लान.

प्लान मॉड्यूल: यह डेटा प्लान का एक कॉम्पोनेंट होता है. खास तौर पर, प्लान मॉड्यूल में ये शामिल हैं:

  • मॉड्यूल का नाम, जैसे कि "मुफ़्त वीडियो नाइट".
  • अधिकतम दर, इस मॉड्यूल के ज़रिए उपयोगकर्ता को ऑफ़र किया जा रहा बैंडविड्थ.
  • छूट देने की अवधि, वह अवधि जिसके दौरान उपयोगकर्ता को छूट दी जा सकती है.
  • प्लान मॉड्यूल ट्रैफ़िक कैटगरी (पीएमटीसी). यह उस डेटा ट्रैफ़िक के बारे में जानकारी देती है जिस पर कोई मॉड्यूल लागू होता है. पीएमटीसी, *सभी इंटरनेट ट्रैफ़िक *जितना सामान्य या एक या उससे ज़्यादा ऐप्लिकेशन, वेबसाइटों या किसी एक ऐप्लिकेशन में उपयोगकर्ता के सफ़र से जनरेट/इस्तेमाल किए गए ट्रैफ़िक जितना खास हो सकता है. दूसरे टाइप के उदाहरण ये हैं: "अनलिमिटेड संगीत", "100 एमबी वीडियो डेटा पैक (वीडीपी)", "अनलिमिटेड गेमिंग डेटा", और "अनलिमिटेड वीडियो ब्राउज़िंग". पीएमटीसी की परिभाषा को आसान बनाने के लिए, हमने इन पीएमटीसी को तय किया है : GENERIC, VIDEO, VIDEO_BROWSING, VIDEO_OFFLINE1, MUSIC, GAMING, SOCIAL, MESSAGING और PMTC_UNSPECIFIED.

  • डेटा वॉल्यूम या समयसीमा चालू होने के बाद, प्लान मॉड्यूल की समयसीमा खत्म हो जाती है. ऐसा तब होता है, जब डेटा वॉल्यूम या समयसीमा (समय के हिसाब से प्लान के मामले में, जैसे कि अगले सात दिनों में 600 मिनट तक इंटरनेट ऐक्सेस करने की सुविधा) खत्म हो गई है. नीचे दिए गए पहले डायग्राम में, "ACME Blue" के सदस्य के तौर पर कोई व्यक्ति प्लान मॉड्यूल खरीद सकता है. इसमें सामान्य उपयोगकर्ता के लिए 1 जीबी डेटा मिलता है. इस डेटा को चालू होने के एक हफ़्ते के अंदर इस्तेमाल करना होता है. इसके बाद, यह खत्म हो जाता है.

Data Plan API का सैंपल प्लान

पहली इमेज. डेटा प्लान के सैंपल.

सीपीआईडी सेट अप करना

GTAF, DPA से कम्यूनिकेट करते समय किसी सदस्य की पहचान करने के लिए, उपयोगकर्ता की कुंजी का इस्तेमाल करता है. जिन ऐप्लिकेशन के पास उपयोगकर्ता के एमएसआईएसडीएन का ऐक्सेस होता है वे इसे user_key के तौर पर इस्तेमाल कर सकते हैं. दूसरी ओर, जिन ऐप्लिकेशन के पास MSISDN का ऐक्सेस नहीं है उन्हें उपयोगकर्ता के MSISDN का पता लगाए बिना, कैरियर प्लान आइडेंटिफ़ायर (सीपीआईडी) सेट अप करना होगा. यहां हम उस तरीके के बारे में बताते हैं जिससे सीपीआईडी सेट किया जाता है.

सीपीआईडी कॉल फ़्लो

दूसरी इमेज: सीपीआईडी सेट अप करने के लिए कॉल फ़्लो.

  1. यूरोपीय संघ में मौजूद Google ऐप्लिकेशन, Google के इंटरनल एपीआई का इस्तेमाल करके, GTAF से CPID एंडपॉइंट का यूआरएल वापस पाता है. ऑपरेटर की पहचान, क्लाइंट के सार्वजनिक आईपी पते और चालू सिम कार्ड के MCC+MNC का इस्तेमाल करके की जाती है. एमवीएनओ के मामले में, Google एसपीएन और GID1 का इस्तेमाल करके यह पता लगाएगा कि एमवीएनओ कौन है
  2. क्लाइंट, CPID एंडपॉइंट को एचटीटीपी GET अनुरोध भेजता है. ऑपरेटर, एचटीटीपीएस पर अनुरोध भेजने की सुविधा दे सकता है.
  3. ऑपरेटर, अनुरोध की पहचान करने के लिए डीप पैकेट इंस्पेक्शन फ़ंक्शन का इस्तेमाल कर सकता है. साथ ही, उपयोगकर्ता के फ़ोन नंबर को अनुरोध में एचटीटीपी हेडर के तौर पर शामिल कर सकता है.
  4. सीपीआईडी एंडपॉइंट को अनुरोध मिलता है, वह सीपीआईडी बनाता है, और सीपीआईडी को यूई को वापस भेजता है. इसमें टाइम टू लिव (टीटीएल) होता है. इससे पता चलता है कि यूई इस सीपीआईडी का इस्तेमाल कब तक कर सकता है.

अगर ऑपरेटर चाहे, तो सीपीआईडी एंडपॉइंट यूआरएल में डोमेन नेम के बजाय आईपी पतों का इस्तेमाल भी कर सकता है. आईपी पते, निजी पते की जगह में हो सकते हैं. हालांकि, Google क्लाइंट को ऑपरेटर के नेटवर्क में इन पतों तक पहुंचना होगा.

ऑपरेटर को शामिल होने की प्रोसेस के दौरान, Google को यह जानकारी देनी होगी: 1. CPID_URL, वह यूआरएल है जिस पर ऐप्लिकेशन, सीपीआईडी पाने के लिए संपर्क करेंगे. एक CPID_URL ज़रूरी है, लेकिन ऑपरेटर उपलब्धता बढ़ाने के लिए कई यूआरएल दे सकता है. 1. ऑपरेटर के मालिकाना हक वाले आईपी प्रीफ़िक्स की सूची. साथ ही, मोबाइल कंट्री कोड (एमसीसी) और मोबाइल नेटवर्क कोड (एमएनसी) की सूची, जिन्हें ऑपरेटर दिए गए CPID_URLs से मैप करना चाहता है. अगर ऑपरेटर अपने नेटवर्क में MVNO के बीच अंतर करने के लिए SPN या GID1 का इस्तेमाल करता है, तो ऑपरेटर को यह जानकारी भी देनी होगी. Google इस जानकारी का इस्तेमाल करके, क्लाइंट को सीपीआईडी के सही एंडपॉइंट से मैच करेगा. जैसा कि इमेज 2 के पहले चरण में दिखाया गया है.

अनुरोध का फ़ॉर्मैट यह है: GET CPID_URL लेगसी सिस्टम के साथ काम करने के लिए, सीपीआईडी एंडपॉइंट को इस तरह के अनुरोध को स्वीकार करना चाहिए:

GET CPID_URL?app={app_id}

सीपीआईडी जनरेट करते समय, सीपीआईडी एंडपॉइंट {app_id} यूआरएल पैरामीटर को अनदेखा कर सकता है. हालांकि, इसमें पैरामीटर वाले अनुरोध को हैंडल करने की सुविधा होनी चाहिए.

सीपीआईडी एंडपॉइंट के अनुरोध में Accept-Language हेडर शामिल किया जा सकता है. अगर हेडर शामिल किया गया है, तो डीपीए को Mobile Data Plan Sharing API का इस्तेमाल करके भेजे जाने वाले अपडेट में, लोगों के पढ़ने लायक स्ट्रिंग का इस्तेमाल करना होगा. इसके लिए, सीपीआईडी अनुरोध में दी गई सेटिंग का इस्तेमाल करना होगा.

जब भी क्लाइंट, GET CPID_URL अनुरोध जारी करता है, तो उसे नया CPID मिलना चाहिए. अगर CPID बन जाता है, तो CPID एंडपॉइंट को 200 OK रिस्पॉन्स देना होगा. जवाब के मुख्य हिस्से में, CPIDResponse का एक इंस्टेंस होना ज़रूरी है.

{
    "cpid": "<CPID_string>",
    "ttlSeconds": 2592000
}

सीपीआईडी, ttlSeconds सेकंड के लिए मान्य होना चाहिए. GTAF, DPA को किए जाने वाले अगले सभी कॉल में, RFC2396 के हिसाब से CPID को एन्कोड करेगा.

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

{
    "errorMessage": "<error message>",
    "cause": "INVALID_NUMBER"
}

खास तौर पर, अगर किसी ऐसे उपयोगकर्ता के लिए CPID का अनुरोध मिलता है जो ऑपरेटर के नेटवर्क से नहीं जुड़ा है (जैसे, किसी दूसरे ऑपरेटर से जुड़ा उपयोगकर्ता, लेकिन इस CPID एंडपॉइंट से जुड़े नेटवर्क पर रोमिंग कर रहा है) या जिसने Google के साथ डेटा प्लान की जानकारी शेयर करने का विकल्प नहीं चुना है, तो CPID एंडपॉइंट को HTTP स्टेटस कोड 403 दिखाना होगा.

सीपीआईडी जनरेट करना

सीपीआईडी एंडपॉइंट के लिए, सीपीआईडी बनाने का सुझाया गया तरीका यह है:

CPID_string = Base64(AES(MSISDN + TimeStamp + language, secret))

सीपीआईडी एंडपॉइंट, एमएसआईएसडीएन, Accept-Language हेडर में क्लाइंट की भेजी गई भाषा, और हाई रिज़ॉल्यूशन वाले टाइमस्टैंप को जोड़ता है. इसके बाद, secretकी का इस्तेमाल करके, AES के ज़रिए इसे एन्क्रिप्ट (सुरक्षित) करता है. टाइमस्टैंप, उस समय के हिसाब से होना चाहिए जब सीपीआईडी खत्म होता है. एन्क्रिप्ट (सुरक्षित) किए गए आउटपुट को Base64 कोड में बदला जाता है. इसके अलावा, जब यूआरएल में CPID का इस्तेमाल किया जाता है, तो इसे यूआरएल के लिए कोड में बदलना ज़रूरी है. ऐसा इसलिए, ताकि Base64 में इस्तेमाल किए गए खास वर्णों (/+=) को हैंडल किया जा सके. खास तौर पर, जब GTAF, DPA को कॉल करता है या जब DPA, Mobile Data Plan Sharing API को कॉल करता है, तब CPID को यूआरएल के तौर पर एन्कोड किया जाना चाहिए. इस तरीके से CPID जनरेट करने का फ़ायदा यह है कि DPA और CPID एंडपॉइंट के पास, मान्य CPID और MSISDN का डेटाबेस नहीं होना चाहिए.

किसी ऑपरेटर की स्थिति के आधार पर, CPID एंडपॉइंट को लागू करना मुश्किल हो सकता है. सीपीआईडी एंडपॉइंट पर एमएसआईएसडीएन का ऐक्सेस पाने में अक्सर समस्या आती है. हमें ऑपरेटरों को शामिल करने के दौरान मिले सबक शेयर करने में खुशी हो रही है. अगर आपको कोई समस्या आती है, तो कृपया हमसे संपर्क करें.

सुरक्षा से जुड़ी ज़रूरी शर्तें

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

उपलब्धता और क्षमता से जुड़ी ज़रूरी शर्तें

अगर क्लाइंट को सीपीआईडी नहीं मिलता है, तो वे Mobile Data Plan API से कोई भी जानकारी ऐक्सेस नहीं कर सकते. इस वजह से, ऑपरेटर को यह पक्का करने के लिए ज़रूरी कदम उठाने होंगे कि सीपीआईडी एंडपॉइंट उपलब्ध हो. इन उपायों में, सीपीआईडी एंडपॉइंट और डीपीआई फ़ंक्शन के कई इंस्टेंस शामिल हैं. साथ ही, दोनों फ़ंक्शन के लिए फ़िज़िकल, साइट, और नेटवर्क रिडंडेंसी शामिल है. यह भी पक्का करना ज़रूरी है कि सिस्टम के संसाधन और क्षमताएं ज़रूरत के हिसाब से हों. इसके अलावा, सीपीआईडी एंडपॉइंट के साथ-साथ, हेडर को इंजेक्ट करने वाले डीपीआई फ़ंक्शन में इतनी क्षमता होनी चाहिए कि वह सीपीआईडी का अनुरोध करने वाले सभी Google क्लाइंट के लोड को मैनेज कर सके. सीपीआईडी एंडपॉइंट, ttlSeconds फ़ील्ड में बड़ी वैल्यू का इस्तेमाल कर सकता है. इससे सीपीआईडी जनरेट करने की फ़्रीक्वेंसी कम हो जाती है. Google, 30 दिनों की टीटीएल वैल्यू इस्तेमाल करने का सुझाव देता है.

नोट


  1. VIDEO_OFFLINE PMTC का मतलब है कि यह प्लान सिर्फ़ ऑफ़लाइन के लिए अच्छा है. उदाहरण के लिए, स्ट्रीमिंग की क्वालिटी बहुत खराब है. यह फ़्लेक्सटाइम विंडो से अलग है.