[OpenSIPS-Users] loose_route()

Victor Gamov vit at euro-comm.net
Mon Nov 8 20:13:01 CET 2010


Thanks Bogdan!

Now I have one more rr-question.

ACK request received by opensips listen on X.X.X.X at port 5060

ACK sip:74951000000 at X.X.X.X:5060 SIP/2.0.
Max-Forwards: 10.
Record-Route: <sip:Y.Y.Y.Y;lr=on;ftag=2204003977>
Via: SIP/2.0/UDP Y.Y.Y.Y;branch=z9hG4bK9a79.79e07dd4.2
Via: SIP/2.0/UDP 
Z.Z.Z.Z:50072;rport=50072;branch=z9hG4bKc740505a77ff27fd47aeaded4f9c9287e3e68c732824a333ac632064bb1cc6d7
Call-id: 3749305934 at 192_168_100_114
Cseq: 1 ACK
From: <sip:22222 at domain-1.su>;tag=2204003977
To: <sip:74951000000 at domain-2.ru>;tag=bd829e82ae5c473bdc4d5e71154c80a7
Route: <sip:X.X.X.X;lr=on;ftag=2204003977>
Route: <sip:X.X.X.X:50080;lr=on>
Content-length: 0

loose_route() called and return true.
I expect then topmost Route-header
Route: <sip:194.149.90.8;lr=on;ftag=2204003977>

will be removed, then next (last) Route header will be inspected and 
packet will be forwarded to X.X.X.X port 50080.

But R-URI rewrited to
sip:X.X.X.X:50080;lr=on

and request forwarded to X.X.X.X port 5060

log says:

DBG:core:parse_headers: flags=200
DBG:rr:is_preloaded: is_preloaded: No
DBG:core:grep_sock_info: checking if host==us: 12==12 &&  [X.X.X.X] == 
[X.X.X.X]
DBG:core:grep_sock_info: checking if port 5060 matches port 50080
DBG:core:grep_sock_info: checking if host==us: 12==12 &&  [X.X.X.X] == 
[X.X.X.X]
DBG:core:grep_sock_info: checking if port 5060 matches port 50080
DBG:core:grep_sock_info: no match for: [X.X.X.X:50080]
DBG:core:grep_aliases: no match for: [0:X.X.X.X:50080]
DBG:core:check_self: host != me
DBG:core:grep_sock_info: checking if host==us: 12==12 &&  [X.X.X.X] == 
[X.X.X.X]
DBG:core:grep_sock_info: checking if port 5060 matches port 5060
DBG:core:grep_sock_info: match found for: [X.X.X.X:5060]
DBG:core:check_self: host == me
DBG:rr:after_loose: Topmost route URI: 
'sip:X.X.X.X;lr=on;ftag=2350422187' is me
DBG:rr:after_loose: URI to be processed: 'sip:X.X.X.X:50080;lr=on'
DBG:rr:after_loose: Next URI is a loose router

before t_relay():
METHOD=ACK;
R-URI=sip:X.X.X.X:50080;lr=on;
du=sip:X.X.X.X;lr=on;ftag=2204003977;
dp=5060;


Where I'm wrong?


On 23.10.2010 16:07, Bogdan-Andrei Iancu wrote:
> Victor Gamov wrote:
>> Sorry for my mistake. Original packet is:
>>
>> -------
>> ACK sip:5700207 at X.X.X.X SIP/2.0.
>> Route:<sip:X.X.X.X;lr=on>
>> To:<sip:5700207 at domain.com>;tag=4ded008d6ca9692485d1918f60c7da12
>> -------
> In this case the Route hdr is removed (as consumed) and the
> loose_route() function true (Route driven). $du will not be set as the
> only routing info in the request is the RURI, which is the default SIP
> routing.

-- 
CU,
Victor Gamov
-------------- next part --------------
A non-text attachment was scrubbed...
Name: vit.vcf
Type: text/x-vcard
Size: 164 bytes
Desc: not available
Url : http://lists.opensips.org/pipermail/users/attachments/20101108/eab84917/attachment.vcf 


More information about the Users mailing list