aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b>2010-07-01 15:14:41 +0000
committerjpeeler <jpeeler@f38db490-d61c-443f-a65b-d21fe96a405b>2010-07-01 15:14:41 +0000
commit3ae15bee03fa5caf35b035e23bc094665a6405ea (patch)
treed6996d23a393cfaf8418fa91d26da7f186745203
parentb60bef9bcdf85035cd79b6ad82c6309f4290bbdf (diff)
Merged revisions 273355 via svnmerge from
https://origsvn.digium.com/svn/asterisk/trunk ................ r273355 | jpeeler | 2010-07-01 10:12:31 -0500 (Thu, 01 Jul 2010) | 19 lines 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: http://svn.digium.com/svn/asterisk/branches/1.6.2@273356 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--apps/app_meetme.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/apps/app_meetme.c b/apps/app_meetme.c
index 5fe842447..d2ff16da1 100644
--- a/apps/app_meetme.c
+++ b/apps/app_meetme.c
@@ -3170,6 +3170,18 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, int c
}
} 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) {
+ 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);
+ }
} else {
ast_debug(1,
"Got unrecognized frame on channel %s, f->frametype=%d,f->subclass=%d\n",