Improving Background Noise Suppression in Asterisk with Cisco Phone

Hello everyone,

I’m looking for assistance with configuring effective background noise suppression in my Asterisk setup. The issue is that the current Denoise (tx) function in Asterisk doesn’t achieve the desired result in eliminating disruptive background noise.

I’m using a Cisco Phone and have noticed that on the Multiplatform Firmware of my phone, there’s a noise suppression feature that works quite well. However, this feature is not available when I use the SIP Firmware of the phone. Instead, I only have the option true.

The enableVad (Voice Activity Detection) works better than the Denoise (tx) function in Asterisk, but I miss the ability to configure the intensity of the noise suppression, as I can in the Multiplatform Firmware. There, I can choose between “low”, “medium”, and “high” levels, but this option is not present in the SIP firmware.

My setup:

Asterisk as PBX

Cisco IP Phone with SIP firmware

• Using enableVad in the SIP firmware, but without the option to adjust intensity

Has anyone here had experience enabling noise suppression in Asterisk or the Cisco SIP firmware? Or is there a way to fine-tune the intensity of enableVad in the SIP firmware? I’ve tried a few things, but the desired results are still missing.

Any help or suggestions would be greatly appreciated! Thank you in advance.

These are different type of enhancement. VAD, sometimes called squelch, is about suppressing low loudness sections, in the time domain. Although I couldn’t quickly find details of the Speex donoise algorithm which is what Asterisk accesses, it is likely to create adaptive filters, which remove parts of the frequency domain not currently carrying speech information.

As far as I can quickly tell, Asterisk doesn’t access Speex’s VAD features for general use.

I don’t know what the Cisco phones do, but, in principle, a phone can use multiple microphones, to distinguish background and foreground sounds, but this information is lost by the time it reaches the PABX.

Speech noise reduction is one of the big problems that the hearing aid industry would like to solve. It isn’t easy.

1 Like

Hi David,

thanks for your quick response.

So I understand correctly that there is no way to use noise reduction on the Asterisk PBX side? As mentioned, Denoise is not doing what it’s supposed to do. I don’t notice any difference whether I use Denoise or not.

It’s probably doing what it is supposed to do, but that isn’t to suppress the sort of noise that you want to suppress. It is likely to be good at steady state noise, like fans, or thermal noise on analogue lines, but isn’t designed to deal with transient noise, like keyboard taps.

This thread discusses the difference between VAD and denoise, in Speex, and the limit to what is possible, especially without access to multiple microphones: [Speex-dev] Preprocessor denoise. Does it work?

Generally, in VoIP systems, the phone is the best place to deal echo and local noise.

1 Like

Okay, I already thought that it would be better for the phone to handle this task. I find it unfortunate that only the Cisco Multiplatform firmware supports noise reduction, while the SIP firmware only has VAD. Another issue with the SIP firmware is that BLF doesn’t work with Asterisk. However, BLF works on the Multiplatform. But I’m not sure how familiar you are with the differences between Cisco firmwares, as it’s a whole different topic. You really have to own a Cisco phone to understand the differences, because the structure doesn’t have a clear logic!

I want SIP firmware instead of Multiplatform because of the different phone UI, but there are many functions missing in the SIP firmware like BLF, noise reduction and so on…

I don’t know much about Cisco phones, other than that they some of them have a bad reputation when used outside pure Cisco environments, but it is interesting to note that there was a recent thread on either this forum, or the FreePBX forum, where someone thought it important to actually inject office noise, because callers didn’t like the line going dead when their AI was thnking.

Cisco phones work very well with the Multiplatform/3PCC firmware, and there are no issues regarding Asterisk. In Multiplatform, BLF works with Asterisk, and noise reduction can be turned on or off, although it might depend on the model. In my opinion, there are no better phones than Cisco. In terms of build quality, Yealink, Grandstream, and all the others look very cheaply made!

Cisco phones with the “enterprise SIP” firmware support BLF if the usecallmanager patch is applied to Asterisk.

1 Like

I tried that, but then there are 0 watchers when I call “core show hints” in the CLI.
Can you tell me how the section in set SEPMAC.cnf.xml should look?

Thanks in advance!