[asterisk-commits] trunk r30409 - /trunk/apps/app_meetme.c

asterisk-commits at lists.digium.com asterisk-commits at lists.digium.com
Thu May 25 14:06:09 MST 2006


Author: file
Date: Thu May 25 16:06:08 2006
New Revision: 30409

URL: http://svn.digium.com/view/asterisk?rev=30409&view=rev
Log:
Remove possibility of sending duplicate MeetmeJoin manager events, and only send a MeetmeLeave event if a MeetmeJoin event occured in the first place. (issue #6599 reported by imran - provided patch with few tiny mods)

Modified:
    trunk/apps/app_meetme.c

Modified: trunk/apps/app_meetme.c
URL: http://svn.digium.com/view/asterisk/trunk/apps/app_meetme.c?rev=30409&r1=30408&r2=30409&view=diff
==============================================================================
--- trunk/apps/app_meetme.c (original)
+++ trunk/apps/app_meetme.c Thu May 25 16:06:08 2006
@@ -883,6 +883,7 @@
 	int using_pseudo = 0;
 	int duration=20;
 	int hr, min, sec;
+	int sent_event = 0;
 	time_t now;
 	struct ast_dsp *dsp=NULL;
 	struct ast_app *app;
@@ -1135,12 +1136,15 @@
 	}
 	ast_log(LOG_DEBUG, "Placed channel %s in ZAP conf %d\n", chan->name, conf->zapconf);
 
-	manager_event(EVENT_FLAG_CALL, "MeetmeJoin", 
-		      "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);
+	if (!sent_event) {
+		manager_event(EVENT_FLAG_CALL, "MeetmeJoin", 
+			      "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);
+		sent_event = 1;
+	}
 
 	if (!firstpass && !(confflags & CONFFLAG_MONITOR) && !(confflags & CONFFLAG_ADMIN)) {
 		firstpass = 1;
@@ -1693,19 +1697,21 @@
 		min = ((now - user->jointime) % 3600) / 60;
 		sec = (now - user->jointime) % 60;
 
-		manager_event(EVENT_FLAG_CALL, "MeetmeLeave",
-			"Channel: %s\r\n"
-			"Uniqueid: %s\r\n"
-			"Meetme: %s\r\n"
-			"Usernum: %d\r\n"
-		        "CallerIDnum: %s\r\n"
-			"CallerIDname: %s\r\n"
-		        "Duration: %ld\r\n",
-			chan->name, chan->uniqueid, conf->confno, 
-			user->user_no,
-			S_OR(user->chan->cid.cid_num, "<unknown>"),
-			S_OR(user->chan->cid.cid_name, "<unknown>"),
-			(now - user->jointime));
+		if (sent_event) {
+			manager_event(EVENT_FLAG_CALL, "MeetmeLeave",
+				      "Channel: %s\r\n"
+				      "Uniqueid: %s\r\n"
+				      "Meetme: %s\r\n"
+				      "Usernum: %d\r\n"
+				      "CallerIDnum: %s\r\n"
+				      "CallerIDname: %s\r\n"
+				      "Duration: %ld\r\n",
+				      chan->name, chan->uniqueid, conf->confno, 
+				      user->user_no,
+				      S_OR(user->chan->cid.cid_num, "<unknown>"),
+				      S_OR(user->chan->cid.cid_name, "<unknown>"),
+				      (now - user->jointime));
+		}
 
 		conf->users--;
 		conf->refcount--;



More information about the asterisk-commits mailing list