[Asterisk-cvs] asterisk/apps app_chanspy.c, 1.20, 1.21 app_meetme.c, 1.107, 1.108

kpfleming kpfleming
Wed Sep 7 10:15:16 CDT 2005


Update of /usr/cvsroot/asterisk/apps
In directory mongoose.digium.com:/tmp/cvs-serv28969/apps

Modified Files:
	app_chanspy.c app_meetme.c 
Log Message:
reset channel volumes when exiting apps that use them


Index: app_chanspy.c
===================================================================
RCS file: /usr/cvsroot/asterisk/apps/app_chanspy.c,v
retrieving revision 1.20
retrieving revision 1.21
diff -u -d -r1.20 -r1.21
--- app_chanspy.c	7 Sep 2005 01:30:00 -0000	1.20
+++ app_chanspy.c	7 Sep 2005 14:15:37 -0000	1.21
@@ -535,7 +535,7 @@
 		oldwf = 0,
 		fd = 0;
 	struct ast_flags flags;
-
+	signed char zero_volume = 0;
 
 	if (!(args = ast_strdupa((char *)data))) {
 		ast_log(LOG_ERROR, "Out of memory!\n");
@@ -703,6 +703,9 @@
 	}
 
 	ast_clear_flag(chan, AST_FLAG_SPYING);
+
+	ast_channel_setoption(chan, AST_OPTION_TXGAIN, &zero_volume, sizeof(zero_volume), 0);
+
 	ALL_DONE(u, res);
 }
 

Index: app_meetme.c
===================================================================
RCS file: /usr/cvsroot/asterisk/apps/app_meetme.c,v
retrieving revision 1.107
retrieving revision 1.108
diff -u -d -r1.107 -r1.108
--- app_meetme.c	7 Sep 2005 02:27:58 -0000	1.107
+++ app_meetme.c	7 Sep 2005 14:15:37 -0000	1.108
@@ -365,6 +365,14 @@
 		user->listen.actual = user->listen.desired;
 }
 
+static void reset_volumes(struct ast_conf_user *user)
+{
+	signed char zero_volume = 0;
+
+	ast_channel_setoption(user->chan, AST_OPTION_TXGAIN, &zero_volume, sizeof(zero_volume), 0);
+	ast_channel_setoption(user->chan, AST_OPTION_RXGAIN, &zero_volume, sizeof(zero_volume), 0);
+}
+
 static void adjust_volume(struct ast_frame *f, int vol)
 {
 	int count;
@@ -1473,7 +1481,6 @@
 		close(fd);
 	else {
 		/* Take out of conference */
-		/* Add us to the conference */
 		ztc.chan = 0;	
 		ztc.confno = 0;
 		ztc.confmode = 0;
@@ -1482,6 +1489,8 @@
 		}
 	}
 
+	reset_volumes(user);
+
 	ast_mutex_lock(&conflock);
 	if (!(confflags & CONFFLAG_QUIET) && !(confflags & CONFFLAG_MONITOR) && !(confflags & CONFFLAG_ADMIN))
 		conf_play(chan, conf, LEAVE);
@@ -1502,16 +1511,16 @@
 
 outrun:
 	ast_mutex_lock(&conflock);
-	if (confflags &  CONFFLAG_MONITORTALKER && dsp)
+	if (confflags & CONFFLAG_MONITORTALKER && dsp)
 		ast_dsp_free(dsp);
 	
 	if (user->user_no) { /* Only cleanup users who really joined! */
 		manager_event(EVENT_FLAG_CALL, "MeetmeLeave", 
-			"Channel: %s\r\n"
-			"Uniqueid: %s\r\n"
-			"Meetme: %s\r\n"
-			"Usernum: %d\r\n",
-			chan->name, chan->uniqueid, conf->confno, user->user_no);
+			      "Channel: %s\r\n"
+			      "Uniqueid: %s\r\n"
+			      "Meetme: %s\r\n"
+			      "Usernum: %d\r\n",
+			      chan->name, chan->uniqueid, conf->confno, user->user_no);
 		conf->users--;
 		if (confflags & CONFFLAG_MARKEDUSER) 
 			conf->markedusers--;




More information about the svn-commits mailing list