summaryrefslogtreecommitdiff
path: root/main/bridge.c
diff options
context:
space:
mode:
authorKevin Harwell <kharwell@digium.com>2017-06-20 16:01:48 -0500
committerKevin Harwell <kharwell@digium.com>2017-06-21 11:17:46 -0500
commit45a1f4e2ae3749d16820d7f9ea1e7dfbe028bbdf (patch)
tree5c3e5bfd5e1356b1a1278c00beb2efc5cc7db4e3 /main/bridge.c
parentdb5e269365ad6ed4f32b22140bd5f1c5a37fec65 (diff)
bridge: stuck channel(s) after failed attended transfer
If an attended transfer failed it was possible for some of the channels involved to get "stuck" because Asterisk was not hanging up the transfer target. This patch ensures Asterisk hangs up the transfer target when an attended transfer failure occurs. ASTERISK-27075 #close Change-Id: I98a6ecd92d3461ab98c36f0d9451d23adaf3e5f9
Diffstat (limited to 'main/bridge.c')
-rw-r--r--main/bridge.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/main/bridge.c b/main/bridge.c
index 8cde62cb5..07880ab8f 100644
--- a/main/bridge.c
+++ b/main/bridge.c
@@ -4822,7 +4822,7 @@ enum ast_transfer_result ast_bridge_transfer_attended(struct ast_channel *to_tra
res = AST_BRIDGE_TRANSFER_SUCCESS;
end:
- if (res == AST_BRIDGE_TRANSFER_SUCCESS && hangup_target) {
+ if ((res == AST_BRIDGE_TRANSFER_SUCCESS && hangup_target) || res == AST_BRIDGE_TRANSFER_FAIL) {
ast_softhangup(to_transfer_target, AST_SOFTHANGUP_DEV);
}