[Serusers] [Serdev] loose_route behaviour, detecting single Route with myself

Nils Ohlmeier nils at iptel.org
Wed Jul 11 17:23:16 CEST 2007


Hi,

On Wednesday 11 July 2007 17:07:22 JF wrote:
> The scenario was actually using an Application Server.
> The AS starts a call and sends an INVITE with tel URI to a SER which
> is the entrypoint to my SIP infrastructure. The AS uses this SER as
> outbound proxy, so it includes its SIP URI in a Route header.
>
> The use-case for tel URI in the Req-URI here is that it will be the
> task of my SIP infrastructure to determine if this tel URI is
> associated to a SIP phone, or if it should be forwarded to a PSTN gw.

But your AS uses a SIP URI as Contact in the INVITE?
And when the call is established either to a phone or the GW there will be no 
TEL URI any more in the dialog, right?

If you can answer both questions from above with yes, I would propose to add 
another check for the To-tag before we deviced if this is loose route driven 
or not. That should then hopefully solve your problem in a generic way 
without caring about the URI scheme.

  Nils

> JF
>
> On 7/11/07, Nils Ohlmeier <nils at iptel.org> wrote:
> > Hello,
> >
> > I think the TEL URI was invented to make the live easier for PSTN
> > gateways. So they should only be used between proxy's and gateways (or
> > vice versa). This also means that a TEL URI should not be used routing
> > between SIP proxies. IMHO basically the first fully SIP aware hop should
> > turn the TEL URI into a SIP URI. That makes life of everybody easier.
> >
> > So I think that treating a TEL URI as a local URI (as if it would have
> > one of the local domains) is not the correct solution.
> >
> > To understand the scenario a little bit better: in this an in-dialog
> > request with a To-tag (then I'm wondering how this can happen), or is
> > this an initial request without a To-tag (the devices uses your proxy as
> > outbound proxy)?
> >
> > Regards
> >   Nils
> >
> > On Thursday 28 June 2007 17:13:43 JF wrote:
> > > I would propose to simply apply this patch to modules/rr/loose.c:
> > >
> > > @@ -1069,8 +1069,8 @@
> > >                 return -1;
> > >         }
> > >
> > > -       if (is_myself(&_m->parsed_uri.host, _m->parsed_uri.port_no)
> > > -                       || _m->parsed_uri.type==TEL_URI_T ||
> > > _m->parsed_uri.type==TELS_URI_T) {
> > > +       if (_m->parsed_uri.type==TEL_URI_T ||
> > > _m->parsed_uri.type==TELS_URI_T || +
> > > is_myself(&_m->parsed_uri.host,
> > > _m->parsed_uri.port_no)) {
> > >                 DBG("loose_route: RURI is myself (or tel URI)\n");
> > >                 if ((ret = is_myself(&puri.host, puri.port_no)) == 1 &&
> > >                         !(enable_double_rr && is_2rr(&puri.params))) {
> > >
> > >
> > > JF
> > >
> > > On 6/22/07, Greger Viken Teigre <greger at teigre.com> wrote:
> > > > This seems like a corner case where the tel uri with no domain
> > > > results in maybe a bit unfortunate return code from loose_route.
> > > > Comments anyone? g-)



More information about the sr-users mailing list