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:74951000...@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: 3749305...@192_168_100_114
Cseq: 1 ACK
From: <sip:22...@domain-1.su>;tag=2204003977
To: <sip:74951000...@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:5700...@x.x.x.x SIP/2.0.
Route:<sip:X.X.X.X;lr=on>
To:<sip:5700...@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

<<attachment: vit.vcf>>

_______________________________________________
Users mailing list
Users@lists.opensips.org
http://lists.opensips.org/cgi-bin/mailman/listinfo/users

Reply via email to