summaryrefslogtreecommitdiff
path: root/apps/app_meetme.c
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2006-05-25 21:06:08 +0000
committerJoshua Colp <jcolp@digium.com>2006-05-25 21:06:08 +0000
commit0cdb878abb285692e327926db26e0e265b531274 (patch)
tree4fe44d15650b8006b0758698032508ad25351b21 /apps/app_meetme.c
parent6b185c1bed620240e320237cbeafee5916b8700c (diff)
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)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@30409 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps/app_meetme.c')
-rw-r--r--apps/app_meetme.c44
1 files changed, 25 insertions, 19 deletions
diff --git a/apps/app_meetme.c b/apps/app_meetme.c
index b1385bedc..6cd7faee7 100644
--- a/apps/app_meetme.c
+++ b/apps/app_meetme.c
@@ -883,6 +883,7 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c
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 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c
}
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 @@ bailoutandtrynormal:
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--;