Official Mumble VoIP Forums

Mumble Client & Server SDK

Ice/DBus, Web-Interfaces, Management tools
Hello World,

I am a new user here so I am likely not as informed as all of you, but I just had a question. Does anyone know of a good C++ Mumble Client (and Server) library / SDK? I am working with a team on an IRL research project and we were evaluating different communications technologies, but each has it's disadvantages; Radio (which we are using now) can't be used programmatically, TS3's SDK requires extensive licensing, and Discord doesn't allow you to host your own server. After evaluating all of these we settled on Mumble, as it is open source, has positional audio, and , and began looking to build an application to link our software to it. However, after scavenging around the internet, I was unable to find a comprehensive C++ SDK for Mumble. The ones I did find were feature incomplete, undocumented, or hadn't been touched in years: I realize a good SDK is hard to come by in any project, but I would like any advice you could give me. Even a headless mumble client with good RPC / APIs could work, but I can't find those either.

Thank you for your help Mumble Community, have a nice one!
Hello HeroCC

The Mumble protocol has been stable for years, so no changes on libmumble does not necessarily indicate it is outdated or not working.

Sadly our main codebase is not cleanly split into a lib of underlying code and head.

We do not have an SDK as development on the source itself can be done just like that, on the source itself.

We do have protocol documentation. The protocol uses protobuf, so implementing clients can generate networking code just like that.

* https://mumble-protocol.readthedocs.io/
* https://wiki.mumble.info/wiki/Protocol
* https://github.com/mumble-voip/mumble/b ... mble.proto

Mumbles source code uses the Qt framework, so you can use Qt to build Mumbles sources. https://github.com/mumble-voip/mumble

Depending on your system/OS you may find our mumble-releng repository useful, which can prepare a build environment for you. Specifically for Windows. It will download the depenencies and compile them. See https://github.com/mumble-voip/mumble-releng

For a server it may be viable to just use an existing one.

If you want to implement a client, I would suggest trying out libmumble or implementing your own client (generating networking code from protobuf, implementing audio and control handling yourself).

I don't really have an overview of what options are out there; implementations you may refer to or libraries you could use. But our list at 3rd Party Applications may help you https://wiki.mumble.info/wiki/3rd_Party_Applications
Hi Kissaki, thanks for the reply!

I was unable to compile libmumble in my testing (it may be my computer) but I did find a simple library (mumlib) that works with some tweaks. I did more research and yeah the Protobuf is quite useful, I didn't realize at first that the protocol was so open.

I think I am going to implement the client with a library, and run `murmurd` controlled by gRPC (I made a PR to enable this but I am having trouble navigating the Mumble Build Systems). Installing Ice from pacports is broken so I can't use that for RPC unfortunately.

One quick question, is the positional audio handled on the server or the client? Would I need to do anything special to implement it?

Thanks for writing this great piece of software!
Positional Audio is handled entirely client side. The server just forwards the packets, in the case of PA including some additional positional metadata.