diff --git a/bigbluebutton-html5/imports/api/voice-users/server/methods/muteToggle.js b/bigbluebutton-html5/imports/api/voice-users/server/methods/muteToggle.js index fdc3c23f4d4a6df62b6e16e7ce6327bf3a23ddba..b28ee5935f15cb866c3223648937e3f4d93869af 100644 --- a/bigbluebutton-html5/imports/api/voice-users/server/methods/muteToggle.js +++ b/bigbluebutton-html5/imports/api/voice-users/server/methods/muteToggle.js @@ -3,8 +3,9 @@ import { extractCredentials } from '/imports/api/common/server/helpers'; import RedisPubSub from '/imports/startup/server/redis'; import Users from '/imports/api/users'; import VoiceUsers from '/imports/api/voice-users'; +import _ from 'lodash'; -export default function muteToggle(uId) { +export default function muteToggle(uId, implicitToggle) { const REDIS_CONFIG = Meteor.settings.private.redis; const CHANNEL = REDIS_CONFIG.channels.toAkkaApps; const EVENT_NAME = 'MuteUserCmdMsg'; @@ -30,7 +31,7 @@ export default function muteToggle(uId) { const payload = { userId: userToMute, mutedBy: requesterUserId, - mute: !muted, + mute: _.isNil(implicitToggle)? !muted : implicitToggle, }; RedisPubSub.publishUserMessage(CHANNEL, EVENT_NAME, meetingId, requesterUserId, payload); diff --git a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js index 4146c25cc94c561c6d1469850c6ffb4cf5cd5417..f9aab8a276e0b4f58b4fb2f2a8cfe279e66b28bd 100755 --- a/bigbluebutton-html5/imports/ui/services/audio-manager/index.js +++ b/bigbluebutton-html5/imports/ui/services/audio-manager/index.js @@ -284,7 +284,7 @@ class AudioManager { this.isConnected = true; if (this.wasMuted) { - makeCall('toggleVoice'); + makeCall('toggleVoice', true); this.wasMuted = false; } // listen to the VoiceUsers changes and update the flag @@ -293,7 +293,7 @@ class AudioManager { this.muteHandle = query.observeChanges({ changed: (id, fields) => { if (fields.muted !== undefined && fields.muted !== this.isMuted) { - this.isMuted = fields.muted; + this.isMuted = true; const muteState = this.isMuted ? 'selfMuted' : 'selfUnmuted'; window.parent.postMessage({ response: muteState }, '*'); }