From c64b4d6ac95d86e55ddfbfb3aabbf59d38c2bff6 Mon Sep 17 00:00:00 2001 From: Till-JS <101404291+Till-JS@users.noreply.github.com> Date: Thu, 29 Jan 2026 21:28:35 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(matrix-web):=20add=20VoIP/vide?= =?UTF-8?q?o=20call=20support?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add VoIP types: CallState, CallType, CallDirection, SimpleCall, CallCallbacks - Add VoIP state management to Matrix store with place/answer/reject/hangup methods - Add mic/camera mute toggle functionality - Create CallView component for active calls with video streams - Create IncomingCallDialog component for incoming call notifications - Enable call buttons in RoomHeader (DMs only) - Integrate call components into chat page --- .../src/lib/components/call/CallView.svelte | 203 +++++++++++ .../components/call/IncomingCallDialog.svelte | 123 +++++++ .../apps/web/src/lib/components/call/index.ts | 2 + .../src/lib/components/chat/RoomHeader.svelte | 27 +- .../apps/web/src/lib/matrix/store.svelte.ts | 336 +++++++++++++++++- apps/matrix/apps/web/src/lib/matrix/types.ts | 59 +++ .../web/src/routes/(app)/chat/+page.svelte | 42 +++ 7 files changed, 782 insertions(+), 10 deletions(-) create mode 100644 apps/matrix/apps/web/src/lib/components/call/CallView.svelte create mode 100644 apps/matrix/apps/web/src/lib/components/call/IncomingCallDialog.svelte create mode 100644 apps/matrix/apps/web/src/lib/components/call/index.ts diff --git a/apps/matrix/apps/web/src/lib/components/call/CallView.svelte b/apps/matrix/apps/web/src/lib/components/call/CallView.svelte new file mode 100644 index 000000000..c23e14ab9 --- /dev/null +++ b/apps/matrix/apps/web/src/lib/components/call/CallView.svelte @@ -0,0 +1,203 @@ + + +
{call.opponentName || 'Unbekannt'}
++ {call.type === 'video' ? 'Videoanruf' : 'Sprachanruf'} · {getStateText(call.state)} +
+{call.opponentName || 'Unbekannt'}
+{getStateText(call.state)}
+{call.opponentName || 'Unbekannt'}
++ {call.type === 'video' ? 'Eingehender Videoanruf' : 'Eingehender Sprachanruf'} +
+