draft-ietf-sipping-app-interaction-framework-02.txt   draft-ietf-sipping-app-interaction-framework-03.txt 
SIPPING J. Rosenberg SIPPING J. Rosenberg
Internet-Draft dynamicsoft Internet-Draft Cisco Systems
Expires: January 17, 2005 July 19, 2004 Expires: April 24, 2005 October 24, 2004
A Framework for Application Interaction in the Session Initiation A Framework for Application Interaction in the Session Initiation
Protocol (SIP) Protocol (SIP)
draft-ietf-sipping-app-interaction-framework-02 draft-ietf-sipping-app-interaction-framework-03
Status of this Memo Status of this Memo
By submitting this Internet-Draft, I certify that any applicable By submitting this Internet-Draft, I certify that any applicable
patent or other IPR claims of which I am aware have been disclosed, patent or other IPR claims of which I am aware have been disclosed,
and any of which I become aware will be disclosed, in accordance with and any of which I become aware will be disclosed, in accordance with
RFC 3668. RFC 3668.
Internet-Drafts are working documents of the Internet Engineering Internet-Drafts are working documents of the Internet Engineering
Task Force (IETF), its areas, and its working groups. Note that Task Force (IETF), its areas, and its working groups. Note that
skipping to change at page 1, line 34 skipping to change at page 1, line 34
and may be updated, replaced, or obsoleted by other documents at any and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress." material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt. http://www.ietf.org/ietf/1id-abstracts.txt.
The list of Internet-Draft Shadow Directories can be accessed at The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html. http://www.ietf.org/shadow.html.
This Internet-Draft will expire on January 17, 2005. This Internet-Draft will expire on April 24, 2005.
Copyright Notice Copyright Notice
Copyright (C) The Internet Society (2004). All Rights Reserved. Copyright (C) The Internet Society (2004). All Rights Reserved.
Abstract Abstract
This document describes a framework for the interaction between users This document describes a framework for the interaction between users
and Session Initiation Protocol (SIP) based applications. By and Session Initiation Protocol (SIP) based applications. By
interacting with applications, users can guide the way in which they interacting with applications, users can guide the way in which they
skipping to change at page 2, line 12 skipping to change at page 2, line 12
user interface, through media streams. Stimulus signaling user interface, through media streams. Stimulus signaling
encompasses a wide range of mechanisms, ranging from clicking on encompasses a wide range of mechanisms, ranging from clicking on
hyperlinks, to pressing buttons, to traditional Dual Tone Multi hyperlinks, to pressing buttons, to traditional Dual Tone Multi
Frequency (DTMF) input. In all cases, stimulus signaling is Frequency (DTMF) input. In all cases, stimulus signaling is
supported through the use of markup languages, which play a key role supported through the use of markup languages, which play a key role
in this framework. in this framework.
Table of Contents Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 4
2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 5 2. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 4
3. A Model for Application Interaction . . . . . . . . . . . . . 8 3. A Model for Application Interaction . . . . . . . . . . . . . 7
3.1 Functional vs. Stimulus . . . . . . . . . . . . . . . . . 9 3.1 Functional vs. Stimulus . . . . . . . . . . . . . . . . . 8
3.2 Real-Time vs. Non-Real Time . . . . . . . . . . . . . . . 10 3.2 Real-Time vs. Non-Real Time . . . . . . . . . . . . . . . 9
3.3 Client-Local vs. Client-Remote . . . . . . . . . . . . . . 10 3.3 Client-Local vs. Client-Remote . . . . . . . . . . . . . . 9
3.4 Presentation Capable vs. Presentation Free . . . . . . . . 11 3.4 Presentation Capable vs. Presentation Free . . . . . . . . 10
4. Interaction Scenarios on Telephones . . . . . . . . . . . . . 13 4. Interaction Scenarios on Telephones . . . . . . . . . . . . . 11
4.1 Client Remote . . . . . . . . . . . . . . . . . . . . . . 13 4.1 Client Remote . . . . . . . . . . . . . . . . . . . . . . 11
4.2 Client Local . . . . . . . . . . . . . . . . . . . . . . . 13 4.2 Client Local . . . . . . . . . . . . . . . . . . . . . . . 12
4.3 Flip-Flop . . . . . . . . . . . . . . . . . . . . . . . . 14 4.3 Flip-Flop . . . . . . . . . . . . . . . . . . . . . . . . 12
5. Framework Overview . . . . . . . . . . . . . . . . . . . . . . 16 5. Framework Overview . . . . . . . . . . . . . . . . . . . . . . 13
6. Deployment Topologies . . . . . . . . . . . . . . . . . . . . 19 6. Deployment Topologies . . . . . . . . . . . . . . . . . . . . 15
6.1 Third Party Application . . . . . . . . . . . . . . . . . 19 6.1 Third Party Application . . . . . . . . . . . . . . . . . 16
6.2 Co-Resident Application . . . . . . . . . . . . . . . . . 19 6.2 Co-Resident Application . . . . . . . . . . . . . . . . . 16
6.3 Third Party Application and User Device Proxy . . . . . . 20 6.3 Third Party Application and User Device Proxy . . . . . . 17
6.4 Proxy Application . . . . . . . . . . . . . . . . . . . . 22 6.4 Proxy Application . . . . . . . . . . . . . . . . . . . . 18
7. Application Behavior . . . . . . . . . . . . . . . . . . . . . 23 7. Application Behavior . . . . . . . . . . . . . . . . . . . . . 19
7.1 Client Local Interfaces . . . . . . . . . . . . . . . . . 23 7.1 Client Local Interfaces . . . . . . . . . . . . . . . . . 19
7.1.1 Discovering Capabilities . . . . . . . . . . . . . . . 23 7.1.1 Discovering Capabilities . . . . . . . . . . . . . . . 19
7.1.2 Pushing an Initial Interface Component . . . . . . . . 23 7.1.2 Pushing an Initial Interface Component . . . . . . . . 20
7.1.3 Updating an Interface Component . . . . . . . . . . . 25 7.1.3 Updating an Interface Component . . . . . . . . . . . 22
7.1.4 Terminating an Interface Component . . . . . . . . . . 26 7.1.4 Terminating an Interface Component . . . . . . . . . . 22
7.2 Client Remote Interfaces . . . . . . . . . . . . . . . . . 26 7.2 Client Remote Interfaces . . . . . . . . . . . . . . . . . 23
7.2.1 Originating and Terminating Applications . . . . . . . 27 7.2.1 Originating and Terminating Applications . . . . . . . 23
7.2.2 Intermediary Applications . . . . . . . . . . . . . . 27 7.2.2 Intermediary Applications . . . . . . . . . . . . . . 24
8. User Agent Behavior . . . . . . . . . . . . . . . . . . . . . 28 8. User Agent Behavior . . . . . . . . . . . . . . . . . . . . . 24
8.1 Advertising Capabilities . . . . . . . . . . . . . . . . . 28 8.1 Advertising Capabilities . . . . . . . . . . . . . . . . . 24
8.2 Receiving User Interface Components . . . . . . . . . . . 28 8.2 Receiving User Interface Components . . . . . . . . . . . 25
8.3 Mapping User Input to User Interface Components . . . . . 30 8.3 Mapping User Input to User Interface Components . . . . . 26
8.4 Receiving Updates to User Interface Components . . . . . . 30 8.4 Receiving Updates to User Interface Components . . . . . . 27
8.5 Terminating a User Interface Component . . . . . . . . . . 31 8.5 Terminating a User Interface Component . . . . . . . . . . 27
9. Inter-Application Feature Interaction . . . . . . . . . . . . 32 9. Inter-Application Feature Interaction . . . . . . . . . . . . 28
9.1 Client Local UI . . . . . . . . . . . . . . . . . . . . . 32 9.1 Client Local UI . . . . . . . . . . . . . . . . . . . . . 28
9.2 Client-Remote UI . . . . . . . . . . . . . . . . . . . . . 33 9.2 Client-Remote UI . . . . . . . . . . . . . . . . . . . . . 29
10. Intra Application Feature Interaction . . . . . . . . . . . 34 10. Intra Application Feature Interaction . . . . . . . . . . . 29
11. Example Call Flow . . . . . . . . . . . . . . . . . . . . . 35 11. Example Call Flow . . . . . . . . . . . . . . . . . . . . . 30
12. Security Considerations . . . . . . . . . . . . . . . . . . 40 12. Security Considerations . . . . . . . . . . . . . . . . . . 35
13. IANA Considerations . . . . . . . . . . . . . . . . . . . . 41 13. IANA Considerations . . . . . . . . . . . . . . . . . . . . 36
13.1 SIP Option Tag . . . . . . . . . . . . . . . . . . . . . . 41 13.1 SIP Option Tag . . . . . . . . . . . . . . . . . . . . . . 36
13.2 Header Field Parameter . . . . . . . . . . . . . . . . . . 41 13.2 Header Field Parameter . . . . . . . . . . . . . . . . . . 36
14. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 42 14. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 36
15. References . . . . . . . . . . . . . . . . . . . . . . . . . 43 15. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 36
15.1 Normative References . . . . . . . . . . . . . . . . . . . . 43 16. References . . . . . . . . . . . . . . . . . . . . . . . . . 37
15.2 Informative References . . . . . . . . . . . . . . . . . . . 43 16.1 Normative References . . . . . . . . . . . . . . . . . . . . 37
Author's Address . . . . . . . . . . . . . . . . . . . . . . . 44 16.2 Informative References . . . . . . . . . . . . . . . . . . . 37
Intellectual Property and Copyright Statements . . . . . . . . 45 Author's Address . . . . . . . . . . . . . . . . . . . . . . . 38
Intellectual Property and Copyright Statements . . . . . . . . 39
1. Introduction 1. Introduction
The Session Initiation Protocol (SIP) [1] provides the ability for The Session Initiation Protocol (SIP) [1] provides the ability for
users to initiate, manage, and terminate communications sessions. users to initiate, manage, and terminate communications sessions.
Frequently, these sessions will involve a SIP application. A SIP Frequently, these sessions will involve a SIP application. A SIP
application is defined as a program running on a SIP-based element application is defined as a program running on a SIP-based element
(such as a proxy or user agent) that provides some value-added (such as a proxy or user agent) that provides some value-added
function to a user or system administrator. Examples of SIP function to a user or system administrator. Examples of SIP
applications include pre-paid calling card calls, conferencing, and applications include pre-paid calling card calls, conferencing, and
skipping to change at page 5, line 6 skipping to change at page 4, line 35
semantics of the application, whereas stimulus interaction does not. semantics of the application, whereas stimulus interaction does not.
Stimulus signaling allows for applications to be built without Stimulus signaling allows for applications to be built without
requiring modifications to the user device. Stimulus interaction is requiring modifications to the user device. Stimulus interaction is
the subject of this framework. The framework provides a model for the subject of this framework. The framework provides a model for
how users interact with applications through user interfaces, and how how users interact with applications through user interfaces, and how
user interfaces and applications can be distributed throughout a user interfaces and applications can be distributed throughout a
network. This model is then used to describe how applications can network. This model is then used to describe how applications can
instantiate and manage user interfaces. instantiate and manage user interfaces.
2. Definitions 2. Definitions
SIP Application: A SIP application is defined as a program running on SIP Application: A SIP application is defined as a program running on
a SIP-based element (such as a proxy or user agent) that provides a SIP-based element (such as a proxy or user agent) that provides
some value-added function to a user or system administrator. some value-added function to a user or system administrator.
Examples of SIP applications include pre-paid calling card calls, Examples of SIP applications include pre-paid calling card calls,
conferencing, and presence-based [11] call routing. conferencing, and presence-based [11] call routing.
Application Interaction: The process by which a user provides input Application Interaction: The process by which a user provides input
to an application. to an application.
Real-Time Application Interaction: Application interaction that takes Real-Time Application Interaction: Application interaction that takes
place while an application instance is executing. For example, place while an application instance is executing. For example,
when a user enters their PIN number into a pre-paid calling card when a user enters their PIN number into a pre-paid calling card
application, this is real-time application interaction. application, this is real-time application interaction.
Non-Real Time Application Interaction: Application interaction that Non-Real Time Application Interaction: Application interaction that
takes place asynchronously with the execution of the application. takes place asynchronously with the execution of the application.
Generally, non-real time application interaction is accomplished Generally, non-real time application interaction is accomplished
through provisioning. through provisioning.
Functional Application Interaction: Application interaction is Functional Application Interaction: Application interaction is
functional when the user device has an understanding of the functional when the user device has an understanding of the
semantics of the interaction with the application. semantics of the interaction with the application.
Stimulus Application Interaction: Application interaction is Stimulus Application Interaction: Application interaction is
considered to be stimulus when the user device has no considered to be stimulus when the user device has no
understanding of the semantics of the interaction with the understanding of the semantics of the interaction with the
application. application.
User Interface (UI): The user interface provides the user with User Interface (UI): The user interface provides the user with
context in order to make decisions about what they want. The user context in order to make decisions about what they want. The user
enters information into the user interface. The user interface interacts with the device, which conveys the user input the the
interprets the information, and passes it to the application. user interface. The user interface interprets the information,
and passes it to the application.
User Interface Component: A piece of user interface which operates User Interface Component: A piece of user interface which operates
independently of other pieces of the user interface. For example, independently of other pieces of the user interface. For example,
a user might have two separate web interfaces to a pre-paid a user might have two separate web interfaces to a pre-paid
calling card application - one for hanging up and making another calling card application - one for hanging up and making another
call, and another for entering the username and PIN. call, and another for entering the username and PIN.
User Device: The software or hardware system that the user directly User Device: The software or hardware system that the user directly
interacts with in order to communicate with the application. An interacts with in order to communicate with the application. An
example of a user device is a telephone. Another example is a PC example of a user device is a telephone. Another example is a PC
with a web browser. with a web browser.
User Device Proxy: A software or hardware system that a user User Device Proxy: A software or hardware system that a user
indirectly interacts through in order to communicate with the indirectly interacts through in order to communicate with the
application. This indirection can be through a network. An application. This indirection can be through a network. An
example is a gateway from IP to the Public Switched Telephone example is a gateway from IP to the Public Switched Telephone
Network (PSTN). It acts a user device proxy, acting on behalf of Network (PSTN). It acts a user device proxy, acting on behalf of
the user on the circuit network. the user on the circuit network.
User Input: The "raw" information passed from a user to a user User Input: The "raw" information passed from a user to a user
interface. Examples of user input include a spoken word or a interface. Examples of user input include a spoken word or a
click on a hyperlink. click on a hyperlink.
Client-Local User Interface: A user interface which is co-resident Client-Local User Interface: A user interface which is co-resident
with the user device. with the user device.
Client-Remote User Interface: A user interface which executes Client-Remote User Interface: A user interface which executes
remotely from the user device. In this case, a standardized remotely from the user device. In this case, a standardized
interface is needed between the user device and the user interface is needed between the user device and the user
interface. Typically, this is done through media sessions - interface. Typically, this is done through media sessions -
audio, video, or application sharing. audio, video, or application sharing.
Media Interaction: A means of separating a user and a user interface Media Interaction: A means of separating a user and a user interface
by connecting them with media streams. by connecting them with media streams.
Interactive Voice Response (IVR): An IVR is a type of user interface Interactive Voice Response (IVR): An IVR is a type of user interface
that allows users to speak commands to the application, and hear that allows users to speak commands to the application, and hear
responses to those commands prompting for more information. responses to those commands prompting for more information.
Prompt-and-Collect: The basic primitive of an IVR user interface. Prompt-and-Collect: The basic primitive of an IVR user interface.
The user is presented with a voice option, and the user speaks The user is presented with a voice option, and the user speaks
their choice. their choice.
Barge-In: In an IVR user interface, a user is prompted to enter some Barge-In: In an IVR user interface, a user is prompted to enter some
information. With some prompts, the user may enter the requested information. With some prompts, the user may enter the requested
information before the prompt completes. In that case, the prompt information before the prompt completes. In that case, the prompt
ceases. The act of entering the information before completion of ceases. The act of entering the information before completion of
the prompt is referred to as barge-in. the prompt is referred to as barge-in.
Focus: A user interface component has focus when user input is Focus: A user interface component has focus when user input is
provided fed to it, as opposed to any other user interface provided fed to it, as opposed to any other user interface
components. This is not to be confused with the term focus within components. This is not to be confused with the term focus within
the SIP conferencing framework, which refers to the center user the SIP conferencing framework, which refers to the center user
agent in a conference [13]. agent in a conference [13].
Focus Determination: The process by which the user device determines Focus Determination: The process by which the user device determines
which user interface component will receive the user input. which user interface component will receive the user input.
Focusless User Interface: A user interface which has no ability to Focusless User Interface: A user interface which has no ability to
perform focus determination. An example of a focusless user perform focus determination. An example of a focusless user
interface is a keypad on a telephone. interface is a keypad on a telephone.
Presentation Capable UI: A user interface which can prompt the user Presentation Capable UI: A user interface which can prompt the user
with input, collect results, and then prompt the user with new with input, collect results, and then prompt the user with new
information based on those results. information based on those results.
Presentation Free UI: A user interface which cannot prompt the user Presentation Free UI: A user interface which cannot prompt the user
with information. with information.
Feature Interaction: A class of problems which result when multiple Feature Interaction: A class of problems which result when multiple
applications or application components are trying to provide applications or application components are trying to provide
services to a user at the same time. services to a user at the same time.
Inter-Application Feature Interaction: Feature interactions that Inter-Application Feature Interaction: Feature interactions that
occur between applications. occur between applications.
DTMF: Dual-Tone Multi-Frequency. DTMF refer to a class of tones DTMF: Dual-Tone Multi-Frequency. DTMF refer to a class of tones
generated by circuit switched telephony devices when the user generated by circuit switched telephony devices when the user
presses a key on the keypad. As a result, DTMF and keypad input presses a key on the keypad. As a result, DTMF and keypad input
are often used synonymously, when in fact one of them (DTMF) is are often used synonymously, when in fact one of them (DTMF) is
merely a means of conveying the other (the keypad input) to a merely a means of conveying the other (the keypad input) to a
client-remote user interface (the switch, for example). client-remote user interface (the switch, for example).
Application Instance: A single execution path of a SIP application. Application Instance: A single execution path of a SIP application.
Originating Application: A SIP application which acts as a UAC, Originating Application: A SIP application which acts as a UAC,
making a call on behalf of the user. making a call on behalf of the user.
Terminating Application: A SIP application which acts as a UAS, Terminating Application: A SIP application which acts as a UAS,
answering a call generated by a user. IVR applications are answering a call generated by a user. IVR applications are
terminating applications. terminating applications.
Intermediary Application: A SIP application which is neither the Intermediary Application: A SIP application which is neither the
caller or callee, but rather, a third party involved in a call. caller or callee, but rather, a third party involved in a call.
3. A Model for Application Interaction 3. A Model for Application Interaction
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
| | | | | | | | | | | | | | | |
| | | U | | U | | A | | | | U | | U | | A |
| | Input | s | Input | s | Results | p | | | Input | s | Input | s | Results | p |
| | ---------> | e | ---------> | e | ----------> | p | | | ---------> | e | ---------> | e | ----------> | p |
skipping to change at page 8, line 31 skipping to change at page 7, line 45
+---+ +---+ +---+ +---+ +---+ +---+ +---+ +---+
Figure 1: Model for Real-Time Interactions Figure 1: Model for Real-Time Interactions
Figure 1 presents a general model for how users interact with Figure 1 presents a general model for how users interact with
applications. Generally, users interact with a user interface applications. Generally, users interact with a user interface
through a user device. A user device can be a telephone, or it can through a user device. A user device can be a telephone, or it can
be a PC with a web browser. Its role is to pass the user input from be a PC with a web browser. Its role is to pass the user input from
the user, to the user interface. The user interface provides the the user, to the user interface. The user interface provides the
user with context in order to make decisions about what they want. user with context in order to make decisions about what they want.
The user enters information into the user interface. The user The user interacts with the device, causing information to be passed
interface interprets the information, and passes it as a user from the device to the user interface. The user interface interprets
interface event to the application. The application may be able to the information, and passes it as a user interface event to the
modify the user interface based on this event. Whether or not this application. The application may be able to modify the user
is possible depends on the type of user interface. interface based on this event. Whether or not this is possible
depends on the type of user interface.
User interfaces are fundamentally about rendering and interpretation. User interfaces are fundamentally about rendering and interpretation.
Rendering refers to the way in which the user is provided context. Rendering refers to the way in which the user is provided context.
This can be through hyperlinks, images, sounds, videos, text, and so This can be through hyperlinks, images, sounds, videos, text, and so
on. Interpretation refers to the way in which the user interface on. Interpretation refers to the way in which the user interface
takes the "raw" data provided by the user, and returns the result to takes the "raw" data provided by the user, and returns the result to
the application as a meaningful event, abstracted from the the application as a meaningful event, abstracted from the
particulars of the user interface. As an example, consider a particulars of the user interface. As an example, consider a
pre-paid calling card application. The user interface worries about pre-paid calling card application. The user interface worries about
details such as what prompt the user is provided, whether the voice details such as what prompt the user is provided, whether the voice
skipping to change at page 20, line 19 skipping to change at page 17, line 7
| UI A'-------------------X' | | UI A'-------------------X' |
+--------+ REFER/HTTP +-----+ +--------+ REFER/HTTP +-----+
Figure 3: Co-Resident Topology Figure 3: Co-Resident Topology
In this deployment topology, the application is co-resident with one In this deployment topology, the application is co-resident with one
of the user agents (the one on the right in the picture above). This of the user agents (the one on the right in the picture above). This
application can install client-local user interface components on the application can install client-local user interface components on the
other user agent, which is acting as the user device. These other user agent, which is acting as the user device. These
components can be installed using either SUBSCRIBE, for presentation components can be installed using either SUBSCRIBE, for presentation
free user interfaces, or REFER, for presentation capable ones. free user interfaces, or REFER, for presentation capable ones. This
situation typically arises when the application wishes to install UI
components on a presentation capable user interface. If the only
user input is via keypad input, the framework is not needed per se,
because the UA/application will receive the input via RFC 2833 in the
RTP stream.
If the application resides in the called party, it is called a If the application resides in the called party, it is called a
terminating application. If it resides in the calling party, it is terminating application. If it resides in the calling party, it is
called an originating application. called an originating application.
This kind of topology is common in protocol converter and gateway This kind of topology is common in protocol converter and gateway
applications. applications.
6.3 Third Party Application and User Device Proxy 6.3 Third Party Application and User Device Proxy
skipping to change at page 26, line 38 skipping to change at page 23, line 18
point. For presentation capable user interfaces, this is not point. For presentation capable user interfaces, this is not
possible. For presentation free user interfaces, the application MAY possible. For presentation free user interfaces, the application MAY
terminate the component by sending a SUBSCRIBE with Expires equal to terminate the component by sending a SUBSCRIBE with Expires equal to
zero. This terminates the subscription, which removes the UI zero. This terminates the subscription, which removes the UI
component. component.
A client can remove a UI component at any time. For presentation A client can remove a UI component at any time. For presentation
capable UI, this is analagous to the user dismissing the web form capable UI, this is analagous to the user dismissing the web form
window. There is no mechanism provided for reporting this kind of window. There is no mechanism provided for reporting this kind of
event to the application. The application MUST be prepared to time event to the application. The application MUST be prepared to time
out, and never receive input from a user. For presentation free user out, and never receive input from a user. The duration of this
timeout is application dependent. For presentation free user
interfaces, the UA can explicitly terminate the subscription. This interfaces, the UA can explicitly terminate the subscription. This
will result in the generation of a NOTIFY with a Subscription-State will result in the generation of a NOTIFY with a Subscription-State
header field equal to "terminated". header field equal to "terminated".
7.2 Client Remote Interfaces 7.2 Client Remote Interfaces
As an alternative to, or in conjunction with client local user As an alternative to, or in conjunction with client local user
interfaces, an application can make use of client remote user interfaces, an application can make use of client remote user
interfaces. These user interfaces can execute co-resident with the interfaces. These user interfaces can execute co-resident with the
application itself (in which case no standardized interfaces between application itself (in which case no standardized interfaces between
skipping to change at page 27, line 48 skipping to change at page 24, line 28
originating/terminating applications, and more complex. Intermediary originating/terminating applications, and more complex. Intermediary
applications are applications that are neither the actual caller or applications are applications that are neither the actual caller or
called party. Rather, they represent a "third party" that wishes to called party. Rather, they represent a "third party" that wishes to
interact with the user. The classic example is the ubiquitous interact with the user. The classic example is the ubiquitous
pre-paid calling card application. pre-paid calling card application.
In order for the intermediary application to add a client remote user In order for the intermediary application to add a client remote user
interface, it needs to manipulate the media streams of the user agent interface, it needs to manipulate the media streams of the user agent
to terminate on that user interface. This also introduces a to terminate on that user interface. This also introduces a
fundamental feature interaction issue. Since the intermediary fundamental feature interaction issue. Since the intermediary
application is not an actual participant in the call, how does the application is not an actual participant in the call, the user will
user interact with the intermediary application, and its actual peer need to interact with both the intermediary application and its peer
in the dialog, at the same time? This is discussed in more detail in in the dialog. Doing both at the same time is complicated, and is
Section 9. discussed in more detail in Section 9.
8. User Agent Behavior 8. User Agent Behavior
8.1 Advertising Capabilities 8.1 Advertising Capabilities
In order to participate in applications that make use of stimulus In order to participate in applications that make use of stimulus
interfaces, a user agent needs to advertise its interaction interfaces, a user agent needs to advertise its interaction
capabilities. capabilities.
If a user agent supports presentation capable user interfaces, it If a user agent supports presentation capable user interfaces, it
skipping to change at page 31, line 18 skipping to change at page 27, line 46
the event package. the event package.
8.5 Terminating a User Interface Component 8.5 Terminating a User Interface Component
Termination of a presentation capable user interface component is a Termination of a presentation capable user interface component is a
trivial procedure. The user agent merely dismisses the window (or trivial procedure. The user agent merely dismisses the window (or
equivalent). The fact that the component is dismissed is not equivalent). The fact that the component is dismissed is not
communicated to the application. As such, it is purely a local communicated to the application. As such, it is purely a local
matter. matter.
In the case of a presentation free user interface, if the user wishes In the case of a presentation free user interface, the user might
to cease interacting with the application, it SHOULD generate a wish to cease interacting with the application. However, most
NOTIFY request with a Subscription-State equal to "terminated" and a presentation free user interfaces will not have a way for the user to
reason of "rejected". This tells the application that the component signal this through the device. If such a mechanism did exist, the
has been removed, and that it should not attempt to re-subscribe. UA SHOULD generate a NOTIFY request with a Subscription-State equal
to "terminated" and a reason of "rejected". This tells the
application that the component has been removed, and that it should
not attempt to re-subscribe.
9. Inter-Application Feature Interaction 9. Inter-Application Feature Interaction
The inter-application feature interaction problem is inherent to The inter-application feature interaction problem is inherent to
stimulus signaling. Whenever there are multiple applications, there stimulus signaling. Whenever there are multiple applications, there
are multiple user interfaces. When the user provides an input, to are multiple user interfaces. The system has to determine to which
which user interface is the input destined? That question is the user interface any particular input is destined. That question is
essence of the inter-application feature interaction problem. the essence of the inter-application feature interaction problem.
Inter-application feature interaction is not an easy problem to Inter-application feature interaction is not an easy problem to
resolve. For now, we consider separately the issues for client-local resolve. For now, we consider separately the issues for client-local
and client-remote user interface components. and client-remote user interface components.
9.1 Client Local UI 9.1 Client Local UI
When the user interface itself resides locally on the client device, When the user interface itself resides locally on the client device,
the feature interaction problem is actually much simpler. The end the feature interaction problem is actually much simpler. The end
device knows explicitly about each application, and therefore can device knows explicitly about each application, and therefore can
skipping to change at page 43, line 5 skipping to change at page 36, line 40
This document was produced as a result of discussions amongst the This document was produced as a result of discussions amongst the
application interaction design team. All members of this team application interaction design team. All members of this team
contributed significantly to the ideas embodied in this document. contributed significantly to the ideas embodied in this document.
The members of this team were: The members of this team were:
Eric Burger Eric Burger
Cullen Jennings Cullen Jennings
Robert Fairlie-Cuninghame Robert Fairlie-Cuninghame
15. References 15. Acknowledgements
15.1 Normative References The authors would like to thank Martin Dolly and Rohan Mahy for their
input and comments. Thanks to Allison Mankin for her support of this
work.
16. References
16.1 Normative References
[1] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A., [1] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP: Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP:
Session Initiation Protocol", RFC 3261, June 2002. Session Initiation Protocol", RFC 3261, June 2002.
[2] Rosenberg, J. and H. Schulzrinne, "Reliability of Provisional [2] Rosenberg, J. and H. Schulzrinne, "Reliability of Provisional
Responses in Session Initiation Protocol (SIP)", RFC 3262, June Responses in Session Initiation Protocol (SIP)", RFC 3262, June
2002. 2002.
[3] Roach, A., "Session Initiation Protocol (SIP)-Specific Event [3] Roach, A., "Session Initiation Protocol (SIP)-Specific Event
Notification", RFC 3265, June 2002. Notification", RFC 3265, June 2002.
[4] McGlashan, S., Lucas, B., Porter, B., Rehor, K., Burnett, D., [4] McGlashan, S., Lucas, B., Porter, B., Rehor, K., Burnett, D.,
Carter, J., Ferrans, J. and A. Hunt, "Voice Extensible Markup Carter, J., Ferrans, J. and A. Hunt, "Voice Extensible Markup
Language (VoiceXML) Version 2.0", W3C CR CR-voicexml20-20030220, Language (VoiceXML) Version 2.0", W3C CR CR-voicexml20-20030220,
February 2003. February 2003.
[5] Rosenberg, J., "Indicating User Agent Capabilities in the [5] Rosenberg, J., Schulzrinne, H. and P. Kyzivat, "Indicating User
Session Initiation Protocol (SIP)", Agent Capabilities in the Session Initiation Protocol (SIP)",
draft-ietf-sip-callee-caps-03 (work in progress), January 2004. RFC 3840, August 2004.
[6] Sparks, R., "The Session Initiation Protocol (SIP) Refer [6] Sparks, R., "The Session Initiation Protocol (SIP) Refer
Method", RFC 3515, April 2003. Method", RFC 3515, April 2003.
[7] Burger, E., "A Session Initiation Protocol (SIP) Event Package [7] Burger, E., "A Session Initiation Protocol (SIP) Event Package
for Key Press Stimulus (KPML)", draft-ietf-sipping-kpml-03 for Key Press Stimulus (KPML)", draft-ietf-sipping-kpml-04
(work in progress), May 2004. (work in progress), July 2004.
[8] Rosenberg, J., "Obtaining and Using Globally Routable User Agent [8] Rosenberg, J., "Obtaining and Using Globally Routable User Agent
(UA) URIs (GRUU) in the Session Initiation Protocol (SIP)", (UA) URIs (GRUU) in the Session Initiation Protocol (SIP)",
draft-ietf-sip-gruu-01 (work in progress), February 2004. draft-ietf-sip-gruu-02 (work in progress), July 2004.
[9] Camarillo, G., "The Internet Assigned Number Authority (IANA) [9] Camarillo, G., "The Internet Assigned Number Authority (IANA)
Header Field Parameter Registry for the Session Initiation Header Field Parameter Registry for the Session Initiation
Protocol (SIP)", draft-ietf-sip-parameter-registry-02 (work in Protocol (SIP)", draft-ietf-sip-parameter-registry-02 (work in
progress), June 2004. progress), June 2004.
15.2 Informative References 16.2 Informative References
[10] Peterson, J., "Enhancements for Authenticated Identity [10] Peterson, J., "Enhancements for Authenticated Identity
Management in the Session Initiation Protocol (SIP)", Management in the Session Initiation Protocol (SIP)",
draft-ietf-sip-identity-02 (work in progress), May 2004. draft-ietf-sip-identity-03 (work in progress), September 2004.
[11] Day, M., Rosenberg, J. and H. Sugano, "A Model for Presence and [11] Day, M., Rosenberg, J. and H. Sugano, "A Model for Presence and
Instant Messaging", RFC 2778, February 2000. Instant Messaging", RFC 2778, February 2000.
[12] Jennings, C., Peterson, J. and M. Watson, "Private Extensions [12] Jennings, C., Peterson, J. and M. Watson, "Private Extensions
to the Session Initiation Protocol (SIP) for Asserted Identity to the Session Initiation Protocol (SIP) for Asserted Identity
within Trusted Networks", RFC 3325, November 2002. within Trusted Networks", RFC 3325, November 2002.
[13] Rosenberg, J., "A Framework for Conferencing with the Session [13] Rosenberg, J., "A Framework for Conferencing with the Session
Initiation Protocol", Initiation Protocol",
draft-ietf-sipping-conferencing-framework-01 (work in draft-ietf-sipping-conferencing-framework-02 (work in
progress), October 2003. progress), June 2004.
[14] Rosenberg, J., Schulzrinne, H. and P. Kyzivat, "Caller [14] Rosenberg, J., Schulzrinne, H. and P. Kyzivat, "Caller
Preferences for the Session Initiation Protocol (SIP)", Preferences for the Session Initiation Protocol (SIP)", RFC
draft-ietf-sip-callerprefs-10 (work in progress), October 2003. 3841, August 2004.
[15] Rosenberg, J. and H. Schulzrinne, "An INVITE Inititiated Dialog [15] Rosenberg, J. and H. Schulzrinne, "An INVITE Inititiated Dialog
Event Package for the Session Initiation Protocol (SIP)", Event Package for the Session Initiation Protocol (SIP)",
draft-ietf-sipping-dialog-package-04 (work in progress), draft-ietf-sipping-dialog-package-04 (work in progress),
February 2004. February 2004.
[16] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson, [16] Schulzrinne, H., Casner, S., Frederick, R. and V. Jacobson,
"RTP: A Transport Protocol for Real-Time Applications", RFC "RTP: A Transport Protocol for Real-Time Applications", RFC
3550, July 2003. 3550, July 2003.
skipping to change at page 44, line 39 skipping to change at page 38, line 37
[18] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with [18] Rosenberg, J. and H. Schulzrinne, "An Offer/Answer Model with
Session Description Protocol (SDP)", RFC 3264, June 2002. Session Description Protocol (SDP)", RFC 3264, June 2002.
[19] Rosenberg, J., "A Session Initiation Protocol (SIP) Event [19] Rosenberg, J., "A Session Initiation Protocol (SIP) Event
Package for Registrations", RFC 3680, March 2004. Package for Registrations", RFC 3680, March 2004.
Author's Address Author's Address
Jonathan Rosenberg Jonathan Rosenberg
dynamicsoft Cisco Systems
600 Lanidex Plaza 600 Lanidex Plaza
Parsippany, NJ 07054 Parsippany, NJ 07054
US US
Phone: +1 973 952-5000 Phone: +1 973 952-5000
EMail: jdrosen@dynamicsoft.com EMail: jdrosen@dynamicsoft.com
URI: http://www.jdrosen.net URI: http://www.jdrosen.net
Intellectual Property Statement Intellectual Property Statement
 End of changes. 

This html diff was produced by rfcdiff 1.23, available from http://www.levkowetz.com/ietf/tools/rfcdiff/