Juha Heinanen writes:
modules/rr: if outbound request is outgoing, do
nothing outbound
specific in loose_route()
i don't know if this was the proper fix, but at
least my test cases now
work ok.
except if outbound request is incoming like this ack:
ACK sip:0x179a610@192.98.102.10:55798;transport=tcp SIP/2.0
Via: SIP/2.0/TCP
192.98.102.10:53004;rport;branch=z9hG4bKPj9f087cbc-a2ab-460d-8001-97a7b3ab930f
Max-Forwards: 70
From: sip:jh@test.fi;tag=e3963acf-9b21-417a-82ac-0bdd28c0280f
To: sip:test@test.fi;tag=b713d95a6b46ec02
Call-ID: 72b66689-a3ba-4240-af7d-be7891cdde58
CSeq: 27851 ACK
Route: <sip:/RhTFGTFRK1L8wLAYmYKE8TAYmYKu5I=@192.98.102.10:5070;transport=tcp;lr>
Route: <sip:/eWzbwNo9LE2pQLAYmYUE8TAYmYK2fY=@192.98.102.20;transport=tcp;lr>
Content-Length: 0
i get to syslog:
Apr 19 16:13:47 siika /usr/sbin/sip-proxy[24859]: INFO: calling loose_route() on route
<<sip:/RhTFGTFRK1L8wLAYmYKE8TAYmYKu5I=@192.98.102.10:5070;transport=tcp;lr>>
Apr 19 16:13:47 siika /usr/sbin/sip-proxy[24859]: INFO: rr [loose.c:525]:
"incoming" request found. Using flow-token for routing
Apr 19 16:13:47 siika /usr/sbin/sip-proxy[24859]: INFO: rr [loose.c:794]: process_outbound
returned <1>
Apr 19 16:13:47 siika /usr/sbin/sip-proxy[24859]: INFO: rr [loose.c:800]: Topmost route
URI: 'sip:192.98.102.10:48018;transport=tcp' is me
Apr 19 16:13:47 siika /usr/sbin/sip-proxy[24859]: INFO: ru/du =
<sip:0x179a610@192.98.102.10:55798;transport=tcp>/<sip:192.98.102.10:48018;transport=tcp>
Apr 19 16:13:47 siika /usr/sbin/sip-proxy[24859]: INFO: Routing in-dialog ACK
<sip:0x179a610@192.98.102.10:55798;transport=tcp> from <sip:jh@test.fi> to
<sip:192.98.102.10:48018;transport=tcp>
as result, proxy sends ack back to the ua that sent it.
also the record-route header added by outbound proxy to the invite
is strange:
Route: <sip:/RhTFGTFRK1L8wLAYmYKE8TAYmYKu5I=@192.98.102.10:5070;transport=tcp;lr>
ip address is ok, but port is not the one that the proxy uses to talk
with UAs. as consequence, when the ua that sent the invite sends ack,
it is sending it to wrong port.
-- juha