Merged revisions 304774 via svnmerge from
authorSean Bright <sean@malleable.com>
Sat, 29 Jan 2011 17:57:01 +0000 (17:57 +0000)
committerSean Bright <sean@malleable.com>
Sat, 29 Jan 2011 17:57:01 +0000 (17:57 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r304774 | seanbright | 2011-01-29 12:54:43 -0500 (Sat, 29 Jan 2011) | 16 lines

  Merged revisions 304773 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2

  ........
    r304773 | seanbright | 2011-01-29 12:51:28 -0500 (Sat, 29 Jan 2011) | 9 lines

    When we pass the S() or L() options to MeetMe, make sure that we honor C as well.

    Without this patch, if the user was kicked from the conference via the S() or L()
    mechanism, we would just hang up on them even if we also passed C (continue in
    dialplan when kicked).  With this patch we honor the C flag in those cases.

    (closes issue #17317)
    Reported by: var
  ........
................

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@304775 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_meetme.c

index 3ec6e3e..7c50531 100644 (file)
@@ -2859,6 +2859,11 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, struc
                        }
 
                        if (user->kicktime && (user->kicktime <= now.tv_sec)) {
+                               if (ast_test_flag64(confflags, CONFFLAG_KICK_CONTINUE)) {
+                                       ret = 0;
+                               } else {
+                                       ret = -1;
+                               }
                                break;
                        }
   
@@ -2929,6 +2934,11 @@ static int conf_run(struct ast_channel *chan, struct ast_conference *conf, struc
 
                        now = ast_tvnow();
                        if (timeout && now.tv_sec >= timeout) {
+                               if (ast_test_flag64(confflags, CONFFLAG_KICK_CONTINUE)) {
+                                       ret = 0;
+                               } else {
+                                       ret = -1;
+                               }
                                break;
                        }