On Oct 21, 2004 at 11:33, Martin Koenig martin.koenig@toplink-plannet.de wrote:
Hello,
If a ser 0.8.14 named "server" receives the following message:
ACK sip:final@destination:5060 SIP/2.0. Route: sip:route@server:5060;ftag=0006283e0a6800774f26ee45-1c475c78;lr=on.
And loose_route() is called on that server, shouldn't it return true? Or is loose_route() only true if there is another Route Header field left after removing self?
Yes, it would have been true if there was another route header. In fact loose_route returns true only if the message was "routed" according to the route headers. If there was no change in the message destination (either request uri or the destination uri), it returns false.
To my understanding, loose_route should return true if there was a Route header field removed by the function, so that we know we have reached the end of a server chain and can t_relay the request without further local processing.
If you are at the end of a server chain it will return false, because the message will go to the request uri and not to an uri extracted from a route header.
Andrei