From: Tilghman Lesher Date: Wed, 3 Dec 2008 17:55:12 +0000 (+0000) Subject: During bridge code, the channel bridge may return a retry code, if a transfer X-Git-Tag: 1.4.23-rc3~3^2~61 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e616d516e3eec061356107cff0698db8165d962a;p=thirdparty%2Fasterisk.git During bridge code, the channel bridge may return a retry code, if a transfer 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 --- diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c index 820a127f9a..3ce3e67f3f 100644 --- a/channels/chan_iax2.c +++ b/channels/chan_iax2.c @@ -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 */