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
This commit is contained in:
Kevin Harwell
2017-06-20 16:01:48 -05:00
parent 2619c04f1e
commit 67664fbf95

View File

@@ -4787,7 +4787,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);
}