[reSIProcate] Question about Record-Route headers on re-Invite
Kovar, William (Bill)
bkovar at avaya.com
Wed Mar 7 17:47:08 CST 2007
Scott,
The code below does not work.
I put back in the fix my developer had created and the problem is
solved.
I put my old fix back in and it now works correctly.
Here's the code for Dialog.cxx
if(mInviteSession == 0 || mRouteSet.size() == 0)
{
if (code >=200 && code < 300)
{
if (response.exists(h_RecordRoutes))
{
mRouteSet = response.header(h_RecordRoutes).reverse();
}
}
}
In particular, this code never gets run because the route set is created
during construction of the Dialog. That should be enough.
Bill Kovar
bkovar at avaya.com
Avaya, Inc.
(732) 852-2609
_____
From: Scott Godin [mailto:slgodin at icescape.com]
Sent: Thursday, January 18, 2007 5:30 PM
To: Kovar, William (Bill)
Subject: RE: [reSIProcate] Question about Record-Route headers
on re-Invite
Hi Bill,
I'm just waiting back to hear from the developer that modified
this code last before I commit a solution. But here is what I have so
far - if you want to try it out:
Modify the code in Dialog.cxx near line 561 to read.
const SipMessage& response = msg;
int code = response.header(h_StatusLine).statusCode();
// If this is a 200 response to the initial request, then
store the routeset (if present)
if (creator &&
(creator->getLastRequest()->header(h_CSeq).sequence() ==
response.header(h_CSeq).sequence()) && code >=200 && code < 300)
{
if (response.exists(h_RecordRoutes))
{
mRouteSet =
response.header(h_RecordRoutes).reverse();
}
}
Thanks,
Scott
From: resiprocate-devel-bounces at list.resiprocate.org
[mailto:resiprocate-devel-bounces at list.resiprocate.org] On Behalf Of
Kovar, William (Bill)
Sent: Wednesday, January 10, 2007 4:22 PM
To: resiprocate-devel at list.resiprocate.org
Subject: [reSIProcate] Question about Record-Route headers on
re-Invite
I'm seeing a situation where an initial session has been
established with 2 Record-Route's set, i.e. IP1 & IP2.
When a re-invite sent, both Routes (IP1 & IP2) are used,
however, the 200 OK only sends one (IP1).
The subsequent ACK generated only insert Route: IP1 and the
final destination is never reached. This causes retransmission of the
200 OK over and over.
It seems like DUM/resip is over-writing the original Route set
established with the initial session, which is an RFC 3261 violation -
section 12.2
As I am on a version of resip prior to resip 1.0, is this a
known problem and fixed??
Bill Kovar
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://list.resiprocate.org/pipermail/resiprocate-devel/attachments/20070307/1baf4093/attachment.htm>
More information about the resiprocate-devel
mailing list