summaryrefslogtreecommitdiff
path: root/apps/app_confbridge.c
diff options
context:
space:
mode:
Diffstat (limited to 'apps/app_confbridge.c')
-rw-r--r--apps/app_confbridge.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/apps/app_confbridge.c b/apps/app_confbridge.c
index 01ae4256c..e02405984 100644
--- a/apps/app_confbridge.c
+++ b/apps/app_confbridge.c
@@ -1992,7 +1992,7 @@ static int action_kick_last(struct confbridge_conference *conference,
ast_stream_and_wait(bridge_channel->chan,
conf_get_sound(CONF_SOUND_ERROR_MENU, user->b_profile.sounds),
"");
- } else if (last_user) {
+ } else if (last_user && !last_user->kicked) {
last_user->kicked = 1;
pbx_builtin_setvar_helper(last_user->chan, "CONFBRIDGE_RESULT", "KICKED");
ast_bridge_remove(conference->bridge, last_user->chan);
@@ -2179,7 +2179,7 @@ static int kick_conference_participant(struct confbridge_conference *conference,
SCOPED_AO2LOCK(bridge_lock, conference);
AST_LIST_TRAVERSE(&conference->active_list, user, list) {
- if (!strcasecmp(ast_channel_name(user->chan), channel)) {
+ if (!strcasecmp(ast_channel_name(user->chan), channel) && !user->kicked) {
user->kicked = 1;
pbx_builtin_setvar_helper(user->chan, "CONFBRIDGE_RESULT", "KICKED");
ast_bridge_remove(conference->bridge, user->chan);
@@ -2192,7 +2192,7 @@ static int kick_conference_participant(struct confbridge_conference *conference,
}
}
AST_LIST_TRAVERSE(&conference->waiting_list, user, list) {
- if (!strcasecmp(ast_channel_name(user->chan), channel)) {
+ if (!strcasecmp(ast_channel_name(user->chan), channel) && !user->kicked) {
user->kicked = 1;
pbx_builtin_setvar_helper(user->chan, "CONFBRIDGE_RESULT", "KICKED");
ast_bridge_remove(conference->bridge, user->chan);