Turn on DENOISE filter for all conference participants.
authorTilghman Lesher <tilghman@meg.abyt.es>
Wed, 21 Oct 2009 15:21:30 +0000 (15:21 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Wed, 21 Oct 2009 15:21:30 +0000 (15:21 +0000)
(Fixes SWP-238)

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@225048 65c4cc65-6c06-0410-ace0-fbb531ad65f3

CHANGES
apps/app_meetme.c

diff --git a/CHANGES b/CHANGES
index 4b3b2c6..6ce6590 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -78,6 +78,9 @@ Applications
    to spy on.
  * The ChanSpy application also now has the 'E' option, which spies on a single
    channel and exits when that channel hangs up.
+ * The MeetMe application now turns on the DENOISE() function by default, for
+   each participant.  In our tests, this has significantly decreased background
+   noise (especially noisy data centers).
 
 Dialplan Functions
 ------------------
index b482217..e66f0ea 100644 (file)
@@ -2072,7 +2072,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c
        struct timeval now;
        struct ast_dsp *dsp = NULL;
        struct ast_app *agi_app;
-       char *agifile;
+       char *agifile, *mod_speex;
        const char *agifiledefault = "conf-background.agi", *tmpvar;
        char meetmesecs[30] = "";
        char exitcontext[AST_MAX_CONTEXT] = "";
@@ -2406,6 +2406,12 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c
                goto outrun;
        }
 
+       /* Reduce background noise from each participant */
+       if ((mod_speex = ast_module_helper("", "codec_speex.so", 0, 0, 0, 0)) || (mod_speex = ast_module_helper("", "codec_speex", 0, 0, 0, 0))) {
+               ast_free(mod_speex);
+               ast_func_write(chan, "DENOISE(rx)", "on");
+       }
+
        retrydahdi = (strcasecmp(chan->tech->type, "DAHDI") || (chan->audiohooks || chan->monitor) ? 1 : 0);
        user->dahdichannel = !retrydahdi;