Subject: RE: [SIP] Proxy Routing Logic

From: Jonathan Rosenberg <[email-masked]>
Date: Fri, 22 Dec 2000 01:27:11 -0500

> -----Original Message-----
> From: Billy Biggs [mailto:[email-masked]]
> Sent: Wednesday, December 20, 2000 12:54 PM
> To: Jo Hornsby
> Cc: Fairlie-Cuninghame, Robert; Jonathan Rosenberg; Keith 
> Robinson; SIP
> List
> Subject: Re: [SIP] Proxy Routing Logic
> 
> 
> Jo Hornsby ([email-masked]):
> 
> >>> [Of course there will be always be different routing behaviour
> >>> depending on whether the request has a Route or not. [...]
> >> 
> >>   Right, but this decision should only occur after you've 
> decided if
> >> the request is for you.  It's very important that proxies 
> don't just
> >> assume the request is meant for them if it happens to appear on one
> >> of their listening sockets. [...]
> > 
> > Maybe I'm not following properly, since I'm jumping in 
> mid-stream, as
> > it were, but if I get a request, I'm going to do my best to 
> honour it.
> > Maybe I won't know anything about the domain in the Request-URI, but
> > I'll SRV and A, and hopefully everything will still be okay.
> 
>   By "honour it" you mean proxy it to the destination indicated by the
> Request-URI (and maybe add a Record-Route), right?
> 
>   I just want to make sure proxies don't replace the 
> request-URI blindly
> with the next Route unless the request is destined for them.

I believe they should do this, in fact.

Note that Jo and Robert are correct; consensus was that if a local outbound
proxy wants to stay on the path, it should record-route. This results in the
most flexibility (enables outbound proxies who want to see only the initial
request).

The more interesting issue is when a local outbound proxy record routes. As
you pointed out, the RR inserted might look like:

sip:[email-masked];maddr=outbound.proxy.com

However, as we pointed out before, if that proxy received this exact URI
*without* the next Route header, this would result in a loop. Billy
indicated he didn't want different routing of the request URI dependent on
the presence of Route. I agree completely, and have been arguing for this
property in Route all along.

A few solutions are possible:

1. If you send a request to a URI that contains an maddr, and you end up
sending it to the address in that maddr, strip the maddr out before sending
the request. 
2. THe proxy should never had inserted this RR in the first place, since
using it directly will cause a loop. Rather, something like Robert's
suggestion would be used:
sip:outbound.proxy.com;uri=[email-masked].

-Jonathan R.
---
Jonathan D. Rosenberg                       72 Eagle Rock Ave.
Chief Scientist                             First Floor
dynamicsoft                                 East Hanover, NJ 07936
[email-masked]                     FAX:   (973) 952-5050
http://www.cs.columbia.edu/~jdrosen         PHONE: (973) 952-5000
http://www.dynamicsoft.com

_______________________________________________
SIP mailing list
[email-masked]
http://lists.bell-labs.com/mailman/listinfo/sip

---

From: Billy Biggs <[email-masked]>
Date: Fri, 22 Dec 2000 00:44:12 -0600

Jonathan Rosenberg ([email-masked]):

> >   I just want to make sure proxies don't replace the request-URI
> > blindly with the next Route unless the request is destined for
> > them.
> 

  Ouch!  Why?  Are you sure you meant that?  If a request is received,
and I'm not represented in the request-URI, and there is a Route, I
definitely don't pop the next route!  I have to get the request to its
next destination first.

> The more interesting issue is when a local outbound proxy record
> routes. As you pointed out, the RR inserted might look like:
> 
> However, as we pointed out before, if that proxy received this exact
> URI *without* the next Route header, this would result in a loop.
> Billy indicated he didn't want different routing of the request URI
> dependent on the presence of Route. I agree completely, and have been
> arguing for this property in Route all along.
> 
> 1. If you send a request to a URI that contains an maddr, and you end
>    up sending it to the address in that maddr, strip the maddr out
>    before sending the request. 

  Bad idea.  A transparent proxy can snarf the message and it will lose
information unless it looks at the IP layer.

> 2. THe proxy should never had inserted this RR in the first place,
>    since using it directly will cause a loop. Rather, something like
>    Robert's suggestion would be used:

  This is a much better idea.

-- 
Billy Biggs, 3Com               Email: [email-masked]
http://www.div8.net/billy/      Phone: [email-masked]