How do I programmatically mute or unmute an agent’s microphone using the Genesys Cloud JavaScript SDK while a voice call is active? I’m building a custom softphone widget and need to sync the UI toggle with the actual audio stream state. I’ve got the conversationId and participantId, but the SDK docs are thin on real-time media control methods. I tried calling client.conversations.calls.updateParticipant with a JSON body setting muted to true, but it either throws a 403 Forbidden or just ignores the request. Is there a specific method on the Call object I’m missing, or is this strictly a server-side API call that requires elevated scopes? Here’s the snippet I’m wrestling with:
const updatePayload = {
muted: true,
participantId: currentParticipantId
};
await client.conversations.calls.updateParticipant(conversationId, updatePayload);
It keeps failing auth, even though the token has conversation:write.