mumble-voip / mumble

Mumble is an open-source, low-latency, high quality voice chat software.
https://www.mumble.info
Other
6.13k stars 1.09k forks source link

Restrict Broadcasting to One User at a Time #6451

Open imashoksundar opened 4 weeks ago

imashoksundar commented 4 weeks ago

Context

No response

Description

Hi,

First of all, thanks for the wonderful project!

I have a requirement where only one person should be able to broadcast at any given time. If two people try to broadcast simultaneously, the second person should receive an error indicating that the channel is already in use.

Does Mumble have a built-in feature to support this kind of exclusive broadcasting, or would this require a custom implementation? If it's the latter, could you provide some guidance or point me in the right direction on how to achieve this?

Thank you for your help!

Mumble component

Both

OS-specific?

Yes

Additional information

No response

Hartmnt commented 4 weeks ago

This is not possible with Mumble, if you want all users to be in the same channel. It would be possible with ACL to create a "speak" channel with a maximum user count of 1 and a "listen" channel without speak permission. This would require you to move the users or the users to go into the "speak" channel by themselves.

The Mumble server does not process the speech, it only forwards the packages. That means you could implement this by sending a "permission denied"-like message when a user speaks while another user is speaking. The file to do this would be src/murmur/Messages.cpp I think.

To make this useful for a broader audience (not only your specific case) you would probably have to implement a "maximum user speaking counter" in the channel settings and allow for N users to speak at once (where N is a number). And then we would need to communicate this clearly to the users without spamming "permission denied" messages... So this is not trivial to get right.

imashoksundar commented 3 weeks ago

Hi,

Thank you for your prompt response and the detailed explanation. I'll try those suggestions out.

Krzmbrzl commented 3 weeks ago

Also, while technically not what you are asking for, there is the priority speaker functionality. With this, the current priority speaker can talk and while they do, everyone else's voice is attenuated (not silenced though). Maybe this is sufficient for your use-case?