diff options
Diffstat (limited to 'main/asterisk/ASTERISK-21859.patch')
-rw-r--r-- | main/asterisk/ASTERISK-21859.patch | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/main/asterisk/ASTERISK-21859.patch b/main/asterisk/ASTERISK-21859.patch new file mode 100644 index 0000000000..93437f527b --- /dev/null +++ b/main/asterisk/ASTERISK-21859.patch @@ -0,0 +1,24 @@ +https://issues.asterisk.org/jira/browse/ASTERISK-21859 +https://issues.asterisk.org/jira/browse/ASTERISK-22454 +https://issues.asterisk.org/jira/browse/ASTERISK-22581 + +Index: asterisk/apps/confbridge/conf_state_multi_marked.c +=================================================================== +diff -u -N -r380892 -r399222 +--- asterisk/apps/confbridge/conf_state_multi_marked.c (.../conf_state_multi_marked.c) (revision 380892) ++++ asterisk/apps/confbridge/conf_state_multi_marked.c (.../conf_state_multi_marked.c) (revision 399222) +@@ -95,6 +95,13 @@ + AST_LIST_TRAVERSE_SAFE_BEGIN(&cbu->conference_bridge->active_list, cbu_iter, list) { + /* Kick ENDMARKED cbu_iters */ + if (ast_test_flag(&cbu_iter->u_profile, USER_OPT_ENDMARKED)) { ++ if (ast_test_flag(&cbu_iter->u_profile, USER_OPT_WAITMARKED) && ++ !ast_test_flag(&cbu_iter->u_profile, USER_OPT_MARKEDUSER)) { ++ AST_LIST_REMOVE_CURRENT(list); ++ cbu_iter->conference_bridge->activeusers--; ++ AST_LIST_INSERT_TAIL(&cbu_iter->conference_bridge->waiting_list, cbu_iter, list); ++ cbu_iter->conference_bridge->waitingusers++; ++ } + cbu_iter->kicked = 1; + ast_bridge_remove(cbu_iter->conference_bridge->bridge, cbu_iter->chan); + } else if (ast_test_flag(&cbu_iter->u_profile, USER_OPT_WAITMARKED) && + |