# Share Live Stream your phone's camera and location to KestrelOS. Appears as a **live session** on the map and in **Cameras**. Uses **WebRTC** (Mediasoup) and requires **HTTPS** on mobile. ## Usage 1. Open **Share live** (sidebar → **Share live** or `/share-live`) 2. Tap **Start sharing**, allow camera/location permissions 3. Device appears on map and in **Cameras** 4. Tap **Stop sharing** to end **Permissions:** Admin/leader can start sharing. All users can view live sessions. ## Requirements - **HTTPS** (browsers require secure context for camera/geolocation) - **Camera and location permissions** - **WebRTC ports:** UDP/TCP `40000-49999` open on server ## Local Development **Generate self-signed cert:** ```bash chmod +x scripts/gen-dev-cert.sh ./scripts/gen-dev-cert.sh 192.168.1.123 # Your LAN IP npm run dev ``` **On phone:** Open `https://192.168.1.123:3000`, accept cert warning, sign in, use Share live. ## WebRTC Configuration - Server auto-detects LAN IP for WebRTC - **Docker/multiple NICs:** Set `MEDIASOUP_ANNOUNCED_IP` to client-reachable IP/hostname - **"Wrong host" error:** Use same URL on phone/server, or set `MEDIASOUP_ANNOUNCED_IP` ## Troubleshooting | Issue | Fix | |-------|-----| | "HTTPS required" | Use `https://` (not `http://`) | | "Media devices not available" | Ensure HTTPS and browser permissions | | "WebRTC: failed" / "Wrong host" | Set `MEDIASOUP_ANNOUNCED_IP`, open firewall ports `40000-49999` | | Stream not visible | Check server reachability and firewall |