Debian 7 Mumble (Murmur) is a VoIP application that allows users to communicate through voice over IP. It is a popular choice for gaming servers, VoIP servers, and other applications that require high-quality voice communication. This Debian 7 Mumble (Murmur) guide will show you how to install and configure the server. First, we will need to install the necessary packages. On Debian 7, these are: apt-get install mumble-server libmumble1 libmumble-plugins1 libpurple0 libpurple-dev Next, we will need to create a configuration file for Mumble. We can use the mumble-config tool to do this: mumble-config –create conf/mumble.conf The configuration file should look like this: # This is the main Mumble configuration file. You should not change anything here # unless you know what you’re doing! server { # The hostname or IP address of your Mumble server hostname = “localhost”; # The port that Mumbles will use port = 64738; # If set to true, clients will be forced to use SSL encryption ssl = true; } client { # The name of the client user account name = “username”; password = “password”; } ..
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:
For Administrators
Low resource cost for hosting. Very stable server software. Free choice of server OS software. Extendible through Ice middleware. Automatable administration through Ice middleware.
For Users
Low-latency codecs – great for talking and gaming. Private and secure encrypted communication. Public/private-key authentication by default. Android & Apple iOS app support.
1 – System Packages
Begin by updating and upgrading your system’s current packages.
1 – System Packages2 – Install the Murmur Package3 – Configure Murmur Package Settings4 – Murmur Configuration FileConclusion
Updates the apt-get package manager database
[alert-announce]
$ sudo apt-get update
[/alert-announce]
Installs any new updates to system packages
[alert-announce]
$ sudo apt-get upgrade
[/alert-announce]
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
[alert-announce]
$ sudo apt-get install mumble-server
[/alert-announce]
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 libzeroc-ice34 and mysql-common.
3 – Configure Murmur Package Settings
Next begin the package configuration with the following command.
Starts the package config wizard
[alert-announce]
$ sudo dpkg-reconfigure mumble-server
[/alert-announce]
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.
Select 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.
Located in /etc/mumble-server.ini
The 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
[alert-announce]
$ sudo vim /etc/mumble-server. ini
[/alert-announce]
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!
[alert-announce]
[/alert-announce]
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.
Microphone Troubleshooting
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.
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
[alert-note]
$ sudo service mumble-server restart
[/alert-note]
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.