Subject: [Sipping] Routing vs. Require in service identification

From: Jonathan Rosenberg <[email-masked]>
Date: Mon, 26 Feb 2007 10:10:02 -0500

An issue that came up a lot in the threads on service identification was 
whether the problem here is just one of routing, or one of extension 
handling.

There is certainly an aspect of this issue here that has a routing 
flavor. If Joe makes a PoC call, he will want that call routed to a PoC 
application server, and then delivered to a PoC handset owned by the 
called party. So, if the called party has two handsets, one that is PoC, 
and one that isn't, then you clearly want the PoC call delivered to the 
PoC handset.

If this were JUST a routing issue, then clearly something like 
Accept-Contact might make sense, since its defined for routing.

However, routing is really a side effect of the bigger issue, which is 
that for this PoC case at least, 3gpp has introduced a non-backwards 
compatible extension to SIP. That extension must be understood in order 
to process a PoC request. That root issue brings the routing 
requirements as a side effect; you need to route to an application 
server since proper processing of the request *requires* it, and you 
want to deliver the PoC request to a PoC terminal since it will only be 
properly processed on that terminal.

When we defined RFC3841, we called these implicit caller preferences. 
RFC3841 defines these only for methods and event packages, but they 
equally well could apply to extensions to. The idea with implicit 
preferences is that other aspects of the request, like the method or 
Require option tags, clearly imply a desire to be connected to an 
endpoint which supports them. That is what is happening here. The 
problem we are trying to solve is NOT how to route to the right 
endpoint; the problem is how do we indicate that special processing is 
needed for this request, and a *side effect* of that is that we wish the 
request to be delivered to an endpoint which can support it.

As a litmus test to demonstrate this, ask yourself this. If you can 
choose putting a tag in Accept-Contact or Require, consider a use case 
where the caller and called party both had just a single device/UA, so 
that your routing decision is easy. If you put the tag in 
Accept-Contact, would the right thing happen? I would assert that it 
would not in the PoC case. This is why PoC needs Require. IF another 
service should be defined that has the same property, it needs Require 
too. But please do that sparingly.

-Jonathan R.

-- 
Jonathan D. Rosenberg, Ph.D.                   600 Lanidex Plaza
Cisco Fellow                                   Parsippany, NJ 07054-2711
Cisco Systems
[email-masked]                              FAX:   (973) 952-5050
http://www.jdrosen.net                         PHONE: (973) 952-5000
http://www.cisco.com

_______________________________________________
Sipping mailing list  https://www1.ietf.org/mailman/listinfo/sipping
This list is for NEW development of the application of SIP
Use [email-masked] for questions on current sip
Use [email-masked] for new developments of core SIP