]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Fix placing ISDN calls on hold preventing native bridging from being reexamined after...
authorRichard Mudgett <rmudgett@digium.com>
Thu, 18 Feb 2010 18:31:44 +0000 (18:31 +0000)
committerRichard Mudgett <rmudgett@digium.com>
Thu, 18 Feb 2010 18:31:44 +0000 (18:31 +0000)
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

main/channel.c

index bf184a8542d91808d049b8534ce4de31a0b1bbb2..833de79b3f0a0a84bb84d94563a7f8abaa08c00e 100644 (file)
@@ -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;
                        }
                }