From 0bc57ec486159bb1c6a6a438056cc184065211dc Mon Sep 17 00:00:00 2001 From: 7w1 Date: Tue, 10 Mar 2026 17:26:25 -0500 Subject: [PATCH 01/14] Accepting call things & placement in dms --- src/app/components/CallEmbedProvider.tsx | 31 +++-- src/app/components/IncomingCallModal.tsx | 127 +++++++++++++++++++ src/app/features/room-nav/RoomNavItem.tsx | 15 ++- src/app/features/room/RoomView.tsx | 15 +++ src/app/hooks/useAutoJoinCall.ts | 24 ++++ src/app/hooks/useCallSignaling.ts | 107 ++++++++++++++++ src/app/pages/client/ClientNonUIFeatures.tsx | 2 + src/app/state/callEmbed.ts | 3 + 8 files changed, 308 insertions(+), 16 deletions(-) create mode 100644 src/app/components/IncomingCallModal.tsx create mode 100644 src/app/hooks/useAutoJoinCall.ts create mode 100644 src/app/hooks/useCallSignaling.ts diff --git a/src/app/components/CallEmbedProvider.tsx b/src/app/components/CallEmbedProvider.tsx index ba29f3b78..a8e9e7b6a 100644 --- a/src/app/components/CallEmbedProvider.tsx +++ b/src/app/components/CallEmbedProvider.tsx @@ -1,5 +1,6 @@ import { ReactNode, useCallback, useRef } from 'react'; import { useAtomValue, useSetAtom } from 'jotai'; +import { useAutoJoinCall } from '$hooks/useAutoJoinCall'; import { CallEmbedContextProvider, CallEmbedRefContextProvider, @@ -7,11 +8,12 @@ import { useCallJoined, useCallThemeSync, useCallMemberSoundSync, -} from '../hooks/useCallEmbed'; -import { callChatAtom, callEmbedAtom } from '../state/callEmbed'; -import { CallEmbed } from '../plugins/call'; -import { useSelectedRoom } from '../hooks/router/useSelectedRoom'; -import { ScreenSize, useScreenSizeContext } from '../hooks/useScreenSize'; +} from '$hooks/useCallEmbed'; +import { callChatAtom, callEmbedAtom } from '$state/callEmbed'; +import { CallEmbed } from '$plugins/call'; +import { useSelectedRoom } from '$hooks/router/useSelectedRoom'; +import { ScreenSize, useScreenSizeContext } from '$hooks/useScreenSize'; +import { IncomingCallModal } from './IncomingCallModal'; function CallUtils({ embed }: { embed: CallEmbed }) { const setCallEmbed = useSetAtom(callEmbedAtom); @@ -31,6 +33,12 @@ function CallUtils({ embed }: { embed: CallEmbed }) { type CallEmbedProviderProps = { children?: ReactNode; }; + +function AutoJoinManager() { + useAutoJoinCall(); + return null; +} + export function CallEmbedProvider({ children }: CallEmbedProviderProps) { const callEmbed = useAtomValue(callEmbedAtom); const callEmbedRef = useRef(null); @@ -46,17 +54,20 @@ export function CallEmbedProvider({ children }: CallEmbedProviderProps) { return ( + {callEmbed && } - {children} + + + {children} + +
diff --git a/src/app/components/IncomingCallModal.tsx b/src/app/components/IncomingCallModal.tsx new file mode 100644 index 000000000..f1dd23027 --- /dev/null +++ b/src/app/components/IncomingCallModal.tsx @@ -0,0 +1,127 @@ +import { + Box, + Dialog, + Header, + IconButton, + Icon, + Icons, + Text, + Button, + Avatar, + config, + Overlay, + OverlayCenter, + OverlayBackdrop, +} from 'folds'; +import { useMatrixClient } from '$hooks/useMatrixClient'; +import { useRoomName } from '$hooks/useRoomMeta'; +import { getRoomAvatarUrl } from '$utils/room'; +import { useRoomNavigate } from '$hooks/useRoomNavigate'; +import FocusTrap from 'focus-trap-react'; +import { stopPropagation } from '$utils/keyboard'; +import { useAtom, useSetAtom } from 'jotai'; +import { autoJoinCallIntentAtom, incomingCallRoomIdAtom } from '$state/callEmbed'; +import { RoomAvatar } from './room-avatar'; + +type IncomingCallInternalProps = { + room: any; + onClose: () => void; +}; + +export function IncomingCallInternal({ room, onClose }: IncomingCallInternalProps) { + const mx = useMatrixClient(); + const roomName = useRoomName(room); + const { navigateRoom } = useRoomNavigate(); + const avatarUrl = getRoomAvatarUrl(mx, room, 96); + const setAutoJoinIntent = useSetAtom(autoJoinCallIntentAtom); + + const handleAnswer = () => { + setAutoJoinIntent(room.roomId); + onClose(); + navigateRoom(room.roomId); + }; + + return ( + +
+ + Incoming Call + + + + +
+ + + + } + /> + + + + + {roomName} + + + Incoming voice chat request + + + + + + + + +
+ ); +} + +export function IncomingCallModal() { + const [ringingRoomId, setRingingRoomId] = useAtom(incomingCallRoomIdAtom); + const mx = useMatrixClient(); + const room = ringingRoomId ? mx.getRoom(ringingRoomId) : null; + + if (!ringingRoomId || !room) return null; + + const close = () => setRingingRoomId(null); + + return ( + }> + + +
+ +
+
+
+
+ ); +} diff --git a/src/app/features/room-nav/RoomNavItem.tsx b/src/app/features/room-nav/RoomNavItem.tsx index 474522cdf..70e63f3de 100644 --- a/src/app/features/room-nav/RoomNavItem.tsx +++ b/src/app/features/room-nav/RoomNavItem.tsx @@ -315,7 +315,7 @@ export function RoomNavItem({ }; const handleNavItemClick: MouseEventHandler = (evt) => { - if (room.isCallRoom()) { + if (room.isCallRoom() || (direct && callMembers.length > 0)) { if (!isMobile) { if (!isActiveCall && !callEmbed) { startCall( @@ -440,11 +440,14 @@ export function RoomNavItem({ aria-label={notificationMode} /> )} - {room.isCallRoom() && callMembers.length > 0 && !optionsVisible && ( + {(room.isCallRoom() || direct) && callMembers.length > 0 && !optionsVisible && ( - - {callMembers.length} Live - + + + + {direct ? 'Calling' : `${callMembers.length} Live`} + + )} @@ -452,7 +455,7 @@ export function RoomNavItem({ {optionsVisible && ( - {room.isCallRoom() && ( + {(room.isCallRoom() || (direct && callMembers.length > 0)) && ( 0 || isJoinedInThisRoom; + return ( {(onBack) => ( @@ -140,6 +150,11 @@ export function RoomView({ eventId }: { eventId?: string }) { > + {showCallView && ( + + + + )} { + if (selectedRoomId && autoJoinIntent && selectedRoomId === autoJoinIntent) { + const room = mx.getRoom(selectedRoomId); + + if (room) { + startCall(room); + setAutoJoinIntent(null); + } + } + }, [selectedRoomId, autoJoinIntent, startCall, setAutoJoinIntent, mx]); +} diff --git a/src/app/hooks/useCallSignaling.ts b/src/app/hooks/useCallSignaling.ts new file mode 100644 index 000000000..fe8acef9f --- /dev/null +++ b/src/app/hooks/useCallSignaling.ts @@ -0,0 +1,107 @@ +import { useEffect, useRef, useCallback } from 'react'; +import { MatrixRTCSession } from 'matrix-js-sdk/lib/matrixrtc/MatrixRTCSession'; +import { MatrixRTCSessionManagerEvents } from 'matrix-js-sdk/lib/matrixrtc/MatrixRTCSessionManager'; +import { useSetAtom, useAtomValue } from 'jotai'; +import { mDirectAtom } from '$state/mDirectList'; +import { incomingCallRoomIdAtom } from '$state/callEmbed'; +import InviteSound from '$public/sound/invite.ogg'; +import { useMatrixClient } from './useMatrixClient'; + +export function useCallSignaling() { + const mx = useMatrixClient(); + const setIncomingCall = useSetAtom(incomingCallRoomIdAtom); + const mDirects = useAtomValue(mDirectAtom); + + const audioRef = useRef(null); + const ringingRoomIdRef = useRef(null); + + useEffect(() => { + const audio = new Audio(InviteSound); + audio.loop = true; + audioRef.current = audio; + + return () => { + audio.pause(); + audioRef.current = null; + }; + }, []); + + const stopRinging = useCallback(() => { + if (audioRef.current) { + audioRef.current.pause(); + audioRef.current.currentTime = 0; + } + ringingRoomIdRef.current = null; + setIncomingCall(null); + }, [setIncomingCall]); + + const playRinging = useCallback( + (roomId: string) => { + if (audioRef.current && ringingRoomIdRef.current !== roomId) { + audioRef.current.play().catch(() => { + /* ignore autoplay error */ + }); + ringingRoomIdRef.current = roomId; + setIncomingCall(roomId); + } + }, + [setIncomingCall] + ); + + useEffect(() => { + if (!mx || !mx.matrixRTC) return undefined; + const checkDMsForActiveCalls = () => { + const activeRoomId = [...mDirects].reduce((found, roomId) => { + if (found) return found; + const room = mx.getRoom(roomId); + if (!room) return null; + + const session = mx.matrixRTC.getRoomSession(room); + const memberships = MatrixRTCSession.sessionMembershipsForRoom( + room, + session.sessionDescription + ); + + const remoteMembers = memberships.filter((m) => m.userId !== mx.getUserId()); + const isSelfInCall = memberships.some((m) => m.userId === mx.getUserId()); + + return remoteMembers.length > 0 && !isSelfInCall ? roomId : null; + }, null); + + if (activeRoomId) { + playRinging(activeRoomId); + } else if (ringingRoomIdRef.current) { + stopRinging(); + } + }; + + const handleSessionStarted = (roomId: string) => { + if (mDirects.has(roomId)) { + checkDMsForActiveCalls(); + } + }; + + const handleSessionEnded = () => { + checkDMsForActiveCalls(); + }; + + const handleRoomState = () => { + checkDMsForActiveCalls(); + }; + + mx.matrixRTC.on(MatrixRTCSessionManagerEvents.SessionStarted, handleSessionStarted); + mx.matrixRTC.on(MatrixRTCSessionManagerEvents.SessionEnded, handleSessionEnded); + mx.on('RoomState.events' as any, handleRoomState); + + checkDMsForActiveCalls(); + + function cleanup() { + mx.matrixRTC.off(MatrixRTCSessionManagerEvents.SessionStarted, handleSessionStarted); + mx.matrixRTC.off(MatrixRTCSessionManagerEvents.SessionEnded, handleSessionEnded); + mx.off('RoomState.events' as any, handleRoomState); + stopRinging(); + } + + return cleanup; + }, [mx, mDirects, playRinging, stopRinging]); +} diff --git a/src/app/pages/client/ClientNonUIFeatures.tsx b/src/app/pages/client/ClientNonUIFeatures.tsx index 9bf2162d1..1d4dea431 100644 --- a/src/app/pages/client/ClientNonUIFeatures.tsx +++ b/src/app/pages/client/ClientNonUIFeatures.tsx @@ -41,6 +41,7 @@ import { useSlidingSyncActiveRoom } from '$hooks/useSlidingSyncActiveRoom'; import { getSlidingSyncManager } from '$client/initMatrix'; import { getInboxInvitesPath } from '../pathUtils'; import { BackgroundNotifications } from './BackgroundNotifications'; +import { useCallSignaling } from '$hooks/useCallSignaling'; function clearMediaSessionQuickly(): void { if (!('mediaSession' in navigator)) return; @@ -592,6 +593,7 @@ function PresenceFeature() { } export function ClientNonUIFeatures({ children }: ClientNonUIFeaturesProps) { + useCallSignaling(); return ( <> diff --git a/src/app/state/callEmbed.ts b/src/app/state/callEmbed.ts index a9f893009..65fffcbab 100644 --- a/src/app/state/callEmbed.ts +++ b/src/app/state/callEmbed.ts @@ -18,3 +18,6 @@ export const callEmbedAtom = atom(false); + +export const incomingCallRoomIdAtom = atom(null); +export const autoJoinCallIntentAtom = atom(null); From 84f7d9cd9babb9755fe14e86b7de17a711743aeb Mon Sep 17 00:00:00 2001 From: 7w1 Date: Tue, 10 Mar 2026 17:37:50 -0500 Subject: [PATCH 02/14] evil things to make liner happy --- src/app/hooks/useCallSignaling.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app/hooks/useCallSignaling.ts b/src/app/hooks/useCallSignaling.ts index fe8acef9f..0ec5af270 100644 --- a/src/app/hooks/useCallSignaling.ts +++ b/src/app/hooks/useCallSignaling.ts @@ -62,8 +62,8 @@ export function useCallSignaling() { session.sessionDescription ); - const remoteMembers = memberships.filter((m) => m.userId !== mx.getUserId()); - const isSelfInCall = memberships.some((m) => m.userId === mx.getUserId()); + const remoteMembers = memberships.filter((m: any) => m.userId !== mx.getUserId()); + const isSelfInCall = memberships.some((m: any) => m.userId === mx.getUserId()); return remoteMembers.length > 0 && !isSelfInCall ? roomId : null; }, null); From eab28bd4e4041451ba60cfdd3d1c0c778256f648 Mon Sep 17 00:00:00 2001 From: 7w1 Date: Tue, 10 Mar 2026 17:40:13 -0500 Subject: [PATCH 03/14] be happy --- src/app/pages/client/ClientNonUIFeatures.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/app/pages/client/ClientNonUIFeatures.tsx b/src/app/pages/client/ClientNonUIFeatures.tsx index 1d4dea431..9ece7f8b0 100644 --- a/src/app/pages/client/ClientNonUIFeatures.tsx +++ b/src/app/pages/client/ClientNonUIFeatures.tsx @@ -39,9 +39,9 @@ import { import { mobileOrTablet } from '$utils/user-agent'; import { useSlidingSyncActiveRoom } from '$hooks/useSlidingSyncActiveRoom'; import { getSlidingSyncManager } from '$client/initMatrix'; +import { useCallSignaling } from '$hooks/useCallSignaling'; import { getInboxInvitesPath } from '../pathUtils'; import { BackgroundNotifications } from './BackgroundNotifications'; -import { useCallSignaling } from '$hooks/useCallSignaling'; function clearMediaSessionQuickly(): void { if (!('mediaSession' in navigator)) return; From f56449e45c236bee0a5ec1b46ff9d20f2422b1e6 Mon Sep 17 00:00:00 2001 From: 7w1 Date: Tue, 10 Mar 2026 17:45:40 -0500 Subject: [PATCH 04/14] make ringtone stfu --- src/app/components/IncomingCallModal.tsx | 20 ++++++++++++++++++-- src/app/hooks/useCallSignaling.ts | 12 +++++++++--- src/app/state/callEmbed.ts | 1 + 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/src/app/components/IncomingCallModal.tsx b/src/app/components/IncomingCallModal.tsx index f1dd23027..23fc8f988 100644 --- a/src/app/components/IncomingCallModal.tsx +++ b/src/app/components/IncomingCallModal.tsx @@ -20,7 +20,11 @@ import { useRoomNavigate } from '$hooks/useRoomNavigate'; import FocusTrap from 'focus-trap-react'; import { stopPropagation } from '$utils/keyboard'; import { useAtom, useSetAtom } from 'jotai'; -import { autoJoinCallIntentAtom, incomingCallRoomIdAtom } from '$state/callEmbed'; +import { + autoJoinCallIntentAtom, + incomingCallRoomIdAtom, + mutedCallRoomIdAtom, +} from '$state/callEmbed'; import { RoomAvatar } from './room-avatar'; type IncomingCallInternalProps = { @@ -34,13 +38,20 @@ export function IncomingCallInternal({ room, onClose }: IncomingCallInternalProp const { navigateRoom } = useRoomNavigate(); const avatarUrl = getRoomAvatarUrl(mx, room, 96); const setAutoJoinIntent = useSetAtom(autoJoinCallIntentAtom); + const setMutedRoomId = useSetAtom(mutedCallRoomIdAtom); const handleAnswer = () => { + setMutedRoomId(room.roomId); setAutoJoinIntent(room.roomId); onClose(); navigateRoom(room.roomId); }; + const handleDecline = () => { + setMutedRoomId(room.roomId); + onClose(); + }; + return (
- + )} ); } diff --git a/src/app/features/room/RoomView.tsx b/src/app/features/room/RoomView.tsx index bcaf78bca..ab6cc00c1 100644 --- a/src/app/features/room/RoomView.tsx +++ b/src/app/features/room/RoomView.tsx @@ -151,8 +151,8 @@ export function RoomView({ eventId }: { eventId?: string }) { {showCallView && ( - - + + )} Date: Tue, 10 Mar 2026 22:25:06 -0500 Subject: [PATCH 10/14] add custom ringtone and fix audio looping forever --- public/sound/ringtone.webm | Bin 0 -> 139947 bytes src/app/hooks/useCallSignaling.ts | 92 +++++++++--------------------- 2 files changed, 28 insertions(+), 64 deletions(-) create mode 100644 public/sound/ringtone.webm diff --git a/public/sound/ringtone.webm b/public/sound/ringtone.webm new file mode 100644 index 0000000000000000000000000000000000000000..7c10b32aaf7f6ee4797c2a343716e323fc3967f8 GIT binary patch literal 139947 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 literal 0 HcmV?d00001 diff --git a/src/app/hooks/useCallSignaling.ts b/src/app/hooks/useCallSignaling.ts index 2d9c400be..dcccaca61 100644 --- a/src/app/hooks/useCallSignaling.ts +++ b/src/app/hooks/useCallSignaling.ts @@ -1,11 +1,11 @@ import { useEffect, useRef, useCallback } from 'react'; -import { MatrixEvent } from 'matrix-js-sdk'; +import { RoomStateEvent } from 'matrix-js-sdk'; import { MatrixRTCSession } from 'matrix-js-sdk/lib/matrixrtc/MatrixRTCSession'; import { MatrixRTCSessionManagerEvents } from 'matrix-js-sdk/lib/matrixrtc/MatrixRTCSessionManager'; import { useSetAtom, useAtomValue } from 'jotai'; import { mDirectAtom } from '$state/mDirectList'; import { incomingCallRoomIdAtom, mutedCallRoomIdAtom } from '$state/callEmbed'; -import InviteSound from '$public/sound/invite.ogg'; +import RingtoneSound from '$public/sound/ringtone.webm'; import { useMatrixClient } from './useMatrixClient'; export function useCallSignaling() { @@ -22,11 +22,11 @@ export function useCallSignaling() { const setMutedRoomId = useSetAtom(mutedCallRoomIdAtom); useEffect(() => { - const inc = new Audio(InviteSound); + const inc = new Audio(RingtoneSound); inc.loop = true; incomingAudioRef.current = inc; - const out = new Audio(InviteSound); + const out = new Audio(RingtoneSound); out.loop = true; outgoingAudioRef.current = out; @@ -58,9 +58,7 @@ export function useCallSignaling() { const playRinging = useCallback( (roomId: string) => { if (incomingAudioRef.current && ringingRoomIdRef.current !== roomId) { - incomingAudioRef.current.play().catch(() => { - /* ignore autoplay error */ - }); + incomingAudioRef.current.play().catch(() => {}); ringingRoomIdRef.current = roomId; setIncomingCall(roomId); } @@ -76,8 +74,8 @@ export function useCallSignaling() { const signal = [...mDirects].reduce<{ incoming: string | null; outgoing: string | null }>( (found, roomId) => { - if (found.incoming) return found; - if (mutedRoomId === roomId) return found; + if (found.incoming || mutedRoomId === roomId) return found; + const room = mx.getRoom(roomId); if (!room) return found; @@ -90,18 +88,11 @@ export function useCallSignaling() { const remoteMembers = memberships.filter((m: any) => (m.userId || m.sender) !== myUserId); const isSelfInCall = memberships.some((m: any) => (m.userId || m.sender) === myUserId); - if (remoteMembers.length > 0 && !isSelfInCall) { - return { ...found, incoming: roomId }; - } + if (remoteMembers.length > 0 && !isSelfInCall) return { ...found, incoming: roomId }; + if (isSelfInCall && remoteMembers.length === 0) { - if (!outgoingStartRef.current) { - outgoingStartRef.current = now; - } - const elapsed = now - outgoingStartRef.current; - if (elapsed < 30000) { - return { ...found, outgoing: roomId }; - } - // call timed out + if (!outgoingStartRef.current) outgoingStartRef.current = now; + if (now - outgoingStartRef.current < 30000) return { ...found, outgoing: roomId }; } return found; @@ -113,63 +104,36 @@ export function useCallSignaling() { playRinging(signal.incoming); } else if (signal.outgoing) { playOutgoingRinging(signal.outgoing); - } else if (ringingRoomIdRef.current) { - stopRinging(); + } else { + if (ringingRoomIdRef.current) stopRinging(); + outgoingStartRef.current = null; } }; - const handleSessionStarted = (roomId: string) => { - if (mDirects.has(roomId)) { - checkDMsForActiveCalls(); - } - }; + const interval = setInterval(() => { + if (outgoingStartRef.current) checkDMsForActiveCalls(); + }, 1000); + const handleUpdate = () => checkDMsForActiveCalls(); const handleSessionEnded = (roomId: string) => { - if (mutedRoomId === roomId) { - setMutedRoomId(null); - } - checkDMsForActiveCalls(); - }; - - const handleRoomState = (event: MatrixEvent) => { - const type = event.getType(); - - if (type === 'org.matrix.msc4075.rtc.notification') { - const content = event.getContent(); - const sender = event.getSender(); - const serverTs = event.getTs(); - const senderTs = content.sender_ts || serverTs; - const lifetime = content.lifetime || 30000; - - const now = Date.now(); - const isExpired = now - senderTs > lifetime; - - if (isExpired) { - return; - } - - if (content.notification_type === 'ring' && sender !== mx.getUserId()) { - playRinging(event.getRoomId()!); - return; - } - } - + if (mutedRoomId === roomId) setMutedRoomId(null); checkDMsForActiveCalls(); }; - mx.matrixRTC.on(MatrixRTCSessionManagerEvents.SessionStarted, handleSessionStarted); + mx.matrixRTC.on(MatrixRTCSessionManagerEvents.SessionStarted, handleUpdate); mx.matrixRTC.on(MatrixRTCSessionManagerEvents.SessionEnded, handleSessionEnded); - mx.on('RoomState.events' as any, handleRoomState); + mx.on(RoomStateEvent.Events, handleUpdate); checkDMsForActiveCalls(); - function cleanup() { - mx.matrixRTC.off(MatrixRTCSessionManagerEvents.SessionStarted, handleSessionStarted); + return () => { + clearInterval(interval); + mx.matrixRTC.off(MatrixRTCSessionManagerEvents.SessionStarted, handleUpdate); mx.matrixRTC.off(MatrixRTCSessionManagerEvents.SessionEnded, handleSessionEnded); - mx.off('RoomState.events' as any, handleRoomState); + mx.off(RoomStateEvent.Events, handleUpdate); stopRinging(); - } + }; + }, [mx, mDirects, playRinging, stopRinging, mutedRoomId, setMutedRoomId, playOutgoingRinging]); - return cleanup; - }, [mx, mDirects, playRinging, stopRinging, mutedRoomId, setMutedRoomId]); + return null; } From e929e13ef8e0360aeefec88b2547035125a1762d Mon Sep 17 00:00:00 2001 From: 7w1 Date: Tue, 10 Mar 2026 22:47:09 -0500 Subject: [PATCH 11/14] notifications that will total work trust --- src/sw.ts | 8 ++++++-- src/sw/pushNotification.ts | 27 +++++++++++++++++++++++++++ 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/sw.ts b/src/sw.ts index a7fd738ec..85d4e6a17 100644 --- a/src/sw.ts +++ b/src/sw.ts @@ -358,6 +358,8 @@ self.addEventListener('notificationclick', (event: NotificationEvent) => { scope, }); + const isCall = data?.isCall === true; + // Build a canonical deep-link URL. // // Room messages: /to/:user_id/:room_id/:event_id? @@ -373,9 +375,10 @@ self.addEventListener('notificationclick', (event: NotificationEvent) => { if (pushUserId) u.searchParams.set('uid', pushUserId); targetUrl = u.href; } else if (pushUserId && pushRoomId) { + const callParam = isCall ? '?joinCall=true' : ''; const segments = pushEventId - ? `to/${encodeURIComponent(pushUserId)}/${encodeURIComponent(pushRoomId)}/${encodeURIComponent(pushEventId)}/` - : `to/${encodeURIComponent(pushUserId)}/${encodeURIComponent(pushRoomId)}/`; + ? `to/${encodeURIComponent(pushUserId)}/${encodeURIComponent(pushRoomId)}/${encodeURIComponent(pushEventId)}/${callParam}` + : `to/${encodeURIComponent(pushUserId)}/${encodeURIComponent(pushRoomId)}/${callParam}`; targetUrl = new URL(segments, scope).href; } else { // Fallback: no room ID or no user ID in payload. @@ -410,6 +413,7 @@ self.addEventListener('notificationclick', (event: NotificationEvent) => { roomId: pushRoomId, eventId: pushEventId, isInvite, + isCall, }); // eslint-disable-next-line no-await-in-loop await wc.focus(); diff --git a/src/sw/pushNotification.ts b/src/sw/pushNotification.ts index 25c849ac4..1152d3d44 100644 --- a/src/sw/pushNotification.ts +++ b/src/sw/pushNotification.ts @@ -49,6 +49,29 @@ export const createPushNotifications = ( await self.registration.showNotification(title, notifOptions as NotificationOptions); }; + const handleCallNotification = async (pushData: any) => { + const content = pushData?.content; + if (content?.notification_type !== 'ring') return; + + const senderDisplayName = pushData?.sender_display_name; + const roomName = pushData?.room_name; + const title = 'Incoming Call'; + const body = senderDisplayName + ? `${senderDisplayName} is calling you ${roomName ? `in ${roomName}` : ''}` + : 'Incoming voice chat'; + + const data = { + type: pushData?.type, + room_id: pushData?.room_id, + user_id: pushData?.user_id, + timestamp: Date.now(), + isCall: true, + ...pushData.data, + }; + + await showNotificationWithData(title, body, data, resolveSilent(), pushData?.room_avatar_url); + }; + const handleRoomMessageNotification = async (pushData: any) => { const data = { type: pushData?.type, @@ -158,6 +181,10 @@ export const createPushNotifications = ( if (!(pushData?.content?.membership === 'invite')) break; await handleInvitationNotification(pushData); break; + case 'org.matrix.msc4075.call.notify': + case 'org.matrix.msc4075.rtc.notification': + await handleCallNotification(pushData); + break; default: // no voip support in app anyway break; From 6d439842a5d797880c2b94244a3ca35ba60b926f Mon Sep 17 00:00:00 2001 From: 7w1 Date: Tue, 10 Mar 2026 23:46:39 -0500 Subject: [PATCH 12/14] make ringtone and modal stuff actually work after someone leaves call --- src/app/hooks/useCallSignaling.ts | 70 ++++++++++++++++++++++++------- 1 file changed, 55 insertions(+), 15 deletions(-) diff --git a/src/app/hooks/useCallSignaling.ts b/src/app/hooks/useCallSignaling.ts index dcccaca61..cd657e477 100644 --- a/src/app/hooks/useCallSignaling.ts +++ b/src/app/hooks/useCallSignaling.ts @@ -8,6 +8,13 @@ import { incomingCallRoomIdAtom, mutedCallRoomIdAtom } from '$state/callEmbed'; import RingtoneSound from '$public/sound/ringtone.webm'; import { useMatrixClient } from './useMatrixClient'; +type CallPhase = 'IDLE' | 'RINGING_OUT' | 'RINGING_IN' | 'ACTIVE' | 'ENDED'; + +interface SignalState { + incoming: string | null; + outgoing: string | null; +} + export function useCallSignaling() { const mx = useMatrixClient(); const setIncomingCall = useSetAtom(incomingCallRoomIdAtom); @@ -17,6 +24,7 @@ export function useCallSignaling() { const outgoingAudioRef = useRef(null); const ringingRoomIdRef = useRef(null); const outgoingStartRef = useRef(null); + const callPhaseRef = useRef>({}); const mutedRoomId = useAtomValue(mutedCallRoomIdAtom); const setMutedRoomId = useSetAtom(mutedCallRoomIdAtom); @@ -33,8 +41,6 @@ export function useCallSignaling() { return () => { inc.pause(); out.pause(); - incomingAudioRef.current = null; - outgoingAudioRef.current = null; }; }, []); @@ -68,16 +74,17 @@ export function useCallSignaling() { useEffect(() => { if (!mx || !mx.matrixRTC) return undefined; + const checkDMsForActiveCalls = () => { const myUserId = mx.getUserId(); const now = Date.now(); - const signal = [...mDirects].reduce<{ incoming: string | null; outgoing: string | null }>( - (found, roomId) => { - if (found.incoming || mutedRoomId === roomId) return found; + const signal = Array.from(mDirects).reduce( + (acc, roomId) => { + if (acc.incoming || mutedRoomId === roomId) return acc; const room = mx.getRoom(roomId); - if (!room) return found; + if (!room) return acc; const session = mx.matrixRTC.getRoomSession(room); const memberships = MatrixRTCSession.sessionMembershipsForRoom( @@ -87,15 +94,48 @@ export function useCallSignaling() { const remoteMembers = memberships.filter((m: any) => (m.userId || m.sender) !== myUserId); const isSelfInCall = memberships.some((m: any) => (m.userId || m.sender) === myUserId); + const currentPhase = callPhaseRef.current[roomId] || 'IDLE'; + + // no one here + if (!isSelfInCall && remoteMembers.length === 0) { + callPhaseRef.current[roomId] = 'IDLE'; + return acc; + } - if (remoteMembers.length > 0 && !isSelfInCall) return { ...found, incoming: roomId }; + // being called + if (remoteMembers.length > 0 && !isSelfInCall) { + callPhaseRef.current[roomId] = 'RINGING_IN'; + return { ...acc, incoming: roomId }; + } + // multiple people no ringtone + if (isSelfInCall && remoteMembers.length > 0) { + callPhaseRef.current[roomId] = 'ACTIVE'; + return acc; + } + + // alone in call if (isSelfInCall && remoteMembers.length === 0) { - if (!outgoingStartRef.current) outgoingStartRef.current = now; - if (now - outgoingStartRef.current < 30000) return { ...found, outgoing: roomId }; + // Check if post call + if (currentPhase === 'ACTIVE' || currentPhase === 'ENDED') { + callPhaseRef.current[roomId] = 'ENDED'; + return acc; + } + + // Check if new call + if (currentPhase === 'IDLE' || currentPhase === 'RINGING_OUT') { + if (!outgoingStartRef.current) outgoingStartRef.current = now; + + if (now - outgoingStartRef.current < 30000) { + callPhaseRef.current[roomId] = 'RINGING_OUT'; + return { ...acc, outgoing: roomId }; + } + + callPhaseRef.current[roomId] = 'ENDED'; + } } - return found; + return acc; }, { incoming: null, outgoing: null } ); @@ -105,18 +145,18 @@ export function useCallSignaling() { } else if (signal.outgoing) { playOutgoingRinging(signal.outgoing); } else { - if (ringingRoomIdRef.current) stopRinging(); - outgoingStartRef.current = null; + stopRinging(); + if (!signal.outgoing) outgoingStartRef.current = null; } }; - const interval = setInterval(() => { - if (outgoingStartRef.current) checkDMsForActiveCalls(); - }, 1000); + const interval = setInterval(checkDMsForActiveCalls, 1000); const handleUpdate = () => checkDMsForActiveCalls(); + const handleSessionEnded = (roomId: string) => { if (mutedRoomId === roomId) setMutedRoomId(null); + callPhaseRef.current[roomId] = 'IDLE'; checkDMsForActiveCalls(); }; From 5d4fe0a11c7de62d917b8f1969dd0a190c638898 Mon Sep 17 00:00:00 2001 From: 7w1 Date: Tue, 10 Mar 2026 23:51:24 -0500 Subject: [PATCH 13/14] hide button for rooms with no perms --- src/app/features/room/RoomViewHeader.tsx | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/app/features/room/RoomViewHeader.tsx b/src/app/features/room/RoomViewHeader.tsx index 6ed1c5367..173cce211 100644 --- a/src/app/features/room/RoomViewHeader.tsx +++ b/src/app/features/room/RoomViewHeader.tsx @@ -24,7 +24,7 @@ import { Spinner, } from 'folds'; import { useNavigate } from 'react-router-dom'; -import { Room } from '$types/matrix-sdk'; +import { EventTimeline, Room } from '$types/matrix-sdk'; import { useStateEvent } from '$hooks/useStateEvent'; import { PageHeader } from '$components/page'; @@ -344,6 +344,11 @@ export function RoomViewHeader({ callView }: { callView?: boolean }) { const [chat, setChat] = useAtom(callChatAtom); + const canUseCalls = room + .getLiveTimeline() + .getState(EventTimeline.FORWARDS) + ?.maySendStateEvent('org.matrix.msc3401.call.member', mx.getUserId()!); + const encryptionEvent = useStateEvent(room, StateEvent.RoomEncryption); const encryptedRoom = !!encryptionEvent; const avatarMxc = useRoomAvatar(room, direct); @@ -578,7 +583,7 @@ export function RoomViewHeader({ callView }: { callView?: boolean }) { )} - + {canUseCalls && } Date: Tue, 10 Mar 2026 23:53:32 -0500 Subject: [PATCH 14/14] changeset --- .changeset/a_dm_and_room_calls.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changeset/a_dm_and_room_calls.md diff --git a/.changeset/a_dm_and_room_calls.md b/.changeset/a_dm_and_room_calls.md new file mode 100644 index 000000000..0d8267210 --- /dev/null +++ b/.changeset/a_dm_and_room_calls.md @@ -0,0 +1,5 @@ +--- +default: minor +--- + +Added ability to start calls in DMs and rooms. DM calls will trigger a notification popup & ringtone (for other sable users/compatible clients, probably).