[SIPForum-discussion] INVITE resubmission

Eugene Mednikov em at HERMONLABS.com
Sun May 20 16:37:11 UTC 2007


Greetings, Vivek!
 
    I'm working on SIP Proxy testing according to ETSI TS 102 027 test
suite. There are several test cases that test INVITE server transaction. For
example test case SIP_CC_PR_TR_SE_V_006 description is: "Ensure that the IUT
in a server INVITE Proceeding state, on receipt of  an INVITE request,
including a Via header set with the same branch parameter and  sent-by value
in the topmost list value, repeats its last response." Reference: 17.2.1
[1], 17.2.3 [1].
    Basically this test connects to proxy as 2 telephones and sends 2
INVITEs from first phone to second phone one after another and checks that
response is the same.

    I quote RFC 3261 17.2.1: "If a request retransmission is received while
in the "Proceeding" state, the most recent provisional response that was
received from the TU MUST be  passed to the transport layer for
retransmission. A request is a retransmission if it matches the same server
transaction based on the rules of Section 17.2.3."
 
    Message flow without authorization with Brekeke SIP server looks like
this:
 
MTC     Proxy      PTC
---------------->                         INVITE
<----------------                         100
                ------------>             INVITE
                <------------             183 
<------------                             183 
 
---------------->                         INVITE
<----------------                         100
                ------------>             INVITE
                <------------             183 
<------------                             183 
 
    With SER it looks like this:
 
MTC     Proxy      PTC
---------------->                         INVITE
<----------------                         100
                ------------>             INVITE
                <------------             183 
<------------                             183 
 
---------------->                         INVITE
<------------                             183 
 
    There are several questions:
1. Should proxy pass second invite to PTC? SER doesn't do this but Brekeke
does.
2. What is 'the most recent provisional response' mentioned in standard: 100
or 183?
 
Brekeke is passing second INVITE to PTC and returns new 183 that has
different tag in To field thus failing the comparison with previous one. So
it seems that correct action for proxy would be not passing second INVITE to
PTC and resending first 183.
 
 
Sending to IUT from UDP2:5061 at 19:12:17.932
>>>
REGISTER sip:192.168.0.137:5060 SIP/2.0
Call-ID: f53221b113f16da4 at 192.168.0.57
Contact: TCA 2 <sip:202 at 192.168.0.57:5061;transport=UDP>;expires=3600
Content-Length: 0
CSeq: 1 REGISTER
From: TCA 2 <sip:202 at 192.168.0.137>;tag=f21acfffcef1f3f4
Max-Forwards: 70
To: TCA 2 <sip:202 at 192.168.0.137>
Via: SIP/2.0/UDP 192.168.0.57:5061;branch=z9hG4bK3efdfd4a18be676d
 
 
 
Sending to IUT from UDP1:5060 at 19:12:17.948
>>>
REGISTER sip:192.168.0.137:5060 SIP/2.0
Call-ID: 4ee0b038a7a67db1 at 192.168.0.57
Contact: TCA <sip:201 at 192.168.0.57:5060;transport=UDP>;expires=3600
Content-Length: 0
CSeq: 2 REGISTER
From: TCA <sip:201 at 192.168.0.137>;tag=b8cb3a8f28044596
Max-Forwards: 70
To: TCA <sip:201 at 192.168.0.137>
Via: SIP/2.0/UDP 192.168.0.57:5060;branch=z9hG4bKe82c47d9af68a256
 
 
 
Received from IUT to UDP2:5061 at 19:12:17.964
<<<
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.0.57:5061;branch=z9hG4bK3efdfd4a18be676d
From: TCA 2 <sip:202 at 192.168.0.137>;tag=f21acfffcef1f3f4
To: TCA 2 <sip:202 at 192.168.0.137>
Call-ID: f53221b113f16da4 at 192.168.0.57
CSeq: 1 REGISTER
Server: Brekeke SIP Server rev.217
Content-Length: 0
 
 
 
Received from IUT to UDP1:5060 at 19:12:17.995
<<<
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.0.57:5060;branch=z9hG4bKe82c47d9af68a256
From: TCA <sip:201 at 192.168.0.137>;tag=b8cb3a8f28044596
To: TCA <sip:201 at 192.168.0.137>
Call-ID: 4ee0b038a7a67db1 at 192.168.0.57
CSeq: 2 REGISTER
Server: Brekeke SIP Server rev.217
Content-Length: 0
 
 
 
