Setting up a Mumble Server on a Raspberry Pi.

English: Mumble Logo Deutsch: Mumble Logo

English: Mumble Logo Deutsch: Mumble Logo (Photo credit: Wikipedia)

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:

sudo raspi-config

This will bring up a screen that looks like this:

raspi-config_main

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:

sudo raspi-config


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:


cd /etc/networks

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

address 192.168.0.53

netmask 255.255.255.0

gateway 192.168.0.1


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:

sudo reboot

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:

ifconfig

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?”

1

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.

2

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.

3

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.)

4

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:

5

Click the “Add New” button and a small box will pop up.

6

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”.

7

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.

8

This line is your MOTD (Message of the Day) which will appear in the left hand sidebar on the Mumble Client.

9

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.

10

Now when you find this line, it will look like this:

#registerName=root

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.

ports

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:

  1. Start the Mumble client.
  2. 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.
  3. Open Configure -> Settings and check “Advanced” at the bottom left.
  4. Join your server following the previous step
  5. 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.
  6. 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.
  7. 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.
  8. Go to the Groups tab
  9. In the drop-down box at the top select the “admin” group
  10. In the “Members” drop-down box at the bottom left, type your username and press enter
  11. Click OK
  12. Follow step 3 to change your username back to the user you added with SuperUser
  13. Connect back to the server
  14. 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.

Advertisements

7 responses to “Setting up a Mumble Server on a Raspberry Pi.

  1. FYI the above article is wrong in a few key places. The network addresses when setting a static ip for example, “address: 192.168.0.53” should actually be “address 192.168.0.53” – you should not be putting a colon on any of those.

  2. I created instructions to install phpMumbleAdmin using nginx + php5-fpm. Let’s assume you have succesfully installed nginx with php5 (fpm) and if not you should follow the instructions at: http://www.andrewdcox.com/blog/2013/05/11/running-an-nginx-php-and-mysql-webserver-on-the-raspberry-pi/

    Package php-zeroc-ice is required for the php extension and zeroc-ice for the slice2php tool:

    sudo apt-get install php-zeroc-ice zeroc-ice

    Now we will configure the PHP extension:

    sudo nano /etc/php5/fpm/php.ini

    After:

    ;include_path = ".:/usr/share/php"

    Put on a new line:

    include_path = "/usr/share/Ice-3.4.2/php/lib"

    Restart the service:

    sudo service php5-fpm restart

    Next, download phpMumbleAdmin, copy to /usr/share/nginx/www with WinSCP/FileZilla over SSH and rename the directory to phpmumbleadmin (lower case). Don’t forget to recursively chmod 777 as some config files have to be created and written by the script.

    Then navigate to phpmumbleadmin/slice_php and generate the slice2php file:

    cd /usr/share/nginx/www/phpmumbleadmin/slice_php
    slice2php -I/usr/share/Ice-3.4.2/slice /usr/share/slice/Murmur.ice

    Finally configure the newly generated Murmur.php file from a dropdown box to be used using the webinterface.

    Enjoy!

  3. How many clients can you get on simultaneously? I am not looking for a full raid or anything.. but is 10-15 people too much for the RasPi to handle?

    • I’ve had ten people on running smoothly. It’s a surprisingly capable machine. If you run it headless then you can change the memory split to favour the CPU over the GPU.

  4. when i try to connect to my channel it keeps telling me that i have a wrong certificate and password, i tried uninstalling and reinstalling twice but its still giving me the same messages. any idea as to what that is?

  5. I have this running, I’m able to connect over my network on Windows 8.1 with mumble client & enter the channels ect. However I cannot register myself on the server to then be able to admin myself despite there already being permissions for allowing clients to register themselves. After trying a heap of stuff I’m thinking maybe do I need the pi to be root or pi’s mumble server be root? When I enter & set an avatar & comment on myself it only stays up until I disconnect, when I reconnect it’s gone. I’m thinking the pi isn’t writing some changes for some reason. As SuperUser I can make new channels & they remain.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s