For security, intellectual-property and threat-environment reasons, the team behind Nirbhoy now works anonymously. The project stays open-source. The mission continues.নিরাপত্তা ও হুমকি-পরিবেশের কারণে নির্ভয়ের পেছনের দলটি এখন অজ্ঞাতনামা। প্রকল্প ওপেন-সোর্স থাকছে।
← Nirbhoy · HOW IT WORKSকীভাবে কাজ করে

One alert. Four parallel paths. First to arrive wins. একটি অ্যালার্ট। চারটি সমান্তরাল পথ। যেটি আগে পৌঁছায়, সেটাই জিতে।

When a child triggers an alert, the wearable fans it out over four independent channels simultaneously. The bridge deduplicates within a 60-second window so the parent sees only one notification. If any single channel works, the alert lands. যখন কোনো শিশু অ্যালার্ট চালু করে, যন্ত্রটি একই সাথে চারটি স্বাধীন পথে সেটি পাঠায়। ব্রিজ ৬০ সেকেন্ডে dedupe করে — অভিভাবক একটিই নোটিফিকেশন দেখেন। যেকোনো একটি পথ কাজ করলেই অ্যালার্ট পৌঁছায়।

The animated flowচলমান প্রবাহ
WEARABLE on child BLE LTE-M PUSH SMS BRIDGE · CF verify · audit · dedupe 60s window PARENT phone ~300 ms ~3 s ~8 s ~30 s · fallback
BLE · paired phone LTE-M · MQTT → bridge → WS Push · FCM cold-wake SMS · provider fallback

Per-path detailপথ-ভিত্তিক বিবরণ

BLE · paired

< 300 ms · target

Direct radio between the wearable and the parent's paired phone. No internet needed. No tower. Useful at home, in the car, in the school car park. End-to-end encrypted via X25519 sealed box.যন্ত্র ও paired ফোনের মধ্যে সরাসরি রেডিও। ইন্টারনেট লাগে না। টাওয়ার লাগে না। বাড়ি, গাড়ি, স্কুলের সামনে কাজে আসে।

LTE-M · cellular

~3 s · warm

The wearable's nRF9160 modem publishes the signed envelope to the bridge's Mosquitto over MQTT-TLS. Bridge verifies signature, writes audit row, forwards to the Worker, lands on the family's WebSocket. The default path when the phone is far away.যন্ত্রের nRF9160 মডেম signed envelope পাঠায় ব্রিজের Mosquitto-তে MQTT-TLS দিয়ে। যাচাই → audit লেখা → Worker-এ ফরোয়ার্ড → পরিবারের WebSocket-এ লন্ড। ফোন দূরে থাকলে এটাই default।

Push · FCM cold-wake

~8 s · cold

If the parent's app was killed, the Worker fires a content-less FCM wake — only the alert_id + tier ever leaves the platform. App opens, reconnects WS, pulls the queued alert. Google never sees content.অভিভাবকের অ্যাপ যদি বন্ধ থাকে, Worker একটা content-less FCM wake পাঠায় — শুধু alert_id + tier যায়। অ্যাপ খোলে, WS-এ আবার connect করে, queued alert নেয়। Google কোনো content দেখে না।

SMS · last resort

< 30 s · only when above all fail

If WS + push both fail (true cellular outage), bridge falls back to SMS to the family's trusted contacts. Body carries only "tier 2 · alert-id" — NEVER the ciphertext or any plaintext content.WS + push দুটোই ব্যর্থ হলে (সত্যিকার outage), ব্রিজ পরিবারের বিশ্বস্ত যোগাযোগের কাছে SMS পাঠায়। বডিতে শুধু "tier 2 · alert-id" — কখনই ciphertext বা content নয়।

What's signed, encrypted, and droppedকী signed, কী encrypted, কী dropped

Fieldক্ষেত্র Treatmentআচরণ
alert_idRandom UUID. Bridge dedupes within 60 s window — same id arriving from BLE + LTE simultaneously is recorded once.র‍্যান্ডম UUID। ৬০ সেকেন্ডে dedupe। BLE + LTE থেকে একই id এলে একবার গণনা।
device_idOpaque string. Routes the alert; never personally identifies the child.অস্পষ্ট string। অ্যালার্ট route করে; শিশুকে identify করে না।
tier (1-4)Escalation severity. T2 = parent notify; T3 = parent + trusted adults; T4 = full ring (in original design).escalation স্তর। T2 = অভিভাবক; T3 = অভিভাবক + বিশ্বস্ত adults; T4 = পূর্ণ বলয় (মূল ডিজাইনে)।
ciphertext_b64X25519-sealed-box to the parent's public key. ONLY the parent's phone can decrypt. Bridge never opens it.X25519-sealed-box অভিভাবকের public key-এর জন্য। শুধু অভিভাবকের ফোনই খুলতে পারে। ব্রিজ কখনো খোলে না।
signature_b64Ed25519 signature over (device_id | alert_id | tier | sha256(ciphertext)). Bad sig → bridge drops.Ed25519 signature over (device_id | alert_id | tier | sha256(ciphertext))। ভুল হলে ব্রিজ drop করে।
occurred_atUTC ISO timestamp. For audit ordering.UTC ISO timestamp। audit ordering-এর জন্য।
— what's NEVER carried —Child's name, exact location, microphone audio, photos, contact list, any free-text. The ciphertext payload carries only: trigger kind, device-local timestamp, optionally last GPS the phone already has.শিশুর নাম, সঠিক অবস্থান, মাইকের অডিও, ছবি, contact list, কোনো free-text। ciphertext payload-এ থাকে শুধু: trigger kind, device-local timestamp, optional last GPS।

What this is NOTএটি যা নয়