Build your own Raspberry Pi Mumble Server

In this project, I am going to set up a Raspberry Pi Mumble server. It’s an excellent project if you want to setup your own VOIP system.

Raspberry Pi Mumble Server

For those who haven’t heard of mumble before it is an open source VOIP (Voice Over Internet Protocol) chat software that provides you with a low latency high-quality voice chat.

You will find that mumble is often used amongst gamers to coordinate over voice chat while playing video games (Same as Teamspeak). It can also be just used as an open voice chat room or pretty much anything you where you require voice chat rooms.

Mumble is not the only Raspberry Pi VOIP solution out there. Other VOIP solutions such as Asterisk offers a much more complete package offering features such as inbound & outbound calls, audio and video conferencing and much more. Mumble is much easier and provides enough functionality for most people.

Equipment

Here is a list of equipment that you will need for this project. There are also some optional pieces of equipment that you might be interested in picking up.

Recommended

Raspberry Pi

SD Card (8GB+ Recommended) or Micro SD Card if you’re using a Raspberry Pi 2, 3 or B+

Ethernet Cord or WiFi Dongle

Optional

Headset for Voice Chat

USB Keyboard

USB Mouse

HDMI Cable

Video for Setting up the Mumble Server

I have put together an excellent video guide to take you through all the steps required to have a fully functioning mumble server.

If video isn’t your thing then you can find the full written tutorial right underneath the video.

Setting up the Raspberry Pi Mumble Server

The first step you will need to do is make sure you have Raspbian installed on your Raspberry Pi. If you haven’t done this, then you can follow my guide on installing NOOBs Raspberry Pi. It will provide you with all the information you need to get started.

Install Mumble Server on Raspberry Pi

1. On the Raspberry Pi open up terminal or SSH to the Pi

2. First, install the mumble server onto the Raspberry Pi by typing the following:

sudo apt-get install mumble-server

3. Now we need to do some basic configurations such as set up a superuser so we can connect, do this by running the following command.

sudo dpkg-reconfigure mumble-server

4. This command will present you with a few options, set these however you would like mumble to operate.

  • Autostart: I selected Yes
  • High Priority: I selected Yes (This ensures Mumble will always be given top priority even when the Pi is under a lot of stress)
  • SuperUser: Set the password here. This account will have full control over the server.

5. You need the IP address to connect, to get this type the following:

ip addr show

6. Write this number down next to inet (It will be under either eth0 or wlan0) as we will need it to connect to the server and also setup port forwarding for outside access.

Raspberry Pi ip addr show

Configuring the Raspberry Pi Mumble Server

Now we will probably want to set up a few things on the Mumble server such as welcome message, password (if you don’t want anyone just joining).

1. In SSH or the terminal app enter the following command:

sudo nano /etc/mumble-server.ini

2. This command will open the server config in the nano text editor.

3. Everything here is pretty self-explanatory:

  • Find welcomeText and update to whatever you would like displayed when a user joins the channel.
  • Find serverpassword and update if you would like a password for users looking to join the server.
  • Uncomment registerserver by removing the # and replace mumble server with the name that you would like to use for the base channel.

4. You will need to restart the server for changes to take place. Enter the following command.

sudo /etc/init.d/mumble-server restart

Once the server has rebooted, you can now move onto accessing it via the mumble client.

Accessing the Mumble Server

There are a few things we will need to do to access the server, and this includes downloading the Mumble software.

1. Download & install the Mumble client from their website mumble.org. (Don’t install server)

2. Open up the program and go to Server->Connect

3. In here add the details

  • Label: The name that will appear in your server list.
  • Address: This is the IP Address we wrote down earlier.
  • Port: 64738 (Unless you changed it)
  • Username: superuser
  • Password: The one you set earlier using the dpkg command.

You should now be able to connect to your server.

Connect to Mumble Server

4. Now we have it working there is a few more things you may want to configure and setup.

Setting up an Admin User

You might want to give yourself admin rights so that you don’t need to login to the superuser again.

1. In the Mumble client login as the superuser (After having logged in under a different account)

2. Right-click on the servername and go edit.

3. In here go to the group’s tab and select admin from the drop-down box.

4. Either type in or add your username in the drop down box next to add in the members’ column.

5. Click add and then exit.

6. Now login under the username you just added and you should be able to add, edit channels and other complete other admin tasks on your Raspberry Pi murmur server.

Setting up External Access to the Mumble Raspberry Pi Server

To set up external access, we will need to change some settings in the Router. All routers are different, so I will provide the details on what I have done to mine, and you will most likely need to adapt to different brands or models. Mine is the AC1750 TP-Link Router.

