Official Mumble VoIP Forums

When Mumble V1.2.3 clients talk to Mumble V1.3.0 clients

It crashed, it is bugged, ...
I use Mumble with Linux Air Combat for interplayer communication. Most of the pilots using Linux Air Combat have happily been using an older version of Mumble (V1.2.3). Recently I updated my development and test environment and got newer Mumble 1.3.0, which seems to be the current version as of this writing in July of 2019.

Two or more users with matching client versions can speak with one another without problems, whether they match up with old version 1.2.3 or with new version 1.3.0.

However, when a user with the new version speaks, everybody monitoring that channel with the older version hears HORRIBLE, loud, scratchy, staticky, grinding noises that make my ears bleed.

Can I fix this with an updated Murmur server or something? Is this a known problem due to some protocol change?

Thanks for any insight you can give!
Further info: Testing confirms that users of older version 1.2.3 hear this violent distortion when audio comes in from the new Mumble V1.3.0 clients. However, users with the new V1.30 client do NOT hear that distortion when audio comes to them from the older clients.

Accordingly, the new version (V1.30) can exchange audio with V1.30 peers in both directions and can correctly HEAR incoming audio from the older version.

The problem is that users with the older version suffer terribly whenever anybody with the new version sends audio. The loud, distorted audio is unintelligible and terribly painful. It sounds like an acoustic weapon from outer space.

I have a community of users equipped with the older version and I am sure that this migration is going to be difficult unless there is some adjustment that can be made.

Could this be related to conflicting codecs in use? Could this be resolved by some configuration adjustment by the players or at the server?

One last detail in case it matters: For my Mumble Server I am using murmurd version 1.2.12 on a current version of lubuntu.

Also, I found the following documentation about the way Mumble has evolved to use increasingly sophisticated codecs:

Older Mumble versions use Speex for low bit rate audio and CELT for higher quality audio while new Mumble versions prefer Opus for all audio. When multiple clients with different capabilities communicate together the server is responsible for resolving the codec to use. The clients should respect the server resolution if they are capable. If the server resolves a codec a client doesn’t support, that client is free to use any codec it prefers. Usually this means the client will not be able to decode incoming audio, but it can still send encoded audio out.The CELT bitstream was never frozen which makes most CELT versions incompatible with each other. The two CELT bitstreams supported by Mumble are: CELT 0.7.0 (CELT Alpha) and CELT 0.11.0 (CELT Beta). While CELT 0.7.0should technically be supported by most Mumble implementations, some servers might be configured to force Opus. Mumble has had Opus support since 1.2.4 (June 2013) so it should be safe to assume most clients in use support this now.

Since my legacy players are using release 1.2.3, they must be limited to just the "speex" and "celt" codecs. Accordingly, they probably cannot decode the audio from version 1.3.0's "opus" codec. Perhaps that is the cause of my problem. Is there some way to configure standard version 1.3.0 Mumble clients to use those legacy "speex" or "celt" codecs? Or is there some way to configure the server to demand the speex codec all the time?
More details:

Digging into Mumble's "murmur" server configuration docs I found this:


opusthreshold is a number between 0 and 100, which specifies a percentage of users on the server supporting the Opus codec before the entire server mandates opus is used. It defaults to 100, so that any non-Opus supporting client connecting will cause the entire server to fall back to CELT. This is a safe default, to avoid users not being able to hear other users."

I confirm that my murmur server (version 1.2.12 on a current version of lubuntu) is configured, via its /etc/mumble-server.ini file, to avoid demands for the opus codec because the "opusthreshold" attribute is explicitly set to "100" as described above. (I also tried configuring the murmurd server to simply default to that "100" value. No change.)

The documentation seems to indicate that this "opusthreshold" attribute was created to solve my problem, but it does NOT work according to my understanding of what is published (at least with version 1.2.12 of murmurd which I am using on lubuntu).

One possibility that occurs to me is that the fallback to the "CELT" codec may still yield certain incompatibilities. This suspicion is triggered by this bit of documentation:

"The CELT bitstream was never frozen which makes most CELT versions incompatible with each other. The two CELT bitstreams supported by Mumble are: CELT 0.7.0 (CELT Alpha) and CELT 0.11.0 (CELT Beta)."

Since Mumble has limited its CELT choices to "0.7.0" and "0.11.0", can anybody confirm that those two are mutually interoperable? Are there any developers or experts with further insight?