[Serusers] loose routing problem
Jan Janak
jan at iptel.org
Wed Feb 25 17:41:20 CET 2004
On 25-02 17:26, Klaus Darilion wrote:
> Hi!
>
> Once again I'm stucked in the loose routing topic, maybe some can answer
> my question!
>
> I have ser configured to use RR. At the top of my ser.cfg I have:
>
> # loose-route processing
> log(1, "check loose_route ...");
> if (loose_route()) {
> log(1, "loose_route processing, finished routing!\n");
> t_relay();
> break;
> };
> log(1, "no loose_route processing\n");
>
> ...
>
> Client A is xlite, which is a loose router, and Client B is Windows
> Messenger 4.7, which is a strict router. One client calls the other
> client, which accepts the call. Then the client hangs up.
>
> If client A hangs up (xlite, loose router) the loose_route(){...} block
> will not be processed and the BYE is handled by the following routing
> logic. If client B (strict router) hangs up, the loose_route(){...}
> block will be executed.
>
> So, why is the request from xlite (loose router) not treated in the
> loose_route block?
>
> IMHO, I would suggest that both requests (loose and strict) should be
> handled be the loose_route block. Also RFC3261 (16.4) says that "strict
> router" request should be transformed into a loose routing request
> (writing the last Route header field into the req-URI and remove this
> route header field) and than be handled like all other requests.
First of all loose routing or strict routing (depends on the Route
header fields) is performed even if loose_route function returns 0.
There are some situations in which the message will have the IP
address of the server in the Request-URI and the message, in fact,
will be routed elsewhere (to the IP in the topmost Route header
field).
In this case subsequent if (uri==myself) would match which is wrong.
Therefore loose_route will return 1 in this situation. Note well that
inside the if (loose_route()) condition the message will be not sent
to the host from Request-URI (!).
loose_route function is RFC3261 compliant, it performs both loose and
strict routing, depending on the routeset.
Please speak up if I did not explain it clearly enough and I will try to
make some examples. I am aware that this is hard to understand but you
should understand it well otherwise you might introduce some security
holes to your config (especially when routing to a PSTN gateway).
Jan.
More information about the sr-users
mailing list