[Asterisk-cvs] asterisk channel.c,1.112,1.113 manager.c,1.48,1.49 sounds.txt,1.28,1.29

markster at lists.digium.com markster at lists.digium.com
Fri May 21 23:58:11 CDT 2004


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

Modified Files:
	channel.c manager.c sounds.txt 
Log Message:
Merge fabeman's extensive meetme improvements (bug #1624)


Index: channel.c
===================================================================
RCS file: /usr/cvsroot/asterisk/channel.c,v
retrieving revision 1.112
retrieving revision 1.113
diff -u -d -r1.112 -r1.113
--- channel.c	20 May 2004 16:30:09 -0000	1.112
+++ channel.c	22 May 2004 04:11:22 -0000	1.113
@@ -468,6 +468,19 @@
 	
 }
 
+struct ast_channel *ast_get_channel_by_name_locked(char *channame)
+{
+	struct ast_channel *chan;
+	chan = ast_channel_walk_locked(NULL);
+	while(chan) {
+		if (!strcasecmp(chan->name, channame))
+			return chan;
+		ast_mutex_unlock(&chan->lock);
+		chan = ast_channel_walk_locked(NULL);
+	}
+	return NULL;
+}
+
 int ast_safe_sleep_conditional(	struct ast_channel *chan, int ms,
 								int (*cond)(void*), void *data )
 {

Index: manager.c
===================================================================
RCS file: /usr/cvsroot/asterisk/manager.c,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -d -r1.48 -r1.49
--- manager.c	20 May 2004 16:30:09 -0000	1.48
+++ manager.c	22 May 2004 04:11:22 -0000	1.49
@@ -455,6 +455,7 @@
 	char *exten = astman_get_header(m, "Exten");
 	char *context = astman_get_header(m, "Context");
 	char *priority = astman_get_header(m, "Priority");
+	struct ast_channel *chan, *chan2 = NULL;
 	int pi = 0;
 	int res;
 	if (!name || !strlen(name)) {
@@ -465,10 +466,16 @@
 		astman_send_error(s, m, "Invalid priority\n");
 		return 0;
 	}
-	res = ast_async_goto_by_name(name, context, exten, pi);
+	chan = ast_get_channel_by_name_locked(name);
+	if (strlen(name2))
+		chan2 = ast_get_channel_by_name_locked(name2);
+	res = ast_async_goto(chan, context, exten, pi);
 	if (!res) {
 		if (strlen(name2)) {
-			res = ast_async_goto_by_name(name2, context, exten, pi);
+			if (chan2)
+				res = ast_async_goto(chan2, context, exten, pi);
+			else
+				res = -1;
 			if (!res)
 				astman_send_ack(s, m, "Dual Redirect successful");
 			else
@@ -477,6 +484,10 @@
 			astman_send_ack(s, m, "Redirect successful");
 	} else
 		astman_send_error(s, m, "Redirect failed");
+	if (chan)
+		ast_mutex_unlock(&chan->lock);
+	if (chan2)
+		ast_mutex_unlock(&chan2->lock);
 	return 0;
 }
 

Index: sounds.txt
===================================================================
RCS file: /usr/cvsroot/asterisk/sounds.txt,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- sounds.txt	3 May 2004 00:54:15 -0000	1.28
+++ sounds.txt	22 May 2004 04:11:22 -0000	1.29
@@ -612,3 +612,21 @@
 %plus.gsm%plus [+]
 
 %equals.gsm%equals [=]
+
+%conf-locked.gsm%This conference is locked!
+
+%conf-kicked.gsm%You have been kicked from this conference
+
+%conf-adminmenu.gsm%Please press 1 to mute or unmute yourself, or press 2 to lock or unlock the conference
+
+%conf-usermenu.gsm%Please press 1 to mute or unmute yourself
+
+%conf-errormenu.gsm%Invalid Choice
+
+%conf-muted.gsm%You are now muted
+
+%conf-unmuted.gsm%You are now unmuted
+
+%conf-lockednow.gsm%The conference is now locked
+
+%conf-unlockednow.gsm%The conference is now unlocked




More information about the svn-commits mailing list