One document matched: draft-rosenberg-sipping-callerprefs-usecases-00.txt
Internet Engineering Task Force SIPPING WG
Internet Draft J. Rosenberg
dynamicsoft
P. Kyzivat
Cisco
draft-rosenberg-sipping-callerprefs-usecases-00.txt
February 24, 2003
Expires: August 2003
Use Cases for Session Initiation Protocol (SIP) Caller Preferences
STATUS OF THIS MEMO
This document is an Internet-Draft and is in full conformance with
all provisions of Section 10 of RFC2026.
Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that
other groups may also distribute working documents as Internet-
Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress".
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
To view the list Internet-Draft Shadow Directories, see
http://www.ietf.org/shadow.html.
Abstract
This document describes a set of use cases for the SIP Caller
Preferences and Callee Capabilities extension. Each use case is
presented as a desired routing decision, followed by the actual
headers and processing logic which would result in that decision.
J. Rosenberg et. al. [Page 1]
Internet Draft Caller Preferences Usages January 30, 2003
J. Rosenberg et. al. [Page 2]
Internet Draft Caller Preferences Usages January 30, 2003
1 Introduction
The SIP extension for Caller Preferences and Callee Capabilities [1]
describes mechanisms that allow a UA to register its capabilities in
a REGISTER request. A caller can express preferences, either
explicitly or implicitly, about how that request is to be handled.
This is accomplished with the Accept-Contact and Reject-Contact
header fields.
The purpose of this document is to demonstrate the ability of these
basic primitives to meet the needs of many different routing
problems. To do that, it presents a set of use cases. Each use case
is described as a situation along with a desired routing goal. Then,
it demonstrates how the various caller preferences headers and the
proxy processing logic would result in the appropriate decision being
made.
Demonstrating the ability of caller preferences to meet the needs of
these routing problems serves two higher level goals. The first is to
validate that the caller preferences specification is complete, and
capable of solving real requirements. Since the caller preferences
specification pre-dates the SIP change process [2], no requirements
work was ever done for this extension. To some degree, this document
"backfills" requirements. However, this is not an academic exercise
only, since the use cases described here did result in changes in the
specification in later versions.
The second goal of the usage cases is to motivate support for the
draft. The caller preferences specification has received scant
attention from the working group beyond the authors of this document.
This is likely because people are not aware of the scope of problems
which this extension can solve.
2 Routing of INVITE and MESSAGE to different UA
2.1 Desired Behavior
Address of Record (AOR) Y has two contacts Y1 and Y2. Y1 is a phone,
and supports the standard operations INVITE, ACK, OPTIONS, BYE, and
so on, while Y2 is a pager and supports only OPTIONS and MESSAGE.
Caller X wants to send pages to Y. There is a lot of traffic in the
network of both calls and pages, so there is a goal not to
unnecessarily fork messages to devices that can't support them. So,
ensure that INVITEs of Y are delivered only to Y1, while MESSAGEs to
Y are delivered only to Y2.
2.2 Solution
J. Rosenberg et. al. [Page 4]
Internet Draft Caller Preferences Usages January 30, 2003
Y1 will create a registration which looks like, in part:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: <sip:Y1@pc.example.com>;methods="INVITE,ACK,OPTIONS,BYE,CANCEL"
Y2 will create a registration which looks like, in part:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: <sip:Y2@pc.example.com>;methods="OPTIONS,MESSAGE"
When a UAC sends an INVITE, it will arrive at the proxy for
example.com. There are no caller preferences in the request. However,
per Section 7.2.2 of [1], the proxy will construct an implicit
require-tagged Accept-Contact preference that looks like:
(& (methods="INVITE"))
Applying the matching algorithm of RFC 2533 [3] to this feature set
and those registered by Y1 and Y2, the feature set of Y1 alone
matches. Thus, Y2 is discarded and the INVITE is routed to Y1.
If the request was MESSAGE, the proxy constructs an implicit
require-tagged Accept-Contact preference that looks like:
(& (methods="MESSAGE"))
which matches the feature set of Y2, but not Y1. Thus, Y1 is
discarded, and the request is routed to Y2.
3 Single Contact Not Matching Implicit Preferences
3.1 Desired Behavior
AOR Y has a single contact Y1. Its a phone, and therefore supports
J. Rosenberg et. al. [Page 5]
Internet Draft Caller Preferences Usages January 30, 2003
the INVITE, BYE, OPTIONS, CANCEL and ACK methods, but not MESSAGE. A
caller X sends a MESSAGE request. The desired behavior is that the
request is still routed to the solitary contact so that it can
generate a 405 response.
3.2 Solution
The single contact Y1 will generate a registration which looks like,
in part:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: <sip:Y1@pc.example.com>;methods="INVITE,ACK,OPTIONS,BYE,CANCEL"
X sends a MESSAGE request. This results in an implicit require-tagged
Accept-Contact preference:
(& (methods="MESSAGE"))
Since Y1 doesn't match, it is discarded. However, according to the
specifications, if there are no matching targets, the preference
operation is re-run without implicit preferences. Since there were no
explict preferences, the request is routed without the caller
preferences processing at all, and is sent to the single contact Y1
as desired.
4 Package-Based Routing
4.1 Desired Behavior
AOR Y has a number of contacts, Y1, Y2, ..., Yn that can each support
normal calls - INVITE, ACK, BYE, etc., and that can also support
SUBSCRIBE for the "dialog" event package [4]. Y also has another
contact YP that is a presence agent [5] - it can accept SUBSCRIBE
requests for the "presence" event package. The goal is for subscribe
requests for presence to be routed to YP while invites and subscribes
for the dialog package are forked to Y1...Yn.
4.2 Solution
Y1..Yn will generate REGISTER requests which look like, in part:
J. Rosenberg et. al. [Page 6]
Internet Draft Caller Preferences Usages January 30, 2003
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: <sip:Yi@pc.example.com>
;methods="INVITE,BYE,OPTIONS,ACK,CANCEL,SUBSCRIBE"
;events="dialog"
and Yp will generate a REGISTER request which looks like, in part:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: <sip:Yp@pc.example.com>;methods="SUBSCRIBE";events="presence"
A SUBSCRIBE request for presence will arrive at the proxy for
example.com. It constructs an implicit require-tagged Accept-Contact
preference from the request:
(& (methods="SUBSCRIBE") (events="presence"))
This feature set only matches the one registered by Yp. Therefore,
Y1..Yn are eliminated, and the request is properly routed to the PA.
Note that, had Y1..Yn not registered the event packages they support,
the proxy would have preferentially routed the request to YP, and if
that had failed, then forked to Y1..Yn. That is because of the
greater score associated with YP.
INVITE requests result in an implicit require-tagged Accept-Contact
preference:
(& (methods="INVITE"))
The implicit Accept-Contact feature set matches Y1..Yn, but not Yp.
Thus, Yp is discarded and the call is delivered to Y1..Yn only.
A SUBSCRIBE for the dialog event package will result in an implicit
require-tagged Accept-Contact preference:
J. Rosenberg et. al. [Page 7]
Internet Draft Caller Preferences Usages January 30, 2003
(& (methods="SUBSCRIBE") (events="dialog"))
This only matches Y1..Yn, so Yp is discarded, and the request is
routed to the remaining contacts.
5 Audio/Video vs. Audio Only
5.1 Desired Behavior
X sends an invitation to Y to initiate an audio/video call, including
both m=audio and m=video lines in the SDP. AOR Y has two contacts, Y1
and Y2. Y1 represents a normal audio phone which is preferred for
normal audio calls. It will answer an audio/video call, refusing the
video. Y2 represents an audio/video phone that should only used when
needed. The caller really wants the called answered by a device that
supports video.
5.2 Solution
Y1 will generate a registration which looks like, in part:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: <sip:Y1@pc.example.com>;audio;q=1.0
Y2 will generate a registration which looks like, in part:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: <sip:Y2@pc.example.com>;audio;video;q=0.2
Note the different q-values, allowing Y2 to be selected as a device
of "last resort". Of course, both Y1 and Y2 need to be configured to
express these two q-values.
To ensure that the call is preferentially routed to a device that
supports video, the caller X sends an INVITE that looks like, in
part:
J. Rosenberg et. al. [Page 8]
Internet Draft Caller Preferences Usages January 30, 2003
INVITE sip:Y@example.com SIP/2.0
Accept-Contact: *;video;require
The proxy will convert this to a feature predicate and also compute
an implicit preference to support INVITE. Since neither contact
indicated anything about methods, the implicit preference matches
both and has no effect on the relative q-values.
The explicit feature set from the Accept-Contact matches Y2 and Y1.
However, the score for Y2 is 1, and 0 for Y1. The result is that the
audio/video phone (Y2) will receive the call first.
6 Audio/Video vs. Audio Only: A/V UA Fails
6.1 Desired Behavior
This case is identical to that of Section 5. However, for some reason
the Audio/Video UA is not available (for example, its in use or
offline). The desired behavior is for an audio-only call.
6.2 Solution
This will happen. Since Y1 didnt say anything about video, it still
matched the caller preference, just not explicitly. The caller
preference did not include the explicit tag, so Y1 remains as a
viable contact, but with a lower q value than Y2. Once the request to
Y2 fails, the proy will try Y1.
7 Forcing Audio/Video
7.1 Desired Behavior
This case is similar to that of Section 5. However, X requires an
audio/video call, and would like the call to fail if this is not
possible rather than succeeding with only audio.
7.2 Solution
The solution is similar to that of Section 5, however the Accept-
Contact header field now includes the explicit and require tags,
guaranteeing that the call is never established to any UA that had
not explicitly indicated support for video:
INVITE sip:Y@example.com SIP/2.0
Accept-Contact: *;video;require;explicit
J. Rosenberg et. al. [Page 9]
Internet Draft Caller Preferences Usages January 30, 2003
This arrives at the example.com proxy. This explicit feature set
matches the feature set for Y2 and Y1. However, the match for Y1 did
not have a score of 1. Since the explicit and require tags are
present, the contact is discarded.
8 Third Party Call Control - Forcing Media
8.1 Desired Behavior
Z is a third party call control controller [6] trying to establish an
audio/video call from X to Y. (Both X and Y are configured the way Y
is in 5) Z needs to send a offerless invite to X and use the
resulting offer to send an invite to Y. When sending the offerless
invite to X it must ensure that an audio/video contact (X2) is chosen
over an audio only contact (X1).
8.2 Solution
Z would include, in its INVITE, an Accept-Contact header field:
INVITE sip:X@example.com SIP/2.0
Accept-Contact: *;audio;video;require;explicit
This caller preference matches both X1 and X2. However, it matches X1
with a score of .5 and X2 with a score of 1. Because of the require
and explicit tags, X1 is discarded despite the callee's preference
for it. Thus, the call is routed to X2.
9 Maximizing Media Overlaps
9.1 Desired Behavior
AOR Y has two contacts, Y1 that is a regular audio phone, and Y2 that
is a PC capable of supporting both audio and session oriented IM [7].
X is a PC with capability to support audio, video and session
oriented IM. X calls Y for the purpose of establishing a voice call.
However, X wishes to connect to the device which has the maximal
overlap with its media capabilities, in order to maximize the
functionality available to the caller.
9.2 Solution
Y1 will generate a registration which looks like, in part:
J. Rosenberg et. al. [Page 10]
Internet Draft Caller Preferences Usages January 30, 2003
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: <sip:Y1@phone.example.com>;audio
Y2 will generate a registration which looks like, in part:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: <sip:Y2@pc.example.com>;audio;message
The solution requires the caller to support caller preferences. They
would include, in their INVITE, an Accept-Contact that lists all the
media types they support. In this case:
INVITE sip:Y@example.com SIP/2.0
Accept-Contact: *;audio;video;message
This would prefer a UA that supports all of the same types. Both Y1
and Y2 match. However, Y1 matches with a score of .33, and Y2 matches
with a score of .66. This would result in the call being routed to Y2
first.
10 Multilingual Lines
10.1 Desired Behavior
AOR Y represents a shared line in an office. Several employees in the
office have phones registered for Y. Some of the employees speak only
English, some speak Spanish fluently and have some limited capability
for English, and some speak both English and Spanish fluently. Calls
from callers that speak only English should be parallel forked to all
office workers that speak fluent English. If the call isn't picked
up, then the phones of workers that speak English marginally should
be rung. Calls from callers that speak only Spanish should be forked
only to workers that speak Spanish.
10.2 Solution
A user at phone Y1 that speaks English only would generate a REGISTER
which looks like, in part:
J. Rosenberg et. al. [Page 11]
Internet Draft Caller Preferences Usages January 30, 2003
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: sip:Y1@pc.pc.example.com;languages="en"
A user at a phone Y2 that speak Spanish and a little bit of English
would generate a REGISTER that looks like, in part:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: sip:Y2@pc.example.com;languages="es"
Contact: <sip:Y2-en@pc.example.com>;languages="en";q=0.2
Effectively, Y2 has registered two contacts. Both of them route to
the same device (pc.example.com), but they differ in their language
support and relative q-values. Multiple contacts are needed whenever
a UA wishes to express differing preferences for being reached for
different feature collections.
A user at phone Y3 that speaks English and Spanish fluently would
generate a REGISTER that looks like, in part:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: sip:Y3@pc.example.com;languages="es,en"
Notice that only a single contact is needed because the same q-value
is applied across all feature collections.
For the language based routing to occur, the caller must indicate its
language preferences explicitly:
INVITE sip:Y@example.com SIP/2.0
Accept-Contact: *;languages="en"
When a caller makes a call, and indicates that their language is
English only, the result is an Accept-Contact feature set that looks
like:
J. Rosenberg et. al. [Page 12]
Internet Draft Caller Preferences Usages January 30, 2003
(& (languages="en"))
This matches all Y1 phones, the second contact registered by Y2
phones, and Y3 phones. However, the second contact registered by Y2
phones has a lower q-value, 0.2, and therefore, will be chosen with
lower preference than Y1 and Y3. The call will be routed to Y1 or Y3
UAs first, as desired. If neither of those pick up, the call is
routed to the English-language contact of Y2, which represents a user
with moderate English skills. In fact, the user will know to answer
with "Hello" instead of "Hola" because the request-URI will contain
Y2-en instead of just Y2. A nice bonus feature.
When a caller makes a call, and indicates that their language is
Spanish only, the result is an Accept-Contact feature set that looks
like:
(& (languages="es"))
This matches the first contact of Y2 phones, and Y3 phones, all with
equal preference. The result is that a call is routed to a user that
speaks Spanish.
11 I Hate Voicemail!
11.1 Desired Behavior
AOR Y has two contacts, a phone Y1 and a voicemail service Y2. X
wishes to call Y and talk in person. X does not want to be sent to
voicemail under any circumstance.
11.2 Solution
The phone would register with a Contact that looks like, in part:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: sip:Y1@pc.example.com
and the voicemail server would register with a Contact that looks
like, in part:
J. Rosenberg et. al. [Page 13]
Internet Draft Caller Preferences Usages January 30, 2003
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: sip:Y2@pc.example.com;msgserver;automata;attendant;audio
Note that the voicemail server need not actually register. There can
be a configured contact and feature set defined for it instead.
A caller that wishes to avoid voicemail can include an explicit
preference to avoid it. It would do this with the Reject-Contact
header field:
INVITE sip:Y@example.com SIP/2.0
Reject-Contact: *;msgserver
Since this feature set contains a feature tag that is not contained
in the registration for Y1, the feature set is discarded when
examining Y1. However, the registration for Y2 contains all feature
tags listed in the feature set, and so the rule is considered. There
is a match, and therefore, Y2 is discarded.
The result is that the user is never routed to voicemail.
12 I Hate People!
12.1 Desired Behavior
The situation is similar to Section 11, except the caller wishes to
only leave a message, not actually speak to the person. Therefore,
they would send an INVITE which looks like, in part:
INVITE sip:Y@example.com SIP/2.0
Accept-Contact: *;msgserver;require;explicit
This caller preference matches both Y1 and Y2. Y1 matches, but with a
score of zero. Y2 matches with a score of 1. Since both the require
and explicit flags are set, Y1 is discarded. Therefore, the call is
routed to Y2, the voicemail server, as desired.
13 Prefer Voicemail
J. Rosenberg et. al. [Page 14]
Internet Draft Caller Preferences Usages January 30, 2003
13.1 Desired Behavior
The situation is similar to that of Section 11. However, the caller
prefers to leave a message. If voicemail is not available, they are
willing to talk to a person.
13.2 Solution
To accomplish this behavior, the caller would generate an INVITE that
looks like, in part:
INVITE sip:Y@example.com SIP/2.0
Accept-Contact: *;voicemail
This matches Y1 with a score of zero and Y2 with a score of 1.
Therefore, Y2 (the voicemail server) is tried first, and if that
fails, the lower priority Y1 (the phone) is tried next.
14 Routing to an Executive
14.1 Desired Behavior
Y is the AOR of an executive. It has three contacts. Y1 is the phone
on the executive's desk. Y2 is the phone on the desk of the
executive's assistant. Y3 is the address of an auto-attendant system
that can answer general questions, route calls to other parties, etc.
By default, calls to Y should be directed to Y2, and if that fails,
to Y3. If Y3 doesn't answer then Y1 should ring.
14.2 Solution
This is primarily a called party feature, and is best accomplished
with a CPL script [8]. However, it can be accomplished with caller
preferences alone by properly setting the q-values across the three
devices. Assuming this coordination is possible, here are the
settings that would be made:
Y1 would generate a REGISTER that looks like, in part:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: sip:Y1@pc.example.com;q=0.1
J. Rosenberg et. al. [Page 15]
Internet Draft Caller Preferences Usages January 30, 2003
Y2 would generate a REGISTER that looks like, in part:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: sip:Y2@pc2.example.com;attendant;q=1.0
Y3 would generate a REGISTER that looks like, in part:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: sip:Y3@pc3.example.com;attendant;automata;q=0.5
Note that, in reality, the automated attendant would probably not use
REGISTER. Since the attendant would be used for every employee in the
company, a static contact would probably be added administratively
for each user in the enterprise. However, the information in that
static contact would be identical to the information in the
registration above.
When X makes a call to the executive, Y, and expresses no
preferences, the call is first routed to Y2, then Y3, then Y1, all as
a result of the proper setting of the q-values.
15 Speak to the Executive
15.1 Desired Behavior
This case is similar to that of Section 14, but this time the caller,
X, has a preference. X calls Y, but wants to speak directly to the
executive. X doesn't want the call to ring either the assistant or
the auto attendant (automata).
15.2 Solution
X's INVITE would look like, in part:
INVITE sip:Y@example.com SIP/2.0
Reject-Contact: *;attendant
Reject-Contact: *;automata
J. Rosenberg et. al. [Page 16]
Internet Draft Caller Preferences Usages January 30, 2003
Note that the caller uses two separate Reject-Contact header field
values, rather than a single one with two separate feature
parameters. The distinction is important. If X had use a single value
with two parameters, a matching UA would need to declare that it was
BOTH an attendant and an automata. If it only declared that it was
one of these, based on the matching rules in the caller preferences
specification, it would not be rejected.
The above request would result in the elimination of both Y2 and Y3
as contacts. The call would then be routed to Y1, as desired.
16 Mobile Phone Only
16.1 Desired Behavior
The situation is similar to that in Section 14. However, the
executive also has a mobile phone which they have registered. Caller
X knows that the owner of Y is traveling, and that an assistant is
covering the office phone. X wants to call Y and ring only the mobile
phone.
16.2 Solution
The mobile phone would generate a registration which looks like, in
part:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: sip:Y4@mobile.example.com;mobility="mobile";q=0.5
The caller would express their preference by generating an INVITE
which looks like, in part:
INVITE sip:Y@example.com SIP/2.0
Accept-Contact: *;mobility="mobile";require;explicit
All three contacts match. However, Y1 through Y3 match with a score
of zero. Y4 matches with a score of 1. Because of the require and
explicit tags, Y1 through Y3 are discarded, and only Y4 is used, as
desired.
17 Simultaneous Languages
J. Rosenberg et. al. [Page 17]
Internet Draft Caller Preferences Usages January 30, 2003
17.1 Desired Behavior
AOR Y is as in Section 10. Caller X, fluent in both English and
Spanish, has discovered that company's Spanish language documentation
is inconsistent with the English language documentation, and wants to
discuss the differences between the two. So X wants to speak with one
of the workers that is fluent in both English and Spanish.
17.2 Solution
The caller would generate an INVITE which looks like, in part:
INVITE sip:Y@example.com SIP/2.0
Accept-Contact: *;language="en";require
Accept-Contact: *;language="es";require
This will require a Contact URI to match both constraints. That means
it needs to support English and Spanish. This will achieve the
desired property.
Note that there are two separate Accept-Contact header fields. If the
caller had instead used this INVITE:
INVITE sip:Y@example.com SIP/2.0
Accept-Contact: *;language="en,es";require
It would have connected them to a UA that speaks either English or
Spanish, which is not what is desired here.
18 UA Routing
18.1 Desired Behavior
AOR Y has contacts Y1 and Y2. The addresses Y1 and Y2 are behind a
firewall and are not addressable by all callers. Caller X makes a
call to Y and is connected to Y1. The call fails for some reason, and
X wants to reestablish it, reaching only Y1.
18.2 Solution
There is currently no generally workable solution to this problem.
The best solution that exists does make use of caller preferences.
J. Rosenberg et. al. [Page 18]
Internet Draft Caller Preferences Usages January 30, 2003
Lets say that the Contact URI for Y1 was sip:Y1@host.example.com. The
caller would generate an INVITE which looks like, in part:
INVITE sip:Y@example.com SIP/2.0
Accept-Contact: sip:Y1@host.example.com;require
or, equivalently:
INVITE sip:Y@example.com SIP/2.0
Accept-Contact: *;uri-user="<Y1>";uri-domain="host.example.com";require
When this request arrives at the proxy for example.com, it attempts
to apply the caller preferences. Following the guidelines in the
caller preferences extension, Y1 would have included a uri-user and
uri-domain feature tag in its registration:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: sip:Y1@host.example.com;uri-user="<Y1>"
;uri-domain="host.example.com"
as would have Y2:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: sip:Y2@pc.example.com;uri-user="<Y2>"
;uri-domain="pc.example.com"
The proxy then applies the caller preferences. Only Y1 is a match.
So, Y2 is discarded, and the request is routed to Y1 as desired.
The difficulty is that this solution won't always work. In a multi-
proxy scenario, it is possible that the routing logic changes, and
therefore the request is never even routed to the proxy where Y1 has
registered.
J. Rosenberg et. al. [Page 19]
Internet Draft Caller Preferences Usages January 30, 2003
19 The Number you Have Called..
19.1 Desired Behavior
Consider once more the case of the executive, where the caller wishes
to reach only their mobile phone (Section 16). However, there is a
twist. The callee Y has moved to new address YY, and all the
configuration described for the callee now applies to YY. The old
address Y remains with a pair of statically assigned contacts. One
contact is YY. The other is M referencing an automaton that generates
a voice message reporting that the number has been changed. The
caller is unaware of the move and calls Y, requesting to reach the
mobile phone in exactly the same way they did in Section 16. The call
should connect to the mobile.
19.2 Solution
There would be four registrations against YY:
YY1 would generate a REGISTER that looks like, in part:
REGISTER sip:example.com SIP/2.0
To: sip:YY@example.com
Contact: sip:YY1@pc.example.com;q=0.1
YY2 would generate a REGISTER that looks like, in part:
REGISTER sip:example.com SIP/2.0
To: sip:YY@example.com
Contact: sip:YY2@pc2.example.com;attendant;q=1.0
YY3 would generate a REGISTER that looks like, in part:
REGISTER sip:example.com SIP/2.0
To: sip:YY@example.com
Contact: sip:YY3@pc3.example.com;attendant;automata;q=0.5
YY4 would generate a REGISTER that looks like, in part:
J. Rosenberg et. al. [Page 20]
Internet Draft Caller Preferences Usages January 30, 2003
REGISTER sip:example.com SIP/2.0
To: sip:YY@example.com
Contact: sip:YY4@mobile.example.com;mobility="mobile";q=0.5
Athough it would be configured administratively, there are two
registered contacts for Y. The first is for the forwarding:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: sip:YY@example.com;q=1.0
and the second for the automated answering service:
REGISTER sip:example.com SIP/2.0
To: sip:Y@example.com
Contact: sip:machine@example.com;automata;q=0.5
The caller, not knowing that Y has moved, calls Y and asks for their
mobile phone:
INVITE sip:Y@example.com SIP/2.0
Accept-Contact: *;mobility="mobile";require;explicit
This reaches the example.com proxy, which finds two registrations.
Only one of these is associated with feature parameters (the
automata). Therefore, the caller preferences are applied to it alone.
The feature sets match, but not explicitly. Since the require and
explicit tags are present, the contact for the automata is dropped.
The proxy therefore sends the call to sip:Y@example.com, which
remains because it was unfiltered by the caller preferences
processing. There, there are four registrations, all of which are
associated with feature parameters. The caller preferences are
applied. Only YY4 matches explicitly, however. As such, the call is
forwarded there, and the mobile phone rings.
20 The Number you Have Called, Take Two
J. Rosenberg et. al. [Page 21]
Internet Draft Caller Preferences Usages January 30, 2003
20.1 Desired Behavior
This use case is nearly identical to that of Section 19. However,
this time, the caller wishes to contact the personal phone of Y. They
don't feel strongly about it, and will accept other devices.
20.2 Solution
The INVITE generated by the caller in this case will look like:
INVITE sip:Y@example.com SIP/2.0
Accept-Contact: *;class="personal"
This reaches the example.com proxy. Once more, the first registration
(which forwards to the address-of-record for YY) is unaffected by the
caller preferences computation. The other contact, for the automata,
is a match, but its score is zero. Therefore, the first contact is
preferred. This causes the call to be routed to sip:YY@example.com.
There, all four contacts match, but none explicitly. Indeed, all four
have a score of zero against the explicit preference. However, they
each match the implicit preference for the INVITE method. The result
is that the the q-values are unaffected, and the call is routed to
YY2 first.
21 Security Considerations
There are no security considerations associated with this
specification.
22 IANA Considerations
There are no IANA considerations associated with this specification.
23 Author's Addresses
Jonathan Rosenberg
dynamicsoft
72 Eagle Rock Avenue
First Floor
East Hanover, NJ 07936
email: jdrosen@dynamicsoft.com
Paul Kyzivat
Cisco Systems
J. Rosenberg et. al. [Page 22]
Internet Draft Caller Preferences Usages January 30, 2003
email: pkyzivat@cisco.com
24 Normative References
25 Informative References
[1] H. Schulzrinne and J. Rosenberg, "Session initiation protocol
(SIP) caller preferences and callee capabilities," internet draft,
Internet Engineering Task Force, Nov. 2002. Work in progress.
[2] A. Mankin, S. Bradner, R. Mahy, D. Willis, J. Ott, and B. Rosen,
"Change process for the session initiation protocol (SIP)," RFC 3427,
Internet Engineering Task Force, Dec. 2002.
[3] G. Klyne, "A syntax for describing media feature sets," RFC 2533,
Internet Engineering Task Force, Mar. 1999.
[4] J. Rosenberg and H. Schulzrinne, "A session initiation protocol
(SIP) event package for dialog state," internet draft, Internet
Engineering Task Force, June 2002. Work in progress.
[5] J. Rosenberg, "A presence event package for the session
initiation protocol (SIP)," internet draft, Internet Engineering Task
Force, Dec. 2002. Work in progress.
[6] J. Rosenberg, J. Peterson, H. Schulzrinne, and G. Camarillo,
"Best current practices for third party call control in the session
initiation protocol," internet draft, Internet Engineering Task
Force, June 2002. Work in progress.
[7] B. Campbell and J. Rosenberg, "Instant message sessions in
SIMPLE," internet draft, Internet Engineering Task Force, Oct. 2002.
Work in progress.
[8] J. Lennox and H. Schulzrinne, "Call processing language framework
and requirements," RFC 2824, Internet Engineering Task Force, May
2000.
Full Copyright Statement
Copyright (c) The Internet Society (2003). All Rights Reserved.
This document and translations of it may be copied and furnished to
others, and derivative works that comment on or otherwise explain it
or assist in its implementation may be prepared, copied, published
J. Rosenberg et. al. [Page 23]
Internet Draft Caller Preferences Usages January 30, 2003
and distributed, in whole or in part, without restriction of any
kind, provided that the above copyright notice and this paragraph are
included on all such copies and derivative works. However, this
document itself may not be modified in any way, such as by removing
the copyright notice or references to the Internet Society or other
Internet organizations, except as needed for the purpose of
developing Internet standards in which case the procedures for
copyrights defined in the Internet Standards process must be
followed, or as required to translate it into languages other than
English.
The limited permissions granted above are perpetual and will not be
revoked by the Internet Society or its successors or assigns.
This document and the information contained herein is provided on an
"AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION
HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
J. Rosenberg et. al. [Page 24]
Table of Contents
1 Introduction ........................................ 4
2 Routing of INVITE and MESSAGE to different UA ....... 4
2.1 Desired Behavior .................................... 4
2.2 Solution ............................................ 4
3 Single Contact Not Matching Implicit Preferences .... 5
3.1 Desired Behavior .................................... 5
3.2 Solution ............................................ 6
4 Package-Based Routing ............................... 6
4.1 Desired Behavior .................................... 6
4.2 Solution ............................................ 6
5 Audio/Video vs. Audio Only .......................... 8
5.1 Desired Behavior .................................... 8
5.2 Solution ............................................ 8
6 Audio/Video vs. Audio Only: A/V UA Fails ............ 9
6.1 Desired Behavior .................................... 9
6.2 Solution ............................................ 9
7 Forcing Audio/Video ................................. 9
7.1 Desired Behavior .................................... 9
7.2 Solution ............................................ 9
8 Third Party Call Control - Forcing Media ............ 10
8.1 Desired Behavior .................................... 10
8.2 Solution ............................................ 10
9 Maximizing Media Overlaps ........................... 10
9.1 Desired Behavior .................................... 10
9.2 Solution ............................................ 10
10 Multilingual Lines .................................. 11
10.1 Desired Behavior .................................... 11
10.2 Solution ............................................ 11
11 I Hate Voicemail! .................................. 13
11.1 Desired Behavior .................................... 13
11.2 Solution ............................................ 13
12 I Hate People! ..................................... 14
12.1 Desired Behavior .................................... 14
13 Prefer Voicemail .................................... 14
13.1 Desired Behavior .................................... 15
13.2 Solution ............................................ 15
14 Routing to an Executive ............................. 15
14.1 Desired Behavior .................................... 15
14.2 Solution ............................................ 15
15 Speak to the Executive .............................. 16
15.1 Desired Behavior .................................... 16
J. Rosenberg et. al. [Page 1]
Internet Draft Caller Preferences Usages January 30, 2003
15.2 Solution ............................................ 16
16 Mobile Phone Only ................................... 17
16.1 Desired Behavior .................................... 17
16.2 Solution ............................................ 17
17 Simultaneous Languages .............................. 17
17.1 Desired Behavior .................................... 18
17.2 Solution ............................................ 18
18 UA Routing .......................................... 18
18.1 Desired Behavior .................................... 18
18.2 Solution ............................................ 18
19 The Number you Have Called.. ....................... 20
19.1 Desired Behavior .................................... 20
19.2 Solution ............................................ 20
20 The Number you Have Called, Take Two ................ 21
20.1 Desired Behavior .................................... 22
20.2 Solution ............................................ 22
21 Security Considerations ............................. 22
22 IANA Considerations ................................. 22
23 Author's Addresses .................................. 22
24 Normative References ................................ 23
25 Informative References .............................. 23
J. Rosenberg et. al. [Page 2]
| PAFTECH AB 2003-2026 | 2026-04-22 23:32:56 |