diff options
author | David Vossel <dvossel@digium.com> | 2010-06-25 19:39:53 +0000 |
---|---|---|
committer | David Vossel <dvossel@digium.com> | 2010-06-25 19:39:53 +0000 |
commit | aa428b896782743b92f8e214f4235d7e07c041e3 (patch) | |
tree | cc72ce478bcc80aa158ebb31bb21634509222810 /res/res_fax.c | |
parent | 041932c6c6f2798bcbe3a975cf9324dd0bc5fae9 (diff) |
chan_sip: more accurate retransmissions
RFC3261 states that Timer A should start at 500ms (T1) by default.
In chan_sip this value initially started at 1000ms and I changed
it to 500ms recently. After doing that I noticed in my packet
captures that it still occasionally retransmitted starting at
1000ms instead of 500ms like I told it to. This occurs because
the scheduler runs in the do_monitor thread. If a new retransmission
is added while the do_monitor thread is sleeping then it may not
detect that retransmission for nearly 1000ms. To fix this I just
poke the do_monitor thread to wake up when a new packet is sent
reliably requiring retransmits. The thread then detects the new
scheduler entry and adjusts its sleep time to account for it.
Review: https://reviewboard.asterisk.org/r/747
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@272557 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'res/res_fax.c')
0 files changed, 0 insertions, 0 deletions