Street View से होने वाला डायरेक्ट अपलोड

वर्शन 2.1

बैकग्राउंड

एपीआई के पुराने वर्शन में ओएससी के मुताबिक काम करने वाला कैमरा एक वाई-फ़ाई ऐक्सेस पॉइंट बनाता था, जिससे Google Street View iOS और Android ऐप्लिकेशन कनेक्ट हो पाते थे. यह ऐप्लिकेशन, फ़ोटो लेने के लिए ओएससी कैमरा इस्तेमाल करता है. साथ ही, कैमरे से कैप्चर किए गए कॉन्टेंट को Google Street View पर पब्लिश करने के लिए, उसे डाउनलोड भी करता है. कॉन्टेंट पब्लिश करने की प्रोसेस को तेज़ी से पूरा करने के लिए, हमने एक नया वैकल्पिक वर्कफ़्लो शुरू किया है. इसकी मदद से, ओएससी कैमरों को सीधे Street View सर्वर पर कॉन्टेंट अपलोड करने की सुविधा मिलती है. इससे कॉन्टेंट को, पहले कैमरे से ऐप्लिकेशन और फिर ऐप्लिकेशन से Street View सर्वर पर ट्रांसफ़र होने में ज़्यादा समय लगता है. इसे एपीआई लेवल 2.1 में जोड़ा गया था. यह सिर्फ़ ओएससी कैमरों के लिए काम का है, जो वाई-फ़ाई ऐक्सेस पॉइंट दे सकता है. साथ ही, इंटरनेट ऐक्सेस करने के लिए इंफ़्रास्ट्रक्चर के वाई-फ़ाई ऐक्सेस पॉइंट से भी कनेक्ट किया जा सकता है.

खास जानकारी

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

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

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

जब कैमरा इंटरनेट मोड में हो, तब बातचीत को मैनेज करने के लिए, कैमरे में डिस्कवरी प्रोटोकॉल भी (डिस्कवरी देखें) लागू होना चाहिए.

इंटरनेट मोड सेटअप

  1. उपयोगकर्ता कैमरा चालू कर देता है. यह सुविधा डायरेक्ट मोड में शुरू होती है, क्योंकि इंटरनेट मोड अभी तक सेट अप नहीं किया गया है.
  2. मोबाइल डिवाइस, कैमरे के वाई-फ़ाई से कनेक्ट हो जाता है.
  3. ऐप्लिकेशन, खुद ही हस्ताक्षर किया गया सर्टिफ़िकेट जनरेट करता है.
  4. ऐप्लिकेशन, इंफ़्रास्ट्रक्चर के वाई-फ़ाई ऐक्सेस पॉइंट का SSID, कैमरे को भेजता है. कैमरा कनेक्ट करने के लिए, ऐक्सेस पॉइंट का पासवर्ड होता है. साथ ही, वह खुद साइन किया हुआ सर्टिफ़िकेट भी भेजता है, जिसका इस्तेमाल कैमरा, बाद में ऐप्लिकेशन की पुष्टि करने के लिए करता है.switchWifi
    • कृपया ध्यान दें कि कैमरे को वाई-फ़ाई क्रेडेंशियल और ऐप्लिकेशन के खुद हस्ताक्षर किए गए सर्टिफ़िकेट, दोनों को सुरक्षित तरीके से सेव करना चाहिए.
    • हमारा सुझाव है कि कैमरे को एक से ज़्यादा वाई-फ़ाई क्रेडेंशियल सेव करने चाहिए, क्योंकि कैमरे को अलग-अलग इंफ़्रास्ट्रक्चर के वाई-फ़ाई ऐक्सेस पॉइंट से कनेक्ट करना पड़ सकता है. कैमरे को सबसे हाल का वाई-फ़ाई क्रेडेंशियल सेव करने के लिए, कम से कम ज़रूरत होती है.
  5. कैमरा खुद ही हस्ताक्षर किए गए सर्टिफ़िकेट के साथ जवाब देता है. ऐप्लिकेशन इस सर्टिफ़िकेट का इस्तेमाल, बाद में कैमरे की पुष्टि करने के लिए करता है.
  6. उपयोगकर्ता अब सीधे कैमरे से, डायरेक्ट मोड और इंटरनेट मोड के बीच स्विच कर सकता है. जैसे, फ़िज़िकल टॉगल बटन का इस्तेमाल करके.

डिस्कवरी कैंपेन

ओएससी कैमरों के लिए डिस्कवरी, ज़ीरो कॉन्फ़िगरेशन पर आधारित प्रोटोकॉल है. कैमरे को आईपीवी4 लिंक-लोकल ऐड्रेसिंग लागू करनी होगी. साथ ही, एमडीएनएस (मल्टीकास्ट डीएनएस) और डीएनएस-एसडी (डीएनएस पर आधारित सेवा डिस्कवरी) से जुड़े निर्देशों का भी पालन करना होगा:

सेवा इंस्टेंस नाम

सर्विस इंस्टेंस नाम के <Service> वाले हिस्से के लिए, ओएससी कैमरों को _osc._tcp का इस्तेमाल करना चाहिए. सर्विस इंस्टेंस नाम के <Domain> हिस्से के लिए, ओएससी कैमरों को local. का इस्तेमाल करना चाहिए. ध्यान दें कि local के बाद बाद में . है.

TXT रिकॉर्ड

हम चाहते हैं कि कैमरा इन कुंजी/वैल्यू पेयर को TXT रिकॉर्ड में भेजे: txtvers, ty, और id.

txtvers

आने वाले समय में TXT वर्शन को अपडेट देने के लिए, कुंजी/वैल्यू पेयर का इस्तेमाल करें txtvers=1.

