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@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.
Here's a log right before and after the loose-route call of the scenario described above.
++ before loose-route, $du='<null>' - M=ACK R=sip:testuser3@192.168.51.133 ++ after successful loose-route, $du='sip:192.168.51.133;lr' - M=ACK R=sip:192.168.51.133;lr
To me, it seems like strict-routing is assumed, although there's an "lr" flag. This is by the way not what I've seen in my original problem, that's why I said that I've two problems now...
Andreas