diff options
author | Richard Mudgett <rmudgett@digium.com> | 2010-02-18 18:31:44 +0000 |
---|---|---|
committer | Richard Mudgett <rmudgett@digium.com> | 2010-02-18 18:31:44 +0000 |
commit | efea9ad922893b958b8d3887367f72c1d1927e60 (patch) | |
tree | c2851e8c7bb4e8986416cce21d1b0bb95bd1432d /main | |
parent | 4913cb8e75f3ef74695eeca77a791ee18eb024c3 (diff) |
Fix placing ISDN calls on hold preventing native bridging from being reexamined after a transfer.
Consider the following scenario:
/-- B
A == * == Network
\-- C
Party B calls party A (EuroISDN BRI phone)
Party A puts B on hold using the HOLD/RETRIEVE messages.
Party A calls party C.
Party A puts C on hold to talk with party B again.
Party A transfers B to C by hanging up.
The call does not get the opportunity to get re-transferred into the ISDN
network by the native bridge because native bridging is not being
reexamined after the initial transfer.
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@247609 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'main')
-rw-r--r-- | main/channel.c | 4 |
1 files changed, 1 insertions, 3 deletions
diff --git a/main/channel.c b/main/channel.c index bf184a854..833de79b3 100644 --- a/main/channel.c +++ b/main/channel.c @@ -5890,7 +5890,6 @@ enum ast_bridge_result ast_channel_bridge(struct ast_channel *c0, struct ast_cha { struct ast_channel *who = NULL, *chans[2] = { c0, c1 }; enum ast_bridge_result res = AST_BRIDGE_COMPLETE; - int nativefailed=0; format_t o0nativeformats; format_t o1nativeformats; long time_left_ms=0; @@ -6055,7 +6054,7 @@ enum ast_bridge_result ast_channel_bridge(struct ast_channel *c0, struct ast_cha if (c0->tech->bridge && (c0->tech->bridge == c1->tech->bridge) && - !nativefailed && !c0->monitor && !c1->monitor && + !c0->monitor && !c1->monitor && !c0->audiohooks && !c1->audiohooks && !c0->masq && !c0->masqr && !c1->masq && !c1->masqr) { /* Looks like they share a bridge method and nothing else is in the way */ @@ -6096,7 +6095,6 @@ enum ast_bridge_result ast_channel_bridge(struct ast_channel *c0, struct ast_cha ast_verb(3, "Native bridging %s and %s ended\n", c0->name, c1->name); /* fallthrough */ case AST_BRIDGE_FAILED_NOWARN: - nativefailed++; break; } } |