include include: make isSessionIdValid public. 1 year ago
src my stuff 9 months ago
.gitignore git: ignore mumble proto c files generated. 2 years ago
CMakeLists.txt build: added missing static libraries to cmakelist. 2 years ago
LICENSE Initial commit 6 years ago
Mumble.pb-msys.cc root: added missing header for msys. 2 years ago
Mumble.pb-msys.h root: changed Mumble proto c and headers filename for msys. 2 years ago
Mumble.proto Update mumble proto to latest version. 4 years ago
README.md Added missing Debian dependencies 2 years ago
mumlib.usp root: added build optimization boost and size def args. 1 year ago
mumlib_example.cpp oeu 9 months ago
opus_example.c oeu 9 months ago
README.md

I do not maintain this project and mumsi any longer, but some new features and bugfixes have been implemented in the forks. Check them out!

mumlib - simple Mumble client library

Fairly simple Mumble library written in C++, using boost::asio asynchronous networking framework. Library supports:

  • Audio streaming through TCP and UDP channel
  • Text messaging

Todo:

  • Channel support
  • User information
  • Remaining server messages (ACL, user stats etc)

Dependencies

  • Boost libraries
  • OpenSSL
  • log4cpp
  • Opus library
  • Google Protobuf: libraries and compiler
  • CMake
  • Speex DSP library

Install those dependencies on Debian GNU/Linux using:

apt install libboost{,-system}-dev libssl-dev liblog4cpp5-dev libopus-dev protobuf-compiler libspeexdsp-dev cmake build-essential

Build

The library uses CMake build system:

mkdir build && cd build
cmake ..
make

Usage

Sample usage is covered in mumlib_example.cpp file. Basically, you should extend mumlib::Callback class to implement your own handlers.

To use a client certificate, you'll need a PEM certificate and private key without a passphrase. These are assed in the MumlibConfig struct to the Mumlib object constructor. Support for passphrase still needs to be added.

Credits

2015 Michał Słomkowski. The code is published under the terms of Lesser General Public License Version 3.

The library contains code from following 3rd party projects: