mumble-voip / mumble

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

ZeroC Ice: Get channel tree without getting channel descriptions. #6355

Open dexgs opened 7 months ago

dexgs commented 7 months ago

Context

Writing software against the mumble server Ice API.

Description

Currently, the only ways to enumerate all the channels on a server are getTree() and getChannels(). Both these methods request the channel descriptions of every channel on the server. This results in a possibly very large request (especially if channel descriptions contain images), even if all you want to do is iterate over channel IDs.

For example: I am writing a simple channel viewer which only lists channel names and has no need for descriptions. Calling getTree() on my server results in a message that is ~3MiB in size, i.e. orders of magnitude larger than just the channel names and IDs. Additionally, the Ice client rejects a message this large unless I increase the max message size in my software.

What I am asking for is a way to request channel tree without downloading entire channel descriptions from the server. I think it would be best to add a new Ice API endpoint to the server in order to maintain backwards compatibility. This api endpoint would have the same behaviour as getTree(), except the description field of the returned Channel objects would be set to either null or the empty string.

Mumble component

Server

OS-specific?

No

Additional information

It would also be nice to have a similar function for fetching all online users without getting their user comments.

Krzmbrzl commented 7 months ago

Note that https://www.mumble.info/documentation/developer/channel-viewer-protocol/ is a thing But generally, this is functionality that would also be useful in other contexts.