diff --git a/src/app/features/call/CallControls.tsx b/src/app/features/call/CallControls.tsx index f750bf533..d0971cc8b 100644 --- a/src/app/features/call/CallControls.tsx +++ b/src/app/features/call/CallControls.tsx @@ -64,13 +64,16 @@ export function CallControls({ callEmbed }: CallControlsProps) { const microphoneRef = useRef(microphone); useEffect(() => { microphoneRef.current = microphone; }, [microphone]); - // Handle PTT mode toggle mid-call + // Handle PTT mode toggle mid-call — save/restore mic state (I-4) const pttModeRef = useRef(pttMode); + const micBeforePTTRef = useRef(null); useEffect(() => { if (pttMode && !pttModeRef.current) { + micBeforePTTRef.current = microphoneRef.current; callEmbed.control.setMicrophone(false); } else if (!pttMode && pttModeRef.current) { - callEmbed.control.setMicrophone(true); + callEmbed.control.setMicrophone(micBeforePTTRef.current ?? true); + micBeforePTTRef.current = null; } pttModeRef.current = pttMode; }, [pttMode, callEmbed]);