blob: 93437f527b51eff8445ee01a39d3f3b7b423dc3e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
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) &&
|