diff options
-rw-r--r-- | apps/confbridge/conf_state_multi_marked.c | 18 |
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); + } } } |