Internet DRAFT - draft-houri-simple-arch
draft-houri-simple-arch
SIMPLE Group A. Houri
Internet-Draft IBM
Expires: November 30, 2003 A. Audu
Alcatel
T. Hiller
Lucent
T. Hansen
AT&T Laboratories
June 2003
SIP/SIMPLE Based Presence and IM Architecture
draft-houri-simple-arch-03
Status of this Memo
This document is an Internet-Draft and is subject to all provisions
of section 3 of RFC 3667. By submitting this Internet-Draft, each
author represents that any applicable patent or other IPR claims of
which he or she is aware have been or will be disclosed, and any of
which he or she become aware will be disclosed, in accordance with
RFC 3668.
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 November 30, 2003.
Copyright Notice
Copyright (C) The Internet Society (2003).
Abstract
This document collects information required for the creation a
complete Presence and IM system using SIMPLE and other IETF
Houri, et al. Expires November 30, 2003 [Page 1]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
protocols. This information has been spread out across numerous
other internet drafts and RFCs. The document tries to put everything
together, discussing the servers involved, security mechanisms, call
flows, etc. The goal of this document is that someone, who is not an
expert in the IETF protocols, can read this document and understand
how the IETF protocols can be used for building a complete system and
how it should work. SPECIFCATIONS SECTION TO BE UPDATED SHORTLY
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . . 6
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 6
3. Definitions . . . . . . . . . . . . . . . . . . . . . . . . . 6
4. High Level Architecture . . . . . . . . . . . . . . . . . . . 7
4.1 Single Server System . . . . . . . . . . . . . . . . . . . 8
4.2 Multiple Server System . . . . . . . . . . . . . . . . . . 9
5. Specifications . . . . . . . . . . . . . . . . . . . . . . . . 9
5.1 IMPP/CPIM Specifications . . . . . . . . . . . . . . . . . 9
5.2 SIMPLE Group Specifications . . . . . . . . . . . . . . . 10
5.2.1 Presence . . . . . . . . . . . . . . . . . . . . . . . 10
5.2.2 Data Representation and Access Control . . . . . . . . 11
5.2.3 Messaging . . . . . . . . . . . . . . . . . . . . . . 12
5.2.4 Lists - Events and Manipulation . . . . . . . . . . . 12
5.2.5 Publish . . . . . . . . . . . . . . . . . . . . . . . 12
5.2.6 Watchers . . . . . . . . . . . . . . . . . . . . . . . 13
5.2.7 SIMPLE/CPIM Related Docs . . . . . . . . . . . . . . . 13
5.2.8 Relevant SIP Group Specifications . . . . . . . . . . 13
5.2.9 Relevant SIPPING Group Specifications . . . . . . . . 14
5.3 Basic Functional Model . . . . . . . . . . . . . . . . . . 15
5.4 Basic Flows . . . . . . . . . . . . . . . . . . . . . . . 19
5.4.1 Registration . . . . . . . . . . . . . . . . . . . . . 19
5.4.2 Sending and Receiving Messages . . . . . . . . . . . . 21
5.4.2.1 Sending a Pager Mode Message . . . . . . . . . . . 22
5.4.2.2 Receiving a Pager Mode Message . . . . . . . . . . 25
5.4.2.3 Deferred Message Delivery to IM Application . . . 28
5.4.2.4 Delivery of Deferred Message to User . . . . . . . 30
5.4.2.5 Logging Pager-Mode Messages . . . . . . . . . . . 32
5.4.2.6 Establishing a Point-to-Point Messaging Session . 32
5.4.2.7 Sending a Message Within a Messaging Session . . . 35
5.4.2.8 Receiving a Message Within a Messaging Session . . 37
5.4.2.9 Adding a Member to an Established Session . . . . 37
5.4.2.10 Transitioning a Two Party Session to a
Multiparty Conference and Adding a Third
Participant . . . . . . . . . . . . . . . . . . . 37
5.4.2.11 Adding a User to a Multiparty Session . . . . . . 41
5.4.2.12 Leaving a Messaging Session . . . . . . . . . . . 42
5.4.2.13 Logging Messaging Session Messages . . . . . . . . 42
5.4.3 Group Operations . . . . . . . . . . . . . . . . . . . 42
Houri, et al. Expires November 30, 2003 [Page 2]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.4.3.1 Creating a Group . . . . . . . . . . . . . . . . . 43
5.4.3.2 Deleting a Group . . . . . . . . . . . . . . . . . 45
5.4.3.3 Modifying a Group . . . . . . . . . . . . . . . . 46
5.4.3.4 Retrieving a Group . . . . . . . . . . . . . . . . 47
5.4.3.5 Publishing User Management Policy . . . . . . . . 48
5.4.4 Access Deferred Messages . . . . . . . . . . . . . . . 49
5.4.5 Presence Operations . . . . . . . . . . . . . . . . . 50
5.4.5.1 Publishing Presence . . . . . . . . . . . . . . . 51
5.4.5.2 Subscribing to Presence (or a Presence List) . . . 52
5.4.5.3 Receiving a Presence Notification . . . . . . . . 53
5.4.5.4 Querying Presence . . . . . . . . . . . . . . . . 54
5.5 Security and Privacy Issues in IM/Presence Architecture . 54
5.5.1 Authentication . . . . . . . . . . . . . . . . . . . . 55
5.5.1.1 Challenge-Response Access Authentication
Mechanism . . . . . . . . . . . . . . . . . . . . 55
5.5.1.2 Limitations . . . . . . . . . . . . . . . . . . . 57
5.5.2 Authorization . . . . . . . . . . . . . . . . . . . . 57
5.5.3 Integrity And Confidentiality . . . . . . . . . . . . 57
5.5.3.1 Privacy . . . . . . . . . . . . . . . . . . . . . 57
5.5.3.2 AAA Service . . . . . . . . . . . . . . . . . . . 59
5.6 Types of Deployments . . . . . . . . . . . . . . . . . . . 59
5.6.1 Enterprise (Single Domains of Trust) . . . . . . . . . 60
5.6.1.1 Definition . . . . . . . . . . . . . . . . . . . . 60
5.6.1.2 Components & Diagrams . . . . . . . . . . . . . . 60
5.6.1.3 Scenarios . . . . . . . . . . . . . . . . . . . . 60
5.6.1.3.1 Locating Other Servers . . . . . . . . . . . . 60
5.6.1.3.2 Creating Connections . . . . . . . . . . . . . 60
5.6.1.3.3 Authentication . . . . . . . . . . . . . . . . 60
5.6.1.3.4 State Replication . . . . . . . . . . . . . . 60
5.6.1.3.5 Advanced Configurations & Scenarios . . . . . 61
5.6.1.3.5.1 Firewalls . . . . . . . . . . . . . . . . 61
5.6.1.3.5.2 Wireless . . . . . . . . . . . . . . . . . 61
5.6.1.3.5.3 Gateways . . . . . . . . . . . . . . . . . 61
5.6.2 Federated Systems . . . . . . . . . . . . . . . . . . 61
5.6.2.1 Definition . . . . . . . . . . . . . . . . . . . . 61
5.6.2.2 Components & Diagrams . . . . . . . . . . . . . . 61
5.6.2.3 Scenarios . . . . . . . . . . . . . . . . . . . . 61
5.6.2.3.1 Locating Other Servers . . . . . . . . . . . . 61
5.6.2.3.2 Creating Connections . . . . . . . . . . . . . 61
5.6.2.3.3 Authentication . . . . . . . . . . . . . . . . 61
5.6.2.3.4 State Replication . . . . . . . . . . . . . . 62
5.6.2.3.5 Advanced Configurations & Scenarios . . . . . 62
5.6.2.3.5.1 Firewalls . . . . . . . . . . . . . . . . 62
5.6.2.3.5.2 Wireless . . . . . . . . . . . . . . . . . 62
5.6.2.3.5.3 Gateways . . . . . . . . . . . . . . . . . 62
5.6.3 Public Systems Interconnecting . . . . . . . . . . . . 62
5.6.3.1 Definition . . . . . . . . . . . . . . . . . . . . 62
5.6.3.2 Components & Diagrams . . . . . . . . . . . . . . 62
Houri, et al. Expires November 30, 2003 [Page 3]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.6.3.3 Scenarios . . . . . . . . . . . . . . . . . . . . 62
5.6.3.3.1 Locating Other Servers . . . . . . . . . . . . 62
5.6.3.3.2 Creating Connections . . . . . . . . . . . . . 62
5.6.3.3.3 Authentication . . . . . . . . . . . . . . . . 63
5.6.3.3.4 State Replication . . . . . . . . . . . . . . 63
5.6.3.3.5 Advanced Configurations & Scenarios . . . . . 63
5.6.3.3.5.1 Firewalls . . . . . . . . . . . . . . . . 63
5.6.3.3.5.2 Wireless . . . . . . . . . . . . . . . . . 63
5.6.3.3.5.3 Gateways . . . . . . . . . . . . . . . . . 63
5.6.4 Open systems . . . . . . . . . . . . . . . . . . . . . 63
5.6.4.1 Definition . . . . . . . . . . . . . . . . . . . . 63
5.6.4.2 Components & Diagrams . . . . . . . . . . . . . . 63
5.6.4.3 Scenarios . . . . . . . . . . . . . . . . . . . . 63
5.6.4.3.1 Locating Other Servers . . . . . . . . . . . . 64
5.6.4.3.2 Creating Connections . . . . . . . . . . . . . 64
5.6.4.3.3 Authentication . . . . . . . . . . . . . . . . 64
5.6.4.3.4 State Replication . . . . . . . . . . . . . . 64
5.6.4.3.5 Advanced Configurations & Scenarios . . . . . 64
5.6.4.3.5.1 Firewalls . . . . . . . . . . . . . . . . 64
5.6.4.3.5.2 Wireless . . . . . . . . . . . . . . . . . 64
5.6.4.3.5.3 Gateways . . . . . . . . . . . . . . . . . 64
5.7 Basic User Scenarios . . . . . . . . . . . . . . . . . . . 64
5.7.1 Locating the Server(s) . . . . . . . . . . . . . . . . 64
5.7.2 Connection . . . . . . . . . . . . . . . . . . . . . . 65
5.7.3 Logging-In (AKA Registering) . . . . . . . . . . . . . 65
5.7.4 Authentication . . . . . . . . . . . . . . . . . . . . 65
5.7.5 Uploading Presence Document . . . . . . . . . . . . . 65
5.7.6 Subscribing to a Presentity . . . . . . . . . . . . . 65
5.7.7 Getting Notifications . . . . . . . . . . . . . . . . 65
5.7.8 Sending IM . . . . . . . . . . . . . . . . . . . . . . 65
5.7.9 Receiving IM . . . . . . . . . . . . . . . . . . . . . 65
5.8 The Presence Document . . . . . . . . . . . . . . . . . . 65
5.9 Composition From Multiple Sources . . . . . . . . . . . . 68
5.10 Status Values . . . . . . . . . . . . . . . . . . . . . . 68
5.11 Instant Messages . . . . . . . . . . . . . . . . . . . . . 68
5.12 Advanced Presence Scenarios . . . . . . . . . . . . . . . 68
5.13 Partial Notifications . . . . . . . . . . . . . . . . . . 68
5.14 Authorization of Subscription . . . . . . . . . . . . . . 68
5.15 Presence Lists . . . . . . . . . . . . . . . . . . . . . . 68
5.16 Watchers List . . . . . . . . . . . . . . . . . . . . . . 68
5.17 Advanced IM Scenarios . . . . . . . . . . . . . . . . . . 68
5.17.1 IM Sessions . . . . . . . . . . . . . . . . . . . . . 68
5.17.2 IM Conferences . . . . . . . . . . . . . . . . . . . . 69
5.17.3 Instant Conferences . . . . . . . . . . . . . . . . . 69
5.17.4 Scheduled Conferences . . . . . . . . . . . . . . . . 69
5.17.5 Switching between IM Page Mode, IM Sessions and IM
Conferences . . . . . . . . . . . . . . . . . . . . . 69
5.18 Client Capabilities . . . . . . . . . . . . . . . . . . . 69
Houri, et al. Expires November 30, 2003 [Page 4]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.19 Profiles . . . . . . . . . . . . . . . . . . . . . . . . . 69
5.20 Additional Issues and Services . . . . . . . . . . . . . . 69
5.20.1 Invisible (Lurking) Mode . . . . . . . . . . . . . . . 69
5.20.2 Action Cues . . . . . . . . . . . . . . . . . . . . . 70
5.20.3 Emoticons & Backgrounds . . . . . . . . . . . . . . . 70
5.20.4 Message History . . . . . . . . . . . . . . . . . . . 70
5.20.5 Offline Messages . . . . . . . . . . . . . . . . . . . 70
5.20.6 Queued Offline Messages . . . . . . . . . . . . . . . 70
5.20.7 Other Offline . . . . . . . . . . . . . . . . . . . . 70
5.20.8 File Sharing . . . . . . . . . . . . . . . . . . . . . 70
5.20.9 Voice . . . . . . . . . . . . . . . . . . . . . . . . 70
5.20.10 Video . . . . . . . . . . . . . . . . . . . . . . . 70
5.20.11 General Application Invocation . . . . . . . . . . . 71
5.21 Security Considerations . . . . . . . . . . . . . . . . . 71
5.21.1 Authentication . . . . . . . . . . . . . . . . . . . . 71
5.21.2 Network Authentication of the endpoint . . . . . . . . 71
5.21.3 Endpoint Authentication of the Service Elements . . . 72
5.21.4 Authorization for Service . . . . . . . . . . . . . . 72
5.21.5 Integrity and Privacy of SIP/SIMPLE Messages . . . . . 72
5.21.6 Configuration of Subscriber Data or Stored Messages . 73
6. References . . . . . . . . . . . . . . . . . . . . . . . . . . 73
6.1 Normative References . . . . . . . . . . . . . . . . . . . . 73
6.2 Non-Normative References . . . . . . . . . . . . . . . . . . 76
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . 77
A. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . . 77
Intellectual Property and Copyright Statements . . . . . . . . 78
Houri, et al. Expires November 30, 2003 [Page 5]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
1. Introduction
SIMPLE, SIP and SIPPING groups seems to be the most active groups in
the IETF. Currently there are more then a hundred active I-Ds. This
document tries to summarize the work in the SIMPLE group by defining
what are the possible architectures for the creation of a SIMPLE
based presence and IM system.
The document starts by a definitions section in which we define the
entities and the concepts that will serve us while we describe the
architecture. The definitions sections is followed by a high level
architecture that defines a very basic presence and IM architecture.
The document continues with a specifications section in which we
survey the current RFCs and active internet-drafts that will be
referred throughout the document. These specifications are actually
the building blocks of the systems described.
After the introductory sections there are two major parts to this
document: The server centric view of the possible systems, in which
we describe the possible server deployments of a presence and IM
systems. The second major part of the document is the user centric
view in which we describe basic and advanced scenarios of presence
and IM from the UA's point of view.
Note that this is only the very first draft of the document. Most of
it is still TBD.
2. 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]
3. Definitions
This document uses terms as defined in various internet-drafts and
RFCs. See Section 5 for the complete list and description of
specifications used in the document.
[TBD. This section will contain a lot of definitions that we will
need. Need to specify for each definition, the specification it
was taken from, Noting definitions that are defined in this
document.]
Presence User Agent (PUA): A Presence User Agent manipulates presence
information for a presentity. This manipulation can be the side
effect of some other action (such as sending a SIP REGISTER
request to add a new Contact) or can be done explicitly through
the publication of presence documents. We explicitly allow
Houri, et al. Expires November 30, 2003 [Page 6]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
multiple PUAs per presentity. This means that a user can have
many devices (such as a cell phone and Personal Digital Assistant
(PDA)), each of which is independently generating a component of
the overall presence information for a presentity. PUAs push data
into the presence system, but are outside of it, in that they do
not receive SUBSCRIBE messages, or send NOTIFY messages.
Presence Agent (PA): A presence agent is a SIP user agent which is
capable of receiving SUBSCRIBE requests, responding to them, and
generating notifications of changes in presence state. A presence
agent must have knowledge of the presence state of a presentity.
This means that it must have access to presence data manipulated
by PUAs for the presentity. One way to do this is by co-locating
the PA with the proxy/registrar. Another way is to co-locate it
with the presence user agent of the presentity. However, these
are not the only ways, and this specification makes no
recommendations about where the PA function should be located. A
PA is always addressable with a SIP (or SIPS) URI that uniquely
identifies the presentity (i.e, sip:joe@example.com). There can
be multiple PAs for a particular presentity, each of which handles
some subset of the total subscriptions currently active for the
presentity. A PA is also a notifier (defined in RFC 3265 [7])
that supports the presence event package.
Presence Server: A presence server is a physical entity that can act
as either a presence agent or as a proxy server for SUBSCRIBE
requests. When acting as a PA, it is aware of the presence
information of the presentity through some protocol means. When
acting as a proxy, the SUBSCRIBE requests are proxied to another
entity that may act as a PA.
Edge Presence Server: An edge presence server is a presence agent
that is co-located with a PUA. It is aware of the presence
information of the presentity because it is co- located with the
entity that manipulates this presence information.
Registrar: A registrar is a server that accepts REGISTER requests and
places the information it receives in those requests into the
location service for the domain it handles.
Location Service: A location service is used by a SIP redirect or
proxy server to obtain information about a callee's possible
location(s). It contains a list of bindings of address-of- record
keys to zero or more contact addresses. The bindings can be
created and removed in many ways; this specification defines a
REGISTER method that updates the bindings.
4. High Level Architecture
This section describes a high level abstraction of a presence and IM
system. The intention of this section is to provide a basis for the
description of the more complex system further on.
Houri, et al. Expires November 30, 2003 [Page 7]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
[TBD. Relate between entities and specification documents.]
4.1 Single Server System
A system of a single presence server to which user agents are
connected will look like the following,
+---------+ +----------------+
|Presence | | Authentication |
| Server | | Server |
+---------+ +----------------+
^ ^
| |
| V
| +------------+
| | Registrar/ |
| | Locator |
| +------------+
| ^
| +---------+ |
+---->| Proxy |<-+
+---------+
^^^^^
|||||
VVVVV
User Agents
Figure 1
Figure 1 illustrates a very simple (or even simplistic) presence and
IM architecture of a single server. Users connect through a proxy to
the system. The proxy directs their logon (REGISTER)requests to the
registrar that uses a back-end authentication directory for
authenticating the users. Subscription and notifications requests
are directed to the presence server that serves them. Sending
instant messages can be done directly between the users or via the
proxy.
Houri, et al. Expires November 30, 2003 [Page 8]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
4.2 Multiple Server System
A system of multiple servers to which user agents are connected will
look like the following,
+---------+ +---------+
| Single | | Single |
| Server | o o o | Server |
| System | | System |
+---------+ +---------+
^^^^^ ^^^^^
||||| |||||
VVVVV VVVVV
User Agents User Agents
Figure 2
Figure 2 illustrates a more complex scenario where there are multiple
units of a single server system. Users may connect to each of the
single server systems. Following issues arise:
o Mapping of users to their servers - Users may have their presence
list (e.g. buddy list) and other information stored at one of the
servers. When a user logs on, its server side storage has to be
retrieved from the appropriate server. Furthermore, changes to
the server side storage has to be replicated to the appropriate
server
o Replication of presence information - When a user logs on to one
of the servers and uploads its presence information, other users
that are logged on to other servers may subscribe to the user.
There should be a way of replicating the presence information
between the servers or at least letting other users know where a
certain user is logged on.
[TBD. How the above problems are solved.]
5. Specifications
This section will survey all the active internet drafts and RFCs that
are relevant this the SIMPLE based presence and IM architecture.
THIS SECTION WILL BE UPDATED SHORTLY AND DOES NOT SHOW THE FULL
CURRENT STATE OF SIMPLE SPECS.
5.1 IMPP/CPIM Specifications
The IMPP working group was the first group at the IETF to start
working on presence and IM protocols. A protocol was not defined by
the IMPP group but very important basic documents were produced.
Houri, et al. Expires November 30, 2003 [Page 9]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
o RFC 2778 [3] - The basic IETF document for presence and IM.
Defines an abstract model for a presence and instant messaging
system. It defines the various entities involved, defines
terminology, and outlines the services provided by the system.
The goal is to provide a common vocabulary for further work on
requirements for protocols and markup for presence and instant
messaging.
o RFC 2779 [4] - The second basic IETF document for presence and IM.
The document defines the requirements for presence and IM service.
The requirements include: Scalability, Format, Security etc.
o RFC 3859 [11] - Defines common semantics and data formats for
presence to facilitate the creation of gateways between presence
services.
o RFC 3860 [12] - Defines common semantics and data formats for
instant messaging to facilitate the creation of gateways between
instant messaging services.
o RFC 3861 [13] - Presence and instant messaging are defined in RFC
2778 [3]. The Common Profiles for Presence and Instant Messaging
define two Universal Resource Identifier (URI) schemes: 'im' for
INSTANT INBOXes and 'pres' for PRESENTITIES. This document
provides guidance for locating the resources associated with URIs
that employ these schemes.
o RFC 3862[14] - Defines the MIME content type 'Message/CPIM', a
message format for protocols that conform to the Common Profile
for Instant Messaging (CPIM) specification.
o RFC 3863[15] - Specifies the Common Profile for Presence (CPP)
Presence Information Data Format (PIDF) as a common presence data
format for CPP-compliant Presence protocols, and also defines a
new media type "application/pidf+xml" to represent the XML MIME
entity for PIDF.
5.2 SIMPLE Group Specifications
The SIMPLE group defines the extensions required for the SIP protocol
in order to be able to implement presence and IM system. Following
is a list of the active specifications that are group documents or
were submitted to the group. Each specification is followed by a
short description of what each specification provides. The documents
were divided into several categories.
5.2.1 Presence
Following documents define the notification mechanisms and
requirements for presence notifications using the SIP protocol.
o RFC 3856 [10] - The basic presence document for SIMPLE. Describes
the usage of the Session Initiation Protocol (SIP) for
subscriptions and notifications of presence. Subscriptions and
notifications of presence are supported by defining an event
Houri, et al. Expires November 30, 2003 [Page 10]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
package within the general SIP event notification framework [7].
o draft-ietf-simple-pres-filter-reqs [20] - Defines a set of
structured requirements whereby an event subscriber (client) may
specify when notifications are sent to it and what the contents
should be.
o draft-ietf-simple-event-filter-funct [30] - The document provides
the mechanism whereby a watcher can specify the presence event
filtering rules, using XML, for the presence agent (PA) and how
that PA is to behave when receiving such filter.
o draft-ietf-simple-partial-notify [19] - Presents a solution for
delivering presence information that aids in reducing and
increasing efficiency of devices that have constrains as low data
processing capabilities, small display and limited battery power.
Other limitations may be caused by the interface between the
terminal and the network, i.e. over radio links with high latency
and low bandwidth. The solution introduces a new MIME-type
"partial notifications" and a Require header extension
"partial-notification".
5.2.2 Data Representation and Access Control
Following documents define ways to represent, and control access to,
presence information stored in a server.
o draft-ietf-simple-rpid [31] - Provides a way of richly
representing presentity information by adding elements to the
basic Presence Information Data Format (PIDF) that provide
additional information about the presentity and its contacts.
o draft-ietf-simple-partial-pdif-format [32] - A characteristic of
the PIDF is that it always carries all the presence information
available for the presentity. In some low bandwidth scenarios,
this may be overwhelming. This document provides a way of
limiting the information that is transported over the network by
reporting only the changed parts of the PIDF of a presentity.
o draft-ietf-simple-xcap [27] - Defines the eXensible Markup
Language (XML) Configuration Access Protocol (XCAP) for enabling a
client to read, write, and modify application configuration data
stored in a server in XML format. An example of such application
configuration data is the access authorization document.
o draft-ietf-geopriv-common-policy [33] - Defines a framework for
authorization policies used for controlling access to application
specific data. This framework combines common location and
SIP-presence-specific authorization aspects.
o draft-ietf-simple-presence-rules [34] - Authorization rules or
policies specify what presence information can be given to which
watchers and when. This document defines an XML document format
for expressing presence authorization rules; the resulting
document can be manipulated by clients using XCAP.
Houri, et al. Expires November 30, 2003 [Page 11]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.2.3 Messaging
Following documents define requirements and ways to implement a
session of messages. Note that the MESSAGE method RFC is a SIP group
document [9].
o draft-ietf-simple-message-sessions [35] - The document describes a
method of initiating, transmitting and managing a series of
instant messages within a session using SIP. Such a media session
(MSRP session) is managed by using Session Description Protocol
(SDP) offer/answer model carried over SIP. It is established
using a SIP INVITE, just as a normal audio or video session would
be established.
5.2.4 Lists - Events and Manipulation
Traditional presence and IM systems usually enable users to store a
list of presences on which they subscribe on the server side. The
users logging on to the system do not have to send the list every
time they logon. The following documents deal with requirements and
models for having parallel possibilities in the SIMPLE protocols.
o draft-ietf-simple-event-list [18] - This extension to SIP enables
subscribing to a homogeneous collection of event packages.
Instead of the subscriber sending a SUBSCRIBE for each resource
individually, the subscriber can subscribe to an entire
collection, and then receive notifications when the state of any
of the resources in the collection changes.
o draft-ietf-simple-data-req [17] - Provides a framework and
requirements for data manipulations for presence. These data
manipulations include: presentity list, adding/removing
presentities and authorization lists.
5.2.5 Publish
SIMPLE users that need to publish their presence document to the
presence server were using two types of workrooms:
o Using the REGISTER method for uploading the presence document.
o Using other protocols for uploading the presence document
Following documents describe how it can be done via the SIP protocol
while defining a new PUBLISH method
o draft-ietf-sip-publish [36] - Describes an extension to the
Session Initiation Protocol (SIP). The purpose of this extension
is to create a means, ( referred to as SIP PUBLISH) for publishing
event state used within the framework for SIP Event Notification
(RFC3265 [7]). The first application of this extension is
targeted at the publication of presence information.
o draft-ietf-simple-xcap-pidf-manipulation-usage [37] - Describes a
usage of XCAP for manipulating the contents of Presence
Houri, et al. Expires November 30, 2003 [Page 12]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
Information Data Format (PIDF) based presence document in a SIP
environment. It picks up where SIP PUBLISH leaves off. SIP
PUBLISH allows a single PUA to publish its view of the state of
its presentity. Since the PUA is tied to a single device, the
published state is device dependent. Also, SIP PUBLISH creates a
soft state which has to be refreshed before expiry of its
lifespan. Thus SIP PUBLISH is unsuitable for setting overall,
device independent, non-transient state. This document describes
how XCAP can be used by a client to accomplish these.
5.2.6 Watchers
Watcher information refers to the set of users subscribed to a
particular resource within a particular event package. Watcher
information changes dynamically as users subscribe, unsubscribe, are
approved, or are rejected. A user can subscribe to this information,
and therefore learn about changes to it.
o draft-ietf-simple-winfo-package [23] - Defines the watcher
information template-package for the SIP event framework. This
event package is a template-package because it can be applied to
any event package, including itself.
o draft-ietf-simple-winfo-format [22] - Defines an XML format for
watcher information for a resource.
5.2.7 SIMPLE/CPIM Related Docs
Following documents define a mapping between the IMPP/CPIM documents
(Section 5.1) or define ways to extend what is defined in IMPP/CPIM.
o draft-ietf-simple-cpim-mapping [16] - Defines how the SIMPLE work
group SIP events package for distribution of presence information
[10] and the MESSAGE extension for the transport of instant
messages map to the abstract CPIM service defined in RFCs
3859-3863, in order to interoperate with other CPIM compliant
presence and instant messaging services.
o draft-ietf-simple-prescaps-ext [38] - Proposes extensions to
Presence Information Data Format (PIDF)[15] to be used within the
SIMPLE based presence systems in order to enable building better
applications.
5.2.8 Relevant SIP Group Specifications
Following SIP RFCs are very relevant to this document:
o RFC3261 [5] - The basic document of Session Initiation Protocol
(SIP).
o RFC3263 [6] - Describes the DNS procedures used by SIP to allow a
client to resolve a SIP Uniform Resource Identifier (URI) into the
IP address, port, and transport protocol of the next hop to
contact. These procedures also allow a server to send a response
Houri, et al. Expires November 30, 2003 [Page 13]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
to a backup client if the primary client has failed.
o RFC3265 [7] - Provides an extensible framework by which SIP nodes
can request notification from remote nodes indicating that certain
events have occurred. The event notification mechanisms defined
are NOT intended to be a general-purpose infrastructure for all
classes of event subscription and notification.
o RFC3428 [9] - Defines the MESSAGE method as an extension to SIP
that allows the transfer of Instant Messages. Since the MESSAGE
request is an extension to SIP, it inherits all the request
routing and security features of the SIP protocol. MESSAGE
requests carry the content in the form of MIME body parts.
MESSAGE requests do not themselves initiate a SIP dialog; under
normal usage each Instant Message stands alone, much like pager
messages. MESSAGE requests may be sent in the context of a dialog
initiated by some other SIP request.
5.2.9 Relevant SIPPING Group Specifications
The SIPPING group is responsible for defining requirements for SIP
and SIMPLE work. Following is an initial list of SIPPING documents
that are relevant to the architecture described in this document.
[TBD. Other relevant SIPPING documents?]
o draft-niemi-sipping-event-throttle-reqs [24] - The document
defines requirements for all event packages to specify a maximum
rate at which event notifications are generated by a single
notifier. Such a limit is provided in order to reduce network
congestion. In addition to the fixed limits introduced by
specific event packages, further mechanisms for limiting the rate
of event notification are also allowed to be defined by event
package specifications but none have been specified so far. This
memo discusses the requirements for a throttle mechanism that
allows a subscriber to further limit the rate of event
notification.
o draft-ietf-sipping-conferencing-framework [25] - Defines a
framework for how conferencing in SIP can occur. Note that the
basic definition of SIP defines dialogs that are two-party by
default. The framework in the document describes the overall
architecture, terminology, and protocol components needed for
multi-party conferencing.
o draft-ietf-sipping-cc-conferencing [26] - Defines conferencing
call control features for SIP. The document builds on the
Conferencing Requirements and Framework documents [25] to define
how a tightly coupled SIP conference works. The approach is
explored from different user agent (UA) types perspective:
conference-unaware, conference-aware and focus UAs. The use of
URIs in conferencing, OPTIONS for capabilities discovery, and call
control using REFER are covered in detail with example call flow
diagrams.
Houri, et al. Expires November 30, 2003 [Page 14]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.3 Basic Functional Model
Figure 1-3 shows a generic IMPS system, including SIP/SIMPLE flows.
The various deployment types above are specializations of the generic
model. Figure 1 shows the general SIP/SIMPLE architcture. All flows
are SIP/SIMPLE (author note - the network presence sources is
incorrectly drawn in the figure and needs to be fixed).
Houri, et al. Expires November 30, 2003 [Page 15]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
+-----------+
|Network | +-----------+
|Presence | | AAA |
|Sources | | |
+----+------+ +-----+-----+
| |
+------+ +------------+--------------------------+
| | | |
| | | |
+-----------+ +---+--+----+ +-----+-----+ +-------+ +-----+-----+
|Messaging | |Presence | |Conference +---+Message+--+IM |
|Gateway | |Application| |Server | |Store | |Application|
+-----------+ +----|------+ +-------+---+ +-------+ +-----+-----+
| | | |
| | | |
| +--------------+ | +-------------------+
+---------------------------+ | | |
| | | |
+-----------+ +-+-+-+----+-+
| End User | |Home Serving|
| | |Proxy |
+------+----+ +---+--+----++
| | | |
| | | |
| +----------------+ | +-------------+
| | | |
+------+--+--+ +--------+-------+ +----+----+
| Edge | |Service Provider| |Transport|
| Proxy | |Edge Proxy | |Proxy |
+------------+ +----------------+ +---------+
Figure 3
Houri, et al. Expires November 30, 2003 [Page 16]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
Figure x shows the functional architecture for group managment.
+-----------+
| AAA |
| |
+-----+-----+
|
+----------------+-----------------+
| | |
| | |
+-----+-----+ +-----+-----+ +-----+-----+
|Presence | |Conference | |IM |
|Application| |Server | |Application|
+----+------+ +----+------+ +-----+-----+
| | |
| | |
+--------------+ | +---------------+
| | |
| | |
+-----------+ +---+-+--+---+
| End User |----------|Group Mgt |
| | |Directory |
+-----------+ +------------+
Figure 4
Houri, et al. Expires November 30, 2003 [Page 17]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
The following figure shows the functional architecture for users
accessing deferred messages.
+-----------+
| AAA |
| |
+-----+-----+
|
|
|
|
+-----+-----+
| Message |
| Store |
+-----+-----+
|
|
|
|
+-----+-----+
| End User |
| |
+-----------+
Figure 5
The elements of the sytem are in the above figures are:
o End point: nodes that support the IMPS instant messaging and
presence.
o Home Serving Proxy (HSP): a server that supports registrar,
proxy, and application interface functions.
o Transport Proxy: an IMPS node that provides transport of IMPS
control messages but is not directly servicing the actual requests
of the IMPS control protocol. The proxy may route IMPS control
messages to the HSP to/from the end point, or to/from other HSPs.
o Edge Proxy: a specialized proxy that many architectures use as an
intermediary between the end point and the fixed network, often
provides (SIP/SIMPLE) compression, authentication, and admission
control function.
Houri, et al. Expires November 30, 2003 [Page 18]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
o Service Provider Edge Proxy: a specialized proxy used as an
intermediary from the home service provider to other service
providers or external systems.
o Network Presence Sources: Source of presence information not
published directly by user equipment. Examples might include
adapters for HLR registration state, geo-location systems, and the
like.
o AAA: Performs authentication, authorization, and accounting
functions on behalf of the Radio Network and IP Access and SIP
entities. Only one monolithic AAA server is depicted; but it may
be that proxy AAA servers are involved to proxy AAA to an AAA
server that can authenticate the user, i.e., AAA Proxies are not
shown in the figures. Furthermore, the AAA server that
authenticates the user is not necessarily the AAA server that
authorizes various services. (???what does that mean in a real
system???)
o Messaging Conference Server: Provides messaging sessions by
duplicating messages received from one end point to all the
endpoints of a conference session.
o Message Store: Provides persistent storage of messages when users
are not available (e.g., the user is in a tunnel) or when messages
must be archived.
o Instant Messaging Application: Supports the delivery of pager
mode messages to the message store for users that are not
currently available; may also archive messages for later
retrieval.
o Presence Application: Supports presence subscription,
notification, and publication.
o Group Management Directory: Stores the lists of users associated
with groups.
o Gateway: will note be specified in this document because the
gateway interacts with systems not named nor specified herein.
5.4 Basic Flows
5.4.1 Registration
This section states requirements for a registration function that
associates an address of record with an IP address that has been
assigned to a user endpoint. An example of an address of record is
one of the legal formats of a URI [RFC 2396].
The following example assumes that the user has gained access to a
access network and has been assigned an IP address. The user must
perform IMPS registration to associate the assigned IP address with
their address of record. This registration also indicates to the
network the instant message capabilities that are supported by the
end point. Figure 6 shows the message exchange.
Houri, et al. Expires November 30, 2003 [Page 19]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
The HSP utilizes HAAA of the end point to authenticate and authorize
the user during registration. After completion of registration, the
home server stores the end point's address and is able to send
messages to the endpoint. The registration does not authorize any
service nor does it indicate to end point the services supported by
the server.
Refer to Section 8 for a discussion on registration authentication.
Houri, et al. Expires November 30, 2003 [Page 20]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
Registration
EP HSP AAA Watcher
| | | |
| (1) Register | | |
| Request | | |
|---------------->| | |
| | | |
| | (2) AAA | |
| | Request | |
| |-------------->| |
| | | |
| | (3) AAA | |
| | Response | |
| |<--------------| |
| | | |
| (4) Register | | |
| Response | | |
|<----------------| Registrar | |
| | Stores Contact| |
| | Address | |
| |--------+ | |
| | | | |
| | | | |
| |<-------+ | |
| | | |
| | | |
| | Send | |
| | registration | |
| | messages to | |
| | watcher | |
| |------------------------------>|
| | | |
Figure 6
1. The end point sends a Registration Request to the HSP.
2. The HSP sends an AAA Request to the HAAA server.
3. The HAAA server sends an AAA Response to the HSP server.
4. The HSP acknowledges the Registration Request to the end point
with a Register Response.
5. The HSP stores the new contact in its registration database.
6. if there are any registration watchers, the HSP issues
registration event notifications to them.
5.4.2 Sending and Receiving Messages
Instant messaging shall support two different messaging modes:
Houri, et al. Expires November 30, 2003 [Page 21]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
Pager mode: Each message is self-contained in one instant
messaging request message. This mode is most useful for short
sequences of messages, for small messages, and for messages sent
to few users or to a static group of users. (See RFC 3228 for
more information.)
Session mode. A set of messages is carried via some transport
protocol; this protocol is not SIP. The function of IMPS in this
case is to establish a messaging session between the interested
parties. The choice of the transport protocol to support a
messaging session is ???tbd??. From a user perspective, session
mode is like a chat room. This mode is most useful for extended
sequences of messages, for large messages, for messages sent to a
large of number of users, or to a group of users that may change
over the life of the message.
For short messages, especially in a wireless environment, pager mode
is more spectrally efficient and represents lower latency to the user
that establishing separate transport sessions. This transport
session is independent of any transport involved in the transport of
IMPS control messages. If the user plans on sending many messages,
or large messages, pager-mode is less efficient in comparison to
session mode.
It is possible that a message contains a reference (e.g., a URL) that
points to a large message instead of containing the message itself.
This section first addresses pager mode and then session mode
messaging.
5.4.2.1 Sending a Pager Mode Message
The end point sends a pager-mode request to the sender Home Service
Proxy (HSP). This may occur via intermediary IMPS proxies if
necessary. The pager mode request contains the logical name of the
desired target user or group. The body of the pager-mode request
contains a message encapsulated in the form of a valid MIME format,
which includes text, general multi media such as audio, still photos,
or video. MIME is the widely used format for email attachments. The
sender HSP receives the pager-mode request and queries the user's
HAAA to verify that the user is allowed to send a message through
this proxy. The authorization response from the HAAA includes
transmission policy logic for the user. The authorization can be
cached and details are left to ???what???, i.e., it is not necessary
for the HSP to check the AAA for the user for each pager mode
request. Authentication and Authorization mechanisms are discussed
in Section ?. The sender HSP then executes user transmission policy
logic e.g., expands the logical name of the target to which the
message is being sent, expands nicknames to logical names, etc. The
Houri, et al. Expires November 30, 2003 [Page 22]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
HSP sends the request to the sender IM Application, which verifies
the user is authorized for service; if so logs the message on behalf
of the user. As in the case of the HSP, the authorization can be
cached and details are left to ???what???. In the typical case, the
sender HSP then determines if the pager mode request is targeted to a
user in the domain of the sender HSP. If this is the case, the HSP
sends the request to the target user's IM Application. That IM
Application logs the pager mode request and proxies it to the sender
HSP, which then delivers the requst to the target user. The receiver
endpoint responds with an acknowledge response to the sender HSP,
which proxies the response to the sender endpoint.
If the message is not targeted to a user in the sender HSP domain,
the sender HSP then proxies the request onward via intermediary IMPS
proxies towards the destination. The message is delivered to the
receiver's HSP, which proxies the pager mode message to the IM
Application that supports the target user, as explained in Section ?.
The receiver's HSP responds with an acknowledge response to the
sender HSP, which proxies it to the sending user. Figure ? shows a
message exchange associated assuming a sender HSP up to the point of
delivery to the receiver HSP. Figure ? then completes the scenario.
If some intermediary proxy in the chain at any point is unable to
forward the message, that proxy returns an appropriate error
response.
It is possible that the endpoint could be able to determine the
receiver HSP without using the sending HSP; however, this would
bypass the sender IM Application.
Houri, et al. Expires November 30, 2003 [Page 23]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
End Sender IM HAAA Receiver
Point HSP Application HSP
| | | | |
| (1) Pager- | | | |
| Mode Request | | | |
|------------->| | | |
| | (2) AAA | | |
| | Request | | |
| |-------------------------->| |
| | | | |
| | | | |
| | (3) AAA | | |
| | Response | | |
| |<--------------------------| |
| | | | |
| | (4) Pager- | | |
| | Mode Request| | |
| |------------>| | |
| | | (5) AAA | |
| | | Request | |
| | |------------>| |
| | | | |
| | | (6) AAA | |
| | | Response | |
| | |<------------| |
| | | | |
| | |(7) Pager- | |
| | |Mode Response| |
| | |<------------| |
| | | | |
| | (8) Pager- | | |
| | Mode Request| | |
| |--------------------------------------->|
| | | | |
| | | | |
| |(9) Pager- | | |
| |Mode Response| | |
| |<----------------------------------------
| | | | |
| (10) Pager | | | |
| Mode Response| | | |
|<-------------| | | |
| | | | |
Figure 7
Houri, et al. Expires November 30, 2003 [Page 24]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
1. The endpoint station sends a pager mode request.
2. The sender HSP authenticates the user's request by sending an AAA
request to the user's HAAA.
3. The HAAA authenticates and authorizes the user and sends an AAA
response to the sender HSP.
4. The sender HSP proxies the request to the sender IM Application.
5. The IM Application authenticates and authorizes the user's
request by sending an AAA request to the user's HAAA.
6. The HAAA authenticates and authorizes the user and sends an AAA
response to the IM Application.
7. The sender IM Application archives the message and proxies the
request back to the sender HSP.
8. The sender HSP proxies the request to the receiver HSP.
9. The receiver's HSP proxies a request response to the sender HSP.
10. The sender HSP sends a request response to the sending endpoint.
If the user plans on sending messages to a group, the user or some
other party must have previously created the desired group. A group
is created using list management as described below (see section
6.3). In this case the pager-mode request is sent to the HSP serving
the group. The list's logical name is the target name of the pager
mode request. There are two alternative approaches outlined herein
for the delivery of the pager mode request to a group:
o The HSP serving the list sends the pager mode request to all the
recipients per the list; recipients then acknowledge the pager
mode request and one acknowledge is received per received
recipient. It is possible the members of the lists are additional
groups themselves. for the case of wireless use, a sending
endpoint (mobile station) receives one acknowledge from all
physical recipients, which may be a spectral burden if the final
expansion of the list is very large.
o The HSP serving the list verifies it can expand the list, sends
one acknowledge to the entity that sent the pager mode request,
which can be another HSP or the endpoint, and creates a new pager
mode request to each of the recipients on the list. The sending
endpoint only receives one acknowledge, which is spectrally more
efficient.
Security associated with sending a pager mode request is discussed in
the section ?
5.4.2.2 Receiving a Pager Mode Message
The above scenario shows a user sending a pager-mode request to a
receiver's HSP. This section shows the reception process for the
page-mode from the point of reception by the receiver's HSP. If the
pager-mode request was sent to many receivers, they will all behave
Houri, et al. Expires November 30, 2003 [Page 25]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
with the reception process below.
A message targeted to the user's address of record is delivered to
that user's HSP (the receiver HSP). The receiver HSP recognizes that
the address of record is served by this HSP, i.e., is in the
administrative domain of this HSP. The receiver HSP verifies that
the receiving user is authorized to receive message through this HSP
by sending an AAA request to the HAAA of the targeted user. The HAAA
of the target user authorizes the receiver's HSP to deliver the
message in an AAA Response and provides a reception policy to the
receiver's HSP. The authorization can be cached and details are tbd,
i.e., it is not necessary for the HSP to check the AAA for the user
for each pager mode request.
Authentication and Authorization is discussed in Section ???. The
receiver's HSP then executes routing or filtering logic associated
with this user (user policy), and acts accordingly, e.g., discards
the message, stores it for later delivery, etc. In the typical case
the user is authorized and willing to receive the message and has
previously registered a contact address. The receiver HSP then
proxies the pager-mode request to the receiver's IP application,
which verifies the user is authorized for service, and proxies an
acknowledge back. As in the case of the HSP, the authorization can
be cached and details tbd. The receiver HSP then consults its
registration table for that logical name, and then finds the IP
address of the endpoint. The receiver HSP then sends the request to
the associated IP address. The message is received at the endpoint
and the endpoint responds with an acknowledge response, which is
routed via proxies to the entity that sent the pager-mode request.
From the previous section we see that that entity could be the
endpoint itself that is the origin of the pager-mode request, or
other sender HSPs that expanded the target list. (editor note: would
the response have to pass via the sender HSP?) Lastly, the receiving
endpoint alerts its user upon reception of the pager-mode request.
See Figure ?? for scenario example.
Because wireless resources are scarce and the user may not desire
messages from just anyone, the user may populate a policy in the HSP
that controls how incoming messages will be processed. For example,
"unwanted" messages may be discarded, allowing the user to avoid
charges associated with such messages. (See section ???)
Houri, et al. Expires November 30, 2003 [Page 26]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
Sender Receiver IM HAAA End
HSP HSP Application Point
| | | | |
| (1) Pager- | | | |
| Mode Request | | | |
|------------->| | | |
| | (2) AAA | | |
| | Request | | |
| |-------------------------->| |
| | | | |
| | | | |
| | (3) AAA | | |
| | Response | | |
| |<--------------------------| |
| | | | |
| | (4) Pager- | | |
| | Mode Request| | |
| |------------>| | |
| | | (5) AAA | |
| | | Request | |
| | |------------>| |
| | | | |
| | | (6) AAA | |
| | | Response | |
| | |<------------| |
| | | | |
| | |(7) Pager- | |
| | |Mode Response| |
| | |<------------| |
| | | | |
| | (8) Pager- | | |
| | Mode Request| | |
| |--------------------------------------->|
| | | | |
| | | | |
| |(9) Pager- | | |
| |Mode Response| | |
| |<---------------------------------------|
| | | | |
| (10) Pager | | | |
| Mode Response| | | |
|<-------------| | | |
| | | | |
Figure 8
Houri, et al. Expires November 30, 2003 [Page 27]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
1. The sender HSP sends a pager mode request to the receiver HSP.
2. The receiver HSP veifies that the user is authorized to recieve
such requests by sending an AAA request to the HAAA of the
target user.
3. The HAAA authenticates and authorizes the user and sends an AAA
response to the receiver HSP.
4. The receiver HSP proxies the request to the receiver IM
Application.
5. The IM Application authenticates and authorizes the user's
request by sending an AAA request to the user's HAAA.
6. The user's HAAA authenticates and authorizes the user and sends
an AAA response to the IM Application.
7. The receiver IM Application archives the message and proxies the
request back to the receiver HSP.
8. The HAAA sends an AAA response to the receiver HSP that
authorizes the pager-mode request and that may contain a
reception policy for the target user.
9. After possibly screening the request based on some policy, the
receiver HSP sends the request to the endpoint.
10. The endpoint sends a request response to the receiver HSP.
11. The receiver HSP sends the request response to the sender HSP.
5.4.2.3 Deferred Message Delivery to IM Application
It may be in Figure 6 that the receiver endpoint is not avaible. In
this case, the receiver IM Application will archive the message at
the message store and arrange for delivery later.
When the receiver HSP receives the pager mode request from the sender
HSP, it then sends the pager-mode request to the receiver IM
Application. Pager-mode messages are delivered to the recipient's IM
application, which applies local policy in determining what to do
with that message. In the typical case, the policy will be to
forward the message to the registered contact if there is one, and to
store the message for future delivery if there is no registered
contact. Another reasonable policy might be to reject the message if
there are no registered contacts for the recipient. If the message
is stored for deferred delivery, the IM application may (based on
policy) indicate in its response to the sender that delivery of the
message has been deferred. Th The IM Application also logs the
message.
The following call flow shows the delivery of a pager-mode message to
an IM application, and the storing of that message by the IM
application for deferred delivery to the intended recipient. The
actual delivery of the message to the user will occur at some future
time, and is addressed in a separate call flow in the following
section.
Houri, et al. Expires November 30, 2003 [Page 28]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
Sender Receiver IM HAAA Message
HSP HSP Application Store
| | | | |
| (1) Pager- | | | |
| Mode Request | | | |
|------------->| | | |
| | (2) AAA | | |
| | Request | | |
| |-------------------------->| |
| | | | |
| | | | |
| | (3) AAA | | |
| | Response | | |
| |<--------------------------| |
| | | | |
| | (4) Pager- | | |
| | Mode Request| | |
| |------------>| | |
| | | (5) Store | |
| | | Message | |
| | |------------------------->|
| | | | |
| | | | |
| | |(6) Acknowledge |
| | |<-------------------------|
| | | | |
| |(7) Pager- | | |
| |Mode Response| | |
| |<------------| | |
| | | | |
| (8) Pager | | | |
| Mode Response| | | |
|<-------------| | | |
| | | | |
Figure 9
1. The sender HSP sends a pager mode request to the receiver HSP.
2. The receiver HSP verifies that the user is authorized to receive
such requests by sending an AAA request to the HAAA of the target
user.
3. The receiver HSP proxies the request to the receiver IM
Application.
4. The receiver IM Application archives the message in the message
store.
5. The message store acknowledges successful storage to the IM
Application.
Houri, et al. Expires November 30, 2003 [Page 29]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
6. The IM Application sends a request response to the receiver HSP.
7. The receiver HSP sends a request response to the sender HSP.
5.4.2.4 Delivery of Deferred Message to User
In the previous section, the IM Application archived the message in
the message store. At a later point in time, the user becomes
available to receive instant messages. The IM application learns the
user is available when it receives a presence notification that
indicates the user is available to receive deferred instant messages.
Houri, et al. Expires November 30, 2003 [Page 30]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
Presence Receiver IM HAAA Message
Application HSP Application Store
| | | | |
| (1) available| | | |
| notification | | | |
|------------->| | | |
| |(2) available| | |
| |notification | | |
| |------------>| | |
| | | | |
| | | | |
| | | | |
| | | | |
| |<--------------------------| |
| | | | |
| | (4) Pager- | | |
| | Mode Request| | |
| |------------>| | |
| | | (5) Store | |
| | | Message | |
| | |------------------------->|
| | | | |
| | | | |
| | |(6) Acknowledge |
| | |<-------------------------|
| | | | |
| |(7) Pager- | | |
| |Mode Response| | |
| |<------------| | |
| | | | |
| (8) Pager | | | |
| Mode Response| | | |
|<-------------| | | |
| | | | |
Figure 10
1. The IM Application sends a message retrieve request to the
message store.
2. The message store responds with deferred messages.
3. The IM Application sends one pager-mode request to the receiver
HSP for each message returned by the message store.
4. The receiver HSP sends a pager-mode request to the MS.
5. The MS sends a pager-mode response back to the receiver HSP.
6. The receiver HSP sends a pager-mode response back to the IM
Application
Houri, et al. Expires November 30, 2003 [Page 31]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.4.2.5 Logging Pager-Mode Messages
Logging pager-mode messages is outside the scope of this document.
5.4.2.6 Establishing a Point-to-Point Messaging Session
There are two options for session based message transport:
o Direct connections between parties; for two users this can be
point-to-point, otherwise multicast is assumed.
o Connections via a network based conference-like function that
duplicates messages.
The endpoint sends a messaging session request to its Home Service
Proxy (HSP). This messaging session invitation does not actuate the
transport session establishment itself; rather it serves to invite
desired entities to establish the transport protocol instance that
will intrinsically support message transport. The messaging session
request indicates a messaging session of some type, e.g., CPIM/TCP,
XMPP, etc., that is desired. The request contains the logical name
of the desired target user or group as well as information describing
the message transport session to be established.
The HSP receives this messaging session request and sends an
authentication request to the HAAA of the user to verify that the
user is authorized to such a request through this proxy. The HAAA
responds with an AAA response, which contains a transmission policy.
The HSP then executes user transmission policy logic, e.g., expands
the logical name, expands nicknames associated with the logical name,
etc. In the typical case, the HSP determines if the transport
establish request is targeted to a user in the domain of the HSP. If
so the HSP delivers the messaging session request to the target user.
If the messaging session request is not targeted to a user in the
domain of the HSP, the HSP then proxies the request onward towards
the receiver HSP of the target user via intermediary proxies. If
some proxy in the chain is unable to forward the messaging session
request, that proxy returns an appropriate error response.
Otherwise, the request is delivered to the receiver HSP, which then
sends an AAA to the target user's HAAA to request authorization for
the messaging session request. The HAAA responds with an AAA
response. The receiver HSP proxies the messaging session request to
the target user. The endpoint alerts the user so it can determine
whether to accept the messaging session request or not. If the
target user accepts the request, it sends a messaging session
response to its HSP, which proxies the messaging session response via
the intermediary proxies to the sender's HSP. At this point, the
endpoint and the terminating entity execute the desired transport
Houri, et al. Expires November 30, 2003 [Page 32]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
protocol establish that was identified by the messaging session
request.
Houri, et al. Expires November 30, 2003 [Page 33]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
Figure 9 provides an example flow of a point-to-point messaging
session establishment.
End Sender Receiver Sender Receiver End
Point HSP HSP HAAA HAAA Point
| | | | | |
|(1) messaging | | | |
|session | | | | |
|request | | | | |
| | (2) AAA | | | |
| | Request | | | |
| |------------------------->| | |
| | | | | |
| | | | | |
| | (3) AAA | | | |
| | Response | | | |
| |<-------------------------| | |
| | | | | |
| |(4) messaging| | | |
| |session | | | |
| |request | | | |
| |------------>| (5) AAA | | |
| | | Request | | |
| | |----------------------->| |
| | | | | |
| | | (6) AAA | | |
| | | Response | | |
| | |<-----------------------| |
| | |(7) messaging | |
| | |session | | |
| | |request | | |
| | |---------------------------------->|
| | |(8) messaging | |
| | |session | | |
| | |response | | |
| | |<----------------------------------|
| | | | | |
| |(9) messaging| | | |
| |session | | | |
| |response | | | |
| |<------------| | | |
|(10) messaging | | | |
|session | | | | |
|response | | | | |
|<-----------| | | | |
| | | | | |
Houri, et al. Expires November 30, 2003 [Page 34]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
Figure 11
1. The endpoint sends a messaging session invitation to the senders
HSP.
2. The sender HSP authenticates the user's request and verifies the
user is authorized to use that HSP. The sender HSP sends the
request to the receiver HSP.
3. The receiver HSP sends the request to the receiver.
4. The receiver sends a message session response to the receiver
HSP.
5. The receiver HSP sends a message session response to the sender
HSP.
6. The sender HSP sends a message session response to the endpoint.
7. The endpoint sends a message session acknowledge to the target.
8. The two endpoints establish a messaging session.
5.4.2.7 Sending a Message Within a Messaging Session
When the messaging session as establishment is complete, the user may
send messages using it. This is shown in Figure ??. If a network
based conference server is involved, it will copy the messages and
forward them via the transport connection.
Houri, et al. Expires November 30, 2003 [Page 35]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
| |
| |
| (1) Messaging Session |
| Establishment Complete |
|<------------------------>|
| |
| |
| |
| |
| (2) Message over |
| Messaging Session |
|<------------------------>|
| |
| |
| |
Figure 12
1. The messaging session is established, which may be between two
users or between each user and the conference server.
2. The message is sent over the messaging session.
Houri, et al. Expires November 30, 2003 [Page 36]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.4.2.8 Receiving a Message Within a Messaging Session
When the transport session as negotiated by SIP is complete, a user
may receive messages via the transport session as shown below.
| |
| |
| (1) Messaging Session |
| Establishment Complete |
|<------------------------>|
| |
| |
| |
| |
| (2) Message over |
| Messaging Session |
|<------------------------>|
| |
| |
| |
Figure 13
1. The messaging session is established, which may be between two
users or between each user and the instant messaging application.
2. The message is received over the messaging session.
5.4.2.9 Adding a Member to an Established Session
This document specifies use of conference control procedures to add a
member to an established session. The conference control design team
of the SIPPING WG of the IETF is designing these procedures. Two
cases are considered:
o Adding a third user point-to-point session. Transition a two-user
session to a multiparty conference and add a third part to the
conference.
o Adding a user to a multiparty session, i.e., a session with more
than two current users.
5.4.2.10 Transitioning a Two Party Session to a Multiparty Conference
and Adding a Third Participant
Houri, et al. Expires November 30, 2003 [Page 37]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
End End Conference AAA
Point A Point B Server
| | | |
| | | |
| (1) pt2pt | | |
| Session | | |
| Established | | |
|<-------------->| | |
| | | |
| (2) Conference | | |
| Session | | |
| Request | | |
|-------------------------------->| |
| | | (3) AAA |
| | | Request |
| | |-------------->|
| | | |
| | | (4) AAA |
| | | Request |
|(5) Conference | |<--------------|
|Session Response| | |
|-------------------------------->| |
| | | |
| | | |
| (6) Conference | | |
| Session Ack | | |
|<--------------------------------| |
| | | |
| | | |
| (7) Replace | | |
| Request | | |
|--------------->| | |
| | | |
| (8) Replace | | |
| Response | | |
|<---------------| | |
| | | |
| (9) Release | | |
| Request | | |
|<---------------| | |
| | | |
| (10) Release | | |
| Response | | |
|--------------->| | |
| | | |
Figure 14
Houri, et al. Expires November 30, 2003 [Page 38]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
End End Conference End
Point A Point B Server Point C
| | | |
| | | |
| |(11) Messaging | |
| |Session Request | |
| |--------------->| |
| | | |
| |(12) Messaging | |
| |Session Response| |
| |<---------------| |
| | | |
| |(13) Messaging | |
| |Session Ack | |
| |--------------->| |
| (14) Notify | | |
| Request | | |
|<---------------| | |
| | | |
| (15) Notify | | |
| Response | | |
|--------------->| | |
| | | |
| (16) Join | | |
| Request | | |
|------------------------------------------------->|
| | | |
| (17) Join | | |
| Response | | |
|<-------------------------------------------------|
| | |(18) Messaging |
| | |Session Request |
| | |<-------------- |
| | | |
| | |(19) Messaging |
| | |Session Response|
| | |--------------->|
| | | |
| | | (20) Messaging |
| | | Session Ack |
| | |<---------------|
| | | |
| | | |
Figure 15
Houri, et al. Expires November 30, 2003 [Page 39]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
End End Conference End
Point A Point B Server Point C
| | | |
| | | |
| | | |
| (21) pt2pt | | |
| Messaging | | |
| Session | | |
|<------------------------------------------------>|
| | (22) pt2pt | |
| | Messaging | |
| | Session | (23) pt2pt |
| |<-------------->| Messaging |
| | | Session |
| | |<-------------->|
| | | |
| | | |
| | | |
Figure 16
1. A and B have a point-to-point messaging session. A now
determines it wishes to add C to the messaging session.
2. A sends a conference session request to the conference server.
This informs the conference server of the identity of the
conference to be established. Later the actual messaging
transport session is initialized. The method by which A finds
the conference server is not shown in this flow.
3. The conference server sends an AAA request to the HAAA of the
requesting user to verify that user is authorized to use this
conference server.
4. The HAAA sends an AAA response to the requesting user.
5. The conference server responds conference session response.
6. A sends a messaging session acknowledge to the conference server.
7. A sends a replace request to B that requests that B release the
point-to-point messaging session with A and replace with a
point-to-point messaging session to a conference server.
8. B sends a replace response to A.
9. B sends a release request to A.
10. A responds with a release request response.
11. B sends a messaging session request to the conference server.
12. The conference server sends a messaging session response to B.
13. B sends a messaging session acknowledge to the conference
server.
14. B sends a notify request to inform A that it has replaced the
connection to A with one to the conference server.
Houri, et al. Expires November 30, 2003 [Page 40]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
15. A sends a notify response to B.
16. A asks C to join the conference. The endpoint alerts user C and
user C makes the decision to join the session.
17. C sends a response to A.
18. C sends a messaging session requst to the conference server.
19. The conference server tells C it is allowed to join the
conference.
20. C acknowledges that response.
21. A and the conference server establish a point-to-point messaging
session.
22. B and the conference server establish a point-to-point messaging
session.
23. C and the conference server establish a point-to-point messaging
session.
5.4.2.11 Adding a User to a Multiparty Session
Figure 13 exactly depicts this case, i.e., substitute any other user
being for user C in that figure.
Houri, et al. Expires November 30, 2003 [Page 41]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.4.2.12 Leaving a Messaging Session
This document specifies use of conference control procedures to
delete a member to an established session. The conference control
design team of the SIPPING WG of the IETF is designing these
procedures. The following shows B dropping off the established
conference session.
End Conference
Point B Server
| |
| |
| (1) Release |
| Request |
|------------------------->|
| |
| |
| (2) Release |
| Response |
|<-------------------------|
| |
| |
| (3) Quit |
| Messaging Session |
|<------------------------>|
| |
| |
Figure 17
1. B sends a Release Request
2. The conference server sends a Release Response to B.
3. B and the conference server terminate the messaging transport
session.
5.4.2.13 Logging Messaging Session Messages
Logging messages from a messaging session is outside the scope of the
architecture.
5.4.3 Group Operations
A group is a nested collection of addresses or identifiers such as an
address or record. A group is identified by a single address.
Various operations can be performed on a group. The semantics of the
Houri, et al. Expires November 30, 2003 [Page 42]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
operations performed on a group (as opposed to being performed on an
individual address) depend on, and should be defined by, each
operation. This implies a need for usual group operations such as
creation, modification, retrieval, and deletion lists.
When the endpoint desires to perform instant messaging (presence)
list operations, such as creating or deleting the list, or modifying
an existing list, the endpoint establishes security association and
then a list management session with its HSP. The endpoint then
executes the desired list operation using the list management
session. The method by which the endpoint is provisioned with a URL
of the list server is outside the scope of this document. OMA has
specified IP Provisioning Over the Air and such methods should be
adopted or extended if necessary for this application.
The following operations are supported:
o Add, with a list of URIs to add to the designated list.
o Delete, with a list of URIs to delete from the designated list.
o A list of existing URIs on the designated list that are to be
overwritten with new attributes.
o Retrieve the designated list.
o Only one list can be affected in a single transaction.
5.4.3.1 Creating a Group
Users or service providers can create a group in more than one way.
The list management session requires and authentication of the user
and an authorization that the user is permitted to create lists at
this HSP. A security session establishes privacy of all list
management transactions, to be discussed in section 1.1.16.5.2. The
user sends a create group request, which is acknowledged, to install
the list on the Directory. After the transaction is complete, the
security and list management session are terminated.
The AAA server could be the Home AAA server of the user or could be
an AAA server local to the Directory.
Houri, et al. Expires November 30, 2003 [Page 43]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
End
Point A Directory AAA
| | |
| | |
| (1) Create | |
| Group | |
|------------------------->| |
| | (2) AAA Request |
| |-------------------------->|
| | |
| | |
| | |
| | (3) AAA Response |
| |<--------------------------|
| (4) Create | |
| Group Response | |
|<-------------------------| |
| | |
| | |
Figure 18
1. A user sends a create group request to the directory.
2. The directory sends an AAA request to the AAA of the requesting
user to verify the user is authorized to create a group.
3. The AAA sends an AAA response that authorizes the user to create
the group.
4. The user creates the group.
5. The directory acknowledges the creation of the group.
Houri, et al. Expires November 30, 2003 [Page 44]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.4.3.2 Deleting a Group
Authorized entities may desire to delete group lists.
End
Point A Directory AAA
| | |
| | |
| (1) Delete | |
| Group | |
|------------------------->| |
| | (2) AAA Request |
| |-------------------------->|
| | |
| | |
| | |
| | (3) AAA Response |
| |<---------------------------
| (4) Delete | |
| Group Response | |
|<------------------------>| |
| | |
| | |
Figure 19
1. A user sends a delete group request to the directory.
2. The directory sends an AAA request to the AAA of the requesting
user to verify the user is authorized to delete the group.
3. The AAA sends an AAA response that authorizes the user to delete
the group.
4. The user creates the group.
5. The directory acknowledges the deletion of the group by sending a
group delete response.
Houri, et al. Expires November 30, 2003 [Page 45]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.4.3.3 Modifying a Group
Authorized entities may desire to modify group lists.
End
Point A Directory AAA
| | |
| | |
| (1) Modify | |
| Group | |
|------------------------->| |
| | (2) AAA Request |
| |-------------------------->|
| | |
| | |
| | |
| | (3) AAA Response |
| |<---------------------------
| (4) Modify | |
| Group Response | |
|<------------------------>| |
| | |
| | |
Figure 20
1. A user sends a modify group request to the directory.
2. The directory sends an AAA request to the AAA of the requesting
user to verify the user is authorized to modify the group.
3. The AAA sends an AAA response that authorizes the user to modify
the group.
4. The directory acknowledges the modification of the group by
sending a group modify response.
Houri, et al. Expires November 30, 2003 [Page 46]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.4.3.4 Retrieving a Group
Authorized entities may desire to retrieve group lists.
End
Point A Directory AAA
| | |
| | |
| (1) Retrieve | |
| Group | |
|------------------------->| |
| | (2) AAA Request |
| |-------------------------->|
| | |
| | |
| | |
| | (3) AAA Response |
| |<---------------------------
| (4) Retrieve | |
| Group Response | |
|<------------------------>| |
| | |
| | |
Figure 21
1. A user sends a retrieve group request to the directory.
2. The directory sends an AAA request to the AAA of the requesting
user to verify the user is authorized to modify the group.
3. The AAA sends an AAA response that authorizes the user to modify
the group.
4. The directory sends the group data to the user.
Houri, et al. Expires November 30, 2003 [Page 47]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.4.3.5 Publishing User Management Policy
As stated above, wireless resources are often scarce and the user may
not desire to receive messages from just anyone, the user may
populate a policy in the HSP that controls how incoming messages will
be processed.
End
Point A Directory AAA
| | |
| | |
| (1) edit Reception | |
| Policy | |
|------------------------->| |
| | (2) AAA Request |
| |-------------------------->|
| | |
| | |
| | |
| | (3) AAA Response |
| |<---------------------------
| (4) edit Reception | |
| Response | |
|<------------------------>| |
| | |
| | |
Figure 22
1. The endpoint establishes a policy management session with the
presence application.
2. The presence application verifies the user is authorized to
modify the policy by sending an AAA request to the AAA server.
3. The AAA responds to the presence application with an
authorization for the user.
4. The endpoint edits the reception policy.
5. The endpoint terminates the policy management session.
Houri, et al. Expires November 30, 2003 [Page 48]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.4.4 Access Deferred Messages
An end use may wish to access deferred messages. In order to ensure
that the unauthorized entities do not access the user's deferred
messages, the IM Application authenticates and authorizes the user to
access the messages before sending a request to the message store.
End Message
Point A Directory AAA Store
| | | |
| | | |
| (1) Retrieve | | |
| Message Request | | |
|------------------>| | |
| | (2) AAA Request | |
| |---------------->| |
| | | |
| | | |
| |(3) AAA Response | |
| |<----------------| |
| | | |
| | | |
| | | |
|< | (4) Retrieve | |
| | Message Request | |
| |--------------------------------->|
| | | |
| | (5) Retrieve | |
| | Message Response| |
| |<---------------------------------|
| (6) Retrieve | | |
| Message Response | | |
|<------------------| | |
| | | |
Figure 23
1. The user sends a request to the IM Application to retrieve
deferred messages.
2. The IM Application authenticates and authorizes the user by
sending an AAA Request to the user's HAAA.
3. The HAAA authenticates and authorizes the user and sends an AAA
Response to the IM Application authorizing the user to access the
deferred messages.
Houri, et al. Expires November 30, 2003 [Page 49]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
4. The IM Application requests the messages by sending a message
retrieve request to the Message Store.
5. The Message Store sends the messages to the IM Application.
6. The IM Application sends the messages to the user.
5.4.5 Presence Operations
Houri, et al. Expires November 30, 2003 [Page 50]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.4.5.1 Publishing Presence
The endpoint sends a presence publish request to the presence
application via the HSP as in the Figure 20Figure 17. This request
contains the new presence document to publish . The presence
application authenticates the user and verifies the user is
authorized to store the event at this proxy.
End Presence
Point A Application AAA
| | |
| | |
| (1) Presence | |
| Publish Request | |
|------------------------->| |
| | (2) AAA Request |
| |-------------------------->|
| | |
| | |
| | |
| | (3) AAA Response |
| |<--------------------------|
| (4) Presence | |
| Publish Response | |
|<-------------------------| |
| | |
| | |
Figure 24
1. The endpoint sends a presence publish request to the presence
application.
2. The presence application sends an AAA request to the AAA server
to authorize the MS to publish a presence document to this
application.
3. The AAA sends an AAA response to the presence application
authorizing the presence publish request.
4. The presence application sends a presence publish response to the
endpoint.
Houri, et al. Expires November 30, 2003 [Page 51]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.4.5.2 Subscribing to Presence (or a Presence List)
The endpoint sends a presence subscription request to the presence
application of the presence application that owns the presence state
of entity referenced in the logical address. This is shown in Figure
21Figure 18. The user may be subscribing to events for a specific
user or a list of users.
End Presence
Point A Application AAA
| | |
| | |
| (1) Presence | |
| Subscribe Request | |
|------------------------->| |
| | (2) AAA Request |
| |-------------------------->|
| | |
| | |
| | |
| | (3) AAA Response |
| |<--------------------------|
| (4)Presence | |
| Subscribe Response | |
|<-------------------------| |
| | |
| (5) Presence | |
| Notification Response | |
|<-------------------------| |
| | |
| | |
Figure 25
1. The endpoint sends a presence subscribe request to the presence
application that supports the desired entity.
2. The presence application sends an AAA request to the AAA server
to authorize the requesting user to subcribe to the presence of
the presentity.
3. The AAA server sends an AAA response to the presence application
authorizing the presence subscription request.
4. The presence application sends a presence subscription response
to the endpoint.
5. The presence application sends a presence notification response
to the endpoint.
Houri, et al. Expires November 30, 2003 [Page 52]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.4.5.3 Receiving a Presence Notification
An endpoint that has previously subscribed to an event as above. The
endpoint receives a notification from the presence application of the
presentity or presentity list as follows according to the
subscription parameters when the subscription was made.
"
End Presence
Point A Application
| |
| |
| (1) Presence |
| Notify Request |
|<-------------------------|
| |
| |
| |
| (2) Presence |
| Notify Response |
|<-------------------------|
| |
| |
Figure 26
1. The endpoint receives a presence notification request.
2. The endpoint sends a presence notification response.
Houri, et al. Expires November 30, 2003 [Page 53]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.4.5.4 Querying Presence
End Presence
Point A Application AAA
| | |
| | |
| (1) Presence | |
| Query Request | |
|------------------------->| |
| | (2) AAA Request |
| |-------------------------->|
| | |
| | |
| | |
| | (3) AAA Response |
| |<--------------------------|
| (4) Presence | |
| Query Response | |
|<-------------------------| |
| | |
| | |
Figure 27
1. The endpoint sends a presence query request to the presence
application that supports the desired entity.
2. The presence application sends an AAA request to the AAA server
to authorize the requesting user to query the presence of the
presentity.
3. The HAAA sends an AAA response to the presence application
authorizing the presence query request.
4. The presence application sends a presence query response to the
endpoint.
5.5 Security and Privacy Issues in IM/Presence Architecture
As requests travel from clients to servers, it is important that the
integrity of the message be safeguarded. At the server, the identity
of the client must first be authenticated before authorizing its
request. Integrity of the responses sent by the server must also be
safeguarded. Also, the privacy rights of the clients must not be
violated; the clients should be given the ability to set
accessibility controls (authorization) to information it owns. On
top of all this, the network and framework must be protected from
attacks (e.g. denial-of-service (DOS), worms or viruses) launched
Houri, et al. Expires November 30, 2003 [Page 54]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
from the network level, or from the application itself.
Security often refers to mechanisms used to provide data
confidentiality, integrity and authentication. This section gives a
brief overview of the various aspects of security and privacy
solutions available for use in a SIP based IM/Presence framework.
5.5.1 Authentication
This allows the system to verify "who" is requesting it for service.
The IM system depends on mechanism built into the underlying SIP
protocol to authenticate users. SIP provides a stateless
challenge-based mechanism for authentication that is itself based on
authentication in HTTP. A proxy or UA that receives a request may
challenge the initiator of the request to provide assurance of its
identity. After the originator has been successfully identified, the
recipient of the request should then carry out the Authorization
process to ascertain if the requestor is authorized to make the
request in question, or not.
HTTP/1.0 offers two access authentication schemes: Basic and Digest.
Both schemes depend on verifying that both parties to a communication
know a shared secret (a password). However, Basic's verification
steps involves sending the password in the clear (a big weakness of
this method), unlike in Digest.
5.5.1.1 Challenge-Response Access Authentication Mechanism
When a client (via its Proxy/UA) makes a requests of a server for
access to a protected object or resource, the server can challenge
the UA to provide authentication information by sending the "401
Unauthorized" response message, with a WWW-Authenticate header field
that includes at least a challenge applicable to the requested
resource.
The proxy/User Agent in turn, uses the "407 Proxy Authentication
Required" response message to challenge the authorization of the
client, and must include a Proxy-Authenticate header field containing
at least one challenge applicable to the proxy for the requested
resource.
The challenge itself is composed of a case-insensitive string token
representing the authentication scheme in use (i.e. "Basic" or
"Digest"), followed by a comma-separated list of attribute value
pairs carrying authentication parameters. One such attribute is the
realm, defines the protection space or region under the control of
the server for which the authentication scheme is in effect. The
realm value is a string generally assigned by the challenging origin
Houri, et al. Expires November 30, 2003 [Page 55]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
server. This is often the canonical root URL (absolute URI) of the
server, (e.g. " myrealm@host.com" ) . Other attributes include:
o domain: a quoted space-separated list of URIs that define the
protection space. The client can use this to determine the set of
URIs for which the same authentication information may be sent.
o nonce : a server-specified (hexadecimal or base64) data string
which is uniquely generated each time a 401 response is made. The
contents of the nonce are implementation dependent; for example,
to protect against replay-attack, an implementation may chose not
to accept previously used nonce. The nonce is opaque to the
client.
o opaque : a string of data specified by the server which should be
returned unchanged by the client in the authorization header of
subsequent requests.
o stale : a flag indicating that the previous request from client
was rejected because the nonce value was state.
o algorithm : a string indicating a pair of algorithms to produce
the digest and a checksum (in the case of Digest scheme). If this
is absent, it is assumed to be "MD5" .
o qop-options: an optional indication of the "quality of
protection" values supported by the server.
An example of the WWW-Authenticate header field in a "401
Unauthorized" challenge is:
WWW-Authenticate: Digest
realm="myhost.com",
qop="auth,auth-int",
nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
opaque="5ccc069c403ebaf9f0171e9517f40e41"
A user agent responding to the challenge, or wishing to authenticate
itself with the origin server does so by including an Authorization
header field with its request. Also, a client may authenticate
itself with the proxy/UA by including a Proxy-Authorization header
field with the request. Both these header field values contain
credentials bearing the authentication information of the client for
the realm of the resource being requested. The UA must chose to use
one of the challenges with the strongest authentication scheme it
understands, and request credentials from the user based on that
challenge.
In "basic" authentication scheme, the client must authenticate itself
with a user-ID and a password for each realm. This is not a secure
method as the user name and password are sent in the clear. The
"digest" scheme challenges using a nonce value and the client's
response contains, among other parameters, checksum of the user name,
Houri, et al. Expires November 30, 2003 [Page 56]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
password, the nonce, and the requested URI. Thus the password is
never sent in the clear.
An example of an Authorization header field is:
Authorization: Digest username="Joe",
realm="myhost.com",
nonce="dcd98b7102dd2f0e8b11d0f600bfb0c093",
uri="sip:joe@myhost.com",
qop=auth,
nc=00000001,
cnonce="0a4f113b",
response="6629fae49393a05397450978507c4ef1",
opaque="5ccc069c403ebaf9f0171e9517f40e41"
5.5.1.2 Limitations
Though the Digest scheme is more secure than the Basic scheme, both
are password based, and thus suffer from problems with password
systems (there is no initial secure link between the server and
client over which to establish the password). Also, the "Digest"
scheme provides message authentication and replay protection only,
without message integrity or confidentiality; it is not as secure as
Kerberos or any client-side private key scheme. See RFC 3261 [5] and
RFC 2617 [2]
5.5.2 Authorization
This is the act of determining whether a requesting entity (client)
is allowed access to a resource, and if so, to what extent. XCAP
[27] has been defined to allow a client provision authorization
decision rules regarding watchers of the presence information
produced by the clients. The authorization decisions in the form of
permission-statements are used by the server to grant or deny access
to the client's presence information stored on the server. See
XCAP-USAGE [28] and PRESENCE-RULES [34].
5.5.3 Integrity And Confidentiality
5.5.3.1 Privacy
This is the withholding of aspects of an individual or entity (e.g.
the identity of a person and related personal information that the
owner wants to remain confidential), from the recipient party in an
exchange of information (as carried in a SIP dialog). These parties
may include the intended destination(s) of the messages and/or any
intermediaries handling the messages. The confidential aspects may
Houri, et al. Expires November 30, 2003 [Page 57]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
include personal data, properties, preferences, and behavioral traits
(e.g. schedules and habits).
Security mechanisms are employed to maintain privacy by protecting
information that should remain private or confidential. Such
mechanisms include making anonymous a party or entity involved in an
information exchange, and encryption.
RFC 3323 [8] defines three levels of privacy - one user-provided, and
the other two, network-provided. User provided privacy involves the
user agent populating the "From" header field of a request with an
anonymous value. Users also take necessary steps to avoid revealing
other unnecessary identity information in related SIP headers (e.g.
Display-names and URIs). For example, a From header for anonymity
is:
From: "Anonymous" <sip:anonymous@anonymous.com>;tag=1928774
In network-provided privacy, intermediaries in the network cooperate
in concealing the confidential information. The user must have a way
of requesting or signaling the desired level of privacy to the user
agent, to ensure the call is routed to the intermediaries capable of
providing the privacy service. The privacy-header (called Privacy)
exists for this reason. User agents should include a Privacy header
when networked-provided privacy is required. It is used to request
privacy handling for requests and responses.
For example, the currently allowed privacy-value options are shown in
the following production:
Privacy-hdr = "Privacy" HCOLON priv-value *(";" priv-value)
priv-value = "header" / "session" / "user" / "none" /
"critical" / token
where:
o header: user requests that a privacy service obscure those headers
which can't be completely rid of identifying information without
the assistance of intermediaries (e.g. Via, Contact headers)
session: user requests that anonymity be provided for the
session(s) (as described in SDP protocol body).
o User: Set by intermediaries to communicate that user-level privacy
functions must be provided by the network.
o None: user requests that no privacy functions be applied by the
privacy service. Critical: User asserts that the privacy services
requested for by the message are critical, and that if these
services can't be provided, the call/request should be rejected.
Houri, et al. Expires November 30, 2003 [Page 58]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
When a Privacy header is constructed, it must consist of either the
value 'none', or one or more of the values 'user', 'header' and
'session', which may be followed by the 'critical' indicator.
5.5.3.2 AAA Service
For greater versatility and scalability, it may be more convenient
for SIP entities to communicate with an Authentication, Authorization
and Accounting (AAA) server (via the SIP-AAA interface). This frees
the agent nodes from storing user credentials and profiles locally.
A common protocol for the AAA framework is Diameter , whose base
supports usage accounting. This based protocol could be used with
appropriate extensions suitable for applications such as network
access control and mobility/roaming. A Diameter client is a device
(e.g. a Network Access Server (NAS) or a Foreign Agent) at the edge
of the network that wishes to perform access control. A Diameter
client generates Diameter messages to request authentication,
authorization and accounting services for the user. A Diameter agent
is a node that does not authenticate or authorize messages locally,
but leaves this functionality to the AAA server. For SIP
applications, the SIP Server and the Diameter client are assumed
co-located and the SIP Server uses the Diameter client to interface
with the AAA infrastructure for authenticating SIP requests (see
Figure 32). This requires presence of a Diameter SIP application as
defined in [29]
[SIP-UA]<--->[SIP-SRVR]-[DIAMETER-CLIENT]<--->[DIAMETER-SRVR]
Figure 32
5.6 Types of Deployments
Several types of presence and IM systems deployments are described:
o Enterprise (Single Domains of Trust)- A presence and IM system
that is built for an enterprise use. The employees of the
enterprise is usually authenticated using the same credentials
that they use for other operations within the enterprise. The
system is usually located within the secured enterprise network
o Federated Systems - Several networks that have created a
federation between them. In these systems a user is able to
inter-operate with users on other systems. There is no need for
each user of being authenticated since the authentication is done
at the level of each system.
o Public Systems Interconnecting - A public system that enables
registered users to use the services of the system (as AOL, MSN,
Houri, et al. Expires November 30, 2003 [Page 59]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
Yahoo). The users in each public system do not belong to the same
organization and therefore can not be trusted as a whole as in
enterprise systems.
o Open Systems - Users do not belong to an organization and are not
registered to use the services of a public system. The services
that the users will use will be freely available on the network
while peer to peer operations between users will be very common in
these system
[TBD. Are there other types of deployments?]
5.6.1 Enterprise (Single Domains of Trust)
5.6.1.1 Definition
[TBD. Detailed definition and examples of the system]
5.6.1.2 Components & Diagrams
[TBD. Definitions of components involved and basic diagrams]
5.6.1.3 Scenarios
[TBD. Several scenarios are listed below. We may need to define
different scenarios for each system type]
5.6.1.3.1 Locating Other Servers
[TBD. How other servers are located mostly referring to RFC 3263
[6]]
5.6.1.3.2 Creating Connections
[TBD. Which server created a connection to which server. When a
connection is broken who is recolonize for re-establishing the
connection etc.]
5.6.1.3.3 Authentication
[TBD. How authentication between servers is done. The
authentication can be very different according to the type of the
system described.]
5.6.1.3.4 State Replication
[TBD. What state the servers in the system should replicate. How
it can be done.]
Houri, et al. Expires November 30, 2003 [Page 60]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.6.1.3.5 Advanced Configurations & Scenarios
5.6.1.3.5.1 Firewalls
[TBD. Firewall considerations for the system]
5.6.1.3.5.2 Wireless
[TBD. What the system needs to have in order to support wireless
devices. It could have been discussed under gateways but this
issue deserves a section of its own]
5.6.1.3.5.3 Gateways
[TBD. What gateways the system may need to use. How they are
deployed. What components in each system are involved in
supporting the gateway operation]
5.6.2 Federated Systems
5.6.2.1 Definition
[TBD. Detailed definition and examples of the system]
5.6.2.2 Components & Diagrams
[TBD. Definitions of components involved and basic diagrams]
5.6.2.3 Scenarios
[TBD. Several scenarios are listed below. We may need to define
different scenarios for each system type]
5.6.2.3.1 Locating Other Servers
[TBD. How other servers are located mostly referring to RFC 3263
[6]]
5.6.2.3.2 Creating Connections
[TBD. Which server created a connection to which server. When a
connection is broken who is recolonize for re-establishing the
connection etc.]
5.6.2.3.3 Authentication
[TBD. How authentication between servers is done. The
authentication can be very different according to the type of the
Houri, et al. Expires November 30, 2003 [Page 61]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
system described.]
5.6.2.3.4 State Replication
[TBD. What state the servers in the system should replicate. How
it can be done.]
5.6.2.3.5 Advanced Configurations & Scenarios
5.6.2.3.5.1 Firewalls
[TBD. Firewall considerations for the system]
5.6.2.3.5.2 Wireless
[TBD. What the system needs to have in order to support wireless
devices. It could have been discussed under gateways but this
issue deserves a section of its own]
5.6.2.3.5.3 Gateways
[TBD. What gateways the system may need to use. How they are
deployed. What components in each system are involved in
supporting the gateway operation]
5.6.3 Public Systems Interconnecting
5.6.3.1 Definition
[TBD. Detailed definition and examples of the system]
5.6.3.2 Components & Diagrams
[TBD. Definitions of components involved and basic diagrams]
5.6.3.3 Scenarios
[TBD. Several scenarios are listed below. We may need to define
different scenarios for each system type]
5.6.3.3.1 Locating Other Servers
[TBD. How other servers are located mostly referring to RFC 3263
[6]]
5.6.3.3.2 Creating Connections
Houri, et al. Expires November 30, 2003 [Page 62]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
[TBD. Which server created a connection to which server. When a
connection is broken who is recolonize for re-establishing the
connection etc.]
5.6.3.3.3 Authentication
[TBD. How authentication between servers is done. The
authentication can be very different according to the type of the
system described.]
5.6.3.3.4 State Replication
[TBD. What state the servers in the system should replicate. How
it can be done.]
5.6.3.3.5 Advanced Configurations & Scenarios
5.6.3.3.5.1 Firewalls
[TBD. Firewall considerations for the system]
5.6.3.3.5.2 Wireless
[TBD. What the system needs to have in order to support wireless
devices. It could have been discussed under gateways but this
issue deserves a section of its own]
5.6.3.3.5.3 Gateways
[TBD. What gateways the system may need to use. How they are
deployed. What components in each system are involved in
supporting the gateway operation]
5.6.4 Open systems
5.6.4.1 Definition
[TBD. Detailed definition and examples of the system]
5.6.4.2 Components & Diagrams
[TBD. Definitions of components involved and basic diagrams]
5.6.4.3 Scenarios
[TBD. Several scenarios are listed below. We may need to define
different scenarios for each system type]
Houri, et al. Expires November 30, 2003 [Page 63]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.6.4.3.1 Locating Other Servers
[TBD. How other servers are located mostly referring to RFC 3263
[6]]
5.6.4.3.2 Creating Connections
[TBD. Which server created a connection to which server. When a
connection is broken who is recolonize for re-establishing the
connection etc.]
5.6.4.3.3 Authentication
[TBD. How authentication between servers is done. The
authentication can be very different according to the type of the
system described.]
5.6.4.3.4 State Replication
[TBD. What state the servers in the system should replicate. How
it can be done.]
5.6.4.3.5 Advanced Configurations & Scenarios
5.6.4.3.5.1 Firewalls
[TBD. Firewall considerations for the system]
5.6.4.3.5.2 Wireless
[TBD. What the system needs to have in order to support wireless
devices. It could have been discussed under gateways but this
issue deserves a section of its own]
5.6.4.3.5.3 Gateways
[TBD. What gateways the system may need to use. How they are
deployed. What components in each system are involved in
supporting the gateway operation]
5.7 Basic User Scenarios
[TBD. The very basic user scenarios that will be done by a UA
that uses presence and IM]
5.7.1 Locating the Server(s)
Houri, et al. Expires November 30, 2003 [Page 64]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
[TBD. How the server(s) that the user will use will be located.
Mostly referring to RFC 3263 [6]]
5.7.2 Connection
[TBD. Who creates the connection to whom. Reusing of existing
connections. Re-establishing broken connections etc.]
5.7.3 Logging-In (AKA Registering)
[TBD. Use of the REGISTER method in order to logon into the
domain.]
5.7.4 Authentication
[TBD. What authentication methods can be used in order to
authenticate a used in the domain.]
5.7.5 Uploading Presence Document
[TBD. Use of PUBLISH for uploading the presence document. In
systems that do not support PUBLISH yet what other methods are
available for publishing the presence document (REGISTER fields,
HTTP, Web Services)]
5.7.6 Subscribing to a Presentity
[TBD. Simple subscription to a single presentity]
5.7.7 Getting Notifications
[TBD. Getting notifications on the subscribed presentity.
Assuming no authorization or other issues.]
5.7.8 Sending IM
[TBD. Sending IM to another user.]
5.7.9 Receiving IM
[TBD. Receiving IM from another user]
5.8 The Presence Document
PRESENCE of a user or an entity conveys the ability and willingness
of that entity to angage in communication activity with other
entities. This information is represented in a Presence Document.
The basic form of this is the XML based PIDF (Presence Information
Houri, et al. Expires November 30, 2003 [Page 65]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
Document Format) document, defined in [15].]
In PIDF, presence information is modeled as a series of tuples, each
of which contains a status, communications address or contact (a
URI), and other optional markup. The status can be OPEN (available
for communication) or CLOSED (not available for communication). The
status may be extended with other multiple values. Other tuples may
be contained in the presence information, including:
o Identifier: a token to identify the tuple within the presence
information.
o Status: OPEN/CLOSE and/or other extension values.
o Communication Address: Communication means and contact address of
this tuple (optional).
o Relative Priority: numerical value specifying the relative
preference of a communication address (optional)
o Timestamp: timestamp when the tuple was last changed (optiona).
o Note: human readable text about the tuple (optional).
An example of a PIDF document using a default XML namespace is shown
below. It shows that Joe can be contacted via a telephone, instant
messaging (IM) and e-mail. It also shows that Joe is currently busy
on IM. Joe prefers to be contacted via IM and e-mail. He also
indicates that he will be on vacation next week.
Houri, et al. Expires November 30, 2003 [Page 66]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
<?xml version="1.0" encoding="UTF-8"?>
<presence xmlns="urn:ietf:params:xml:ns:pidf"
xmlns:im="urn:ietf:params:xml:ns:pidf:im"
entity="pres:Joe@example.com">
<tuple id="sg89ae">
<status>
<basic>open</basic>
</status>
<contact priority="0.2">tel:+09012345678</contact>
</tuple>
<tuple id="ef64bg">
<status>
<im:im>busy</im:im>
</status>
<contact priority="0.8">im:Joe@yahoo.com</contact>
<timestamp>2004-10-27T16:49:29Z</timestamp>
</tuple>
<tuple id="eg92n8">
<status>
<basic>open</basic>
</status>
<contact priority="1.0">mailto:Joe@yahoo.com</contact>
</tuple>
<note>I'll be on vacation next week</note>
</presence>
[ Add Rich Presence information, and example ]
The PIDF defines a basic XML format for represnting presence
information for a presentiy. That format defines a textual note, an
indication of availability (open or closed) and a Universal Resource
Identifier (URI) for communication. However, it is often the case
that additional information about a user need to be conveyed in ways
that are suitable for automata, and as such is not appropriate for
placement in the "note" element of the PIDF document. The Rich
Presence Information Data Format (RPID) [31] defines extensions to
the PIDF for conveying richer presence information.
One of the characteristics of the PIDF is that the document needs to
carry all the presence information available for the presentity. In
a low bandwidth and high-latency-link environment, the share volume
of such information may be overwhelming, leading to non-optimal
performance. For such environments, it is beneficial to limit the
amount of information transporeted over the network by transporting
only portions of PIDF. This is achieved via the use of a MIME type
which enables transporting changed parts of teh PIDF as specified in
[32]
Houri, et al. Expires November 30, 2003 [Page 67]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.9 Composition From Multiple Sources
[TBD. Composing a presence document when there are multiple
publishers]
5.10 Status Values
[TBD. Capture the latest on the ongoing discussion on status
values]
5.11 Instant Messages
[TBD. On the possible format and content of IMs]
5.12 Advanced Presence Scenarios
[TBD. Covering advanced scenarios of usage of presence and
notifications]
5.13 Partial Notifications
[TBD. Summarizing the latest work on partial notifications of
changes to presence documents]
5.14 Authorization of Subscription
[TBD. Scenarios of how subscription authorization can be done.
The topic should include privacy lists (who can see me) and
authorization by an action of the user being subscribed on]
5.15 Presence Lists
[TBD. Catching the latest on events list]
5.16 Watchers List
[TBD. Describing what is watchers. How to subscribe to your
watchers etc.]
5.17 Advanced IM Scenarios
[TBD. Advanced scenarios of IMs including sessions conferences
etc.]
5.17.1 IM Sessions
[TBD. The famous subject of creation of IM session. Describe the
various proposals in this ares. Describe the additional
Houri, et al. Expires November 30, 2003 [Page 68]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
components that systems will have to implement in order to enable
IM sessions. Describe the possible scenarios for creating IM
sessions]
5.17.2 IM Conferences
[TBD. Describe the various possibilities of creation a conference
of IM. Use the relevant parts (for IM) from the conference model
work]
5.17.3 Instant Conferences
[TBD. An instant conference is a conference that is created on
the spot. Usually it is the evolution of one on one IM session.
See Section 5.17.5]
5.17.4 Scheduled Conferences
[TBD. A scheduled conference is a conference in which invitations
are sent to people and advance and they join the conference on the
specified time.]
5.17.5 Switching between IM Page Mode, IM Sessions and IM Conferences
[TBD. Hoe switching can be done between various types of IM
interactions. Not sure if there is already work regarding this
subject]
5.18 Client Capabilities
[TBD. How a client informs the server and other clients on its
capabilities. It is a big issue especially on mobile devices]
5.19 Profiles
[TBD. Yet another big issue, Searching for other users, Sending
profiles to other users etc.]
5.20 Additional Issues and Services
5.20.1 Invisible (Lurking) Mode
[TBD. I want to login into a system see other people while they
do not see me. Should it be allowed? Should users in the system
be notified that lurking is possible.]
Houri, et al. Expires November 30, 2003 [Page 69]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
5.20.2 Action Cues
[TBD. How action cues are going to be sent between users. for
example and indication that your IM partner is typing a response
now]
5.20.3 Emoticons & Backgrounds
[TBD. How the emoticons/backgrounds are downloaded to the
client?] [How is the content of the emoticons/backgrounds is
controlled?]
5.20.4 Message History
[TBD. Storing of message history. Retrieving message history.
Who can store? Who can retrieve? Should I be able to block other
users that I chat with from saving my messages? etc.]
5.20.5 Offline Messages
[TBD. Getting messages that were sent to me while my client is
not connected to the system. Two ways are discussed below]
5.20.6 Queued Offline Messages
[TBD. Messages that are delivered to the user when s/he logs in]
5.20.7 Other Offline
[TBD. Delivery via email, SMS etc.]
5.20.8 File Sharing
[TBD. Sending files between users. A lot of security and
bandwidth issues should be raised here]
5.20.9 Voice
[TBD. Using client capacities, presence information and IMs in
order to start a voice session. The voice session itself will be
done via the INVITE message. We might talk here about sending
voice as the payload of IMs.]
5.20.10 Video
[TBD. Using client capacities, presence information and IMs in
order to start a video session. The video session itself will be
done via the INVITE message. We might talk here about sending
Houri, et al. Expires November 30, 2003 [Page 70]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
video as the payload of IMs.]
5.20.11 General Application Invocation
[TBD. General application invocation using the mechanisms
discussed in this document. I.e. client capabilities, presence
information and IMs]
5.21 Security Considerations
Security is not a single monolithic property of the system, but
rather a series of related but independent properties. This section
discusses threats and stage 2 level solutions to address those
threats. Generic threats considered are:
1. Unauthorized usage of network SIP/SIMPLE servers, either as a new
user or an existing user, of the messaging and presence services
2. Rogue network entity representation as being an authentic network
entity to the endpoint
3. Eavesdropping or altering a message
4. Unauthorized access and modification of configuration data or
stored messages of another user
5.21.1 Authentication
Mutual authentication is required:
o Authentication of the endpoint by service elements
o Authentication of service elements by the endpoint
Note that authentication is separate from authorization to use the
network. A user may be authenticated but nevertheless refused
service.
5.21.2 Network Authentication of the endpoint
It is possible that an attacker represent itself to service elements
as a valid endpoint. This could occur by the attacker attempting to
register or send SIP/SIMPLE packets using the identity of a valid
endpoint.
The general solution to this type of threat is cryptographic
authentication, which could be provided at the SIP layer or at a
lower layer. SIP supports a number of challenge response mechanisms
such as digest authentication [ref]. The HSP or other proxies can
perform SIP authentication using the AAA system. Possible lower
layer security systems include TLS or IKE/IPSec. If TLS is used, the
endpoint has to have a certificate verifiable by a PKI. This is also
Houri, et al. Expires November 30, 2003 [Page 71]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
true for IKE the control protocol for IPSec , however, IPSec can also
be used with pre-shared keys that exist between the endpoint and the
service elements or the AAA server that can make them available to
the service elements.
In some cases the authentication may be performed by one service
element on behalf of other service elements. This may be referred to
a transitive trust model. For this to be applicable, there must be a
secure relationship between the sevice elements.
5.21.3 Endpoint Authentication of the Service Elements
It is important that the endpoint determine that it is communicating
with legitimate service elements. TLS and IPSec provide hop-by-hop
mechanisms. These allow the endpoint to verify the identity of the
first service element in a chain of service elements. The endpoint
must generally rely on the trust model then to establish the identity
of remote service elements. Examples include use of sips uri or 3GPP
IMS.
5.21.4 Authorization for Service
Having authenticated the user, the service elements can use the AAA
system to make authorization decisions relative to specific service
requests.
Another way to authorize the user is certificate attributes in the
user's certificate. This assumes the service elements have verified
the user's certificate.
5.21.5 Integrity and Privacy of SIP/SIMPLE Messages
An attacker may attempt to eavesdrop or alter messages. General
solutions to these types of threats are to use:
o Secure transport protocols such as IPSec or TLS between the
endpoint and the HSP or between the endpoint and the first SIP
proxy encountered by the SIP traffic. There needs to be a
transitive trust on the part of the endpoint with all proxies
involved. Examples include use of sips uri or 3GPP IMS.
o Security transport protocols such as IPSec or TLS between the
endpoint and the conference bridge. There needs to be a trust on
the part of the endpoint and the conference bridge function
involved. Examples include use of sips uri or 3GPP IMS.
o /MIME to protect SIP/SIMPLE message bodies; this security is
between and users, i.e., is end to end. However, in some
commercial applications the message store itself is viewed as a
"user" if the messages may need to be audited later, e.g., the
Houri, et al. Expires November 30, 2003 [Page 72]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
Security Exchange Commission if it needs to review messages from
brokers to investors.
o It is possible to use both security transport protocols and
S/MIME: the former protects the SIP/SIMPLE messages as they
traverse public facilities and the S/MIME protects the message
bodies end to end.
5.21.6 Configuration of Subscriber Data or Stored Messages
An attacker may attempt an unauthorized access and modification of
configuration data of another user. An example of configured data is
instant message groups. The general solution to this threat is to
o Authenticate the user; this is likely a separate authentication as
the data is stored in separate systems outside the scope of the
SIP proxies.
o Verify that the authenticated user is authorized to access or
modify the specific data for a specific user.
o Apply encryption and integrity on the data access control
messages.
o The encryption and integrity should operate between the endpoint
and the directory or database that stores the user's configuration
data or deferred messages.
6. References
6.1 Normative References
[1] Bradner, S., "Key words for use in RFCs to Indicate Requirement
Levels", BCP 14, RFC 2119, March 1997.
[2] Franks, J., Hallam-Baker, P., Hostetler, J., Lawrence, S.,
Leach, P., Luotonen, A. and L. Stewart, "HTTP Authentication:
Basic and Digest Access Authentication", RFC 2617, June 1999.
[3] Day, M., Rosenberg, J. and H. Sugano, "A Model for Presence and
Instant Messaging", RFC 2778, February 2000.
[4] Day, M., Aggarwal, S., Mohr, G. and J. Vincent, "Instant
Messaging / Presence Protocol Requirements", RFC 2779, February
2000.
[5] 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.
[6] Rosenberg, J. and H. Schulzrinne, "Session Initiation Protocol
(SIP): Locating SIP Servers", RFC 3263, June 2002.
Houri, et al. Expires November 30, 2003 [Page 73]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
[7] Roach, A., "Session Initiation Protocol (SIP)-Specific Event
Notification", RFC 3265, June 2002.
[8] Peterson, J., "A Privacy Mechanism for the Session Initiation
Protocol (SIP)", RFC 3323, November 2002.
[9] Campbell, B., Rosenberg, J., Schulzrinne, H., Huitema, C. and
D. Gurle, "Session Initiation Protocol (SIP) Extension for
Instant Messaging", RFC 3428, December 2002.
[10] Rosenberg, J., "A Presence Event Package for the Session
Initiation Protocol (SIP)", RFC 3856, August 2004.
[11] Peterson, J., "Common Profile for Presence (CPP)", RFC 3859,
August 2004.
[12] Peterson, J., "Common Profile for Instant Messaging (CPIM)",
RFC 3860, August 2004.
[13] Peterson, J., "Address Resolution for Instant Messaging and
Presence", RFC 3861, August 2004.
[14] Klyne, G. and D. Atkins, "Common Presence and Instant Messaging
(CPIM): Message Format", RFC 3862, August 2004.
[15] Sugano, H., Fujimoto, S., Klyne, G., Bateman, A., Carr, W. and
J. Peterson, "Presence Information Data Format (PIDF)", RFC
3863, August 2004.
[16] Campbell, B. and J. Rosenberg, "CPIM Mapping of SIMPLE Presence
and Instant Messaging", draft-ietf-simple-cpim-mapping-01 (work
in progress), June 2002.
[17] Rosenberg, J. and M. Isomaki, "Requirements for Manipulation of
Data Elements in Session Initiation Protocol (SIP) for Instant
Messaging and Presence Leveraging Extensions (SIMPLE) Systems",
draft-ietf-simple-data-req-03 (work in progress), June 2003.
[18] Roach, A., Rosenberg, J. and B. Campbell, "A Session Initiation
Protocol (SIP) Event Notification Extension for Resource
Lists", draft-ietf-simple-event-list-05 (work in progress),
August 2004.
[19] Lonnfors, M., Costa-Requena, J., Leppanen, E. and H. Khartabil,
"Partial Notification of Presence Information",
draft-ietf-simple-partial-notify-02 (work in progress), April
2004.
Houri, et al. Expires November 30, 2003 [Page 74]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
[20] Khartabil, H., Leppanen, E. and T. Moran, "Requirements for
Presence Specific Event Notification Filtering",
draft-ietf-simple-pres-filter-reqs-03 (work in progress),
January 2004.
[21] Campbell, B., "SIMPLE Presence Publication Requirements",
draft-ietf-simple-publish-reqs-00 (work in progress), February
2003.
[22] Rosenberg, J., "An Extensible Markup Language (XML) Based
Format for Watcher Information",
draft-ietf-simple-winfo-format-04 (work in progress), January
2003.
[23] Rosenberg, J., "A Watcher Information Event Template-Package
for the Session Initiation Protocol (SIP)",
draft-ietf-simple-winfo-package-05 (work in progress), January
2003.
[24] Niemi, A., "Requirements for Limiting the Rate of Event
Notifications", draft-niemi-sipping-event-throttle-reqs-02
(work in progress), July 2003.
[25] Rosenberg, J., "A Framework for Conferencing with the Session
Initiation Protocol",
draft-ietf-sipping-conferencing-framework-03 (work in
progress), October 2004.
[26] Johnston, A. and O. Levin, "Session Initiation Protocol Call
Control - Conferencing for User Agents",
draft-ietf-sipping-cc-conferencing-05 (work in progress),
October 2004.
[27] Rosenberg, J., "The Extensible Markup Language (XML)
Configuration Access Protocol (XCAP)",
draft-ietf-simple-xcap-04 (work in progress), October 2004.
[28] Rosenberg, J., "Extensible Markup Language (XML) Configuration
Access Protocol (XCAP)Usages for Setting Presence
Authorization", draft-ietf-simple-xcap-auth-usage-01 (work in
progress), October 2003.
[29] Garcia-Martin, M., Belinchon, M., Pallares-Lopez, M.,
Canales-Valenzuela, C. and K. Tammi, "Diameter Session
Initiation Protocol (SIP) Application",
draft-ietf-aaa-diameter-sip-app-04 (work in progress), October
2004.
Houri, et al. Expires November 30, 2003 [Page 75]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
[30] Khartabil, H., "Functional Description of Event Notification
Filtering", draft-ietf-simple-event-filter-funct-03 (work in
progress), October 2004.
[31] Schulzrinne, H., Gurbani, V., Kyzivat, P. and J. Rosenberg,
"RPID: Rich Presence: Extensions to the Presence Information
Data Format (PIDF)", draft-ietf-simple-rpid-03 (work in
progress), March 2004.
[32] Lonnfors, M., Leppanen, E. and H. Khartabil, "Presence
Information Data format (PIDF) Extension for Partial Presence",
draft-ietf-simple-partial-pidf-format-01 (work in progress),
April 2004.
[33] Schulzrinne, H., "A Document Format for Expressing Privacy
Preferences", draft-ietf-geopriv-common-policy-02 (work in
progress), October 2004.
[34] Rosenberg, J., "Presence Authorization Rules",
draft-ietf-simple-presence-rules-00 (work in progress), May
2004.
[35] Campbell, B., "The Message Session Relay Protocol",
draft-ietf-simple-message-sessions-08 (work in progress),
August 2004.
[36] Niemi, A., "An Event State Publication Extension to the Session
Initiation Protocol (SIP)", draft-ietf-sip-publish-04 (work in
progress), May 2004.
[37] Isomaki, M., "An Extensible Markup Language (XML) Configuration
Access Protocol (XCAP) Usage for Manipulating Presence
Document Contents",
draft-ietf-simple-xcap-pidf-manipulation-usage-02 (work in
progress), October 2004.
[38] Lonnfors, M. and K. Kiss, "User agent capability presence
status extension", draft-ietf-simple-prescaps-ext-01 (work in
progress), May 2004.
6.2 Non-Normative References
[39] Saint-Andre, P., "Extensible Messaging and Presence Protocol
(XMPP): Instant Messaging and Presence", draft-ietf-xmpp-im-22
(work in progress), April 2004.
Houri, et al. Expires November 30, 2003 [Page 76]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
Authors' Addresses
Avshalom Houri
IBM
Science Park Building 18/D
Rehovot
Israel
Phone: +972 8 9409761 Ext. 123
EMail: avshalom@il.ibm.com
Alex Audu
Alcatel
3400 West Plano Parkway
Plano,
USA
Phone:
EMail: alex.audu@alcatel.com
Tom Hiller
Lucent
Chicago, IL
USA
Phone:
EMail: tomhiller@lucent.com
Tony Hansen
AT&T Laboratories
Middletown, NJ 07748
USA
Phone: +1.732.420.8934
EMail: tony@att.com
Appendix A. Acknowledgements
The authors gratefully acknowledges the contributions of: Jonathan
Rosenberg, Robert Sparks, Jon Peterson, Ben Campbell and Orit Levin.
Houri, et al. Expires November 30, 2003 [Page 77]
Internet-Draft SIP/SIMPLE Based Presence and IM ArchitectureJune 2003
Intellectual Property Statement
The IETF takes no position regarding the validity or scope of any
Intellectual Property Rights or other rights that might be claimed to
pertain to the implementation or use of the technology described in
this document or the extent to which any license under such rights
might or might not be available; nor does it represent that it has
made any independent effort to identify any such rights. Information
on the procedures with respect to rights in RFC documents can be
found in BCP 78 and BCP 79.
Copies of IPR disclosures made to the IETF Secretariat and any
assurances of licenses to be made available, or the result of an
attempt made to obtain a general license or permission for the use of
such proprietary rights by implementers or users of this
specification can be obtained from the IETF on-line IPR repository at
http://www.ietf.org/ipr.
The IETF invites any interested party to bring to its attention any
copyrights, patents or patent applications, or other proprietary
rights that may cover technology that may be required to implement
this standard. Please address the information to the IETF at
ietf-ipr@ietf.org.
Disclaimer of Validity
This document and the information contained herein are provided on an
"AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/SHE REPRESENTS
OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE INTERNET
ENGINEERING TASK FORCE DISCLAIM 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.
Copyright Statement
Copyright (C) The Internet Society (2003). This document is subject
to the rights, licenses and restrictions contained in BCP 78, and
except as set forth therein, the authors retain all their rights.
Acknowledgment
Funding for the RFC Editor function is currently provided by the
Internet Society.
Houri, et al. Expires November 30, 2003 [Page 78]