[asterisk-commits] russell: trunk r177101 - /trunk/apps/app_meetme.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Feb 18 13:12:49 CST 2009
Author: russell
Date: Wed Feb 18 13:12:49 2009
New Revision: 177101
URL: http://svn.digium.com/svn-view/asterisk?view=rev&rev=177101
Log:
Re-add 'o' option to MeetMe, reverting rev 62297.
Enabling this option by default proved to be a bad idea, as the talker detection
is not very reliable. So, make it optional again, and off by default.
(issue #13801)
Reported by: justdave
Modified:
trunk/apps/app_meetme.c
Modified: trunk/apps/app_meetme.c
URL: http://svn.digium.com/svn-view/asterisk/trunk/apps/app_meetme.c?view=diff&rev=177101&r1=177100&r2=177101
==============================================================================
--- trunk/apps/app_meetme.c (original)
+++ trunk/apps/app_meetme.c Wed Feb 18 13:12:49 2009
@@ -502,6 +502,8 @@
CONFFLAG_EMPTY = (1 << 18),
CONFFLAG_EMPTYNOPIN = (1 << 19),
CONFFLAG_ALWAYSPROMPT = (1 << 20),
+ /*! If set, treat talking users as muted users */
+ CONFFLAG_OPTIMIZETALKER = (1 << 21),
/*! If set, won't speak the extra prompt when the first person
* enters the conference */
CONFFLAG_NOONLYPERSON = (1 << 22),
@@ -546,6 +548,7 @@
AST_APP_OPTION('I', CONFFLAG_INTROUSERNOREVIEW ),
AST_APP_OPTION_ARG('M', CONFFLAG_MOH, OPT_ARG_MOH_CLASS ),
AST_APP_OPTION('m', CONFFLAG_STARTMUTED ),
+ AST_APP_OPTION('o', CONFFLAG_OPTIMIZETALKER ),
AST_APP_OPTION('P', CONFFLAG_ALWAYSPROMPT ),
AST_APP_OPTION_ARG('p', CONFFLAG_KEYEXIT, OPT_ARG_EXITKEYS ),
AST_APP_OPTION('q', CONFFLAG_QUIET ),
@@ -2481,7 +2484,7 @@
x = 1;
ast_channel_setoption(chan, AST_OPTION_TONE_VERIFY, &x, sizeof(char), 0);
}
- if (!(confflags & CONFFLAG_MONITOR) && !(dsp = ast_dsp_new())) {
+ if ((confflags & CONFFLAG_OPTIMIZETALKER) && !(confflags & CONFFLAG_MONITOR) && !(dsp = ast_dsp_new())) {
ast_log(LOG_WARNING, "Unable to allocate DSP!\n");
res = -1;
}
@@ -2852,7 +2855,7 @@
ast_frame_adjust_volume(f, user->talk.actual);
}
- if (!(confflags & CONFFLAG_MONITOR)) {
+ if ((confflags & CONFFLAG_OPTIMIZETALKER) && !(confflags & CONFFLAG_MONITOR)) {
int totalsilence;
if (user->talking == -1) {
@@ -2897,7 +2900,7 @@
don't want to block, but we do want to at least *try*
to write out all the samples.
*/
- if (user->talking) {
+ if (user->talking && !(confflags & CONFFLAG_OPTIMIZETALKER)) {
careful_write(fd, f->data.ptr, f->datalen, 0);
}
}
@@ -3163,10 +3166,11 @@
fr.samples = res / 2;
fr.data.ptr = buf;
fr.offset = AST_FRIENDLY_OFFSET;
- if (!user->listen.actual &&
- ((confflags & CONFFLAG_MONITOR) ||
+ if (!user->listen.actual &&
+ ((confflags & CONFFLAG_MONITOR) ||
(user->adminflags & (ADMINFLAG_MUTED | ADMINFLAG_SELFMUTED)) ||
- (!user->talking)) ) {
+ (!user->talking && (confflags & CONFFLAG_OPTIMIZETALKER))
+ )) {
int idx;
for (idx = 0; idx < AST_FRAME_BITS; idx++) {
if (chan->rawwriteformat & (1 << idx)) {
More information about the asterisk-commits
mailing list