कैमरे का ऐसा नाम होना चाहिए जिसे उपयोगकर्ता आसानी से पढ़ सके. जैसे, ty=Google Street View Optimized Spherical Camera Model XYZ.

id

कैमरे का यूनीक आईडी देता है, जैसे कि id=A unique id of the camera. id की वैल्यू, /osc/info आउटपुट में मौजूद cameraId की वैल्यू से मेल खानी चाहिए.

सूचनाएं

कैमरा चालू होने या बंद होने पर, कैमरे को सूचना सेटिंग का पालन करना ज़रूरी है, जैसा कि mडीएनएस स्पेसिफ़िकेशन में बताया गया है. इससे जुड़ी सूचना को कम से कम दो बार भेजना चाहिए. साथ ही, इन मैसेज के बीच में कम से कम एक सेकंड का अंतराल रखना चाहिए.

स्टार्टअप

कैमरा चालू करने पर, इसे mडीएनएस की खास जानकारी में बताए गए तरीके की जांच करनी होगी और चरणों के बारे में बताना होगा. इस मामले में, एसआरवी, PTR, और TXT रिकॉर्ड भेजे जाने चाहिए. हमारा सुझाव है कि अगर हो सके, तो सभी रिकॉर्ड को एक डीएनएस रिस्पॉन्स में ग्रुप करें. अगर ऐसा नहीं है, तो इस ऑर्डर का सुझाव दिया जाता है: SRV, PTR, TXT रिकॉर्ड.

बंद है

कैमरा बंद करने के बाद, इस सुविधा में दिलचस्पी रखने वाले सभी पक्षों को TTL=0 के साथ एक "गुडबाय पैकेट" भेजकर, इस बारे में सूचना देनी चाहिए. इस बारे में mडीएनएस दस्तावेज़ के सेक्शन 10.1 में बताया गया है.

खुद हस्ताक्षर किया हुआ सर्टिफ़िकेट

ऐप्लिकेशन और कैमरा, एक-दूसरे की पुष्टि करने के लिए इंटरनेट मोड सेटअप के दौरान शेयर किए गए खुद के हस्ताक्षर किए गए सर्टिफ़िकेट का इस्तेमाल कर सकते हैं. साथ ही, एसएसएल म्युचुअल ऑथेंटिकेशन का इस्तेमाल करके एक-दूसरे के साथ शेयर किए गए डेटा को सुरक्षित करने के लिए एक सुरक्षित चैनल बना सकते हैं.

इंटरनेट मोड के दौरान, ऐप्लिकेशन एक एसएसएल सर्वर और कैमरे को क्लाइंट की तरह काम करेगा. कैमरा जांच करेगा कि सर्वर का सर्टिफ़िकेट, ऐप्लिकेशन के खुद हस्ताक्षर किए गए सर्टिफ़िकेट से मेल खाता है या नहीं. साथ ही, ऐप्लिकेशन जांच करेगा कि क्लाइंट का सर्टिफ़िकेट, कैमरे के सर्टिफ़िकेट से मेल खाता है या नहीं.

पारस्परिक प्रमाणीकरण का समर्थन करने वाली किसी भी SSL लाइब्रेरी (उदा. SSL) का उपयोग इंटरनेट मोड के दौरान ऐप्लिकेशन और कैमरे के बीच एसएसएल कनेक्शन स्थापित करने के लिए किया जा सकता है.

नया अपलोड फ़्लो

  1. अगर कैमरा इंटरनेट मोड में नहीं है, तो उपयोगकर्ता उसे इंटरनेट मोड में बदल देगा. कैमरा सेव किए गए क्रेडेंशियल का इस्तेमाल करके, इंफ़्रास्ट्रक्चर के वाई-फ़ाई से कनेक्ट हो जाता है.
  2. मोबाइल डिवाइस, इंफ़्रास्ट्रक्चर के वाई-फ़ाई से भी कनेक्ट हो जाता है और कैमरे को खोजता है.
    • इसके लिए, कैमरे को लोकल डिस्कवरी प्रोटोकॉल mडीएनएस/डीएनएस-एसडी को लागू करना होगा (डिस्कवरी देखें).
    • इसे लागू करने के लिए कोई खास ज़रूरी शर्त नहीं है. (mDNSResponder एक अच्छा रेफ़रंस है).
    • इंटरनेट मोड सेटअप के दौरान, ऐप्लिकेशन और कैमरा, दोनों ही खुद से साइन किए हुए सर्टिफ़िकेट जनरेट और शेयर करते हैं. इंटरनेट मोड के दौरान, ऐप्लिकेशन और कैमरा, दोनों की आपसी एसएसएल ऑथेंटिकेशन से एक-दूसरे की पुष्टि करते हैं.
    • कैमरे का पता लगने के बाद, एचटीटीपी 1.1 के आधार पर क्लाइंट से सीधे स्थानीय नेटवर्क पर कम्यूनिकेशन चालू हो जाता है. डेटा फ़ॉर्मैट, JSON पर आधारित होते हैं. अनुरोध, GET या POST अनुरोध हो सकते हैं.
  3. ऐप्लिकेशन, listFiles कमांड की मदद से कैमरे से फ़ाइलों की सूची के बारे में क्वेरी करता है.
  4. ऐप्लिकेशन, इमेज या वीडियो को कैमरे से सीधे Street View सर्वर पर अपलोड करने के लिए, uploadFile कमांड के साथ अपलोड शुरू करता है.
  5. ऐप्लिकेशन अपलोड होने की प्रोसेस जानने के लिए, status कमांड के साथ समय-समय पर कैमरे का पोल करवाता है.