summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2014-11-14 14:56:53 +0000
committerJoshua Colp <jcolp@digium.com>2014-11-14 14:56:53 +0000
commit737b8117492367962218f4679ceb795eb6f5106e (patch)
treece8a307d0474b4210cb31e7afbd608fa446a86fb /apps
parent2454505d5a1d8e8d44a1ba7a5bcdd260ad4720c0 (diff)
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 ........ Merged revisions 427845 from http://svn.asterisk.org/svn/asterisk/branches/12 ........ Merged revisions 427846 from http://svn.asterisk.org/svn/asterisk/branches/13 git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@427847 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps')
-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);
+ }
}
}