[Asterisk-cvs] asterisk muted.c,1.2,1.3

markster at lists.digium.com markster at lists.digium.com
Tue May 18 23:04:40 CDT 2004


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

Modified Files:
	muted.c 
Log Message:
Make muted handle transfers


Index: muted.c
===================================================================
RCS file: /usr/cvsroot/asterisk/muted.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -d -r1.2 -r1.3
--- muted.c	17 May 2004 07:00:21 -0000	1.2
+++ muted.c	19 May 2004 03:16:59 -0000	1.3
@@ -428,6 +428,8 @@
 static void hangup_chan(char *channel)
 {
 	struct channel *chan;
+	if (debug)
+		printf("Hangup '%s'\n", channel);
 	chan = find_channel(channel);
 	if (chan)
 		delete_sub(chan, channel);
@@ -437,6 +439,8 @@
 static void offhook_chan(char *channel)
 {
 	struct channel *chan;
+	if (debug)
+		printf("Offhook '%s'\n", channel);
 	chan = find_channel(channel);
 	if (chan)
 		append_sub(chan, channel);
@@ -446,8 +450,10 @@
 static int wait_event(void)
 {
 	char *resp;
-	char event[80]="";
-	char channel[80]="";
+	char event[120]="";
+	char channel[120]="";
+	char oldname[120]="";
+	char newname[120]="";
 	resp = get_line();
 	if (!resp) {
 		fprintf(stderr, "disconnected (6)\n");
@@ -459,12 +465,22 @@
 		while((resp = get_line()) && strlen(resp)) {
 			if (!strncasecmp(resp, "Channel: ", strlen("Channel: ")))
 				strncpy(channel, resp + strlen("Channel: "), sizeof(channel));
+			if (!strncasecmp(resp, "Newname: ", strlen("Newname: ")))
+				strncpy(newname, resp + strlen("Newname: "), sizeof(newname));
+			if (!strncasecmp(resp, "Oldname: ", strlen("Oldname: ")))
+				strncpy(oldname, resp + strlen("Oldname: "), sizeof(oldname));
 		}
 		if (strlen(channel)) {
 			if (!strcasecmp(event, "Hangup")) 
 				hangup_chan(channel);
 			else
 				offhook_chan(channel);
+		}
+		if (strlen(newname) && strlen(oldname)) {
+			if (!strcasecmp(event, "Rename")) {
+				hangup_chan(oldname);
+				offhook_chan(newname);
+			}
 		}
 	} else {
 		/* Consume the rest of the non-event */




More information about the svn-commits mailing list