Review Board 1.7.16

Add an option to MeetMe that prevents the denoiser from being applied to a channel joining a conference

Review Request #2358 - Created Feb. 26, 2013 and submitted

Matt Jordan
When migrating to Asterisk 1.8, it was found that audio quality for mISDN channels joining a MeetMe conference was exceedingly poor. The audio would have silence interrupt the audio, or would have a strange metallic sound. This continued throughout the lifetime of the channel in the conference. When looking at what changed in Asterisk 1.8, the issue reporter discovered that we now unilaterally applied the DENOISE function in func_speex to channels joining the conference.

The denoiser function in the speex library is initialized with the number of audio samples in each sample that will be provided to it. If the number of audio samples changes, the denoiser has to be thrown away and re-initialized. As it turned out, the mISDN channel was getting a variable number of audio samples from the driver, and each time the number of samples changed, the denoiser had to be re-initialized. This caused the audio gaps for the channels in the conference.

While this could be worked around in 1.8 by removing codec_speex, that doesn't help if you actually use codec_speex for other channels, or need to apply the denoiser to other channels on the system.

This patches does the following:
 * Checks for the presence of func_speex as opposed to codec_speex when determining if the DENOISE function is present (which is where the function is actually implemented)
 * Adds an option to MeetMe 'n' that causes the denoiser to not be applied to a channel when it joins. This keeps the current behavior the default, but let's users disable the denoiser if it causes problems on their system.

Note that the denoiser is optional in ConfBridge already, so this isn't a problem in 10+ (where MeetMe is no longer the preferred option for conferencing)

Ship it!
Posted (Feb. 26, 2013, 10:09 a.m.)
Looks pretty straight forward and I didn't notice any quirks in documentation or anything.
Ship it!
Posted (Feb. 26, 2013, 9:29 p.m.)
Looks fine! runs on a server provided by Digium, Inc. and uses bandwidth donated to the open source Asterisk community by API Digital Communications in Huntsville, AL USA.
Please report problems with this site to