app_confbridge: Fix error messages on exiting conference.

A marked user ending a conference with only end_marked users generates
error messages:
ERROR[0000][C-00000000]: confbridge/conf_state.c:47 conf_invalid_event_fn: Invalid event for confbridge user ''

* The MULTI_MARKED state was doing too much when it was kicking out the
end_marked users from the conference.  The kicked out users will clean up
after themselves when they exit the conference.

(closes issue ASTERISK-20991)
Reported by: Jeremy Kister
Tested by: rmudgett


git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/11@380892 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Richard Mudgett
2013-02-05 18:49:32 +00:00
parent 6754f20f59
commit ef0433e6bc

View File

@@ -95,8 +95,6 @@ static void leave_marked(struct conference_bridge_user *cbu)
AST_LIST_TRAVERSE_SAFE_BEGIN(&cbu->conference_bridge->active_list, cbu_iter, list) { AST_LIST_TRAVERSE_SAFE_BEGIN(&cbu->conference_bridge->active_list, cbu_iter, list) {
/* Kick ENDMARKED cbu_iters */ /* Kick ENDMARKED cbu_iters */
if (ast_test_flag(&cbu_iter->u_profile, USER_OPT_ENDMARKED)) { if (ast_test_flag(&cbu_iter->u_profile, USER_OPT_ENDMARKED)) {
AST_LIST_REMOVE_CURRENT(list);
cbu_iter->conference_bridge->activeusers--;
cbu_iter->kicked = 1; cbu_iter->kicked = 1;
ast_bridge_remove(cbu_iter->conference_bridge->bridge, cbu_iter->chan); ast_bridge_remove(cbu_iter->conference_bridge->bridge, cbu_iter->chan);
} else if (ast_test_flag(&cbu_iter->u_profile, USER_OPT_WAITMARKED) && } else if (ast_test_flag(&cbu_iter->u_profile, USER_OPT_WAITMARKED) &&
@@ -139,7 +137,8 @@ static void leave_marked(struct conference_bridge_user *cbu)
case 0: case 0:
conf_change_state(cbu, CONF_STATE_SINGLE_MARKED); conf_change_state(cbu, CONF_STATE_SINGLE_MARKED);
break; break;
case 1: break; /* Stay in marked */ case 1:
break; /* Stay in marked */
} }
break; break;
} }
@@ -149,7 +148,8 @@ static void leave_marked(struct conference_bridge_user *cbu)
case 0: case 0:
conf_change_state(cbu, CONF_STATE_MULTI); conf_change_state(cbu, CONF_STATE_MULTI);
break; break;
default: break; /* Stay in marked */ default:
break; /* Stay in marked */
} }
} }
} }