[Serusers] strict_routing() function in rr module, where has it gone?
Jan Janak
jan at iptel.org
Sat Apr 30 13:52:51 CEST 2005
On 29-04-2005 14:15, reticent wrote:
> Jan Janak wrote:
>
> >On 27-04-2005 15:59, reticent wrote:
> >
> >
> >>I have several different UAC's that insist on doing strict routing and
> >>this is causing me some moderate issues as i can find no way to deal
> >>with the situation on SER.
> >>
> >>
> >
> > What exactly is the isssue ? loose_routing is backwards compatible in
> > vast majority of cases (it is not backwards compatible when user
> > agents use pre-loaded route sets).
> >
> >
> >
> According to the rr module documentation:
> --
> 1.4.2. strict_route() -- deprecated
>
> If there are any Route HFs in the message, the function takes
> the first one, rewrites Request-URI with it's value and
> removes the first URI from Route HFs.
> --
>
> This is all in relation to the message looping problem i reported
> previously where an ACK comes to ser with an RURI of SER and a route
> pointing to a nexthop, but instead of routing to the nexthop
> (loose_route does not match because the UAC does not properly use the
> Record-Route header, and generates a "Route" header using the
> information from the contact) SER sends the message to itself over and
> over again.
Could you send me SIP message dumps, including INVITE, 200 OK and the
ACK which does not work properly with SER ? Feel free to send it
privately to jan at iptel.org.
> With the "strict_route()" function (according to the documentation for
> it), i should be able to detect this situation and route the message
> properly, the reason i mentioned the bit inside the source code was
> because it mentions "if you really need strict routing then you can
> replace the last zeroes with REQUEST_ROUTE to enable strict_route ...",
> adding REQUEST_ROUTE properly enables record_route_strict (which i do
> not need) but cannot (from what i can tell look at the code) enable
> strict_route because the function is simply gone.
It is not gone, it is included in loose_route. Loose_route performs
the same steps as strict_route if needed. I am still not sure I
understand the problem, SIP messages dumps would help.
Jan.
> >>According to the documentation that comes with the "ddddddddrr" module there is
> >>supposed to be a function called "strict_route()" that does exactly what
> >>i want (move the value from the "Route:" header into the RURI), however
> >>the module does not provide this function. I'm curious if this
> >>functionality has been folded into loose_route or if it has simply
> >>dissappeared?
> >>
> >>
> >
> > It has not dissappeared, it is in loose_route. The function can detect
> > whether the next hop is strict or loose router and behave accordingly.
> >
> >
> >
> >>There is a section in the source code of rr_mod.c that allows you to
> >>enable the function "record_route_strict()" and it also talks about
> >>enabling "strict_route()" however i have had no success with it.
> >>
> >>
> >
> > The function is called record_route_strict and it is a replacement for
> > record_route. If you want SER to be a strict router, then replace the
> > last zero in record_route_strict row of cmds[] in rr_mod.c with
> > REQUEST_ROUTE. That would enable the function and you can use it in
> > the script. In the script you then need to replace record_route with
> > record_route_strict.
> >
> > The difference is that record_route_strict will not add ;lr parameter
> > to the Record-Route haader fields generated by SER.
> >
> > Jan.
> >
> >
> >
> >
>
More information about the sr-users
mailing list