Mumble is one of several choices for those looking to host a client/server-based VoIP application. It allows users to connect centrally and chat with one and another via a microphone and audio output. The program is open-source so free of charge and aimed at gamers who need to communicate efficiently in real-time. Anyone can, of course, make use of the application, however.
This post will focus on the process of installing plus configuring the server side aspects of Mumble, or Murmur as the server software is known. Mumble specifically is the client software that users need to download and install to connect to your Murmur server. Also note that as usual this post is written for those using Debian, or Debian derived distributions such as Ubuntu.
Other programs of this nature exist also such as Teamspeak and Ventrilo. Bear in mind though that both of these are freeware and free to use, but not open-source software. Meaning the source code cannot be altered, updated, or accessed legally. This is one of several reasons I personally use Murmur as a voice server. Others are as follows:
- Low resource cost for hosting.
- Very stable server software.
- Free choice of server OS software.
- Extendible through Ice middleware.
- Automatable administration through Ice middleware.
- Low-latency codecs – great for talking and gaming.
- Private and secure encrypted communication.
- Public/private-key authentication by default.
- Android & Apple iOS app support.
More general information can be found at the Official Mumble Wiki
1 – System Packages
Begin by updating and upgrading your system’s current packages.
apt-get package manager database
- $ sudo apt-get update
Installs any new updates to system packages
- $ sudo apt-get upgrade
Confirm when prompted about updating new packages by entering
y for yes.
2 – Install the Murmur Package
Use the package manager command below to retrieve and install the Murmur server package.
Installs Murmur onto the system
- $ sudo apt-get install mumble-server
Again confirm when prompted entering
y for yes.
All the dependencies that Murmur requires will also be installed here too. These are other packages mumble needs and depends upon to run, such as
3 – Configure Murmur Package Settings
Next begin the package configuration with the following command.
Starts the package config wizard
- $ sudo dpkg-reconfigure mumble-server
What follows are a series of interactive configuration prompts, you can select the options offered by pressing the tab key or directional arrows on your keyboard.
Yes and press enter for this first option unless you explicitly don’t want this.
Note that for the
mumble-server (Murmur) package on Debian or Debian-based distributions, initially you should not start the process manually. After you install and configure it here, it will start on its own.
Here the wizard allows you to prioritize Murmur’s networking processes over other ongoing services. I would advise selecting
Yes as before, feel free to select no if you really do not want this behavior enabled.
SuperUser in Murmur/Mumble is very much like the
root user account in Linux filesystems. It has all the access rights and privileges possibly available to it. You’ll need to make use of it to administer your server from time to time. Read the details in this step carefully then type in a suitable password, before pressing tab and enter to continue.
4 – Murmur Configuration File
mumble-server.ini located in the above directory contains the vast majority of configurable settings that can be applied to your Murmur server. The contents of the text file itself are well commented and each individual option should have an explanation alongside it as a comment.
Comments in this file begin with and are signified by the
# symbol. Much like in
bash scripting and several other programming languages.So consider that any line or command beginning with a
# will not be processed as part of the configuration by the server.
Let’s take a look at the file.
Open the file with
vim for viewing and editing
- $ sudo vim /etc/mumble-server.ini
You can use any text editor you prefer (nano, emacs, pico, etc) but I’ve used vim in the above example. Once inside you will be able to see all the configs available. Here are some of the options worth noting:
welcometext – As labelled, users see this message after joining the server in their Mumble client text message log. Anything within the two quotation marks
" " is taken as the message to be shown. The server supports basic
HTML markup code within this message, so items such as images, hyperlinks, formatted text, etc can be applied.
Here is an example of some HTML formatting you can use for your message, but feel free to make your own!
- <br>You have joined our Mumble server, enjoy your stay!<br><img src=”http://wiki.openstreetmap.org/w/images/thumb/8/8f/Icons_mumble.svg/200px-
- <b>Server Links</b><br>
- <b><a href=”http://wiki.mumble.info/wiki/FAQ/English” rel=”nofollow”> Mumble Wiki FAQ</a></b><br>
- <b><a href=”http://www.mumble.com/support/mumble-server-robotic-distorted-voice.php” rel=”nofollow”> Microphone Troubleshooting</a></b><br>
Above HTML Output
You have joined our Mumble server, enjoy your stay!
port – This is the port that will need to be opened and useable by outside connections in any firewalls you may have running, for example iptables in Debian/Linux. It must also be specified in the Mumble client program when users connect to your Murmur server.
bandwidth– The default value of “72000” here for this setting is sufficient, unless you are limited in available bandwidth on the hosting machine. Note that this option sets a max cap on per user bandwidth, and not a minimum, and is measured in bits.
users – This value sets a limit on how many Mumble clients can be connected to the server at the same time. A general rule to follow here is that with the above
bandwidth option set to “72000”, you can have 50 users max per 512MB of hardware memory (RAM) available. Any more and server latency issues resultant of this may arise.
registerName, RegisterUrl – On every Mumble client there exists a public list of registered servers that anyone can access and connect to. If this section is filled out and completed, your Murmur server with the relevant details is added to that list. In my experience it is beneficial to instead provide the host machine IP address plus chosen port number directly to accepted users, who can then connect with these details manually in their clients.
Some further documentation for these configuration settings can be found at the Official Mumble Wiki
Whenever you change any of these values the Murmur server needs to be restarted. We do this by restarting its daemon (a background process that is constantly running). It is only after you do this that any
mumble-server.ini alterations will come into effect. Use the following command to do this, and remember that any users on the mumble server will get disconnected and have to reconnect after the service restarts again.
How to restart the Murmur server
- $ sudo service mumble-server restart
From here on out the server is in its base working condition and can be accessed by users using the Mumble client software. There are however more steps to take if you are using a firewall on your Murmur hosting machine (which is advised).
This consists of allowing traffic on the port number chosen in the configuration file earlier, otherwise it is likely users will not be able to connect with their client software.
Stay tuned for another forthcoming post on the next stages of configuration. Which will include the
iptables firewall rules mentioned just now, channel creation and customisation, and more instructions on how to run the server from an administration point of view.