<span class="gmail_quote"></span>Hi all,<br><br>I invested some time in going through the transaction implementation of the NIST stack and observed the below.<br><br>The
same retransmission timer logic, which is used for non-Invite client
transaction is used for the invite retransmissions too. Hence I was
able to observe the pattern, which I have described in my previous
mail. I was able to change this behavior by tweaking the code a bit and
things worked fine after that . Now, I need one clarification on this,
<br><br>Is it OK for the Invite client transaction to follow the same
retransmission timer behavior as the Non-Invite client transaction.
That is, instead of T1, 2*T1, 4*T1,.....,64*T1 it follows T1, 2*T1, ...
, min( pow(2,n) * T1 , T2). Is it a bug ?
<br><br>Please correct me if i am wrong.<br><br>Thanks & Regards,<br><span>Nabeel</span><br><br><div><span class="gmail_quote">On 8/30/07, <b class="gmail_sendername">Nabeel Mohamed</b> <<a href="mailto:nabeel.ietf@gmail.com">
nabeel.ietf@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi All,<br><br>I tested the retransmission of INVITE message by the NIST stack, using the
<span id="st" name="st" class="st">TAHI</span> SIP Conformance test package. <br>I got confused after looking at the pattern in which the NIST stack sends retransmissions.<br>
<br><snippet from test logs><br><br>The call flow is below,<br><br>Sequence<br><br> NUT R PX1 UA1 OT1 OT2 REG DNS<br> No time | | | | | | | |
<br>[01: 0.00|ICMP] |<----|-----| | | | | | Echo Request<br>[02: 0.00|U ] |-----|---->| | | | | | Echo Reply<br>[03:19.20|U ] INVIT |-----|---->| | | | | | INVITE
sip:UA1@17.1.1.56:5060<br>[04:19.70|U ] INVIT |-----|---->| | | | | | INVITE sip:UA1@17.1.1.56:5060<br>[05:20.76|U ] INVIT |-----|---->| | | | | | INVITE <a href="mailto:sip:UA1@17.1.1.56" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
sip:UA1@17.1.1.56</a>
:5060<br>[06:22.88|U ] INVIT |-----|---->| | | | | | INVITE sip:UA1@17.1.1.56:5060<br>[07:27.12|U ] INVIT |-----|---->| | | | | | INVITE sip:UA1@17.1.1.56:5060<br>[08:31.36|U
] INVIT |-----|---->| | | | | | INVITE sip:UA1@17.1.1.56:5060<br>[09:35.60|U ] INVIT |-----|---->| | | | | | INVITE sip:UA1@17.1.1.56:5060<br>[10:39.84|U ] INVIT |-----|---->| | | | | | INVITE
sip:UA1@17.1.1.56:5060<br>[11:44.08|U ] INVIT |-----|---->| | | | | | INVITE sip:UA1@17.1.1.56:5060<br>[12:48.32|U ] INVIT |-----|---->| | | | | | INVITE <a href="mailto:sip:UA1@17.1.1.56" target="_blank" onclick="return top.js.OpenExtLink(window,event,this)">
sip:UA1@17.1.1.56</a>
:5060<br>[13:51.20| ] |*****|*****|*****|*****|*****|*****|*****| Fire B Timer<br><br>The judgement which <span id="st" name="st" class="st">TAHI</span> performs for testing the RFC rules is below,<br><br>Judgment
<br>Timer: INVITE MUST be retransmitted(
No.1) after Timer A fired. Timer A:0 retransmit time:0.00<br>Timer: When Timer B fired, client INVITE retransmit No.1 has valid interval. Timer B:0 retransmit time:0.00<br>Timer: INVITE MUST be retransmitted(No.2) after Timer A fired. Timer A:
0.5 retransmit time:0.51<br>Timer: When Timer B fired, client INVITE retransmit No.2 has valid interval. Timer B:0.5 retransmit time:0.51<br>Timer: INVITE MUST be retransmitted(No.3) after Timer A fired. Timer A:1 retransmit time:
1.06<br>Timer: When Timer B fired, client INVITE retransmit No.3 has valid interval. Timer B:1 retransmit time:1.06<br>Timer: INVITE MUST be retransmitted(No.4) after Timer A fired. Timer A:2 retransmit time:2.12<br>Timer: When Timer B fired, client INVITE retransmit
No.4 has valid interval. Timer B:2 retransmit time:2.12<br>Timer: INVITE MUST be retransmitted(No.5) after Timer A fired. Timer A:4 retransmit time:4.24<br>Timer: When Timer B fired, client INVITE retransmit No.5 has valid interval. Timer B:4 retransmit time:
4.24<br>Timer: INVITE MUST be retransmitted(No.6) after Timer A fired. Timer A:8 retransmit time:4.24<br>Timer: When Timer B fired, client INVITE retransmit No.6 has valid interval. Timer B:8 retransmit time:4.24<br>Timer: INVITE MUST be retransmitted(
No.7) after Timer A fired. Timer A:16 retransmit time:4.24<br>Timer: When Timer B fired, client INVITE retransmit No.7 has valid interval. Timer B:16 retransmit time:4.24<br>Timer: INVITE MUST be retransmitted(No.8) after Timer A fired. Timer A:32 retransmit time:
4.24<br>Timer: When Timer B fired, client INVITE retransmit No.8 has valid interval. Timer B:32 retransmit time:4.24<br>Timer: INVITE MUST be retransmitted(No.9) after Timer A fired. Timer A:64 retransmit time:4.24<br>Timer: When Timer B fired, client INVITE retransmit
No.9 has valid interval. Timer B:64 retransmit time:4.24<br>Timer: INVITE MUST be retransmitted(No.10) after Timer A fired. Timer A:0.5 retransmit time:4.24<br>Timer: When Timer B fired, client INVITE retransmit No.10 is timer missing. Timer B:
0.5 retransmit time:4.24<br>Timer: Client sent INVITE<br>Timer: Client INVITE retransmit stopped after Timer B fired.<br>Timer: Client MUST NOT send ACK after Timer B fired.<br><br></snippet><br><br>The pattern of the retransmit time should start with T1 sec(500 ms by default in NIST stack) and should go
<br>till T2(64 * T1) as per the RFC. The pattern of the retransmit time is not as per our requirement, i.e.<br>0.00, 0.51, 1.06, 2.12, 4.24, after it remains the same. Also I wonder how there is a possibility for 10 retransmissions
<br>while there can be only 7 retransmissions with the configured value of T1=0.5 and T2=64*0.5=32.<br><br>I tested the simplecallsetup example, that comes along with the NIST stack, for retransmission using the loopback interface. I observed that the time at which the INVITE's and it's retransmissions were sent, also showed the same pattern and also
<br>there were 10 retransmissions.<br><br>The time pattern is below,<br>1188482985142<br>1188482985649<br>1188482986709<br>1188482988819<br>1188482993059<br>1188482997299<br>1188483001543<br>1188483005783<br>1188483010023
<br>1188483014263<br>1188483018503<br><br>Is it an issue (or) am I missing any configurations to be performed ? Please correct me and advise me<br>accordingly. Also let me know if it is a known problem.<br><br>Thanks in advance,
<br>Regards,<br><span class="sg">Nabeel<br><br><br>
</span></blockquote></div><br>