Received from IUT to UDP2:5061 at 19:12:18.10
<<<
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.57:5061;branch=z9hG4bK3efdfd4a18be676d
From: TCA 2 <sip:202 at 192.168.0.137>;tag=f21acfffcef1f3f4
To: TCA 2 <sip:202 at 192.168.0.137>;tag=1179677538428-794866489
Call-ID: f53221b113f16da4 at 192.168.0.57
CSeq: 1 REGISTER
Contact: "TCA 2"
<sip:202 at 192.168.0.57:5061;transport=UDP>;expires=3600;q=1.0
Server: Brekeke SIP Server rev.217
Expires: 3600
Content-Length: 0
 
 
 
Received from IUT to UDP1:5060 at 19:12:18.42
<<<
SIP/2.0 200 OK
Via: SIP/2.0/UDP 192.168.0.57:5060;branch=z9hG4bKe82c47d9af68a256
From: TCA <sip:201 at 192.168.0.137>;tag=b8cb3a8f28044596
To: TCA <sip:201 at 192.168.0.137>;tag=1179677538443-334105416
Call-ID: 4ee0b038a7a67db1 at 192.168.0.57
CSeq: 2 REGISTER
Contact: "TCA" <sip:201 at 192.168.0.57:5060;transport=UDP>;expires=3600;q=1.0
Server: Brekeke SIP Server rev.217
Expires: 3600
Content-Length: 0
 
 
 
Sending to IUT from UDP1:5060 at 19:12:18.89
>>>
INVITE sip:202 at 192.168.0.137 SIP/2.0
Call-ID: a2b5be2590278481 at 192.168.0.57
Contact: sip:201 at 192.168.0.57:5060
Content-Disposition: session
Content-Length: 155
Content-Type: application/sdp
CSeq: 3 INVITE
From: TCA <sip:201 at 192.168.0.137>;tag=9f37dadecfc7fcb3
Max-Forwards: 70
To: TCA 2 <sip:202 at 192.168.0.137>
Via: SIP/2.0/UDP 192.168.0.57:5060;branch=z9hG4bKa92b179d832ff5d6
 
v=0 
 o=voicesession 12345 12345 IN IP4 193.174.154.20 
 s=Voice Session
 c=IN IP4 195.174.154.20 
 t=0 0 
 m=audio 8500 RTP/AVP 0 
 a=rtpmap:0 PCMU/8000
 

Received from IUT to UDP1:5060 at 19:12:18.120
<<<
SIP/2.0 100 Trying
Via: SIP/2.0/UDP 192.168.0.57:5060;branch=z9hG4bKa92b179d832ff5d6
From: TCA <sip:201 at 192.168.0.137>;tag=9f37dadecfc7fcb3
To: TCA 2 <sip:202 at 192.168.0.137>
Call-ID: a2b5be2590278481 at 192.168.0.57
CSeq: 3 INVITE
Server: Brekeke SIP Server rev.217
Content-Length: 0
 
 
 
Received from IUT to UDP2:5061 at 19:12:18.167
<<<
INVITE sip:202 at 192.168.0.57:5061;transport=UDP SIP/2.0
Call-ID: a2b5be2590278481 at 192.168.0.57
Contact: sip:201 at 192.168.0.137:5060
Content-Disposition: session
CSeq: 3 INVITE
From: TCA <sip:201 at 192.168.0.137>;tag=9f37dadecfc7fcb3
Max-Forwards: 69
To: TCA 2 <sip:202 at 192.168.0.137>
Via: SIP/2.0/UDP 192.168.0.137:5060;branch=z9hG4bK114c059395cedbd9.1
Via: SIP/2.0/UDP 192.168.0.57:5060;branch=z9hG4bKa92b179d832ff5d6
Record-Route: <sip:192.168.0.137:5060;lr>
Content-Type: application/sdp
Content-Length: 155
 
v=0 
 o=voicesession 12345 12345 IN IP4 193.174.154.20 
 s=Voice Session
 c=IN IP4 195.174.154.20 
 t=0 0 
 m=audio 8500 RTP/AVP 0 
 a=rtpmap:0 PCMU/8000
 

Sending to IUT from UDP2:5061 at 19:12:18.214
>>>
SIP/2.0 183 Session Progress
Call-ID: a2b5be2590278481 at 192.168.0.57
Content-Length: 0
CSeq: 3 INVITE
From: TCA <sip:201 at 192.168.0.137>;tag=9f37dadecfc7fcb3
Record-Route: <sip:192.168.0.137:5060;lr>
To: TCA 2 <sip:202 at 192.168.0.137>;tag=c5e29667514c2c35
Via: SIP/2.0/UDP 192.168.0.137:5060;branch=z9hG4bK114c059395cedbd9.1,
SIP/2.0/UDP 192.168.0.57:5060;branch=z9hG4bKa92b179d832ff5d6
 
 
 
