clowdr
clowdr copied to clipboard
Host controls in Vonage rooms
For big meetings in Clowdr rooms, we really need host controls - in particular, "mute everybody".
@rossng Can we send Vonage requests from one user to mute another user? Or achieve this by sending an Action request and have the Actions service contact Vonage to mute the relevant user?
Or will we have to somehow route this through our backend such that the frontend of the "client to be muted" picks up the request and mutes themselves?
The main issue here is that we need a way to decide who is allowed to do the muting. I think the best option is to use the room people - i.e. room admins are allowed to mute people. There are a few hurdles to overcome atm:
- Public rooms do not have any room people. We would need to add some admin UI to be able to add admins to the list of room people for specific rooms.
- Private rooms do have room people, but everyone except the room creator is added as a (non-admin) participant. There's no reason the admin couldn't assign other admins, but this UI needs to be implemented.
- We probably want to have the same functionality during scheduled events of type 'breakout'. In this case, we can't use the room people - we have to use the event people to decide who has muting power.
wrt the technical implementation, it can work either way. You can mint Vonage tokens with a 'moderator' role - see https://learn.vonage.com/blog/2020/11/12/ban-the-trolls-adding-moderation-to-the-video-api/
It might be a little tricky to keep this in sync with our database's view of who is a moderator.
We could also implement it purely through the actions service talking to the Vonage REST API.
- Public rooms: Anyone should be able to mute. The main use case is "Jodie walked away from their computer to get coffee and left their mic unmuted and now someone else in the room needs to mute them".
- Private rooms: Same deal as public rooms - everyone is trusted.
- I think Event rooms (Speaker's Area and event breakouts) are probably the exception case where we want some kind of limits to have a meaningful moderator role.
Agreed.
My PR gets us 80% of the way there.
Remaining todos (not implementing this week):
- Where appropriate, offer a "mute everyone" or "mute everyone except [...]" button
- Note: Vonage's
forceMuteAll
function supports this and can take a list of excepted streams
- Note: Vonage's
- In social rooms, do we want to offer the mute/kick controls to everyone not just conference organizers and moderators?
- In social rooms, do we want to offer the mute/kick controls to everyone not just conference organizers and moderators?
I would say yes, at least as an experiment to see whether people like it. The use case is that someone leaves their desk but forgets to mute and starts vacuuming...