Mumble

Mumble is a voice over IP (VoIP) application primarily designed for use by gamers and is similar to programs such as TeamSpeak. In contrast to Teamspeak, Mumble is an open-source project.

Mumble uses a client–server architecture which allows users to talk to each other via the same server (murmur). It has a very simple administrative interface and features high sound quality and low latency. All communication is encrypted to ensure user privacy.


Note

For this guide you should be familiar with the basic concepts of

License

All relevant legal information can be found here

Pre-Note

Note

The official Mumble project decided to no longer provide static murmur server binaries starting with version 1.4.x.

Some fellow Ubernauts have undertaken efforts to compile a static murmur binary on their own. You can have a look at it on GitHub.

This guide uses the self-compiled server binary, which currently comes with some limitations, i.e. MySQL is currently not supported as a database. For Ubernauts who have been hosting a Mumble server based on this guide before Mumble v1.4, this might be a breaking change. The default database for a Mumble server is SQLite and requires no further configuration.

Please read the release notes of every new release. Releases of the self-compiled server binary may occur more often than the offical Mumble releases. However, no warranty is made regarding up-to-dateness and functional correctness. Consider subscribing to new releases, e.g. by using uu-notify.

Installation

Check the GitHub release section and copy the release tag version of the latest release. Set the variable MURMUR_VERSION to the version you just copied.

Note

The server for mumble is called murmur

[isabell@stardust ~]$ mkdir mumble
[isabell@stardust ~]$ cd mumble/
[isabell@stardust mumble]$ MURMUR_VERSION=v0.0.0_build-YYYY-000
[isabell@stardust mumble]$ wget https://github.com/franok/mumble-build-container/releases/download/$MURMUR_VERSION/murmur-static.zip
--2022-12-14 20:01:29--  https://github.com/franok/mumble-build-container/releases/download/v1.4.287/murmur-static.zip
Resolving github.com (github.com)... 192.30.253.113, 192.30.253.112
Connecting to github.com (github.com)|192.30.253.113|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: ...
Saving to: ‘murmur-static.zip’

murmur-static.zip     100%[=============================>]   7,39M  4,47MB/s    in 1,7s

2022-12-14 20:01:33 (4,47 MB/s) - ‘murmur-static.zip’ saved [7753035/7753035]

[isabell@stardust mumble]$

Extract the zip file:

[isabell@stardust mumble]$ unzip murmur-static.zip
Archive:  murmur-static.zip
  inflating: murmur.ini
  inflating: murmur.x86_64

Make the binary executable:

[isabell@stardust mumble]$ chmod +x murmur.x86_64
[isabell@stardust mumble]$

Configuration

Configure port

To make the application accessible from the outside, open a port in the firewall:

[isabell@stardust ~]$ uberspace port add
Port 40132 will be open for TCP and UDP traffic in a few minutes.
[isabell@stardust ~]$

Edit the config file ~/mumble/murmur.ini to specify the desired port. Minimal config would look like this:

welcometext="<br />Welcome to this server running <b>Murmur</b>.<br />Enjoy your stay!<br />"
port=<your_port>
serverpassword=changeThisPassword!
allowping=true
bonjour=false

For more configuration options look at the documentation site.

Setup daemon

Create ~/etc/services.d/mumble.ini with the following content:

[program:mumble]
command=%(ENV_HOME)s/mumble/murmur.x86_64 -fg -ini %(ENV_HOME)s/mumble/murmur.ini

After creating the configuration, tell supervisord to refresh its configuration and start the service:

[isabell@stardust ~]$ supervisorctl reread
SERVICE: available
[isabell@stardust ~]$ supervisorctl update
SERVICE: added process group
[isabell@stardust ~]$ supervisorctl status
SERVICE                            RUNNING   pid 26020, uptime 0:03:14
[isabell@stardust ~]$

If it’s not in state RUNNING, check your configuration.

Finishing installation

To connect to your server, open a Mumble client on your computer or phone and add a new server:

  • Address: <username>.uber.space

  • Port: your port

  • Username: any username you’d like

Best practices

Uberspace already provides letsencrypt certificates. To add them, append these lines to your murmur.ini and adjust your username and the domain.

sslCert=/home/isabell/etc/certificates/isabell.uber.space.crt
sslKey=/home/isabell/etc/certificates/isabell.uber.space.key

The server needs to be restarted, before the certificates expire. Therefore, add the following line to your contrab using crontab -e:

@monthly supervisorctl restart mumble > /dev/null

Updates

Note

Subscribe to the releases to stay informed about the latest versions (e.g. by using uu-notify).

If there is a new version, backup your mumble folder:

[isabell@stardust ~]$ cp -rp mumble/ mumble-backup/
[isabell@stardust ~]$ ls -la | grep -i mumble-backup
drwxrwxr-x.   4 isabell  isabell    167 Dec  6 20:16 mumble-backup
[isabell@stardust ~]$

Repeat the Installation steps, and finally execute:

[isabell@stardust ~]$ supervisorctl restart mumble
mumble: stopped
mumble: started
[isabell@stardust ~]$

Connect to your server and if everything works fine, delete the backup:

[isabell@stardust ~]$ rm -rf mumble-backup/
[isabell@stardust ~]$

Tested with self-compiled static Murmur v1.4.287, Uberspace v7.14.0

Written by: stunkymonkey <http://stunkymonkey.de>, franok <https://franok.de>