clowdr icon indicating copy to clipboard operation
clowdr copied to clipboard

Host controls in Vonage rooms

Open bcpierce00 opened this issue 4 years ago • 7 comments

For big meetings in Clowdr rooms, we really need host controls - in particular, "mute everybody".

bcpierce00 avatar Feb 09 '21 21:02 bcpierce00

@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?

EdNutting avatar Feb 12 '21 22:02 EdNutting

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.

rossng avatar Mar 09 '21 12:03 rossng

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.

rossng avatar Mar 09 '21 12:03 rossng

  • 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.

EdNutting avatar Mar 09 '21 13:03 EdNutting

Agreed.

bcpierce00 avatar Mar 09 '21 15:03 bcpierce00

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
  • In social rooms, do we want to offer the mute/kick controls to everyone not just conference organizers and moderators?

EdNutting avatar Sep 14 '21 11:09 EdNutting

  • 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...

bcpierce00 avatar Sep 14 '21 12:09 bcpierce00