Received from IUT to UDP1:5060 at 19:12:18.245
<<<
SIP/2.0 183 Session Progress
Call-ID: a2b5be2590278481 at 192.168.0.57
CSeq: 3 INVITE
From: TCA <sip:201 at 192.168.0.137>;tag=9f37dadecfc7fcb3
Record-Route: <sip:192.168.0.137:5060;lr>
To: TCA 2 <sip:202 at 192.168.0.137>;tag=c5e29667514c2c35
Via: SIP/2.0/UDP 192.168.0.57:5060;branch=z9hG4bKa92b179d832ff5d6
Content-Length: 0
 
 
 
Sending to IUT from UDP1:5060 at 19:12:18.276
>>>
INVITE sip:202 at 192.168.0.137 SIP/2.0
Call-ID: a2b5be2590278481 at 192.168.0.57
Contact: sip:201 at 192.168.0.57:5060
Content-Disposition: session
Content-Length: 155
Content-Type: application/sdp
CSeq: 3 INVITE
From: TCA <sip:201 at 192.168.0.137>;tag=9f37dadecfc7fcb3
Max-Forwards: 70
To: TCA 2 <sip:202 at 192.168.0.137>
Via: SIP/2.0/UDP 192.168.0.57:5060
 
v=0 
 o=voicesession 12345 12345 IN IP4 193.174.154.20 
 s=Voice Session
 c=IN IP4 195.174.154.20 
 t=0 0 
 m=audio 8500 RTP/AVP 0 
 a=rtpmap:0 PCMU/8000
 

Received from IUT to UDP2:5061 at 19:12:18.307
<<<
INVITE sip:202 at 192.168.0.57:5061;transport=UDP SIP/2.0
Call-ID: a2b5be2590278481 at 192.168.0.57
Contact: sip:201 at 192.168.0.137:5060
Content-Disposition: session
CSeq: 3 INVITE
From: TCA <sip:201 at 192.168.0.137>;tag=9f37dadecfc7fcb3
Max-Forwards: 69
To: TCA 2 <sip:202 at 192.168.0.137>
Via: SIP/2.0/UDP 192.168.0.137:5060;branch=z9hG4bK114c059395cedbd9.1
Via: SIP/2.0/UDP 192.168.0.57:5060
Record-Route: <sip:192.168.0.137:5060;lr>
Content-Type: application/sdp
Content-Length: 155
 
v=0 
 o=voicesession 12345 12345 IN IP4 193.174.154.20 
 s=Voice Session
 c=IN IP4 195.174.154.20 
 t=0 0 
 m=audio 8500 RTP/AVP 0 
 a=rtpmap:0 PCMU/8000
 

Sending to IUT from UDP2:5061 at 19:12:18.354
>>>
SIP/2.0 183 Session Progress
Call-ID: a2b5be2590278481 at 192.168.0.57
Content-Length: 0
CSeq: 3 INVITE
From: TCA <sip:201 at 192.168.0.137>;tag=9f37dadecfc7fcb3
Record-Route: <sip:192.168.0.137:5060;lr>
To: TCA 2 <sip:202 at 192.168.0.137>;tag=c4d29c5129533b9d
Via: SIP/2.0/UDP 192.168.0.137:5060;branch=z9hG4bK114c059395cedbd9.1,
SIP/2.0/UDP 192.168.0.57:5060
 
 
 
Received from IUT to UDP1:5060 at 19:12:18.385
<<<
SIP/2.0 183 Session Progress
Call-ID: a2b5be2590278481 at 192.168.0.57
CSeq: 3 INVITE
From: TCA <sip:201 at 192.168.0.137>;tag=9f37dadecfc7fcb3
Record-Route: <sip:192.168.0.137:5060;lr>
To: TCA 2 <sip:202 at 192.168.0.137>;tag=c4d29c5129533b9d
Via: SIP/2.0/UDP 192.168.0.57:5060
Content-Length: 0 
 
Respectfully yours, Eugene Mednikov.
 
Software Engineer
Hermon Labs
972-4-6288001, 207
972-54-4520187
em at hermonlabs.com
www.hermonlabs.com



More information about the discussion mailing list