Conference call channel volume control

All installation and configuration problems and questions

Moderators: gerski, enjay, williamconley, Op3r, Staydog, gardo, mflorell, MJCoate, mcargile, Kumba, Michael_N

Conference call channel volume control

Postby mjohn425 » Tue Jul 21, 2020 11:00 pm

Hi guys,

We have agents asking for the conference call channel volume control to go down lower, (this is because of 3 way calls with other companies with loud hold music, which makes it hard for client to hear agent). I know this occurs in the MeetMeAdmin application from the extensions.conf. So I have edited the app_meetme.c file and rebuilt (even with a make clean), moved the .so file to the modules directory. /usr/lib/asterisk/modules and /usr/lib64/asterisk/modules. Unloaded/Reloaded and even restarted (whole server) but the changes I've made don't seem to make a difference, it's bizarre. Just wondering if I'm missing something. I tried changing the gain map (even making all the negative values the same) but still observed the original (standard) behaviour, same with adding in extra negative values (and changing the switch statement).

I realise it is pushing on more of an asterisk support question, but figured that there may be some helpful insight around here somewhere. Cheers, thanks in advance. Relevant code below:

Code: Select all
static const char gain_map[] = {
   -15,
   -13,
   -10,
   -6,
   0,
   0,
   0,
   6,
   10,
   13,
   15,
};

static int set_talk_volume(struct ast_conf_user *user, int volume)
{
   char gain_adjust;

   /* attempt to make the adjustment in the channel driver;
      if successful, don't adjust in the frame reading routine
   */
   gain_adjust = gain_map[volume + 5];

   return ast_channel_setoption(user->chan, AST_OPTION_RXGAIN, &gain_adjust, sizeof(gain_adjust), 0);
}

static void tweak_volume(struct volume *vol, enum volume_action action)
{
   switch (action) {
   case VOL_UP:
      switch (vol->desired) {
      case 5:
         break;
      case 0:
         vol->desired = 2;
         break;
      case -2:
         vol->desired = 0;
         break;
      default:
         vol->desired++;
         break;
      }
      break;
   case VOL_DOWN:
      switch (vol->desired) {
      case -5:
         break;
      case 2:
         vol->desired = 0;
         break;
      case 0:
         vol->desired = -2;
         break;
      default:
         vol->desired--;
         break;
      }
   }
}

static void tweak_talk_volume(struct ast_conf_user *user, enum volume_action action)
{
   tweak_volume(&user->talk, action);
   /* attempt to make the adjustment in the channel driver;
      if successful, don't adjust in the frame reading routine
   */
   if (!set_talk_volume(user, user->talk.desired))
      user->talk.actual = 0;
   else
      user->talk.actual = user->talk.desired;
}


CentOS 7
Asterisk 11.22.0
VERSION: 2.14-721a
BUILD: 191015-1620
OS: VICIBox 9.0.1 OpenSuse 15.1 | VERSION: 2.14-742a BUILD: 200327-1715 | Asterisk: 13.21.1-vici | SVN: 3205 DB Schema: 1588
Linux: 4.12.14-lp151.28.44-default | MYSQL: Ver 15.1 Distrib 10.2.31-MariaDB | Perl: v5.26.1 | php: v7.2.5
mjohn425
 
Posts: 51
Joined: Tue Jan 21, 2020 1:20 am

Re: Conference call channel volume control

Postby mflorell » Wed Jul 22, 2020 9:38 am

If you're using Asterisk 11 you aren't going to find much help since that version has been unsupported for quite some time.

The issue of volume control is actually quite complex and involves all kinds of different modules in Asterisk, but you may be running into the automatic gain control that is built into some of the channel drivers by default, instead of specifically a Meetme issue. I do know that one client of ours that had this problem installed a PBXmate SIP proxy and they said it fixed all of their volume and noise issues, of course it is proprietary/pay-for software, so that may not be an option for you: https://solicall.com/pbxmate/
mflorell
Site Admin
 
Posts: 18384
Joined: Wed Jun 07, 2006 2:45 pm
Location: Florida


Return to Support

Who is online

Users browsing this forum: Google [Bot] and 80 guests