diff --git a/.changeset/breezy-tips-bake.md b/.changeset/breezy-tips-bake.md new file mode 100644 index 0000000000000..307bc5c7752f4 --- /dev/null +++ b/.changeset/breezy-tips-bake.md @@ -0,0 +1,5 @@ +--- +"@rocket.chat/ui-voip": patch +--- + +Fixes VoIP widget mute action muting received audio instead of just microphone diff --git a/packages/ui-voip/src/lib/VoipClient.ts b/packages/ui-voip/src/lib/VoipClient.ts index a996e0baed798..9cc1279805272 100644 --- a/packages/ui-voip/src/lib/VoipClient.ts +++ b/packages/ui-voip/src/lib/VoipClient.ts @@ -288,35 +288,10 @@ class VoipClient extends Emitter { throw new Error('Peer connection closed.'); } - try { - const options: SessionInviteOptions = { - requestDelegate: { - onAccept: (): void => { - this.muted = mute; - this.toggleMediaStreamTracks('sender', !this.muted); - this.toggleMediaStreamTracks('receiver', !this.muted); - this.emit('stateChanged'); - }, - onReject: (): void => { - this.toggleMediaStreamTracks('sender', !this.muted); - this.toggleMediaStreamTracks('receiver', !this.muted); - this.emit('muteerror'); - }, - }, - }; - - await this.session.invite(options); - - this.toggleMediaStreamTracks('sender', !this.muted); - this.toggleMediaStreamTracks('receiver', !this.muted); - } catch (error) { - if (error instanceof RequestPendingError) { - console.error(`[${this.session?.id}] A mute request is already in progress.`); - } - - this.emit('muteerror'); - throw error; - } + const enableTracks = !mute; + this.toggleMediaStreamTracks('sender', enableTracks); + this.muted = mute; + this.emit('stateChanged'); }; public setHold = async (hold: boolean): Promise => {