[sr-dev] [ openser-Bugs-2822344 ] Branch route has wrong ruri or missing headers

SourceForge.net noreply at sourceforge.net
Tue Nov 10 17:15:36 CET 2009


Bugs item #2822344, was opened at 2009-07-16 11:06
Message generated for change (Comment added) made by axlh
You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=2822344&group_id=139143

Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: None
Group: ver 1.4.x
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Alex Hermann (axlh)
Assigned to: Nobody/Anonymous (nobody)
Summary: Branch route has wrong ruri or missing headers

Initial Comment:
The scenario:
In branch route, I rewrite the ruri and add an additional header. When the destination fails and DNS-based failover takes place, the branch route is called again. For this second branch, the ruri is not the same as the ruri at t_relay time. Also the extra header is missing.

So this bug could be either:

- The ruri and rest of variables/packet for each branch should be the same as the ruri at t_relay time
or
- The header added in the first branch route should also be present for the second branch (in the case of DNS-based failover)


I would either expect the ruri and all other variables and headers to be exactly the same as at t_relay time for each branch, or (for DNS-based failover ONLY) the packet sent to a failover destination to be exactly the same as the first branch (including any added headers / from replacement, etc.) Not a mix of both.



Before t_relay:

$rU = "*1234567890"
t_relay("0x03");

my branch route:
xlog("L_NOTICE", "Branch: <$ru> via <$du>\n");
if (is_method("INVITE") and $(rU{s.substr,0,3}) == "*12") {
	strip(3);
	append_hf("X-Test: 12\r\n");
}

The log:

Jul 15 09:14:38  Branch: <sip:*1234567890 at test.domain;transport=udp> via <<null>>
Jul 15 09:14:38  Reply Status: 503 Service Unavailable 
Jul 15 09:14:38  Branch: <sip:234567890 at test.domain;transport=udp> via <<null>>
Jul 15 09:14:38  Reply Status: 100 Trying 



----------------------------------------------------------------------

>Comment By: Alex Hermann (axlh)
Date: 2009-11-10 17:15

Message:
It does, but the inconsistency stays. The ruri in branch_route after DNS
failover is different from the ruri in the branch_route of the initial
t_relay if in that branch_route, the ruri is rewritten.

----------------------------------------------------------------------

Comment By: Daniel-Constantin Mierla (miconda)
Date: 2009-10-05 08:57

Message:
Have you said on the mailing list that calling t_on_branch() from
branch_route gets what you need?

----------------------------------------------------------------------

Comment By: Alex Hermann (axlh)
Date: 2009-09-04 17:03

Message:
And when there is no response at all from th destination, resulting in a
local generated 408, the behaviour is even different. Then branch route
isn't called at all, but the packet headed for the failover host is
different from the original as it misses any headers added in the branch
route.


----------------------------------------------------------------------

You can respond by visiting: 
https://sourceforge.net/tracker/?func=detail&atid=743020&aid=2822344&group_id=139143



More information about the sr-dev mailing list