Mumble (software)

Mumble is a voice over IP (VoIP) application primarily designed for use by gamers and is similar to programs such as TeamSpeak.

Mumble uses a client–server architecture which allows users to talk to each other via the same server. It has a very simple administrative interface and features high sound quality and low latency. All communication is encrypted.

Mumble is free and open-source software, is cross-platform, and is released under the terms of the BSD-3-Clause license.

Channel hierarchy
A Mumble server (called Murmur) has a root channel and a hierarchical tree of channels beneath it. Users can temporarily connect channels to create larger virtual channels. This is useful during larger events where a small group of users may be chatting in a channel, but are linked to a common channel with other users to hear announcements. It also matches team-based first-person shooter (FPS) games. Each channel has an associated set of groups and access control lists which control user permissions. The system supports many usage scenarios, at the cost of added configuration complexity.

Sound quality
Mumble uses the low-latency audio codec Opus as of version 1.2.4, the codec that succeeds the previous defaults Speex and CELT. This and the rest of Mumble's design allow for low-latency communication, meaning a shorter delay between when something is said on one end and when it's heard on the other. Mumble also incorporates echo cancellation to reduce echo when using speakers or poor quality sound hardware.

Security and privacy
Mumble connects to a server via a TLS control channel, with the audio travelling via UDP encrypted with AES in OCB mode. As of 1.2.9 Mumble now prefers ECDHE + AES-GCM cipher suites if possible, providing Perfect Forward Secrecy. While password authentication for users is supported, since 1.2.0 it is typically eschewed in favor of strong authentication in the form of public key certificates.

Overlay
There is an integrated overlay for use in fullscreen applications. The overlay shows who is talking and what linked channel they are in. As of version 1.0, users could upload avatars to represent themselves in the overlay, creating a more personalized experience. As of version 1.2, the overlay works with most Direct3D 9/10 and OpenGL applications on Windows and has OpenGL support for Linux and Mac OS X. Support for DirectX 11 applications was later added.

Positional audio
For certain games, Mumble modifies the audio to position other players' voices according to their relative position in the game. This not only includes giving a sense of direction, but also of distance.

To realise this, Mumble sends each player's in-game position to players in the same game with every audio packet. Mumble can gather the information needed to do this in two ways: it either reads the needed information directly out of the memory of the game or the games provide it themselves via the so-called link plugin interface.

The link plugin provides games with a way to expose the information needed for positional audio themselves by including a small piece of source code provided by the Mumble project. Several high-profile games have implemented this functionality including many of Valve's Source Engine based games (Team Fortress 2, Day of Defeat: Source, Counter-Strike: Source, Half-Life 2: Deathmatch) and Guild Wars 2.

Mobile apps
Third-party mobile apps are available for Mumble, such as Mumble for iOS, Plumble for Android(F-Droid, Google Play, Note: Discontinued in 2016), and Mumla (F-Droid, Google Play).

Server integration
Mumble fits into existing technological and social structures. As such, the server is fully remote controllable over ZeroC Ice. User channels as well as virtual server instances can be manipulated. The project provides a number of sample scripts illustrating the abilities of the interface as well as prefabricated scripts offering features like authenticating users using an existing phpBB or Simple Machines Forum database. The murmur server uses port 64738 TCP and UDP by default. The port number refers to the address of the reset function on a Commodore 64.

An alternative minimalist implementation of the mumble-server (Murmur) is called uMurmur. It is intended for installation on embedded devices with limited resources, such as, for example, residential gateways running OpenWrt.

Server hosting
Like many other VoIP clients, Mumble servers can be both rented or hosted locally. Hosting a Mumble server locally requires downloading Murmur (included as an option in the Mumble installer) and launching it. Configuring the server is achieved via editing the configuration file. The configuration file holds information for the server's name, user authentication, audio quality restrictions, and port.

Administrating the server from within requires a user to be given administrator rights, or can also be done by logging into the SuperUser account. Administrators within the server can add or edit rooms, manage users, and view the server's information.