RFC3261 compliant sip unreliable retransmit timing + 'registerattempts' option tweak
authorDavid Vossel <dvossel@digium.com>
Fri, 4 Jun 2010 21:55:14 +0000 (21:55 +0000)
committerDavid Vossel <dvossel@digium.com>
Fri, 4 Jun 2010 21:55:14 +0000 (21:55 +0000)
commit19d1cd04baac38fa3bb752db7768441f13e152f1
tree5dbcb68fb9bd7b0900fc2456cd516822dd3c2542
parent1ea8c8c1d5e5ce2eda6276a3ed2a7a59d07408c1
RFC3261 compliant sip unreliable retransmit timing + 'registerattempts' option tweak

Changes.
1. RFC 3261 states in section 17.1.2.2 and 17.1.1.2 that retransmission
timers should initially be set to timer T1.   T1 by default is 500ms.
Asterisk was starting the retransmission timers at T1*2 which shouldn't
cause any problems, but is not RFC compliant.

2. RFC 3261 states in section 17.1.2.2 that for a non-INVITE client transaction,
if the retransmit timer fires while in the proceeding state that
the request must be retransmitted.  Asterisk currently ack's
requests for both INVITE and non-INVITE transactions when a
1XX response is received, this patch changes this for non-INVITE requests.

3. The 'registerattempts' option in sip.conf is supposed to set
how many registry attempts will be made before giving up.  When
this option is set to 1, I would expect only one registry attempt
to be made before stopping because of a failure, but instead two are
made.  In my opinion this is not expected behavior.  This option does
not indicate that these are re-attempts.  The logic behind this option
has been changed to only attempt registers the exact number of times
this option is set to.  If this option is 0, it still continues to
re-attempt the registration forever.

Review: https://reviewboard.asterisk.org/r/687/

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@268205 65c4cc65-6c06-0410-ace0-fbb531ad65f3
channels/chan_sip.c