Versi 2.1
Latar belakang
Pada versi API sebelumnya, kamera yang sesuai dengan OSC akan membuat titik akses Wi-Fi yang dapat dihubungkan oleh aplikasi iOS dan Android Google Street View. Aplikasi akan mengarahkan kamera OSC untuk mengambil foto dan juga mendownload konten yang diambil dari kamera untuk memublikasikannya ke Google Street View. Untuk mempercepat publikasi konten, kami memperkenalkan alur kerja opsional baru yang memungkinkan kamera OSC mengupload konten ke server Street View secara langsung. Hal ini akan menghilangkan transfer konten ganda yang panjang terlebih dahulu dari kamera ke aplikasi, lalu dari aplikasi ke server Street View. Hal ini ditambahkan di API level 2.1 dan hanya relevan untuk kamera OSC yang dapat menyediakan titik akses Wi-Fi dan juga terhubung ke titik akses Wi-Fi infrastruktur dengan akses ke Internet.
Ringkasan
Alur kerja upload baru mengharuskan kamera menyediakan cara (mis. tombol fisik khusus atau kombinasi tombol yang ada) agar pengguna dapat beralih di antara dua mode Wi-Fi:
- Mode langsung: Dalam mode ini, kamera bertindak sebagai titik akses yang memungkinkan perangkat seluler terhubung ke kamera. Dalam mode ini, perangkat seluler dapat mengontrol kamera untuk melakukan tugas seperti mengambil foto. Perangkat seluler juga dapat memberi kamera kredensial titik akses Wi-Fi yang kemudian dapat digunakan kamera untuk beralih ke mode Internet.
- Mode internet: Dalam mode ini, kamera terhubung ke titik akses Wi-Fi dengan akses Internet. Tindakan ini akan menggunakan ID titik akses dan sandi yang diberikan kepadanya dari aplikasi saat kamera sebelumnya dalam mode Langsung. Perangkat seluler dapat memulai upload dari kamera langsung ke server Street View dalam mode ini. Kamera juga dapat terus mengontrol kamera untuk melakukan tugas seperti mengambil foto.
Mode kamera akan tetap ada meskipun kamera dinonaktifkan dan diaktifkan kembali. Selain itu, sangat disarankan agar kamera menawarkan sinyal (misalnya cahaya, suara, atau indikator di layar) untuk memberi tahu pengguna tentang mode Wi-Fi saat ini.
Kamera juga harus memiliki protokol penemuan (lihat Penemuan) yang diimplementasikan untuk menangani komunikasi saat kamera dalam mode Internet.
Pengaturan Mode Internet
- Pengguna mengaktifkan kamera. Dimulai dalam mode Langsung karena mode Internet belum disiapkan.
- Perangkat seluler terhubung ke Wi-Fi kamera.
- Aplikasi akan membuat sertifikat yang ditandatangani sendiri.
- Aplikasi mengirimkan perintah
switchWifi
ke kamera dengan SSID titik akses Wi-Fi infrastruktur yang perlu dihubungkan dengan kamera, sandi untuk titik akses tersebut, dan sertifikat yang ditandatangani sendiri yang digunakan kamera untuk mengautentikasi aplikasi pada lain waktu.- Perlu diperhatikan bahwa kamera harus menyimpan kredensial Wi-Fi dan sertifikat yang ditandatangani sendiri oleh aplikasi dengan aman.
- Sebaiknya kamera menyimpan beberapa kredensial Wi-Fi karena kamera mungkin perlu terhubung ke titik akses Wi-Fi infrastruktur yang berbeda. Persyaratan minimum adalah agar kamera menyimpan kredensial Wi-Fi terbaru.
- Kamera merespons dengan sertifikat yang ditandatangani sendiri, yang digunakan aplikasi untuk mengautentikasi kamera nanti.
- Pengguna kini dapat beralih antara Mode langsung dan mode Internet langsung dari kamera, misalnya dengan tombol fisik.
Discovery
Penemuan untuk kamera OSC adalah protokol berbasis zeroconf. Kamera HARUS menerapkan IPv4 Link-Local Addressing dan HARUS mematuhi spesifikasi mDNS (Multicast DNS) dan DNS-SD (DNS-Based Service Discovery):
Nama Instance Layanan
Untuk bagian <Service>
dari Nama Instance Layanan, kamera OSC harus menggunakan
_osc._tcp
. Untuk bagian <Domain>
dari Nama Instance Layanan, kamera OSC
harus menggunakan local.
. Perlu diketahui bahwa ada .
di akhir setelah local
.
Catatan TXT
Kita mengharuskan kamera mengirim key-value pair berikut dalam data TXT: txtvers
, ty
, dan id
.
{i>txtvers<i}
Untuk mengizinkan update versi TXT di masa mendatang, gunakan pasangan kunci/nilai txtvers=1
.
ty
Memberikan nama kamera yang dapat dibaca pengguna, misalnya,
ty=Google Street View Optimized Spherical Camera Model XYZ
.
id
Memberikan ID unik kamera, misalnya,
id=A unique id of the camera
. Nilai untuk id
HARUS sama dengan
cameraId
dalam
output /osc/info
.
Pengumuman
Saat memulai atau mematikan kamera, kamera HARUS melakukan langkah pengumuman seperti yang dijelaskan dalam spesifikasi mDNS. SEHARUSNYA mengirim pengumuman yang sesuai setidaknya dua kali dengan setidaknya interval satu detik di antara pengumuman tersebut.
Skrip
Saat memulai kamera, pengguna HARUS melakukan pemeriksaan dan mengumumkan langkah-langkah seperti yang dijelaskan dalam spesifikasi mDNS. Data SRV, PTR, dan TXT harus dikirim dalam kasus ini. Sebaiknya kelompokkan semua data ke dalam satu respons DNS jika memungkinkan. Jika tidak, urutan yang disarankan berikut: data SRV, PTR, TXT.
Nonaktif
Saat kamera dimatikan, kamera HARUS mencoba memberi tahu semua pihak yang berminat dengan
mengirimkan "paket selamat tinggal" dengan TTL=0
seperti yang dijelaskan di bagian 10.1 dalam
dokumentasi mDNS.
Sertifikat yang ditandatangani sendiri
Aplikasi dan kamera dapat menggunakan sertifikat yang ditandatangani sendiri dan dibagikan selama penyiapan mode Internet untuk saling mengautentikasi dan membuat saluran aman untuk melindungi data yang dipertukarkan, menggunakan autentikasi bersama SSL.
Selama mode Internet, aplikasi akan bertindak sebagai server SSL dan kamera sebagai klien. Kamera akan memeriksa apakah sertifikat server cocok dengan sertifikat yang ditandatangani sendiri milik aplikasi, dan aplikasi akan memeriksa apakah sertifikat klien cocok dengan sertifikat kamera.
Semua library SSL yang mendukung autentikasi bersama (misalnya, OpenSSL) dapat digunakan untuk membuat koneksi SSL antara aplikasi dan kamera selama mode Internet.
Alur Upload Baru
- Jika kamera tidak berada dalam mode Internet, pengguna akan mengalihkannya ke mode Internet. Kamera terhubung ke Wi-Fi infrastruktur menggunakan kredensial yang disimpan.
- Perangkat seluler juga terhubung ke Wi-Fi infrastruktur dan menemukan
kamera.
- Tindakan ini memerlukan kamera untuk menerapkan protokol penemuan lokal mDNS/DNS-SD (lihat Penemuan).
- Tidak ada persyaratan khusus tentang cara penerapannya (mDNSResponder adalah referensi yang baik).
- Aplikasi dan kamera membuat dan berbagi sertifikat yang ditandatangani sendiri selama penyiapan mode Internet. Selama mode Internet, aplikasi dan kamera saling mengautentikasi melalui autentikasi SSL timbal balik.
- Setelah kamera ditemukan, komunikasi klien akan diaktifkan langsung melalui jaringan lokal berdasarkan HTTP 1.1. Format data berbasis JSON. Permintaan dapat berupa permintaan GET atau POST.
- Aplikasi membuat kueri ke kamera untuk daftar file dengan
perintah
listFiles
. - Aplikasi memulai upload dengan perintah
uploadFile
untuk mengupload gambar atau video langsung dari kamera ke server Street View. - Aplikasi memeriksa kamera secara berkala untuk mengetahui progres upload dengan
perintah
status
.