Files
Anton Afanasyeu aa98516d3e SFU health: expose ice_servers for WebRTC clients (M2).
Include coturn turn_host credentials from lab config alongside public STUN.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-07 22:45:52 +02:00

41 lines
1.6 KiB
Markdown

# SFU relay (Janus VideoRoom) — lab preview
**Post-alpha product path.** Lab stack: Janus on **cast02**, signaling on app nodes, coturn on cast02.
## Layout
| Path | Role |
|------|------|
| `public/dashboard.php` | Room list / create (auth required) |
| `public/lab.php` | **M0** browser E2E — screen-share publish + subscriber viewer |
| `public/assets/sfu-lab.js` | WebRTC + Janus WS trickle client |
| `public/api/rooms.php` | Room CRUD |
| `public/api/join.php` | JSEP join relay (publisher / subscriber) |
| `ac-deploy/.../smoke_sfu.sh` | Janus + health smoke |
## Lab E2E
1. Sign in on issues console (shared `ac_crash_sess`).
2. Open `/app/androidcast_project/sfu/dashboard` → create room → note **Janus room id**.
3. Open `/app/androidcast_project/sfu/lab` → publish screen share.
4. Second tab/browser → same lab URL → enter room id + **publisher feed id** → Subscribe.
## Milestones
| Milestone | Scope |
|-----------|--------|
| **M0** | Browser lab (`lab.php`) — getDisplayMedia publish + subscribe |
| **M1** | Android libwebrtc camera publish/subscribe (dev gate) |
| **M2** | Android MediaProjection screen share + ICE from health (coturn) |
| **M3+** | Cast encoder → SFU transport; education path; RBAC stats |
## Next (M3+)
1. Wire cast encoder → SFU publisher (replace P2P cast transport).
2. Education screen share on SFU path.
3. Session RBAC + stats → graphs.
Android: **Developer settings → Enable Janus SFU relay lab → Open SFU lab****Publish screen share** (M2) or **Publish camera** (M1).
See [ac-docs BUILD_DEPLOY](../../ac-docs/BUILD_DEPLOY.md) and cluster `deploy-janus-sfu.sh`.