Internet DRAFT - draft-gautam-simple-quick-answer
draft-gautam-simple-quick-answer
SIMPLE D. Gautam
Internet-Draft Huawei Technologies
Intended status: Standards Track Jan 14, 2010
Expires: July 18, 2010
Quick Answer for SIMPLE
draft-gautam-simple-quick-answer-01.txt
Abstract
In instant messaging system, it is useful to have some readily
available IM (text, audio or video) which can be sent in case of the
receiver is too busy to type/speak/record for a reply. These short
IM (here after referred as QA - Quick Answer) can be created, stored
and used when needed. This document defines a new QA content type
and XML namespace that conveys QA between two entities. The QAs are
delivered to the instant messaging sender in the same manner as the
instant messages themselves.
Status of this Memo
This Internet-Draft is submitted to IETF in full conformance with the
provisions of BCP 78 and BCP 79.
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.
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html.
This Internet-Draft will expire on July 18, 2010.
Copyright Notice
Copyright (c) 2010 IETF Trust and the persons identified as the
document authors. All rights reserved.
Gautam Expires July 18, 2010 [Page 1]
Internet-Draft Quick Answer for SIMPLE Jan 2010
This document is subject to BCP 78 and the IETF Trust's Legal
Provisions Relating to IETF Documents
(http://trustee.ietf.org/license-info) in effect on the date of
publication of this document. Please review these documents
carefully, as they describe your rights and restrictions with respect
to this document. Code Components extracted from this document must
include Simplified BSD License text as described in Section 4.e of
the Trust Legal Provisions and are provided without warranty as
described in the BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Usecase and Requirements . . . . . . . . . . . . . . . . . . . 4
3. Terminology and Conventions . . . . . . . . . . . . . . . . . 4
4. Description . . . . . . . . . . . . . . . . . . . . . . . . . 5
4.1. Quick Answer Document . . . . . . . . . . . . . . . . . . 5
4.1.1. Content . . . . . . . . . . . . . . . . . . . . . . . 5
4.1.2. XML Schema . . . . . . . . . . . . . . . . . . . . . . 6
4.2. UAC Behavior . . . . . . . . . . . . . . . . . . . . . . . 6
4.2.1. Registration . . . . . . . . . . . . . . . . . . . . . 6
4.2.2. Composing QA . . . . . . . . . . . . . . . . . . . . . 6
4.2.3. Receving HTTP 200 OK . . . . . . . . . . . . . . . . . 7
4.2.4. Sending QA . . . . . . . . . . . . . . . . . . . . . . 7
4.3. Post-Registration Behavior . . . . . . . . . . . . . . . . 7
4.4. QA Holder Behavior . . . . . . . . . . . . . . . . . . . . 7
4.4.1. Receiving third-party REGISTER from registrar . . . . 7
4.4.2. Receiving HTTP PUT request . . . . . . . . . . . . . . 7
5. Example Flow . . . . . . . . . . . . . . . . . . . . . . . . . 7
5.1. QA Synchronization . . . . . . . . . . . . . . . . . . . . 8
5.2. QA Creation . . . . . . . . . . . . . . . . . . . . . . . 8
6. IANA Consideration . . . . . . . . . . . . . . . . . . . . . . 9
6.1. Content-type registration for application/im-QA+xml . . . 9
6.2. URN Sub-Namespace Registration for
'urn:ietf:params:xml:ns:im-QA' . . . . . . . . . . . . . . 10
6.3. Schema Registration . . . . . . . . . . . . . . . . . . . 10
6.4. SIP option tag registration for qasupport . . . . . . . . 10
7. Security Considerations . . . . . . . . . . . . . . . . . . . 11
8. Normative References . . . . . . . . . . . . . . . . . . . . . 11
Author's Address . . . . . . . . . . . . . . . . . . . . . . . . . 11
Gautam Expires July 18, 2010 [Page 2]
Internet-Draft Quick Answer for SIMPLE Jan 2010
1. Introduction
In Instant Messaging conversation there may be some situation where
receiver is unable to compose (type, speak) an IM in reply at that
point of time. However, due to the importance of the topic discussed
and the sender himself, he also doesn't want the sender to feel
avoided or left waiting for long time.
To solve this issue this document proposes the concept of "Quick
Answer" (QA), which are some readily available IM (text, audio,
video) to the user, from which user can select as a reply to the
sender. QAs are created by user in his/her ideal time using any IM
capable client and stored on the server (QA Holder) as well as
client. When user logs-in the instant messaging system the QA stored
on the client and the server are synchronized.
The concept of QA may not be considered solely a client-level
feature because of the fact that all the Instant Messaging system
today allows users to log-in the Instant Messaging system using
different client at different point of time. In this scenario QA
created by one client will not be available to another client.
So, this functionality requires a client-server model.
To facilitate the definition of QA service, this document defines an
Extensible Markup Language (XML) document (QA Document) and the
application usage for managing this document using XML Configuration
Access Protocol (XCAP). This document can store all the QA for a
particular user. Any clients can create/modify/delete these QAs
using XCAP.
Extensions to presence, such as PIDF [6]were also considered but
have a number of disadvantages: Adds more overhead as an explicit
and periodic subscription is required; Presence fits situation
where IM sender (as watcher) gets information about IM recipient
(as presentity), here the situation is reverse; Will not allow
user to choose from different option (QA) available in real-time;
I may want to send some QA to those who are not my 'watchers'
(because they don't care about my presence information) but very
important to me.
A QA is delivered to an instant messaging recipient in the same
manner as the instant messages themselves. This document doesn't not
emphasize on that part considering that it can be done using existing
mechanism.
The concept of QA can be considered related with the concept of
"vacation" [3] used of emails. However unlike QA, "vacation" does
not allow user to choose from the list of available options (:handle
Gautam Expires July 18, 2010 [Page 3]
Internet-Draft Quick Answer for SIMPLE Jan 2010
in case of vacation). In other words, no user intervention is
required after vacation scripts are created. Further unlike
"vacation" QAs are not generated automatically.
2. Usecase and Requirements
For many instant messaging users, there are some messages to be
usually used as answers. The user can preset these messages before
he starts an IM session, and he can quickly send these pre-configured
messages as an answer by making fewer inputs. The quick answer
messages are stored in the network so that the user can set these
messages once and use those from different devices. User may need
several of these quick answer messages depending on the different
situation and need as follows:
1. Alice is expecting an important instant message from Bob
containing the venue of a party scheduled for tomorrow evening.
Since, Alice will be busy in a client meeting for the next 2
hours, she needs a message on her current mobile device as
"Thanks for the information, I'll be there. What is the best way
to get there" (Alice is new town, and not familiar with the local
travel).
2. Alice has registered on a local social networking site and
receives tons of instant messages everyday initiating further
conversation. Alice tends to reply same initial message to
several incoming instant message. To avoid overhead and to be
efficient, Alice needs some messages on her current mobile device
as "Hi, see some more pictures at www.matchmaker.com/
deep22gautam/pic", "Hey! Thanks for the message, can I see some
of your pictures", "Thanks, I'll get back to you", "Sorry, we
don't click", etc.
The following requirements can be derived from the above use case
1. The user SHALL be able to use any Instant messaging capable
device to create and store quick answer messages
2. The user SHALL be able to use all stored quick answer messages
from any Instant messaging capable device, irrespective of from
which device they were created and stored.
3. It SHALL be possible to determine whether the login device has
the same quick answer messages with the QA-Holder. And if not,
the QA-Holder SHALL be able to send the different quick answer
messages to the device automatically.
3. Terminology and Conventions
Gautam Expires July 18, 2010 [Page 4]
Internet-Draft Quick Answer for SIMPLE Jan 2010
o QA-Holder: QA holder is a SIP user agent identified by a SIP URI.
QA Holder stores and manages QA.
o Quick Answer: Quick Answer is a readily available IM to the user.
User can create Quick Answers which are made available to the user
to choose from.
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 [5]
4. Description
4.1. Quick Answer Document
4.1.1. Content
Quick Answer documents MUST be based on XML 1.0 and MUST be encoded
using UTF-8. This specification makes use of XML namespaces for
identifying quick answer documents and document fragments. The
namespace URI for elements defined by this specification is a URN,
which is: urn:ietf:params:xml:ns:im-QA. A quick answer document has
the <qa-set> element as the root element of the document. This
element has a mandatory "uri" attribute, which is used to identify
the owner (user) of the QA document. The content of <qa-set> element
is a sequence of zero or more <qa> elements, each of which defines a
single Quick Answer. A <qa> element consists of one mandatory
element: <msg>, containing the actual QA message. In addition, there
are two optional element: <id>, used to carry the unique ID, assigned
to a particular QA by QA Holder back to the UAC; <creationdate>,
providing the date on which the QA is created.
Gautam Expires July 18, 2010 [Page 5]
Internet-Draft Quick Answer for SIMPLE Jan 2010
4.1.2. XML Schema
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:ietf:params:xml:ns:im-QA"
elementFormDefault="qualified"
attributeFormDefault="unqualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:ns="urn:ietf:params:xml:ns:im-QA">
<xs:element name="qa-set">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="qa" type="qaType" minOccurs="0" ma
xOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="uri" type="xs:anyURI" use="required"/>
</xs:complexType>
</xs:element>
<xs:complexType name="qaType">
<xs:sequence>
<xs:element name="id" type="xs:string" minOccurs="1"
maxOccurs="1"/>
<xs:element name="text" type="xs:string" minOccurs="1" m
axOccurs="1"/>
<xs:any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
XML Schema
4.2. UAC Behavior
4.2.1. Registration
While registering, a QA complaint UAC SHALL include a qasupport
option tag in the supported header of the REGISTER request [1] to let
registrar know that it supports QA and would like registrar to
initiate the synchronization process (through QA Holder)
4.2.2. Composing QA
Any instant messaging user agent can create a QA. To do so it
creates a HTTP PUT request (as specified in [RFC4825]) aiming to add
one or more <qa> element in the QA document. The content-type of the
request MUST be application/im-QA+xml. The <qa> element MUST be
created with <msg> and <creationdate> sub-element providing actual
message content and current date respectively. The <id> sub-element
MUST NOT be included in the request.
Gautam Expires July 18, 2010 [Page 6]
Internet-Draft Quick Answer for SIMPLE Jan 2010
4.2.3. Receving HTTP 200 OK
On receiving a HTTP 200 OK with content type application/im-QA+xml, a
UAC SHALL store the information (<id> and corresponding <msg>)
received as a QA.
4.2.4. Sending QA
After synchronization is done, the UAC will have all the QA which are
stored on the server. User can select one or more QA from the list
and UAC will send it to the instant message receiver as a normal IM.
4.3. Post-Registration Behavior
On registration registrar will inform (only if qasupport option tag
is present in the supported header filed of REGISTER request) QA
Holder about the registering user agent. To do this registrar will
send a third-party REGISTER request to QA Holder as specified in [1]
4.4. QA Holder Behavior
4.4.1. Receiving third-party REGISTER from registrar
After receiving third-party REGISTER request form registrar. QA
Holder SHALL initiates a session with UAC. To do this QA Holder
forms an INVITE request as specified in [1]. UAC receiving INVITE
SHALL return 200 OK as the success response or the appropriate error
response. The session would then be established between QA Holder
and UAC. The QA synchronization process will them be performed on
the session created.
4.4.2. Receiving HTTP PUT request
On receiving a HTTP PUT request [RFC4825] with content type
application/ im-QA+xml, QA Holder, XCAP server, SHALL deal with that
request as specified in [RFC4825]. QA Holder SHALL generates a
unique ID for the QA just received and store the QA with the ID
generated. Further, QA Holder SHALL send the ID generated back to
UAC. To do so it will generate a HTTP 200 OK response with content
type application/im-QA+xml carrying (in the body) an instance of XML
schema defined in section 5. The <id> element is used to carry the
ID generated. The <msg> element is used to carry the actual message.
The <creationdate> element MAY be present.
5. Example Flow
Gautam Expires July 18, 2010 [Page 7]
Internet-Draft Quick Answer for SIMPLE Jan 2010
5.1. QA Synchronization
+---+ +---------+ +---------+
|UAC| |Registrar| |QA Holder|
+-.-+ +----+----+ +----+----+
| REGISTER(qasupport) | |
+-------------------->| 3-party REGISTER |
| |------------------>|
| INVITE | |
|<--------------------+-------------------|
| 200 OK | |
|---------------------+------------------>|
| ACK | |
|<--------------------+-------------------|
| | |
ooooooooooooooo Session Established ooooooooo.
`Y88888888888888888888888888888888888888888888P
| | |
| QA Synchronization |
|<--------------------+------------------>|
| | |
QA Synchronization Flow
5.2. QA Creation
+---+ +---------+
|UAC| |QA Holder|
+-.-+ +----.----+
| |
| HTTP (XCAP) PUT |
+---------------------------------------->|
| |
| |
| +---------------------+
| |ID Generation/Storage|
| +---------------------+
| HTTP 200 OK |
+<----------------------------------------|
| |
| |
| |
| |
QA Creation Flow
Gautam Expires July 18, 2010 [Page 8]
Internet-Draft Quick Answer for SIMPLE Jan 2010
6. IANA Consideration
6.1. Content-type registration for application/im-QA+xml
To: ietf-types@iana.org
Subject: Registration of MIME media type application/ im-QA+xml
MIME media type name: application
MIME subtype name: im-QA+xml
Required parameters: (none)
Optional parameters: charset; Indicates the character encoding of
enclosed XML. Default is UTF-8.
Encoding considerations: Uses XML, which can employ 8-bit characters,
depending on the character encoding used. See [4] , section 3.2.
Security considerations: This content type is designed to carry
user's messages for a specific person, which may involve some privacy
concerns. Appropriate precautions should be adopted to limit
disclosure of theses messages.
Interoperability considerations: This content type provides a common
format for exchange of Quick Answer.
Published specification: [reference to the RFC]
Applications which use this media type: Instant messaging systems.
Additional information: none
Person & email address to contact for further information: Deepanshu
Gautam, simple@ietf.org
Intended usage: LIMITED USE
Author/Change controller: This specification is a work item of the
IETF SIMPLE working group, with the mailing list address
simple@ietf.org.
Other information: None
Gautam Expires July 18, 2010 [Page 9]
Internet-Draft Quick Answer for SIMPLE Jan 2010
6.2. URN Sub-Namespace Registration for 'urn:ietf:params:xml:ns:im-QA'
URI: urn:ietf:params:xml:ns:im-QA
Description: This is the XML namespace for XML elements defined by
[reference to RFC] to describe Quick Answer used(send/receive) by an
instant messaging client using the application/im-QA+xml content
type.
Registrant Contact: IETF, SIMPLE working group, simple@ietf.org,
Deepanshu Gautam, deepanshu@huawei.com
XML:
BEGIN
<?xml version="1.0"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type"
content="text/html;charset=iso-8859-1"/>
<title>Quick Answer for Instant Messaging</title>
</head>
<body>
<h1>Namespace for SIMPLE QA extension</h1>
<h2>urn:ietf:params:xml:ns:QA</h2>
<p>See <a href="[URL of published RFC]">
[reference to RFC]</a>.</p>
</body>
</html>
END
6.3. Schema Registration
This section registers a new XML schema per the procedures in [X].
URI: urn:ietf:params:xml:schema:im-QA
Registrant Contact: IETF, SIMPLE working group, (simple@ietf.org),
Deepanshu Gautam (deepanshu@huawei.com).
The XML for this schema can be found as the sole content of Section
7.
6.4. SIP option tag registration for qasupport
This document also registers a new SIP option tag, "qasupport",
adding it to the SIP Option Tags sub-registry in the SIP Parameters
Gautam Expires July 18, 2010 [Page 10]
Internet-Draft Quick Answer for SIMPLE Jan 2010
Registry. The required information for this registration, as
specified in RFC3261 [1], is:
o Name: qasupport
o Description: This option tag specifies a User Agent ability to
support QA.
7. Security Considerations
TBD
8. Normative References
[1] "Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
Peterson, J., Sparks, R., Handley, M. and E. Schooler, "SIP:
Session Initiation Protocol", RFC 3261, June 2002.".
[2] "B. Campbell, J. Rosenberg, H. Schulzrinne, C. Huitema, D.
Gurle, "Session Initiation Protocol (SIP) Extension for Instant
Messaging" , RFC3428, December 2002".
[3] "Tim Showalter, Ned Freed, "Sieve Email Filtering: Vacation
Extension", RFC 5230, January 2008.".
[4] "Murata, M., St. Laurent, S., and D. Kohn, "XML Media Types",
RFC 3023, January 2001.".
[5] "Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.".
[6] "Sugano, H., Fujimoto, S., Klyne, G., Bateman, A., Carr, W., and
J. Peterson, "Presence Information Data Format (PIDF)", RFC3863,
August 2004.".
Author's Address
Deepanshu Gautam
Huawei Technologies
NingNan Av.
Nanjing, Jiangsu 210012
P.R China
Phone: +86 25 82276770
Email: deepanshu@huawei.com
Gautam Expires July 18, 2010 [Page 11]