summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--apps/confbridge/conf_state_multi_marked.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/apps/confbridge/conf_state_multi_marked.c b/apps/confbridge/conf_state_multi_marked.c
index 9c88848aa..dc4af78a5 100644
--- a/apps/confbridge/conf_state_multi_marked.c
+++ b/apps/confbridge/conf_state_multi_marked.c
@@ -107,12 +107,6 @@ static void leave_marked(struct confbridge_user *user)
user_iter->conference->activeusers--;
AST_LIST_INSERT_TAIL(&user_iter->conference->waiting_list, user_iter, list);
user_iter->conference->waitingusers++;
-
- /* Handle moh of user_iter if necessary */
- if (ast_test_flag(&user_iter->u_profile, USER_OPT_MUSICONHOLD)) {
- conf_moh_start(user_iter);
- }
- conf_update_user_mute(user_iter);
}
}
AST_LIST_TRAVERSE_SAFE_END;
@@ -168,6 +162,18 @@ static void leave_marked(struct confbridge_user *user)
ast_autoservice_stop(user->chan);
ao2_lock(user->conference);
}
+
+ AST_LIST_TRAVERSE(&user->conference->waiting_list, user_iter, list) {
+ if (user_iter->kicked) {
+ continue;
+ }
+
+ if (ast_test_flag(&user_iter->u_profile, USER_OPT_MUSICONHOLD)) {
+ conf_moh_start(user_iter);
+ }
+
+ conf_update_user_mute(user_iter);
+ }
}
}