niom-webrtc/docs/components/call_controls.md

1.3 KiB

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).