niom-webrtc/docs/components/call_controls.md

28 lines
1.3 KiB
Markdown

# CallControls Component
## Zweck
- Steuert Anrufstart als Initiator, Mikrofonberechtigungen und Mute/Ende-Interaktionen.
- Wird innerhalb des `ControlDock` (sticky Bottom-Bar) dargestellt.
## Kernfunktionen
- `request_microphone_access()`: nutzt `MediaManager` zum Einholen des MediaStreams und speichert ihn in `local_media` Signal.
- `create_offer()`: Erstellt und sendet Offer via Signaling, registriert `onicecandidate` & `ontrack`.
- `mute / end`: Lokalen Zustand aktualisieren, PeerConnection schließen.
## Signalübersicht
- `mic_granted`, `audio_muted`, `in_call`: UI States.
- Teilt `peer_id`, `remote_id`, `connected`, `websocket`, `peer_connection` (Initiator), `local_media` mit anderen Komponenten.
## Workflow
1. **Mikrofon freigeben** → Tracks werden zur PeerConnection hinzugefügt.
2. **Anruf starten** → PeerConnection erzeugen, Offer senden, auf Answer warten.
3. **Mute/Unmute** → Aktuell nur UI-State, TODO: Track-`enabled` toggeln.
4. **Anruf beenden** → PeerConnection schließen, Signals resetten.
## TODOs
- Realer Mute/Unmute über `MediaStreamTrack.enabled`.
- Visuelle Feedback-Elemente (Button-States im Discord-Stil).
- Device-Auswahl (Audio Output/Input) vor dem Start.
- Error-Toasts (z. B. wenn Offer scheitert).
- Aktive Call-State-Anzeige im ControlDock (z. B. Dauer, zweiter Channel).