]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
During bridge code, the channel bridge may return a retry code, if a transfer
authorTilghman Lesher <tilghman@meg.abyt.es>
Wed, 3 Dec 2008 17:55:12 +0000 (17:55 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Wed, 3 Dec 2008 17:55:12 +0000 (17:55 +0000)
was initiated but not yet completed.  If the bridge is immediately retried,
then we may send a storm of TXREQ packets, even though the first set is sent
reliably (retransmitted).  Fixes AST-137.

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.4@160570 65c4cc65-6c06-0410-ace0-fbb531ad65f3

channels/chan_iax2.c

index 820a127f9aeeeaa87248154673fc7c44675c22de..3ce3e67f3f7ace165562d50f61ee5b9046f39287 100644 (file)
@@ -3614,6 +3614,10 @@ static enum ast_bridge_result iax2_bridge(struct ast_channel *c0, struct ast_cha
                iaxs[callno0]->bridgecallno = callno1;
                iaxs[callno1]->bridgecallno = callno0;
        }
+       /* If the bridge got retried, don't queue up more packets - the transfer request will be retransmitted as necessary */
+       if (iaxs[callno0]->transferring && iaxs[callno1]->transferring) {
+               transferstarted = 1;
+       }
        unlock_both(callno0, callno1);
 
        /* If not, try to bridge until we can execute a transfer, if we can */