Hello,
I think it is possible to choose wrong transport type to relay . so i prefer that add
transport parameter to Route headers. Kamailio handles it with loose_route function and
mhomed feature.
Yasin CANER
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(a)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(a)atlanta.example.com
CSeq: 2 ACK
Content-Length: 0
________________________________
From: sr-users <sr-users-bounces(a)lists.kamailio.org> on behalf of Yufei Tao
<yufei.tao(a)gmail.com>
Sent: Sunday, April 28, 2019 11:54 PM
To: Kamailio (SER) - Users Mailing List
Subject: [SR-Users] SIP basic flow question: R-URI in ACK
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