This is a read-only archive of the Mumble forums.

This website archives and makes accessible historical state. It receives no updates or corrections. It is provided only to keep the information accessible as-is, under their old address.

For up-to-date information please refer to the Mumble website and its linked documentation and other resources. For support please refer to one of our other community/support channels.

Jump to content

Programmatically control Mumble Server


calum
 Share

Recommended Posts

Hi there,


I've been researching different voice chat methods for a while now and I think Mumble Server might be what I need. Would someone here be able to help me with this, please?


Basically, I need a server to be able to create, delete, and get information about voice channels across multiple Mumble Servers. If a channel is created, the server needs to be able to send the channel information to a client application, who should then be able to join the voice channel and speak with anyone else who joins.


I'm prepared to use the Jumble (Android) and MumbleKit (iOS) to develop the voice channel specific stuff on the application, but creating and managing the voice channels needs to be done by the server. I don't want any of my users to be able to see the channels, or be able to create or delete any. They should only be able to access a channel after my server gives them the connection information.


Is this something I can do using Mumble Server and Ice?


Thank you so much for any help!

Link to comment
Share on other sites

  • Moderators

Ice can definitely create and delete channels on the fly, including linking them to each other if that's something that you're interested in. I had mucked about with a script where my intention was to have it read identity information from a game's plugin, and thus put folks in the same squad automatically in the same channel, but linking channels (and adjusting ACLs) so that users in the same vehicle could also speak with each other, regardless of which squad they were in. I never ended up getting it anywhere near working, but I never ran into an issue where I felt like it couldn't work.... I just ran out of steam.


The only potential issue I can see is you mentioned having the users not see the channels until they have access to it. This is going to be a problem - it's an often requested feature for Murmur to hide portions of the tree from users, but it would be a huge change to Murmur's internal structure to accomplish this, and frankly no one has stepped on to take on this task (which is full of gotchas). We simply can't make any guarantees on that, so at the moment Murmur shows the entire tree (including which users are in which channels) to any connected user.


You can prevent users from creating channels using the ACL though, then just use Ice to create the channels automatically. Note however that (unless something's changed) you can't create temporary channels via Ice, so you'll have to keep track of deleting them yourself.


You probably want the addChannel, removeChannel, get/setACL, and get/setChannelState methods: https://github.com/mumble-voip/mumble/blob/master/src/murmur/Murmur.ice#L658


It should mostly work the same regardless of which language you choose to interact with Ice - when I last experimented with it Ice for PHP and Python both had individual warts, but maybe things are a lot better these days.

Full disclosure: I used to run a commercial Mumble host, and my opinions do not reflect the opinions of the Mumble project.

Avatar is stolen from here

Link to comment
Share on other sites

 Share

×
×
  • Create New...