1. Head to your Router admin page (This will typically be 192.168.1.1 or 192.168.254

2. Enter the username and password. Default typically is admin & admin. (You should change this if this the case)

3. In here go to forwarding->Virtual Server and then click on add new.

4. In here enter:

  • Service port: In this case 64738
  • IP Address: 192.168.1.103
  • Internal Port: We want this to be the same as the service so 64738
  • Protocol: All
  • Status: Enabled

Port Forwarding The Mumble Server

5. These settings will route all traffic destined for port 64738 to the mumble server (192.168.1.103)

6. You should now be able to connect to the Raspberry Pi mumble server outside your network. You may need to restart the router for changes to take effect.

The best way to test if this is working is to get a friend who has Mumble installed or is willing to install to connect to your server. Provide them with your external IP and or dynamic DNS, and they should be able to connect to the Raspberry Pi Mumble server.

If you wish to learn how to setup dynamic DNS, then be sure to check out our guide on it!

If they are unable to connect you can try the following:

  • Check your router settings and confirm they are correct.
  • Check your IP hasn’t changed (Some IPs will provide you with a dynamic IP rather than a static IP)
  • Restart the router.
  • Restart the Raspberry Pi.

I hope that this tutorial has shown you all the necessary steps to getting this Raspberry Pi mumble server up and running. If you come across any problems, have feedback or anything else then please don’t hesitate to leave a comment below.

19 Comments

  1. T. Paul Lee on

    I love this mumble business. It is exactly what need. Lightweight resource wise. No video requirement. I am replacing the walker-talkie on a hiking trip with a Raspberry PI 3B+, which is configured as a wifi AP as well.
    The installation instructions are all good. The client side configuration tips might be off a bit as the client has changed some. But, it is manageable after I tinkered with it. Thanks!

  2. Jake on

    Thank you for the tutorial, and thank you for keeping it up to date. Much love

  3. chris on

    Thanks for your nice tutorial. I followed all your steps and my mumble server was working well on my raspberry 1. Unfortunatly I can not establish a remote connection to it anymore (either from mumble clients nor ssh). Everything is set like local static ip and port forwarding (it was working fine yesterday). I am also using my curren IP4 Adress when I try to connect. I rebooted my raspberry and as well my router nothing worked. Can someone help me with that?

    1. chris on

      Edits to my post: I configured mumble on the 26 and it was in use (also remote access) and it was working fine. The next day it did not work any more without changing anything. I had a new IP4 and I used the new one to connect via ssh and my mumble client on PC, but both is not working out. Nevertheless I am able to connect via ssh to my raspberry in my locale System to its static local IP

      I also tried iptables, but since I am not very familar with that I don’t know if I was on the wrong path with that

      please help

  4. abolfazl on

    help me
    root@raspberrypi:/home/pi# sudo apt-get install mumble-server
    Reading package lists… Done
    Building dependency tree
    Reading state information… Done
    E: Unable to locate package mumble-server

    1. Gus on

      Try updating your repositories. sudo apt-get update

  5. Liwa on

    Can Someone please help me fix this problem ?
    After I have created My mumble server my friends could not join when they join they automatically disconnect for some reason ( i have port forwarded everything)
    But i have tested a minecraft server and they seem to join perfectly fine with no issues
    Is there something to do so they can join I have been searching for solutions and couldn’t find any , So this is the last place where i can find Solutions

    Thank you

    1. Liwa on

      also I can join to my server but my friends cant

  6. Victor on

    Good afternoon,
    First of all … great site and very well explained, I decided to create my server mumble in pi2 rasp with all the information of this site 5 STARS!

    I would like to help, as follows:
    the users when they connect via the Android to add them as reliable, but for those who use iPhone, you can not get the trust User! I wonder how.
    By the way how to create the permissions of the users? Where will be the change that supposed to be in the raspberry pi terminal

    Thank you in advance

  7. Bryan S on

    It seems the mirror site from raspbian.org is no longer available when I go to install the mumble server. Any ideas on where else to get these files?

  8. Brian C on

    I like the Plumble app for android

  9. The Dirkness on

    Hej there,

    Thanks for the tutorial! I’ve checked a german one plus yours. And yours is way better for idiots like me.

    But at this point it just works (seemingly*) within the local network. *Seemingly, cause here’s no one to test with me. But my both MacBooks feedback against each other. 🙂

    I recently installed another, my first Raspi as Minecraft-Server after your tutorial and it works fine. The kids are happy!
    There was this point how to make your server available for people outside your local network. And here in the mumble tutorial this point was missing. I expect it to be quite similiar/the same workflow except of Port Forwarding. Correct?

    *d

  10. John Snow on

    I followed your steps and at first it worked. But after i restarted my Pi later, it stop working.
    in the server log it says:
    "Object::connect: No such slot MurmurDBus::userTextMessage(const User *, const TextMessage &)"
    next line :
    "Caught SIGTERM, exiting"

    Can some help me with this problem ?

    1. @John Snow

      The output you’re getting indicates a problem with the DBUS service itself, or with the mumble-server’s configuration that ties it to dbus.

      The following example reflects my working configuration:

      # Murmur defaults to not using D-Bus. If you wish to use dbus, which is one of the
      # RPC methods available in Murmur, please specify so here.
      #
      dbus=system

      # Alternate D-Bus service name. Only use if you are running distinct
      # murmurd processes connected to the same D-Bus daemon
      #dbusservice=net.sourceforge.mumble.murmur

      # If you want to use ZeroC Ice to communicate with Murmur, you need
      # to specify the endpoint to use. Since there is no authentication
      # with ICE, you should only use it if you trust all the users who have
      # shell access to your machine.
      # Please see the ICE documentation on how to specify endpoints.
      ice="tcp -h 127.0.0.1 -p 6502"

      I also have dbus and ice setup and working locally. These two points are critical, because without one or the other, you have no external method to manage the server itself (other than the really weak implementation of controls located within the mumble client, when you’re connected via localhost to your mumble server directly, and logged in as the SuperAdmin).

      I’d look at your dbus service configuration first. If you’re on Ubuntu Server, or a similar apt-get-using derivative OS, try doing a command line based install of dbus:

      apt-get update
      apt-get install dbus

      It may very well be that DBUS just wasn’t found to be installed already, particularly if you’re working with a server that has no local desktop installed. Dbus is generally used for communications between the underlying OS and GUI based end-user applications. That’s why it’s so tightly integrated into Gnome, Mate, etc. When you setup a fresh server with no desktop though, dbus usually won’t be installed by default, so you have to do it manually, which is easy… if you know you need it.

      Anyway, let me know if that helps. If not, I might be able to assist further. I’ve built several mumble servers over the years since I heard about it, researched it, and used it to replace my TeamSpeak servers, so I’ve encountered a wide range of the problems one will go through in getting mumble-server running on different OS’s. I primarily host on Linux, but I’ve worked as a systems engineer for well over a decade on multiple platforms in an enterprise settings, and maintain a multi-OS dev environment at home where I use pretty much everything except OSX (which I don’t have anything against, other than the fact that it’s locked to Apple hardware).

    2. John Snow on

      First of all, thank you for your help.
      My mumble-server.ini is exactly the same as yours,
      and i run Raspbian as OS, where dbus is already installed.

  11. hiccup on

    A good follow up article might be web based administration of the mumble server.

  12. Cheshiremoe on

    What performance can we expect from the PI Mumble? How many clients could connect and still be stable?

  13. Henrik Andersen on

    Hi
    Can i use a “Linksys PAP2T” to log in to the mumble-server and speak that way?

    1. StygianAgenda on

      @Henrik no. The ‘PAP2T’ is a SIP based VOIP device, but Mumble is not technically a SIP based server. It uses it’s own proprietary standard for encoding, transmitting, receiving and relaying.

      There are however several 3rd party clients available for mobile devices. Plumble is the name of the client I use for Android, which works perfectly both on my Samsung SG4 smartphone and my Lenovo A10-70F tablet, and I’ve also successfully used it under Android-x86 across a variety of hardware (I do R&D, multiplatform). If you want to use Mumble Server for normal voip chatting, to essentially have your own private voip services, just use the mobile client and have your other users do the same, and either only advertise the server privately to your intended group of users, or don’t advertise it at all and just send the connection info to those you want using it.

      I have a multi-instance Mumble server with a Mumble-Django based management console at: http://www.stormnine.net/voip-chat/ You can check it out. I’ve got the Mumble-Django instance setup as a name-based-vhost on an Apache server, and have it hosting currently 4 server instances, each with it’s own set of admins, rules, etc.

      Now having read over the HowTo above, I’m probably going to rebuild one of my RPi2 systems into a portable Mumble Server, complete with Mumble-Django, a dynamic IP client to give it consistent addressing no matter where it’s located, and maybe an OpenVPN client instance that is pre-configured to connect back to my home network, or to connect through one of my VPS’s hosted at Digital Ocean, allowing a persistent address that can be connected to locally or remotely, either one, depending on need. My existing instance is great, but I’ve found a few times at work where the firewall or proxy filtered the connection in a way that hampered performance or functionality, and I’d rather just fix up something that I can throw in a bag, plugin at my destination, and everyone connect in locally and blazing fast at max bitrate for each user. This particular unit won’t need to host nearly as many users as my existing instances, so that’ll make things easy as far as tuning it for performance.

      Anyway, good HowTo. 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *