29 lines
2.1 KiB
Markdown
29 lines
2.1 KiB
Markdown
# niom-webrtc Voice Channel Module Docs
|
||
|
||
Diese Dokumentationssammlung beschreibt das MVP-Modul "Voice Channel" im Projekt `niom-webrtc`. Die Struktur spiegelt die wichtigsten Programmkomponenten wider und soll als Einstieg für neue Sessions dienen.
|
||
|
||
- [`architecture/signaling_flow.md`](architecture/signaling_flow.md) – High-Level-Ablauf von Signaling, WebRTC und TURN.
|
||
- [`config/config_management.md`](config/config_management.md) – Konfigurationen und Defaults (STUN/TURN, Appsettings).
|
||
- [`components/`](components/) – UI-Komponenten (Discord-Voice-Channel UI) inkl. Zustandsfluss.
|
||
- [`voice_channel_layout.md`](components/voice_channel_layout.md)
|
||
- [`utils/media_manager.md`](utils/media_manager.md) – Medien- und Peer-Connection-Helfer.
|
||
|
||
## Aktueller Fokus
|
||
- Discord-Voice-Channel UI als reines Modul ohne restliche App-Shell.
|
||
- Saubere Trennung von Initiator/Responder-Logik.
|
||
- Automatisches WebSocket-Reconnect mit exponentiellem Backoff (Stand 03.11.2025).
|
||
- Testbarkeit im Browser (WASM) und auf CLI-Ebene.
|
||
|
||
## Offene ToDos (Stand 03.11.2025)
|
||
1. UI-Feedback für Reconnect-Zustand verbessern (Versuchs-/Countdown-Anzeige, Fehlerbanner konsolidieren).
|
||
2. WebRTC-/Signaling-Logik weiter aus Komponenten in dedizierte Hooks/Services auslagern (z. B. `use_signaling`, `use_peer_connection`) und globalen State für Teilnehmer & Sessions einführen.
|
||
- Ziel: UI-Komponenten konsumieren nur noch lesende Signale & Events, Logik wird separat testbar.
|
||
3. TURN-Infrastruktur produktionsreif aufsetzen (Zertifikate, Auth, Monitoring) und E2E-Tests (Peer↔Peer via TURN) ergänzen.
|
||
4. UI modularisieren: Geräte-Setup, Fehlerbanner, Status-Badges, Vorbereitung auf Video-/Screen-Sharing-Tiles.
|
||
5. Signaling-Server erweitern (Raum-/Teilnehmermodell, AuthZ, robustes Error-Handling) und Schnittstellen dokumentieren.
|
||
6. CI-Pipeline mit `fmt`/`clippy`/Tests, Smoke-Tests (Web + CLI) und Playwright-Szenarien für Browserflows anlegen.
|
||
|
||
## Changelog 03.11.2025
|
||
- Signaling-Service verbindet nach Verbindungsfehlern automatisch mit exponentiellem Backoff (`TimeoutFuture`).
|
||
- `ErrorActions`-Helper in UI integriert, um Fehlerzustände zentral zu setzen/zu löschen.
|