summaryrefslogtreecommitdiff
path: root/channels
diff options
context:
space:
mode:
authorzuul <zuul@gerrit.asterisk.org>2016-09-14 19:42:21 -0500
committerGerrit Code Review <gerrit2@gerrit.digium.api>2016-09-14 19:42:21 -0500
commit544fe738116ee65ded377eef7c2093ee47f719a9 (patch)
tree6a6b953c40998f7ec7c3a01847870fb754596c16 /channels
parentf99155dd2e97dbe80939345b883c7795b9d31c76 (diff)
parent6ba68b486ed790695c048972f7cf05757214c1dc (diff)
Merge "chan_sip: Fix session timeout on retransmit of non-UDP packets"
Diffstat (limited to 'channels')
-rw-r--r--channels/chan_sip.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/channels/chan_sip.c b/channels/chan_sip.c
index 8d84d559c..08a16805f 100644
--- a/channels/chan_sip.c
+++ b/channels/chan_sip.c
@@ -4243,7 +4243,10 @@ static enum sip_result __sip_reliable_xmit(struct sip_pvt *p, uint32_t seqno, in
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 */