Internet DRAFT - draft-coulombe-message-adaptation-framework
draft-coulombe-message-adaptation-framework
Network Working Group S.Coulombe, P.Pessi,
INTERNET-DRAFT J.Costa-Requena
<draft-coulombe-message-adaptation- Nokia
framework-00>
Expires: April 2003 October 2002
A framework for message adaptation in the context of SIP Instant
Messaging and Presence applications
draft-coulombe-message-adaptation-framework-00
Status of this memo
This document is an Internet-Draft and is subject to 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/1id-abstracts.html
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
Abstract
This Internet-Draft presents a message adaptation framework that
addresses the requirements presented in the document draft-coulombe-
message-adaptation-requirements-00. This document focuses mostly on
the issue of terminal capability exchange and the overall message
adaptation and delivery process.
Coulombe, Pessi, Costa-RequenaExpires: April 2003 [Page 1]
INTERNET-DRAFTdraft-coulombe-message-adaptation-framework-00October 2002
Table of Contents
1. Terminology.....................................................2
2. Introduction....................................................2
3. Proposed SIP message adaptation framework.......................3
3.1 The overall adaptation framework.............................3
3.1.1 General adaptation framework.............................3
3.1.2 Special case of Presence.................................4
3.1.3 Using Content Indirection................................4
3.1.4 Special case: CPI not part of registration data..........5
3.2 Capability Exchange..........................................6
3.2.1.1 Capability exchange method using Caller Preferences
and Callee Capabilities..............................7
3.2.1.2 Capability exchange method using header extensions...9
3.2.2 Capability descriptors..................................10
4. Security consideration.........................................11
5. Future work....................................................11
5.1 Capability and user Preference Information exchange.........11
5.2 Adaptation protocol.........................................12
5.3 Usage of content indirection in adaptation..................12
5.4 Usability issues............................................12
.....................12
7. References.....................................................12
8. Author's Address...............................................13
9. Expiration Date................................................14
1. Terminology
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
"SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
document are to be interpreted as described in RFC 2119 [1].
2. Introduction
The requirement document [5] identified the need for a content
adaptation framework in the scope of SIP Instant Messaging and
Presence applications.
This document proposes such a framework and addresses the important
issue of terminal capability exchange. The requirement of defining an
adaptation/transcoding protocol is left for future work since it is
more important to define the right adaptation framework first.
Coulombe, Pessi, Costa-RequenaExpires: April 2003 [Page 2]
INTERNET-DRAFTdraft-coulombe-message-adaptation-framework-00October 2002
3. Proposed SIP message adaptation framework
This section proposes an adaptation framework for SIP Instant
Messaging and Presence applications.
3.1 The overall adaptation framework
3.1.1 General adaptation framework
The proposed message adaptation framework is illustrated in Figure 1.
First, when a terminal registers to its SIP registrar, it provides its
Capabilities and the user's Preferences Information (CPI) using an
agreed method such as SIP header extension (described below), Caller
Preferences and Callee Capabilities [6], etc. Details of how the
information can be exchanged is provided in sub-section 3.2.
User 1 User 2
1:REGISTER (with CPI) *******************
----------------------->* Home SIP *
* proxy/registrar * 2:MESSAGE (original msg)
* *<------------------------
4:MESSAGE (adapted msg) * 3:Adapt message *
<-----------------------* *
*******************
Figure 1: Adaptation framework for SIP messages.
The registrar stores the received CPI along with the usual
registration data (e.g. contact address). Note that storing the
registration data is an operation already handled by registrars.
Extending their functionality to store CPI in addition should be
trivial although it requires more storage capacity.
Later, when a SIP message arrives to the recipient's home SIP proxy
(step 2 in Figure 1), the SIP proxy uses the registration data
gathered by the SIP registrar (often the proxy and registrar are the
same entity or at least share common registration database) to learn
about the present contact address along with the associated
preferences and terminal capabilities. The messages of interest here
can be Instant Messages (MESSAGE method), Notifications (NOTIFY
method) or any other request messages that contain message body which
the proxy can adapt.
The SIP proxy then adapts the message to meet the terminal's
capabilities and user's preferences (step 3 in Figure 1). It
alternatively can request another server to perform the message
adaptation. The adaptation process may lead to the usage of content
Coulombe, Pessi, Costa-RequenaExpires: April 2003 [Page 3]
INTERNET-DRAFTdraft-coulombe-message-adaptation-framework-00October 2002
indirection techniques [4] if the resulting message would be too
large for the terminal at an acceptable quality.
The adaptation operations can include the operations described in
more details in [5]:
1. Content Indirection (see section 3.1.3).
2. Format conversion.
3. Media characteristics adaptation.
4. Presentation or layout adaptation.
5. Message size adaptation.
Finally the adapted SIP message is sent to the recipient's terminal
(step 4 in Figure 1).
3.1.2 Special case of Presence
In the case of presence application, the notification message can be
adapted in the recipient's SIP proxy as presented previously.
However, it is often better if the presence server generates
appropriate content in the first place and sends it. To enable that,
the terminal CPI can also be negotiated with the presence server
during the subscription request (SUBSCRIBE) using the same mechanisms
suggested in section 3.2. The presence server will then create
notifications that suit the destination CPI as well as some user
preferences. The process is illustrated in Figure 2.
User 1 User 2
1:SUBSCRIBE (with CPI) ********************
----------------------->* SIP *
* presence server * 2: (publish)
* *<-------------
4:NOTIFY (message) * 3:Create message *
<-----------------------* based on CPI *
********************
Figure 2: Adaptation framework extension for presence.
3.1.3 Using Content Indirection
The SIP proxy/registrar can decide to use the content indirection if
it either can decide from recipient's preferences (e.g. [6]) that
recipient is not willing to directly receive the message contents, if
the recipient's preferences are not known, or if there are multiple
user agents possibly receiving the message (in that case it is more
Coulombe, Pessi, Costa-RequenaExpires: April 2003 [Page 4]
INTERNET-DRAFTdraft-coulombe-message-adaptation-framework-00October 2002
efficient to send only links to the content and adapting only when
the content is requested than adapting the message for each possible
receiving terminal).
The process is illustrated in the Figure 3. The SIP proxy server
receives a new message (step 2). The server decides that it is not
able to perform content adaptation or even the adapted contents
cannot be sent using SIP. The original contents are stored in the
server (step 3) then a link to the contents is sent to the
recipient(s) (step 4). The need for CPI can be indicated here, too.
When a recipient decides to obtain the message contents, it includes
its CPI in the HTTP GET request (step 5). The server then performs
the adaptation (step 6) then includes the adapted contents in the
response to the GET (step 7).
1:REGISTER *******************
----------------------->* SIP *
* proxy/registrar * 2:MESSAGE (original msg)
* *<------------------------
4:MESSAGE (indirect). * 3:Store contents*
<-----------------------* *
* *
5:GET (indirect-uri) * *
----------------------->* *
(with CPI) * *
* *
7:response(adapted msg) * 6:Adapt contents*
<-----------------------* *
*******************
Figure 3: Using content indirection with content adaptation.
The adaptation is performed when the recipient fetches the message
contents using the indirection URI. The recipient can include its CPI
in the fetch request.
The adaptation can be combined with content indirection. If a message
contains an audio clip, an image and a SMIL description, the audio
clip and image can be stored in the server and the SMIL description
would be adapted to include only URLs to the clip and image.
Note that the contents may be stored in a different server from the
SIP proxy/registrar. More details about content indirection usage and
interaction with a Content Storage Server can be found in [12].
3.1.4 Special case: CPI not part of registration data
If for any reason, the terminal CPI is not part of the registration
data, it could be queried using the OPTIONS method.
Coulombe, Pessi, Costa-RequenaExpires: April 2003 [Page 5]
INTERNET-DRAFTdraft-coulombe-message-adaptation-framework-00October 2002
The process would be as illustrated in Figure 4. The SIP proxy
receives a new message (step 2). It tries to get CPI from the
registrar but it is not available (e.g. it was not received or stored
in step 1). It then sends an OPTIONS request to the recipient's
terminal which responds with its CPI (steps 3.1 and 3.2). The SIP
proxy uses it to adapt the message (step 4). It finally sends the
adapted message to the recipient (step 5).
User 1 User 2
1:REGISTER *******************
----------------------->* SIP *
* proxy/registrar * 2:MESSAGE (original msg)
* *<------------------------
3.1:OPTIONS REQ. * *
<-----------------------* *
* *
3.2:OPTIONS RESP. (CPI) * *
----------------------->* *
* *
5:MESSAGE (adapted msg) * 4:Adapt message *
<-----------------------* *
*******************
Figure 4: Usage of OPTIONS method to obtain CPI.
In the presence application, the OPTIONS method can be used similarly
by the presence server to obtain the CPI if not provided during the
subscription request.
This manner of obtaining CPI is less preferred because it requires
the proxy to query the terminal every time a new message is
delivered. For that reason, the CPI information should be cached in
order to avoid further requests for obtaining the CPI data from the
terminal.
Alternatively, if the registration or subscription request doesn't
contain CPI, the registrar could query them using the OPTIONS method.
It would then store them just as if they were obtained from the
registration or subscription.
3.2 Capability Exchange
As described in the previous sections, capability exchange is
provided during registration or subscription. An advantage is that
the CPI is stored in the server and doesn't need to be queried each
time a new message arrives. The terminal needs to update CPI only
when it changes (similarly to the contact address that needs to be
updated only when changed).
Coulombe, Pessi, Costa-RequenaExpires: April 2003 [Page 6]
INTERNET-DRAFTdraft-coulombe-message-adaptation-framework-00October 2002
We propose a simple solution for capability exchange. The solution
introduces new feature tags in the Caller Preferences and Callee
Capabilities [6][9] to provide more detailed information about the
CPI. It also extends the existing SIP headers [7][8]. The solution is
such that the same CPI can be expressed in the Caller Preferences and
Callee Capabilities or alternatively in the SIP headers.
New feature tags and MIME header extensions are required to support
message adaptation. For instance, with mobile terminals, it is not
enough to specify which formats are supported but also the
limitations of the characteristics they may possess (e.g. jpeg image
format is supported only if the resolution doesn't exceed 160x120
pixels).
One first important characteristic of mobile terminals is the maximum
message body size they can handle. This could be expressed with a new
feature "length" tag. The length could also apply to specific MIME
types as their support could also be limited.
Another important characteristic of mobile terminals is the maximum
resolution of visual media types (such as images or video) that they
can handle. This may be related to the display resolution but more
often not. Often, the maximum resolution that can be handled exceeds
the display resolution.
The framework allows more characteristics to be added following the
registration procedure of [10].
3.2.1.1 Capability exchange method using Caller Preferences and Callee
Capabilities
We present in this sub-section how the proposed descriptors are used
in the context of Caller Preferences and Callee Capabilities [6]
which is based on [9].
The limit on the message size for a terminal is represented as
follows [6]:
( & (encoding="identity") (length<=32768) )
This specifies that the maximum message body size can't exceed
32kilobytes. This would include the total size of all the body parts
of the message without headers. Thus a terminal should reserve some
memory for the headers since their length can't be known and depend
on the message transmission (e.g. adding route in SIP).
The terminal message size limit requires the registration of two
media feature tags: encoding and length. The encoding media feature
tag corresponds to the Accept-Encoding header of SIP messages.
Coulombe, Pessi, Costa-RequenaExpires: April 2003 [Page 7]
INTERNET-DRAFTdraft-coulombe-message-adaptation-framework-00October 2002
Since some MIME types may also be limited in size, a length parameter
can be associated with a media type as follows:
( & (type="image/jpeg") (length<=32768) );q=0.8
This specifies that jpeg images can't exceed 32 kilobytes. Note that
the "type" media feature tag is already registered.
Two proposed media tags called "media-pix-x" and "media-pix-y"
provide information about the maximum (or minimum) horizontal and
vertical resolutions supported by the terminal for visual media. It
could apply to a specific MIME type or for a whole media category
(e.g. images). For instance:
(| (& (type="image/jpeg")(media-pix-x<=640)(media-pix-y<=480));q=0.9
(& (type="image/gif") (media-pix-x<=160)(media-pix-y<=120));q=1))
is used to specify that the terminal can support JPEG images no
larger than 640x480 and GIF no larger than 160x120. On the other
hand:
(& (type="image/*")(media-pix-x<=640)(media-pix-y<=480));q=0.7
means that all images are acceptable as long as they don't exceed
640x480 pixels. However in typical mobile terminals, it is more
likely that the supported image formats and their specific
characteristic restrictions will be listed explicitly. Note that
"pix-x" and "pix-y" are registered media tags representing display
resolution [11]. "Media-pix-x" and "media-pix-y" complement them by
presenting the maximum resolution handled for different media types.
Different quality values represent different capability preferences
similarly to [7][8]. For instance,
(|(& (type="image/gif")(media-pix-x<=640)(media-pix-y<=480));q=0.5
(& (type="image/gif") (media-pix-x<160)(media-pix-y<120));q=1))
means that GIF images of resolution smaller than 160x120 pixels are
preferred but GIF images of resolution up to 640x480 are still
supported by the terminal. This preference may be expressed by a
terminal having a small display resolution with low memory.
This information can be mapped to SIP contact parameters as
illustrated in [9]. However, the document only maps equality
comparisons (e.g. type= image/gif"). We propose to introduce "max+"
to represent "<=", "max-" to represent "<", "min+" to represent ">="
and "min-" to represent ">". For instance, the last example would map
to:
;type="image/gif";q=0.5;media-pix-x=max+640;media-pix-y=max+480
;type="image/gif";q=1;media-pix-x=max-160;media-pix-y=max-120
Coulombe, Pessi, Costa-RequenaExpires: April 2003 [Page 8]
INTERNET-DRAFTdraft-coulombe-message-adaptation-framework-00October 2002
3.2.1.2 Capability exchange method using header extensions
We now present how the CPI can be represented as MIME header
extensions of SIP headers. We are using the same mapping for the
feature comparison operators (<,<=,>,>=) as described above. We
present here the same examples provided in the previous sub-section
but using the proposed header extension method. Limiting the size of
messages to 32kilobytes would be represented as:
Accept-Encoding: identity;length=max+32768
To specify that jpeg images can't exceed 32 kilobytes, we use:
Accept: image/jpeg; q=0.8;length=max+32768
Note that a Max-Size header was introduced in [12]. It describes the
whole message size limit including all SIP headers while we are
describing here a size limit that applies to the message body only
and to specific media types within the message (e.g. image/jpeg). The
size limit in [12] can also be used to provide size limitations
related to numerous transport mechanisms.
To specify that the terminal can support JPEG images no larger than
640x480 and GIF no larger than 160x120, we use:
Accept: image/jpeg ;q=0.9;media-pix-x=max+640;media-pix-y=max+480,
image/gif;q=1;media-pix-x=max+160;media-pix-y=max+120
On the other hand:
Accept: image/*;q=.7;media-pix-x=max+640;media-pix-y=max+480
means that all images are acceptable as long as they don't exceed
640x480 pixels.
The following means that GIF images of resolution smaller than
160x120 pixels are preferred but GIF images of resolution up to
640x480 are still supported by the terminal.
Accept: image/gif;q=0.5; media-pix-x=max+640;media-pix-y=max+480,
image/gif;q=1; media-pix-x=max-160;media-pix-y=max-120
Rules must however be followed in case of conflicts. For instance,
the following should be interpreted as all images are acceptable as
long as they don't exceed 640x480 pixels except for GIF that must be
below 160x120.
Accept: image/*;q=0.7; media-pix-x=max+640;media-pix-y=max+480,
image/gif;q=0.7; media-pix-x=max+160;media-pix-y=max+120
Coulombe, Pessi, Costa-RequenaExpires: April 2003 [Page 9]
INTERNET-DRAFTdraft-coulombe-message-adaptation-framework-00October 2002
The capabilities associated with a more specific type (e.g.
image/gif) override more generic types (e.g. image/*) when the
same quality value is used.
When a capability header extension is not provided, the assumption is
that there is no limitation with respect to this capability.
We present now a more complex example taking into account the
concepts presented so far. The following represents, using the first
method, that messages must be no larger than 32kilobytes, that jpeg
is preferred but the resolution can't exceed 640x480 pixels and the
size must be smaller than 16 kilobytes, and that GIF images can't
exceed 160x120 pixels and their size must be smaller than 16
kilobytes:
(& ((encoding="identity") (length<=32768))
(| (& (type="image/jpeg")(media-pix-x<=640)
(media-pix-y<=480) (length<16384));q=0.9
(& (type="image/gif") (media-pix-x<=160)
(media-pix-y<=120) (length<16384));q=0.8 ))
The same example using the second method is represented as:
Accept-Encoding: identity;length=max+32768
Accept:image/jpeg;q=.9;media-pix-x=max+640;media-pix-y=max+480;
length=max-16384, image/gif;q=.8;media-pix-x=max+160;
media-pix-y=max+120;length=max-16384
In summary, the proposed exchange solution provides CPI in the
headers of the SIP message or as Caller Preferences and Callee
Capabilities during the registration (REGISTER method) or the
subscription (SUBSCRIBE method). The registrar or presence server is
responsible for extracting the relevant CPI and store it. It can be
used later for message adaptation. The method is extensible and
provides a way to express mathematical comparisons.
3.2.2 Capability descriptors
For content adaptation, the following headers are relevant [7]:
1. User-Agent: contains information about the client user agent (e.g.
Nokia7650/1.0(05.00)).
2. Accept: list of supported MIME types.
3. Accept-Encoding: list of acceptable content coding.
4. Accept-Charset: list of acceptable content charsets.
Coulombe, Pessi, Costa-RequenaExpires: April 2003 [Page 10]
INTERNET-DRAFTdraft-coulombe-message-adaptation-framework-00October 2002
The capability descriptors (media tags or header extensions) proposed
are:
1. length: maximum size of the entity specified. It could apply to
the whole message or to specific MIME types.
2. media-pix-x: horizontal resolution of visual media (e.g. image or
video). It could apply to all images or video or to specific MIME
types.
3. media-pix-y: vertical resolution of visual media (e.g. image or
video). It could apply to all images or video or to specific MIME
types.
More descriptors can be added as needed since the proposed method is
extensible. Such descriptions can include the number of channels or
sampling rate of audio formats or the frame rate in video formats.
The descriptors should be registered to IANA following the procedure
of [10].
4. Security consideration
The proposed adaptation framework assumes that components which may
require adaptation are not encrypted (e.g. using S/MIME). Otherwise,
unless the recipient's proxy/registrar is trusted (e.g. by providing
encryption/decryption keys in the registration), media component
adaptation can't be performed. However if the message components are
encrypted individually, content indirection can still be used in
order to reduce the overall message and allowing the recipient to
receive the components individually.
5. Future work
This document proposes an adaptation framework for SIP Instant
Messaging and Presence applications which could be extended to other
non-session-based applications. Once accepted, this framework needs
to be defined in more details to address the requirements of [5]. The
following items need to be addressed.
5.1 Capability and user Preference Information exchange
The terminal capability exchange method needs to be defined. This
includes defining the set of relevant descriptors and the CPI
vocabulary to use. This document presents only some initial
suggestions. The aspect of user preferences should also be addressed.
Coulombe, Pessi, Costa-RequenaExpires: April 2003 [Page 11]
INTERNET-DRAFTdraft-coulombe-message-adaptation-framework-00October 2002
5.2 Adaptation protocol
SIP proxies are meant to handle call process and perform light
signaling operations but certainly not to perform CPU-intensive
operations such as those often required in media transcoding. In
order to move the adaptation burden away from the SIP proxies, a
protocol should be defined to request message adaptation from
adaptation / transcoding servers. More detailed requirements of such
protocol needs to be established and solutions found.
5.3 Usage of content indirection in adaptation
The usage of content indirection [4] needs to be clarified in the
scope of SIP message adaptation. Indeed this mechanism may be needed
to avoid dropping media components in a message. The combination of
content indirection and content adaptation should also be clarified.
For instance, how to decide if we should reduce the size of a part to
reduce the size of the overall message or rather use content
indirection to achieve that goal? Should we be able to use both
mechanisms in the same message or should we decide which of the two
methods is more appropriate for a given message. It could be that the
proxy first attempts to perform content adaptation and if it fails
then uses content indirection as a fallback. The user may also
provide some rules on how the proxy should make the decision based on
his preferences.
5.4 Usability issues
There are usability issues associated with message adaptation. One of
them is the fact that if the received message is different from the
original one, the user should be informed. Also, it is possible that
a sender doesn't want its message or parts of it to be modified. The
usability issues with content indirection and receiving the OPTIONS
query to find out about terminal capabilities should be considered.
These issues and others should be addressed.
6. Intellectual Property Right Considerations
On IPR related issues, Nokia refers to its statement on patent
licensing. Please see http://www.ietf.org/ietf/IPR/NOKIA.
7. References
[1] S. Bradner, "Key words for use in RFCs to Indicate Requirement
Levels," RFC 2119, March 1997.
[2] J. Rosenberg et al., "SIP Extensions for Instant Messaging",
draft-rosenberg-impp-im-01," (work in progress), February, 2001,
http://www.ietf.org/html.charters/simple-charter.html.
Coulombe, Pessi, Costa-RequenaExpires: April 2003 [Page 12]
INTERNET-DRAFTdraft-coulombe-message-adaptation-framework-00October 2002
[3] J. Rosenberg et al., "SIP Extensions for Presence, draft-
rosenberg-impp-presence-01.txt," (work in progress), March,
2001, http://www.ietf.org/html.charters/simple-charter.html.
[4] S. Olson, "Requirements for Content Indirection in Session
Initiation Protocol (SIP) Messages," Internet Draft draft-ietf-
sipping-content-indirect-02, September 2002.
[5] S. Coulombe, "Requirements for message adaptation in the context
of SIP Instant Messaging and Presence applications," Internet
Draft draft-coulombe-message-adaptation-requirements-00, October
2002.
[6] H. Schulzrinne, J. Rosenberg, "Session Initiation Protocol (SIP)
Caller Preferences and Callee Capabilities," Internet Draft
draft-ietf-sip-callerprefs-06.txt, July 2002.
[7] J. Rosenberg, H. Schulzrinne, et al. , "SIP: Session initiation
protocol," Internet Draft, Internet Engineering Task Force, Feb.
2002. Work in progress.
[8] R. Fielding, J. Gettys, J. Mogul, H. Frystyk, L. Masinter, P.
Leach and T. Berners-Lee, "Hypertext Transfer Protocol --
HTTP/1.1," RFC 2616, June 1999.
[9] G. Klyne, "A syntax for describing media feature sets," RFC
2533, Internet Engineering Task Force, Mar. 1999.
[10] K. Holtman, A. Mutz, and T. Hardie, "Media Feature Tag
Registration Procedure," BCP 31, RFC 2506, March 1999.
[11] L. Masinter, K. Holtman, A. Mutz, and D. Wing, "Media Features
for Display, Print, and Fax," RFC 2534, March 1999.
[12] H. Khartabil, "Congestion safety and Content Indirection,"
Internet Draft draft-khartabil-sip-congestionsafe-ci-00, July
2002.
8. Author's Address
Stephane Coulombe
Nokia Research Center
6000, Connection Drive, M2-700
Irving, Texas, 75063
USA
E-mail: Stephane.Coulombe@nokia.com
Pekka Pessi
Nokia Research Center
Itamerenkatu 11-13
00180 Helsinki
Finland
Coulombe, Pessi, Costa-RequenaExpires: April 2003 [Page 13]
INTERNET-DRAFTdraft-coulombe-message-adaptation-framework-00October 2002
E-mail: Pekka.Pessi@nokia.com
Jose Costa-Requena
Nokia Mobile Phones
Valimotie 9,
00380 Helsinki
Finland
E-mail: Jose.Costa-Requena@nokia.com
9. Expiration Date
This memo is filed as <draft-coulombe-message-adaptation-framework-
00> and expires in April 2003.
Coulombe, Pessi, Costa-RequenaExpires: April 2003 [Page 14]