Mumble Voice History

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