How to Improve Call Audio Quality in a ConfBridge?


I have two servers registered to each other via SIP. I only enabled “slin48” codec in sip.conf of both servers.

Scenario 1 (Happy):
I use AMI to originate a call to Server B. Once Server B answers the call, Server A will start playing a speech audio from a *.sln48 file. At Server B, the audio is recorded into another *.sln48 file. The recorded audio quality at Server B is basically the same as the original source.

Scenario 2:
Using another AMI application, it originates a call to Server B and puts it into a conference hosted in Server A. It then originates another call to a local channel in Server A and puts the local channel into the conference as well. The local channel then starts playing the same speech audio from the source *.sln48 file into the conference. The audio is also recorded at Server B. But this time, the recorded audio quality is much worse than the source audio.

The following are the settings in my confbridge.conf which I think relevant:

  • internal_sample_rate = 48000
  • mixing interval = 20
  • dsp_drop_silence = yes
  • dsp_talking_threshold = 128
  • dsp_silence_threshold = 2000

I have even tried setting the internal_sample_rate to 192000 but it didn’t improve the recorded audio quality. My final objective is to be able to put multiple servers into a conference and get a local channel in one server to play the audio out to all the other servers.

Assuming there is no concern of CPU and network resource, is it possible to improve the audio quality in a conference to the same quality as I’m getting in Scenario 1?

Thanks a lot!

I submitted this issue to JIRA:

Which is now waiting for feedback as you didn’t provide the supporting evidence.

My own feeling is that it will eventually get rejected as a feature request without a patch.

Note that the classification of major means that a large proportion of Asterisk users will be affected by it. I don’t believe that, so it should have been minor, if you can find something that says that it is supposed to be 48kHz transparent.

By the way, did you specify a codec on the originate, as that might be your real problem. The local channel will not optimise out, so will inherit the codec from the originate (normally slin).

Hi David,
I tried including the “Codecs” argument for the Originate action… and it did solve my problem! Thanks a lot!