Hey there People.
It’s gonna be a bit of a deviation from my normal blogging style today. Mumble is an Open Source VOIP (Voice over Internet Protocol) client with very efficient use of bandwidth and very low latency. For the people who are not into technology, that basically means that it allows several people to talk to each other for free without putting a huge load on the computer.
The Raspberry Pi is a $25 computer which is the size of a credit card. It can be powered by a common Micro-USB phone charger and uses very little power, making it ideal for something like this. This tutorial assumes that you have a Raspberry Pi.
What We’re Gonna Do:
- Setup SSH Access (Optional)
- Setup a Mumble Server
- Configure the Mumble Server
- Forward the right ports
- Connect to our server and test it
1) Setting Up SSH Access on the Raspberry Pi. (Optional)
SSH (Secure Shell) is a method of accessing a server. It is commonly used on servers that are headless (Without a monitor). When SSH is enabled, you can log in remotely from a wide range of devices and access a console.
The Raspberry Pi’s recommended image (Raspbian Wheezy) has a built in SSH server. However, it is disabled by default. Open up a terminal and type:
This will bring up a screen that looks like this:
From this screen, there are two things we need to do if you haven’t already. The first thing to do is to Expand_RootFS. Select that and follow the on-screen instructions. By default, the Raspberry Pi’s root filesystem only takes as much space as is needed. This can cause you to run out of space quite quickly. This option expands the filesystem to fill the entire SD Card, giving you more space to work with.
Once this has finished, the system will reboot. Simply type:
This will bring you back to the Config Screen. This time, Select the SSH and set it to Enable. Afterwards, click finish and you will be in a shell. You can launch the GUI if you want, but most of this is going to be done in the shell anyway, so it’s up to you.
We now need to find out what our local IP Address is. We’re going to use a Static IP Address as it will make port forwarding a lot easier later. Open a Terminal and type:
sudo cp interfaces interfaces.bak
sudo nano interfaces
This has just backed up our network interfaces configuration in case something goes wrong. You should now be staring at the Nano Editor. Find the line that says:
iface eth0 inet dhcp
and replace it with (or comment it out):
iface eth0 inet static
The IP Address should be set by you. I used 192.168.0.53. Unless you use a different netmask, you should keep it at the value above. The gateway is your Router’s IP Address. (Normally 192.168.0.1 or 192.168.1.1)
After making your changes, save and exit nano. In the terminal, type:
to reboot the Raspberry Pi. Once rebooted, verify that you have an internet connection by typing:
ping -c 3 http://www.google.com
This will check that the Pi can reach google servers. If you encounter any issues, try checking the network interfaces file and making sure that it was configured correctly. If it worked, great!
We just need to check our IP Address. Type in:
and look at the eth0 interface. Somewhere, you should see the IP Address that you just set. Make sure to note it down as you’ll need it later.
Well done. You’ve successfully set up a Static IP address which allows SSH Access over the local network. You can use SSH to do everything else if you’d like your server to be headless or you can keep directly interfacing with the Pi. You’ll need to forward port 22 to the IP that you just set if you wish to use SSH over the internet. If you do not have access to the router, ask your local administrator for advice.
2) Setup the Mumble Server
Setting up a Mumble Server on the Raspberry Pi is simple. Assuming that you’re using Raspbian, the recommended image from the Raspberry Pi Foundation, simply open up a terminal and issue the following command:
sudo apt-get update && sudo apt-get install mumble-server
3) Configuring the Mumble Server
Awesome, you now have the Mumble Server installed. Now to configure it. In a terminal, type:
sudo dpkg-reconfigure mumble-server
The screen will go blue and you will be asked a series of questions. If you are going to only use the Pi as a mumble server, I recommend saying yes to “Autostart Mumble-server on boot?”
Again, if you are only going to use the Pi as a mumble server, you can give it network priority on the Raspberry Pi, I set this option to Yes.
Now comes the important part, setting a master password for your mumble server. Every mumble server has a “SuperUser” designed for maintenance. You should not use SuperUser to talk as it can’t talk anyway, so don’t bother trying.
You will be logging in a SuperUser for a short while in order to add your Mumble username to the Administrator group which will allow you to add or remove channels, kick and ban other users and even give yourself or others priority speech which will mute other users while you talk. This is similar to the mute function on Internet Relay Chat.
Once you’ve set your SuperUser password, make sure you remember it because you’ll use it to set user access later. You should see a bunch of text flash across your screen, don’t worry, this is normal. (Note I am using SSH from Windows to do this.)
Okay, Now comes the good part, we’re going to connect to our server via our local area network. This is just for configuration purposes. We’re going to first connect as a regular user to make sure that we can connect.
Download the Mumble Client for your chosen OS here: http://mumble.sourceforge.net/
Once download, open the Mumble Client and you’ll see a screen like this:
Click the “Add New” button and a small box will pop up.
In the label box, type the name as you’d like it to show up in the Mumble server list. It can be anything as it doesn’t really matter.
In the Address box, type in the local IP of your Raspberry Pi, in my example, I used 192.168.0.53 and in the Port box, there should be the default port already there as we have not set a port yet. If it’s blank, the default port is 64738.
Finally, type in a username and click okay. Select the server you just added and click “Connect”.
You’ll see something similar to this. As we have not set a name in the config yet, you will see “Root” where “Sharpy’s Mumble Server” is in this screenshot. This is good, we’re connected to your mumble server over a local area network!
After making a few more configuration changes, we’ll be ready to open up your mumble server to the rest of the internet so you can get chatting with your friends! Disconnect from the server and give yourself a metaphorical high-five.
Go back to your Raspberry Pi (Physical or SSH, doesn’t matter) and open up a terminal. Issue the command:
sudo nano /etc/mumble-server.ini
and you’ll see the nano editor pop up, this ini file is self-documenting which means that it contains instructions within the file for your convenience.
This line is your MOTD (Message of the Day) which will appear in the left hand sidebar on the Mumble Client.
This line allows you to set an optional server password. Leave blank to disable a password. Also, note the top option in which you can manually change the port that you want the server to use. I use the default as it is more convenient for me and other users. Also, you can define the maximum number of users.
Now when you find this line, it will look like this:
This is the name of the Root channel. To make this active, you need to uncomment it. This means taking out the “#” at the start of the line. Give your server a name. This will be shown to all users.
registerName=SERVER NAME HERE
After doing this, exit and save your changes.
Congratulations! You now have a functioning Mumble Server.
Now we need to make sure that traffic outside your local network can connect to it. We do this by using port forwarding. This makes sure that traffic coming to the Raspberry Pi is sent to the right device.
Check the port you set in Murmur.ini. If you didn’t set a port, it will be the default 64738. Now we need to login to your router and set a port forwarding rule.
For best results, forward TCP and UDP packets arriving on port 64738 to the internal IP Address of your Raspberry Pi. Save the configuration. You can now connect to your Mumble Server using your external IP address, giving the port 64738. This means that you did it right.
Now, we need to give your user name in mumble administrative privileges. The following is taken from the Mumble Wiki.
Becoming an admin:
- Start the Mumble client.
- Go through the Certificate Wizard and either import or create a certificate. You can skip the Audio Wizard if you want, although you will need to run through it in order to set up your mic properly, so you might want to do that anyway.
- Open Configure -> Settings and check “Advanced” at the bottom left.
- Join your server following the previous step
- When you are connected to the server, right click on your username, and then click “Register” – if you do not see this option, ensure that you have an @all ACL that has “Register Self” set to Allow, Applies to sub-channels unchecked.
- Reconnect as the SuperUser – Go back to your server list, and on the main Mumble window click Server -> Connect. You will see the server you added in the previous step. Right click it and select “Edit…” Change Username to SuperUser, click OK, then click Connect.
- Right click the “Root” Channel (it will be above your username; it will be whatever you named it if you set the registerName in Murmur.ini) and click Edit.
- Go to the Groups tab
- In the drop-down box at the top select the “admin” group
- In the “Members” drop-down box at the bottom left, type your username and press enter
- Click OK
- Follow step 3 to change your username back to the user you added with SuperUser
- Connect back to the server
- Test your administration ability by right clicking the root channel, clicking Add, and adding a new channel
Now you’re an Admin, you can add and remove channels/rooms and start using your Mumble Server for whatever needs suit you.