[SR-Users] loose_route() with pre-loaded Route in ACK

Klaus Darilion klaus.mailinglists at pernau.at
Wed Feb 29 18:23:10 CET 2012



On 29.02.2012 18:01, Andreas Granig wrote:
> Hi Klaus,
>
> On 02/29/2012 03:53 PM, Klaus Darilion wrote:
>>> However if a 407 is relayed back from the registrar via the lb to the
>>> UA, it sends an ACK, again with pre-loaded Route header like in the
>>> initial INVITE, this time with to-tag. In that case, loose_route()
>>> returns true, but the $du is $null and the R-URI is still the same.
>>
>> What else should happen? $du will not be set as there is no more Route
>> header. And R-URI is never changed (except with strict routers).
>
> Well, I tried to reproduce my problem, now I have two problems :)
>
> Proxy is running on 192.168.51.133:5060, and client (linphone-3) sends a
> header "Route:<sip:foo at 192.168.51.133:5060;lr>" in the ACK after 407
> (and it's the only Route header). For some reason (and I haven't figured
> it out yet), loose_route() now removes the Route header, puts it into
> $du and also puts it into $ru, so I end up with an ACK being sent to
> itself AND with a crippled $ru.

That's really weird. It should not rewrite $ru. Maybe there is some 
special handling for ACK.

Anyway, if the Route header is consumed and pushed into $du it means 
that the "special behavior" which was done for the INVITE 
(loose-route==0) is not used here. IIRC these special behavior is only 
triggered if the request does not contain a to-tag.

If tm is used, it will take care of this by consuming the ACK and 
generating a new one. It seems that we need some fixes for stateless 
routing.

regards
Klaus



More information about the sr-users mailing list