diff --git a/src/app/features/room/RoomViewHeader.tsx b/src/app/features/room/RoomViewHeader.tsx
index 86c410d40..956167c13 100644
--- a/src/app/features/room/RoomViewHeader.tsx
+++ b/src/app/features/room/RoomViewHeader.tsx
@@ -339,10 +339,10 @@ function CallButton() {
fill="None"
ref={triggerRef}
onClick={handleOpenMenu}
- disabled={inAnotherCall}
+ disabled={inAnotherCall || callStarted}
aria-pressed={!!menuAnchor}
>
-
+
)}
@@ -381,6 +381,11 @@ export function RoomViewHeader({ callView }: { callView?: boolean }) {
const screenSize = useScreenSizeContext();
const room = useRoom();
const space = useSpaceOptionally();
+ const powerLevels = usePowerLevelsContext();
+ const creators = useRoomCreators(room);
+ const permissions = useRoomPermissions(creators, powerLevels);
+
+ const hasCallPermission = permissions.event(StateEvent.GroupCallMemberPrefix, mx.getSafeUserId());
const [menuAnchor, setMenuAnchor] = useState();
const [pinMenuAnchor, setPinMenuAnchor] = useState();
@@ -575,7 +580,7 @@ export function RoomViewHeader({ callView }: { callView?: boolean }) {
}
/>
- {direct && }
+ {direct && hasCallPermission && }
{screenSize === ScreenSize.Desktop && (