F14 200 OK Proxy 1 -> Alice SIP/2.0 200 OK
Contact: <sip:bob@client.biloxi.example.com;transport=tcp>
..............
F15 ACK Alice -> Proxy 1 ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74b76 Max-Forwards: 70 Route: <sip:ss1.atlanta.example.com;lr>, <sip:ss2.biloxi.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 3848276298220188511@atlanta.example.com CSeq: 2 ACK Content-Length: 0 F16 ACK Proxy 1 -> Proxy 2 ACK sip:bob@client.biloxi.example.com SIP/2.0 Via: SIP/2.0/TCP ss1.atlanta.example.com:5060;branch=z9hG4bK2d4790.1 Via: SIP/2.0/TCP client.atlanta.example.com:5060;branch=z9hG4bK74b76 ;received=192.0.2.101 Max-Forwards: 69 Route: <sip:ss2.biloxi.example.com;lr> From: Alice <sip:alice@atlanta.example.com>;tag=9fxced76sl To: Bob <sip:bob@biloxi.example.com>;tag=314159 Call-ID: 3848276298220188511@atlanta.example.com CSeq: 2 ACK Content-Length: 0
Hi,
I have a question regarding basic SIP flow for establishing a call session, and wonder if anyone can help me clarify.
For normal call set up, INVITE-OK-ACK, from RFC3261, I believe the ACK’s R-URI should be a copy of the Contact header of the OK message.
However in RFC3665 sections 3.1 and 3.2 for example, the ACK’s R-URI missed the parameters from the Contact header of the OK, e.g.
In OK the Contact header is:
Contact: <sip:bob@client.biloxi.example.com;transport=tcp>
And ACK the R-URI is:
ACK sip:bob@client.biloxi.example.com SIP/2.0
Which has got the parameter ‘transport=tcp’ removed – why is this?
In this case if the proxy connected to Bob handles ACK in the usual way as it would for all in-dialog requests, i.e. based on routing headers only and not extra processing, it’ll try to relay the ACK message to Bob using the default transport UDP which is not expected and will fail.
Can anyone help explain why the parameters are removed in RFC3665 examples please? Have I missed anything? Thank you very much!
Yufei