[Home]

Summary:ASTERISK-24522: ConfBridge: delay occurs between kicking all endmarked users when last marked user leaves
Reporter:Matt Jordan (mjordan)Labels:
Date Opened:2014-11-14 09:09:37.000-0600Date Closed:2014-11-16 21:08:12.000-0600
Priority:MajorRegression?
Status:Closed/CompleteComponents:Applications/app_confbridge
Versions:11.14.0 12.7.0 13.0.0 Frequency of
Occurrence
Related
Issues:
Environment:Attachments:( 0) ASTERISK-24522-11.diff
Description:Consider the following:

* A marked user in a conference
* Two or more endmarked users in the conference

When the marked users leaves, we will be in the {{conf_state_multi_marked}} state. This currently will traverse the users, kicking out any who have the {{endmarked}} flags. When they are kicked, a full {{ast_bridge_remove}} is immediately called on the channels. At this time, we also unilaterally set the {{need_prompt}} flag.

When the {{need_prompt}} flag is set, we then playback a sound to the bridge informing everyone that the leader has left:
{code}
if (need_prompt) {
/* Play back the audio prompt saying the leader has left the conference */
if (!ast_test_flag(&user->u_profile, USER_OPT_QUIET)) {
ao2_unlock(user->conference);
ast_autoservice_start(user->chan);
play_sound_file(user->conference,
conf_get_sound(CONF_SOUND_LEADER_HAS_LEFT, user->b_profile.sounds));
ast_autoservice_stop(user->chan);
ao2_lock(user->conference);
}
}
{code}

If, however, we have a conference full of only {{endmarked}} users, this prompt is pointless. They've already been ejected. They now get an odd 5 second wait time until they are fully kicked.

If we have only {{endmarked}} users, we should skip playing back the prompt.
Comments: