Subject: RE: [SIP] Forcing call setup through home proxy (solution?)

From: Sean Olson <[email-masked]>
Date: Fri, 19 May 2000 12:02:26 -0500 (CDT)

> Can't the Request-URI be used to achieve this functionality? 
>
Yes, for a single hop. If you want to route your messsage through multiple hops,
you can either do what Adam suggested or use Route: headers in the INVITE message. I prefer
the later because it would require the least number of changes to existing proxies. 

> Script or Network Oriented:
> 
> 	An network oriented alternative would be to have scripts, profile or
> triggers loaded on the serving proxy to rewrite or include the Request-URI
> indicating involvement of the home server. This may or may not run into the
> "gag me with a spoon" issue that Mike alluded to depending on where the
> script came from.

This is really horrible, mostly because it is overly complex and buys you nothing over
the previous solution. Also, the concept of using scripts to control this seems a 
dangerous road to go down.

> 
> Really Crapy Solution:
> 
> 	Yet another network oriented method would be to simply have the
> service logic on the serving proxy simply proxy the message to the address
> of the home proxy; however, this would only work if no other proxies are
> needed to be in the loop between the serving and home proxies- don't
> recommend. This last one is a bad solution that I personally believe
> violates the principles of SIP. It's a hack.
>
This is even more complex and still buys you nothing over the first solution.

The only reason I would imagine involving the network in this case is if you want the
network to have some say in how the call setup is routed (which of course you might). 
If the (roaming) terminal is intelligent enough to detemine that it wants to route through 
it's home proxy, this is easily done by the terminal.

--
Sean Olson <[email-masked]>

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

---

From: Jonathan Rosenberg <[email-masked]>
Date: Fri, 19 May 2000 15:34:00 -0400

> the later because it would require the least number of changes to existing proxies.

Correct. If you send a request to any proxy, where the request-URI does
not match the domain of the proxy, that proxy is supposed to forward the
request to the proxy indicated in the request URI. In fact, that proxy
could also forward, through its own configuration, to another proxy,
which could then forward to the proxy in the request URI. But, if you
want the UAC to specify multiple hops, use Route header.

Adam wrote:
> At the third bakeoff, I went around to a number of people and
> asked how their proxies would behave if my client did this sort of
> thing. I got a variety of mixed answers, none of which were
> very encouraging. Some people wouldn't process it, for example,
> unless it had a To: tag (since routes can't appear on leg
> setup messages, or so goes the thinking). Most would completely
> forgo their internal logic and blindly forward the message
> (thus making their purpose only to add to the number of hops
> in the call signalling route).

Checking for tags and only obeying Route if there is a tag is probably
not a good idea. It was not meant for this purpose. I think what is
desired by that hack is to ensure that a Route is being followed only if
it was one created by the proxy in a Record-Route. We had discussed, at
the bakeoff, some kind of opaque token which would need to be returned
along with the Route headers, which the proxy could use to confirm this.
I believe that is a much better approach than checking for the tag.

I'll note that verifying that the Route header is the result of
insertion of Record-Route is at odds with Jorgens suggestion of using
Route to force traversal through proxies for purpose of services. I
believe that there is no way to reconcile these at the protocol level;
it is a matter of local policy. Just like some MTAs don't support mail
relay, and others do, so it is with obeying Route headers inserted by a
UA without having seen a Record-Route first. In Jorgens example, this
local proxy is presumably aware that it is there just because of
mobility, and that users will want to get to their home proxies, and
thus obey the Route header even if its in a new request.

Adam later wrote:
> So, what if we specified a fairly simple username convention
> stating that proxies MAY do something similar; for example,
> you could send something like:
> 
> INVITE sip:[email-masked] SIP/2.0

I don't see what this buys you above using Route. You are basically
doing exactly the same thing as Route, but gluing the route headers
together through URL encoding and then putting them in the request URI.

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