From 84e12c9ed8aeae04165337ee60c74b30e5209f92 Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Fri, 14 Nov 2014 14:55:40 +0000 Subject: [PATCH] app_confbridge: Play "leader has left" sound even when musiconhold is enabled. Currently if the leader of a conference bridge leaves any participant that has musiconhold enabled will not hear the "leader has left" sound. This is because musiconhold is started and THEN the sound is played. This change makes it so that the sound is played and THEN musiconhold is started. This provides a better experience for users as they may not have known previously why they went back to musiconhold. Review: https://reviewboard.asterisk.org/r/4177/ ........ Merged revisions 427844 from http://svn.asterisk.org/svn/asterisk/branches/11 git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/12@427845 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/confbridge/conf_state_multi_marked.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/apps/confbridge/conf_state_multi_marked.c b/apps/confbridge/conf_state_multi_marked.c index bcf25de046..fe87b80a02 100644 --- a/apps/confbridge/conf_state_multi_marked.c +++ b/apps/confbridge/conf_state_multi_marked.c @@ -105,12 +105,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; @@ -166,6 +160,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); + } } } -- 2.47.2