Mumble Voice History

Mumble Voice History
Image by Biblioteca de la Facultad de Derecho y Ciencias del Trabajo Universidad de Sevilla - 1004158. Uploaded by clusternote, CC BY 2.0, via Wikimedia Commons, Link

Overview

Background

An alternate voice solution for OpenSimulator is not new. Freeswitch, for example, is included in core although it often proves difficult for many to get working. This is especially true with more recent versions.

For our purposes, we will concentrate on the subject of OpenSimulator used with Mumble/Murmur: open-source, low-latency, secured, high-quality voice chat software with built-in positional audio.

Chronology

Mumble VOIP Project

The Mumble project has a long history, over which there have been significant improvements. There have been some important, but breaking changes along the way. Despite a few gaps between versions in the past, the project remains active - with sometimes heavy development. The following chart shows how quickly versions have evolved in recent years.

gantt title Mumble Project dateFormat YYYY-MM axisFormat %Y section Release
Dates v1.2.1 :milestone,2009-11,1d v1.2.2 :milestone,2010-02,1d v1.2.3 :milestone,2011-02,1d v1.2.4 :milestone,2013-01,1d v1.2.5 :milestone,2014-01,1d v1.2.6 :milestone,2014-05,1d v1.2.7 :milestone,2014-06,1d v1.2.8 :milestone,2014-08,1d v1.2.9 :milestone,2015-06,1d v1.2.10 :milestone,2015-07,1d v1.2.11 :milestone,2015-12,1d v1.2.12 :milestone,2015-12,1d v1.2.13 :milestone,2016-01,1d v1.2.14 :milestone,2016-02,1d v1.2.15 :milestone,2016-05,1d v1.2.16 :milestone,2016-05,1d v1.2.17 :milestone,2016-09,1d v1.2.18 :milestone,2016-12,1d v1.2.19 :milestone,2017-01,1d v1.3.0 :milestone,2019-09,1d v1.3.1 :milestone,2020-06,1d v1.3.2 :milestone,2020-06,1d v1.3.3 :milestone,2020-10,1d v1.3.4 :milestone,2021-02,1d V1.4.0rc1 :milestone,2021-10,1d

Mumble used with OpenSimulator

Effort was made using the Mumble project with OpenSimulator before 2010 - when Mumble was in its early 1.2 versions. This effort was done by VComm for its own internal use. We won't try to look back on this endeavour with the advantage of hindsight but rather simply start from its open-source release starting in October of 2010.

gantt title Mumble and OpenSimulator Timeline dateFormat YYYY-MM axisFormat %Y section VComm development (estimated) :v1, 2009-12, 2011-10 open source Whisper Client/Server :2010-12, 2011-10 section IMA
Research alliance with Thales :milestone, 2018-11, 1d build with VComm code :2019-11 , 30d initial bridge PoC :30d multiple viewers :30d end of testing :milestone, 1d section IMA
EchoVoice develop new architecture :2020-02,30d present at OSCC :milestone,2020-11,2d dev plan :2021-01,300d present at OSCC :milestone,2021-11,2d

VComm Whisper Client/Server

The work done by VComm was not done with the intention of providing an open-source solution for the community. As such, there exists very little public documentation. The code changes made to the Mumble client are not trivial. At times, some changes could be considered invasive from the outside. However, they did work to provide what is minimally required to make the Mumble client work with the Singularity viewer - using whatever constraints they had at the time.

In 2018, Thales had interest in extending the project as did IMA. Thales had contracted VComm to do updates for the Thales internal grid and to potentially deliver open-source updates to the community. Sharing a common mission for open-source community efforts, IMA partnered with Thales to conduct research towards delivery of open-source Mumble updates. The result of engineering research in 2019 revealed the extensive technical debt associated with the VComm source code and Mumble project updates. In 2020, Thales and IMA concurred a newly developed solution was needed for the OpenSimulator community and it was named EchoVoice. Completion of engineering design and development had been delayed in part due to the impact of the global pandemic on team availability.

Components

The following diagram shows in very basic terms how the parts tie together.

flowchart TB subgraph Client Viewer --tcp/xml--> Mumble end subgraph Server Simulator/RegionModule --ICE--> Murmur end Mumble <-.tcp/udp.-> Murmur
Murmur

Uses a stock, unmodified version of murmur.

Region add-on module

Is an OpenSimulator add-on that uses ZeroC-ICE for rpc to control the murmur server. Handles mumble account creation, channel creation, ACL control and channel assignments based on the region UUID.

Mumble

Is heavily modified/hacked to directly handle the SL XML requests and responses. Needs to be renamed to direcly replace SLVoice.exe and removed to switch back to Vivox.

Our findings and comments

High Technical Debt

Original VComm modifications are based on Mumble client version 1.2.1 or 1.2.2

  • uses a heavily modified and old/deprecated version of Mumble
    • now has high technical debt and deemed to be impractical to upgrade to a current version of Mumble/Murmur
  • necessary to replace/swap the SLVoice.exe application before starting the viewer to select the voice agent
  • client works only with Singularity viewer
  • client works only with Microsoft Windows

Original Files

Previous Echo Voice Presentations