diff options
author | zuul <zuul@gerrit.asterisk.org> | 2016-04-25 21:08:15 -0500 |
---|---|---|
committer | Gerrit Code Review <gerrit2@gerrit.digium.api> | 2016-04-25 21:08:15 -0500 |
commit | 807a765cfb924aca07936379b9802e141f833d38 (patch) | |
tree | 48e8a36f57ee0e76a844762eae7a4f3adcddc8a5 /main/bridge.c | |
parent | 456600a641f0caa4ea778d94a4d93c161f44d288 (diff) | |
parent | 71dfa355403e41850fd7c4cb4228626e5d9476b9 (diff) |
Merge "bridge_softmix.c: Fix crash if channel fails to join mixing tech."
Diffstat (limited to 'main/bridge.c')
-rw-r--r-- | main/bridge.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/main/bridge.c b/main/bridge.c index 7e7205274..c28d49c02 100644 --- a/main/bridge.c +++ b/main/bridge.c @@ -420,10 +420,12 @@ static void bridge_channel_complete_join(struct ast_bridge *bridge, struct ast_b bridge->technology->name); if (bridge->technology->join && bridge->technology->join(bridge, bridge_channel)) { - ast_debug(1, "Bridge %s: %p(%s) failed to join %s technology\n", + /* We cannot leave the channel partially in the bridge so we must kick it out */ + ast_debug(1, "Bridge %s: %p(%s) failed to join %s technology (Kicking it out)\n", bridge->uniqueid, bridge_channel, ast_channel_name(bridge_channel->chan), bridge->technology->name); bridge_channel->just_joined = 1; + ast_bridge_channel_leave_bridge(bridge_channel, BRIDGE_CHANNEL_STATE_END, 0); return; } |