Mute Remote Attendee
What are you trying to do?
I'm trying to mute a remote attendee. This implies some sort of host for the meeting, but controlling who has access to this functionality can be implemented in the client.
How can the documentation be improved to help your use case?
I can't find any documentation on this. The feature may not exist, in which case this is a feature request
What documentation have you looked at so far?
I've read through the readme, getting started, and looked at the api docs for AudioVideoFacade.
I have the same request. Also unable to find anything related to muting someone else.
Chime SDK does not support muting remote attendees. The current version (1.2.1) supports the following use cases around audio:
- Mute and unmute yourself.
- Disable the unmute. If you want to prevent users from unmuting themselves (for example during a presentation), use these methods rather than keeping track of your own can-unmute state.
- Subscribe to volume changes of a specific attendee e.g. You can use this to build a real-time volume indicator UI.
- Detect the most active speaker.
Thanks for the confirmation @simmkyu
Obviously there are ways to work around this and trigger other users to mute (I'm currently using websockets to send a message outside of Chime that forces the user to mute themselves), but that is not ideal. A selection of Admin/Host actions would be a nice addition to the SDK and this feature would certainly be a part of that. In the same vein the following might also be relevant:
- Mute all attendees
- Turn off video for attendee
- Turn off video for all attendees
- Remove attendee (though i guess this can be done with a delete_attendee call to the api)
Obviously there are ways to work around this and trigger other users to mute (I'm currently using websockets to send a message outside of Chime that forces the user to mute themselves), but that is not ideal.
In the Classroom Demo (mute here), we have also implemented the mute-all option using a WebSocket API in API Gateway, but I agree it would be better if Chime SDK supports it.
We will update change logs and docs when we support remote control features. Thank you for the suggestion.
Thanks again. Can I also suggest a definitive list of demo apps built with the Chime SDK somewhere. The classroom demo is new to me
A good point - we have a PR (#258) for reorganizing README files. In the root README, we will list all demo apps built with Chime SDK, including two demos in separate repos.
- Recording demo - Record the meeting's audio, video and screen share and stream output to a specified Amazon S3 bucket.
- Virtual classroom - An online classroom built with Electron and React
- AWS blog: https://aws.amazon.com/blogs/business-productivity/building-a-virtual-classroom-application-using-the-amazon-chime-sdk/
This hasn't been spelled out explicitly but we are looking a server SDK api to mute audio and/or video for an attendee. Note this is a borderline security issue for us. There is no good way to prevent someone from effectively zoombombing an open meeting. E.g. A open town hall meeting anybody can join. While we can add a layer in the client to give the host control to mute attendees (like sending an event to all clients to mute), a malicious user could create a custom client and feed it the joinToken, etc and be immune to any mute request from our layer. A host could kick the attendee (via DeleteAttendee), but since it's an open meeting the malicious user can easily rejoin.
I have to agree this is a borderline security problem. The Chime SDK is pretty useless for us if it allows a malicious user to share screen or open the mic anytime.
You can build this functionality using Chime SDK Data messages via web sockets to broadcast a 'mute Y command' in a meeting and the party in question can execute a local mute.
@vidya-mohan it can be done but that doesn't mean it can be done in a secure way, that is the issue basically. To me it would make sense to add a role to an attendee like host/viewer where for a host it would be possible to control viewers and viewers can be restricted in actions (like unmuting).
Looking at https://aws.github.io/amazon-chime-sdk-js/modules/apioverview.html#9-send-and-receive-data-messages-optional it seems there is a concept of "moderator attendee" but I can't find anything on how to work with this in the SDK.
@simmkyu Is it possible that in the future there'll be a way, via the server side, to restrict an attendee from unmuting themselves? As currently, on the client side of a web application integrating the chime sdk, it's possible that someone can utilize the browser's dev. console to allow unmuting one self.
We don't have a plan yet to support remote controls using the server-side APIs.
You can ensure that the "muted" attendees join a meeting with the null audio input device as described here. Even if the "muted" attendees unmute themselves in the browser console, other attendees cannot hear audio.
await meetingSession.audioVideo.chooseAudioInputDevice(null);
meetingSession.audioVideo.realtimeMuteLocalAudio();
await meetingSession.audioVideo.start();
But again, they can find a way to choose an audio input device in the browser console and unmute themselves.
So in other words; Chime will not be able to offer a reliable/secure implementation which makes it not suitable for many use cases :(
@slootjes thank you for your interest in the SDK. The team would be interested in the specific use cases you are trying to enable with the feature - please share via https://pages.awscloud.com/GLOBAL-aware-GC-Amazon-Chime-SDK-2020-reg.html. We will keep the issue open until we can support it in the platform.
At present, remote mute can be enabled with an integration with data messages - much like shown https://github.com/aws-samples/amazon-chime-sdk-classroom-demo/blob/9dfc7647b409cb2e0ad10c9db030afd4382e9a99/app/hooks/useFocusMode.tsx#L25
@Mattwhooo @peternijssen @slootjes @john-raymon @rubenfonseca We just launched the ability to control capabilities for each attendee on the backend via createAttendee API. Could you check it out?
@ltrung That's awesome and great to hear! Great job, excited to check it out tonight. 🎉👏🏼
We went with another vendor for our use case but I will for sure give this a try soon, thanks for implementing this and tagging me.
I am also trying to implement remote mute, so that an attendee can mute another attendee remotely. Is there any new feature in the SDK to accomplish this? Or the only way to do it is by using data messages, sending a message to the remote attendee and on message handling do a local mute?
I am also trying to implement remote mute, so that an attendee can mute another attendee remotely. Is there any new feature in the SDK to accomplish this? Or the only way to do it is by using data messages, sending a message to the remote attendee and on message handling do a local mute?
u got Any solution for that?
@iencotech @hdsensation It looks like you can update a given attendee using https://docs.aws.amazon.com/chime-sdk/latest/APIReference/API_meeting-chime_UpdateAttendeeCapabilities.html