Subject: [SIP] (no subject)

From: [email-masked]
Date: Wed, 3 Jan 2001 12:23:38 -0600

Keith wrote:
>The main conflict appears to be when a call stateful proxy, which is acting as
>an outbound proxy for some UAs, record routes.
>The question for subsequent requests is who does the popping of the first ROUTE
>entry into the R-URI ?

>For the UA, the two cases are :

>a) The UA pops the first route entry into the R-URI and sends to its outbound
>proxy

That is to me obvious and correct behavior in all cases.

>or

>b) The UA sends the request directly to its outbound proxy without modifying
the
>Route header and using, say, the URI in TO field as the R-URI

>For case (a) the proxy (serving sipnet.com)  will see something like the
>following
>(Assume the original request was addressed to [email-masked])

>INVITE sip:[email-masked];maddr=proxy.sipnet.com

That is complete news to me, it doesn't really solve anything and, as Keith
points
out, leads to many problems. So do not do that.

>.........
>.........

>Now, consider what happens when a UA operating as in case (a) sends a
subsequent
>request to
>its outbound proxy BUT the outbound proxy has deliberately NOT record routed
>because it is not
>required to keep call state; however, two further downstream proxies, serving
>nextsipnet.com and
>furthersipnet.com, HAVE record routed.

just to clarify, I'm assuming sipnet.com is an outbound proxy not doing RR, then
anothernet.com is a proxy not doing RR either (since original request was
[email-masked] anothernet.com proxy has to be in the path somewhere) which
forwarded request to [email-masked]. So we really an outbound proxy plus
three downstream proxies, two with RR one without. Right?

>The UA will have constructed a ROUTE header that looks something like:
>
>Route: <sip:[email-masked];maddr=proxy.nextsipnet.com>
>Route: <sip:[email-masked];maddr=proxy.furthersipnet.com>
>
>When the UA sends a subsequent INVITE, because it functions as in case (a)
>it will pop the first Route entry into the R-URI, and send this to its outbound
>proxy
>as it can't resolve proxy.nextsipnet.com because it has no DNS capability.
>
>The proxy will receive the following :

>INVITE sip:[email-masked];maddr=proxy.nextsipnet.com
>Route: <sip:[email-masked];maddr=proxy.furthersipnet.com>
>
>And this is the central point of the debate; should the proxy route the above
>request by popping the first route entry into the R-URI, or should it use
>the maddr in the R-URI received.In this case, the proxy should clearly
>route the request using the maddr in the received R-URI, otherwise
>proxy.nextsipnet.com will be bypassed even though it asked to be kept
>in the path; this does, however, represent special case processing dependant
>on the contents of the maddr.

Indeed, that's the main point of this thread. The bahavior you are presenting
is the one Billy and me are arguing for all along - do not insert Route blindly.

>If the UA had functioned as in case (b) for the above situation, then the proxy
>would need to route using the Route header.

But I think it is clear UA should never behave as in case b) so it is not an
issue.

>So, special case processing at the proxy appears unavoidable no matter
>whether the UA functions as in case (a) or case (b), and whether a proxy that
is
>being used as an outbound proxy has record routed or not. I think the question
>has
>to be is what special case processing is preferable and what are  UA mandated
to
>do with the Route header if they wish to use an outbound proxy for subsequent
>requests.

>IMO, UAs using an outbound proxy should function as in case (a) and proxies
>should look at the value of the received maddr before deciding whether or not
>to route using the Route header if available. This provides for the simplest
>rules; requiring the proxy to look at the entries in the Route header before
>deciding
>if it can use the first entry (situation arising through case (b) ) seems much
>more complex
>and prone to error.

That's where I beg to differ. I do not think any special case processing is
needed - why does the proxy need to look into Route headers BEFORE deciding
if it can use the first entry? Did I miss something?

>...
>...

>So, to summarise, assuming UAs function as in case (a), if a proxy receives a
>R-URI
>with an maddr that does not reference the domain the proxy serves then the
proxy
>sends the request to that maddr, regardless of the Route headers; if a proxy
>receives
>a R-URI with an maddr that does reference the domain it serves then it strips
>the maddr
>and goes through the normal routing procedures. The only special case
processing
>is
>the result of checking the maddr.
>Regards,
>
>K. Robinson.

That seems to be exactly the logic I'm for (please see my previous posting). I
would
argue it is not a special behavior: it only makes sense to me that the Proxy
should
check if the message is for it (by investigating maddr and/or RURI as proposed)
before
doing anything. I can agree however, that it is not clearly stated in the spec
and one
may have an impression Proxy should always pop the first Route regardless

regards, Jacek Grabiec

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