aboutsummaryrefslogtreecommitdiffstats
path: root/main/asterisk/ASTERISK-21859.patch
diff options
context:
space:
mode:
Diffstat (limited to 'main/asterisk/ASTERISK-21859.patch')
-rw-r--r--main/asterisk/ASTERISK-21859.patch24
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) &&
+