[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