সংস্করণ 2.1
পটভূমি
API-এর পূর্ববর্তী সংস্করণগুলিতে, একটি OSC অনুগত ক্যামেরা একটি Wi-Fi অ্যাক্সেস পয়েন্ট তৈরি করবে যা Google Street View iOS এবং Android অ্যাপগুলি সংযুক্ত করতে পারে। অ্যাপটি উভয়ই OSC ক্যামেরাকে ছবি তোলার নির্দেশ দেবে এবং ক্যামেরা থেকে ক্যাপচার করা বিষয়বস্তু ডাউনলোড করে গুগল স্ট্রিট ভিউতে প্রকাশ করবে। বিষয়বস্তু প্রকাশকে ত্বরান্বিত করতে, আমরা একটি নতুন ঐচ্ছিক ওয়ার্কফ্লো চালু করেছি যা OSC ক্যামেরাগুলিকে সরাসরি রাস্তার দৃশ্য সার্ভারে সামগ্রী আপলোড করতে দেয়৷ এটি প্রথমে ক্যামেরা থেকে অ্যাপে এবং তারপর অ্যাপ থেকে রাস্তার দৃশ্য সার্ভারে সামগ্রীর দীর্ঘ দ্বিগুণ স্থানান্তর দূর করে। এটি API স্তর 2.1-এ যোগ করা হয়েছে এবং এটি শুধুমাত্র OSC ক্যামেরাগুলির জন্য প্রাসঙ্গিক যা উভয়ই একটি Wi-Fi অ্যাক্সেস পয়েন্ট প্রদান করতে পারে এবং ইন্টারনেট অ্যাক্সেস সহ একটি পরিকাঠামো Wi-Fi অ্যাক্সেস পয়েন্টের সাথে সংযোগ করতে পারে।
ওভারভিউ
নতুন আপলোড ওয়ার্কফ্লোতে ব্যবহারকারীদের দুটি Wi-Fi মোডের মধ্যে স্যুইচ করার অনুমতি দেওয়ার জন্য একটি উপায় (যেমন একটি ডেডিকেটেড ফিজিক্যাল বোতাম বা বিদ্যমান বোতামগুলির সংমিশ্রণ) প্রদান করতে ক্যামেরার প্রয়োজন:
- ডাইরেক্ট মোড: এই মোডে, ক্যামেরা একটি অ্যাক্সেস পয়েন্ট হিসাবে কাজ করে যা একটি মোবাইল ডিভাইসের সাথে সংযোগ করতে দেয়। এই মোডে, মোবাইল ডিভাইসগুলি ফটো ক্যাপচার করার মতো কাজগুলি করতে ক্যামেরা নিয়ন্ত্রণ করতে পারে। মোবাইল ডিভাইসগুলি ক্যামেরাটিকে Wi-Fi অ্যাক্সেস পয়েন্টের শংসাপত্রগুলিও সরবরাহ করতে পারে যা ক্যামেরা তারপর ইন্টারনেট মোডে স্যুইচ করতে ব্যবহার করতে পারে৷
- ইন্টারনেট মোড: এই মোডে, ক্যামেরা ইন্টারনেট অ্যাক্সেস সহ একটি Wi-Fi অ্যাক্সেস পয়েন্টের সাথে সংযোগ করে৷ এটি অ্যাক্সেস পয়েন্ট আইডেন্টিফায়ার এবং পাসওয়ার্ড ব্যবহার করবে যা অ্যাপ থেকে এটিকে দেওয়া হয়েছিল যখন ক্যামেরাটি আগে ডাইরেক্ট মোডে ছিল। মোবাইল ডিভাইসগুলি এই মোডে ক্যামেরা থেকে সরাসরি রাস্তার দৃশ্য সার্ভারে আপলোড শুরু করতে পারে৷ তারা ফটো ক্যাপচার করার মতো কাজগুলি সম্পাদন করতে ক্যামেরা নিয়ন্ত্রণ করা চালিয়ে যেতে পারে।
ক্যামেরা মোডটি ক্যামেরা বন্ধ থাকা এবং আবার চালু করা জুড়ে থাকা উচিত। এছাড়াও, বর্তমান ওয়াই-ফাই মোড সম্পর্কে ব্যবহারকারীদের জানানোর জন্য ক্যামেরাটি একটি সংকেত (যেমন স্ক্রিনে আলো, শব্দ বা সূচক) অফার করার সুপারিশ করা হয়।
ক্যামেরা ইন্টারনেট মোডে থাকাকালীন যোগাযোগ পরিচালনা করার জন্য ক্যামেরার ডিসকভারি প্রোটোকল ( ডিসকভারি দেখুন) থাকা উচিত।
ইন্টারনেট মোড সেটআপ
- ব্যবহারকারী ক্যামেরা চালু করে। ইন্টারনেট মোড এখনও সেট আপ না হওয়ার কারণে এটি সরাসরি মোডে শুরু হয়৷
- মোবাইল ডিভাইসটি ক্যামেরার Wi-Fi এর সাথে সংযোগ করে।
- অ্যাপটি একটি স্ব-স্বাক্ষরিত শংসাপত্র তৈরি করে।
- অ্যাপটি ক্যামেরায়
switchWifi
কমান্ড পাঠায় অবকাঠামোর ওয়াই-ফাই অ্যাক্সেস পয়েন্টের SSID সহ ক্যামেরাকে সংযোগ করতে হবে, সেই অ্যাক্সেস পয়েন্টের পাসওয়ার্ড এবং এর স্ব-স্বাক্ষরিত শংসাপত্র যা ক্যামেরা পরে অ্যাপটিকে প্রমাণীকরণ করতে ব্যবহার করে। .- অনুগ্রহ করে মনে রাখবেন যে ক্যামেরাটি Wi-Fi শংসাপত্র এবং অ্যাপের স্ব-স্বাক্ষরিত শংসাপত্র উভয়ই নিরাপদে সংরক্ষণ করবে।
- এটি সুপারিশ করা হয় যে ক্যামেরা একাধিক Wi-Fi শংসাপত্র সঞ্চয় করে কারণ ক্যামেরাটিকে বিভিন্ন পরিকাঠামোর Wi-Fi অ্যাক্সেস পয়েন্টের সাথে সংযোগ করতে হতে পারে। ন্যূনতম প্রয়োজনীয়তা হল ক্যামেরার সাম্প্রতিকতম Wi-Fi শংসাপত্র সংরক্ষণ করার জন্য৷
- ক্যামেরাটি তার স্ব-স্বাক্ষরিত শংসাপত্রের সাথে প্রতিক্রিয়া জানায় যা অ্যাপটি পরে ক্যামেরাটিকে প্রমাণীকরণ করতে ব্যবহার করে।
- ব্যবহারকারী এখন সরাসরি ক্যামেরা থেকে ডাইরেক্ট মোড এবং ইন্টারনেট মোডের মধ্যে স্যুইচ করতে পারেন, যেমন একটি ফিজিক্যাল টগল বোতাম দিয়ে।
আবিষ্কার
OSC ক্যামেরার জন্য আবিষ্কার হল একটি zeroconf ভিত্তিক প্রোটোকল। ক্যামেরাকে অবশ্যই IPv4 লিঙ্ক-স্থানীয় ঠিকানা প্রয়োগ করতে হবে এবং mDNS (মাল্টিকাস্ট DNS) এবং DNS-SD (DNS-ভিত্তিক পরিষেবা আবিষ্কার) স্পেসিফিকেশন মেনে চলতে হবে:
পরিষেবা দৃষ্টান্ত নাম
সার্ভিস ইনস্ট্যান্স নামের <Service>
অংশের জন্য, OSC ক্যামেরার _osc._tcp
ব্যবহার করা উচিত। সার্ভিস ইনস্ট্যান্স নামের <Domain>
অংশের জন্য, OSC ক্যামেরার local.
. উল্লেখ্য যে একটি ট্রেলিং আছে .
local
পরে.
TXT রেকর্ড
আমাদের ক্যামেরাকে TXT রেকর্ডে নিম্নলিখিত কী/মান জোড়া পাঠাতে হবে: txtvers
, ty
, এবং id
।
txtvers
ভবিষ্যতে TXT সংস্করণে আপডেটের অনুমতি দিতে, কী/মান জোড়া txtvers=1
ব্যবহার করুন।
ty
ক্যামেরার একটি ব্যবহারকারী-পাঠযোগ্য নাম প্রদান করে, যেমন ty=Google Street View Optimized Spherical Camera Model XYZ
।
আইডি
ক্যামেরার একটি অনন্য আইডি প্রদান করে, যেমন id=A unique id of the camera
। id
মান অবশ্যই /osc/info
আউটপুটে cameraId
এর মতই হতে হবে।
ঘোষণা
ক্যামেরা স্টার্টআপ বা শাটডাউনের সময়, ক্যামেরাটিকে এমডিএনএস স্পেসিফিকেশনে বর্ণিত ঘোষণার ধাপটি সম্পাদন করতে হবে। এটি তাদের মধ্যে কমপক্ষে এক-সেকেন্ডের ব্যবধান সহ কমপক্ষে দুবার সংশ্লিষ্ট ঘোষণা পাঠাতে হবে।
স্টার্টআপ
ক্যামেরা স্টার্টআপে এটি অবশ্যই mDNS স্পেসিফিকেশনে বর্ণিত হিসাবে অনুসন্ধান এবং ঘোষণার পদক্ষেপগুলি সম্পাদন করতে হবে। এক্ষেত্রে SRV, PTR এবং TXT রেকর্ড পাঠাতে হবে। সম্ভব হলে সমস্ত রেকর্ডকে একটি DNS প্রতিক্রিয়াতে গোষ্ঠীভুক্ত করার পরামর্শ দেওয়া হয়। যদি না হয়, নিম্নলিখিত অর্ডার সুপারিশ করা হয়: SRV, PTR, TXT রেকর্ড।
শাটডাউন
ক্যামেরা শাটডাউনে এটিকে mDNS ডকুমেন্টেশনের বিভাগ 10.1-এ বর্ণিত TTL=0
সহ একটি "গুডবাই প্যাকেট" পাঠিয়ে সমস্ত আগ্রহী পক্ষকে অবহিত করার চেষ্টা করা উচিত।
স্ব-স্বাক্ষরিত শংসাপত্র
অ্যাপ এবং ক্যামেরা ইন্টারনেট মোড সেটআপের সময় শেয়ার করা স্ব-স্বাক্ষরিত শংসাপত্রগুলি একে অপরকে প্রমাণীকরণ করতে এবং এসএসএল পারস্পরিক প্রমাণীকরণ ব্যবহার করে বিনিময় করা ডেটা সুরক্ষার জন্য একটি নিরাপদ চ্যানেল তৈরি করতে ব্যবহার করতে পারে।
ইন্টারনেট মোড চলাকালীন, অ্যাপটি একটি SSL সার্ভার এবং ক্যামেরাটি ক্লায়েন্ট হিসাবে কাজ করবে। ক্যামেরা পরীক্ষা করবে যে সার্ভারের শংসাপত্র অ্যাপের স্ব-স্বাক্ষরিত শংসাপত্রের সাথে মেলে, এবং অ্যাপটি পরীক্ষা করবে যে ক্লায়েন্টের শংসাপত্র ক্যামেরার সাথে মেলে।
যে কোন SSL লাইব্রেরি পারস্পরিক প্রমাণীকরণ সমর্থন করে (যেমন OpenSSL) ইন্টারনেট মোড চলাকালীন অ্যাপ এবং ক্যামেরার মধ্যে SSL সংযোগ স্থাপন করতে ব্যবহার করা যেতে পারে।
নতুন আপলোড ফ্লো
- ক্যামেরা ইন্টারনেট মোডে না থাকলে, ব্যবহারকারী এটিকে ইন্টারনেট মোডে স্যুইচ করে। ক্যামেরাটি সঞ্চিত শংসাপত্র ব্যবহার করে অবকাঠামো Wi-Fi এর সাথে সংযোগ করে৷
- মোবাইল ডিভাইসটি অবকাঠামো Wi-Fi এর সাথে সংযোগ করে এবং ক্যামেরাটি আবিষ্কার করে।
- এর জন্য ক্যামেরার প্রয়োজন একটি স্থানীয় আবিষ্কারের প্রোটোকল mDNS/DNS-SD ( ডিসকভারি দেখুন)।
- এটি কীভাবে প্রয়োগ করা হয় তার কোনও নির্দিষ্ট প্রয়োজনীয়তা নেই ( mDNSResponder একটি ভাল রেফারেন্স)।
- অ্যাপ এবং ক্যামেরা উভয়ই ইন্টারনেট মোড সেটআপের সময় স্ব-স্বাক্ষরিত শংসাপত্র তৈরি এবং ভাগ করে। ইন্টারনেট মোড চলাকালীন, অ্যাপ এবং ক্যামেরা উভয়ই পারস্পরিক SSL প্রমাণীকরণের মাধ্যমে একে অপরকে প্রমাণীকরণ করে।
- ক্যামেরাটি আবিষ্কৃত হওয়ার পরে, HTTP 1.1-এর উপর ভিত্তি করে স্থানীয় নেটওয়ার্কে সরাসরি এটির সাথে ক্লায়েন্ট যোগাযোগ সক্ষম করা হয়। ডেটা ফরম্যাটগুলি JSON ভিত্তিক। অনুরোধ GET বা পোস্ট অনুরোধ হতে পারে.
- অ্যাপটি
listFiles
কমান্ড সহ ফাইলগুলির একটি তালিকার জন্য ক্যামেরাকে জিজ্ঞাসা করে। - অ্যাপটি সরাসরি ক্যামেরা থেকে রাস্তার দৃশ্য সার্ভারে একটি ছবি বা ভিডিও আপলোড করতে
uploadFile
কমান্ডের সাহায্যে আপলোড শুরু করে। - অ্যাপটি
status
কমান্ডের সাহায্যে আপলোডের অগ্রগতির জন্য পর্যায়ক্রমে ক্যামেরাকে পোল করে।