[Asterisk-code-review] chan sip: Fix session timeout on retransmit of non-UDP packets (asterisk[14])
Joshua Colp
asteriskteam at digium.com
Thu Sep 15 06:25:02 CDT 2016
Joshua Colp has uploaded a new change for review.
https://gerrit.asterisk.org/3909
Change subject: chan_sip: Fix session timeout on retransmit of non-UDP packets
......................................................................
chan_sip: Fix session timeout on retransmit of non-UDP packets
Change-Id I1cd33453c77c56c8e1394cd60a6f17bb61c1d957 Enable Session-Timers for
SIP over TCP (and TLS) also disables SIP retransmits in chan_sip for non-UDP
connections, allowing the TCP layer to handle the retransmits. Unfortunately,
this caused sessions to be terminated with a retransmit timeout becasue it
stopped at the point of the first retrans call.
This patch waits for the 64*T1 timer to expire instead.
ASTERISK-19968
Change-Id: I844f26801aada10bc94e9bebe6e151f0a8443204
(cherry picked from commit 98e42cc6624a02bede84c38772412b6ff9d8fa2f)
---
M channels/chan_sip.c
1 file changed, 3 insertions(+), 0 deletions(-)
git pull ssh://gerrit.asterisk.org:29418/asterisk refs/changes/09/3909/1
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index e05c22e..f7219ad 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -4243,7 +4243,10 @@
pkt->retrans_stop_time = 64 * (pkt->timer_t1 ? pkt->timer_t1 : DEFAULT_TIMER_T1); /* time in ms after pkt->time_sent to stop retransmission */
if (!(p->socket.type & AST_TRANSPORT_UDP)) {
+ /* TCP does not need retransmits as that's built in, but with
+ * retrans_stop set, we must give it the full timer_H treatment */
pkt->retrans_stop = 1;
+ siptimer_a = pkt->retrans_stop_time;
}
/* Schedule retransmission */
--
To view, visit https://gerrit.asterisk.org/3909
To unsubscribe, visit https://gerrit.asterisk.org/settings
Gerrit-MessageType: newchange
Gerrit-Change-Id: I844f26801aada10bc94e9bebe6e151f0a8443204
Gerrit-PatchSet: 1
Gerrit-Project: asterisk
Gerrit-Branch: 14
Gerrit-Owner: Joshua Colp <jcolp at digium.com>
Gerrit-Reviewer: Steve Davies <steve at one47.co.uk>
More information about the asterisk-code-review
mailing list