From bd9ff2829eac49f0d6b0b312494075e98e5c5e21 Mon Sep 17 00:00:00 2001 From: Jeff Peeler Date: Thu, 1 Jul 2010 15:12:31 +0000 Subject: Merged revisions 273354 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r273354 | jpeeler | 2010-07-01 10:05:43 -0500 (Thu, 01 Jul 2010) | 12 lines Ensure channel placed in meetme in ringing state is properly hung up. An outgoing channel placed in meetme while still ringing which was then hung up would not exit meetme and the channel was not properly destroyed. Specifically checking for this scenario by looking at the appropriate control frames resolves the issue. (closes issue #15871) Reported by: Ivan Patches: meetme_congestion_trunk_v2.patch uploaded by Ivan (license 229) ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@273355 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_meetme.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'apps') diff --git a/apps/app_meetme.c b/apps/app_meetme.c index 1ad67690b..0cfd8986c 100644 --- a/apps/app_meetme.c +++ b/apps/app_meetme.c @@ -3439,6 +3439,18 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, struc } } else if (f->frametype == AST_FRAME_NULL) { /* Ignore NULL frames. It is perfectly normal to get these if the person is muted. */ + } else if (f->frametype == AST_FRAME_CONTROL) { + switch (f->subclass.integer) { + case AST_CONTROL_BUSY: + case AST_CONTROL_CONGESTION: + ast_frfree(f); + goto outrun; + break; + default: + ast_debug(1, + "Got ignored control frame on channel %s, f->frametype=%d,f->subclass=%d\n", + chan->name, f->frametype, f->subclass.integer); + } } else { ast_debug(1, "Got unrecognized frame on channel %s, f->frametype=%d,f->subclass=%d\n", -- cgit v1.2.3