alcatel lucent wp simple based presence v2.4

Upload: ea1dof

Post on 04-Jun-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    1/44

    Franois Leygues

    Thomas Froment

    Jol Repiquet

    V2.4 April 2007

    Telecommunication

    Application Servers

    SIP/SIMPLE-based Presence Services

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    2/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 2

    Contents

    Executive Summary..................................................................................................................41

    Introduction...................................................................................................................5

    2 The SIMPLE Presence Environment ......................................................................................73 From Presentity to Watchers............................................................................................ 10

    3.1 Overview............................................................................................................103.2 Publication on behalf of a presentity ..........................................................................113.3 Notifying watchers of presence information ..................................................................13

    4 Presence Information..................................................................................................... 144.1 The Data Model for Presence ....................................................................................144.2 Presence Data Structure..........................................................................................144.3 RPID: Rich Presence Extensions to PIDF........................................................................174.4 Other PIDF Extensions.............................................................................................20

    4.4.1 Timed Presence .........................................................................................204.4.2 CIPID: Contact Information for the PIDF ............................................................204.4.3 Geographic Location PIDF extensions................................................................214.4.4 SIP User Agent Capabilities Extensions to PIDF ....................................................22

    4.5 OMA specific PIDF extensions....................................................................................235 Document Processing at the Presence Server ....................................................................... 24

    5.1 Document Composition ...........................................................................................245.2 Privacy Filtering ...................................................................................................265.3 Watcher Filtering ..................................................................................................29

    6 Presence winfo Notification.......................................................................................... 317 XCAP and XML Document Management................................................................................ 32

    7.1 Document Management via XCAP ...............................................................................327.2 Subscribing to Changes in the XML Documents................................................................34

    8 Subscription to a Presence List via RLS ............................................................................... 359 Optimization Features.................................................................................................... 37

    9.1 Partial Publication / Notification ...............................................................................379.2 Content Indirection................................................................................................389.3 Notification Throttling............................................................................................389.4 Compression........................................................................................................38

    10 Usage of Presence by other Services .................................................................................. 3911 Use Cases .................................................................................................................... 40

    11.1 Use case #1: privacy management via the sphere presence element ..................................4011.2 Use case #2: relationship management ........................................................................4111.3 Use case #3: presence authorization ...........................................................................4211.4 Use case #4: unavailability.......................................................................................42

    List of abbreviations ............................................................................................................... 43References........................................................................................................................... 43

    IETF RFCs and Drafts ........................................................................................................43OMA Specifications ..........................................................................................................44

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    3/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 3

    3GPP Specifications .........................................................................................................44Glossary .............................................................................................................................. 44

    List of Figures

    Figure 1: IETF standardization work on Presence and IM ....................................................................... 5Figure 2: IETF - 3GPP - OMA support for Presence............................................................................... 6Figure 3: Presence Overview ........................................................................................................ 7Figure 4: Example of Presence Network Agent ................................................................................... 8Figure 5: Presence-related Servers................................................................................................. 9Figure 6: Presence Document Generation Process..............................................................................10Figure 7: Initial Presence Publication.............................................................................................11Figure 8: Presence Publication Refresh...........................................................................................12Figure 9: Presence Publication Modification .....................................................................................12Figure 10: Watchers subscription and notifications............................................................................13Figure 11: Presence Data Model ...................................................................................................14Figure 13: PIDF Structure ...........................................................................................................15Figure 12: Presence Data Model Format..........................................................................................16Figure 14: RPID element to data model component mapping table..........................................................17Figure 15: Example of RPID-based document....................................................................................19Figure 16: Example of timed-status element ....................................................................................20Figure 17: Example of contact information ......................................................................................20Figure 18: Example of geopriv element with GPS coordinates in GML.....................................................21Figure 19: Example of geopriv element with the use of a civicLoc object................................................22Figure 20: User Agent Capability Presence Status ..............................................................................22Figure 21: Document Composition.................................................................................................25Figure 22: Privacy Filtering Rules..................................................................................................26Figure 23: Privacy Filtering Example..............................................................................................28Figure 24: Watcher Filtering - Example 1 ........................................................................................29Figure 25: Watcher Filtering - Example 2 ........................................................................................30Figure 26: Presence Watcher Information Example.............................................................................31Figure 27: XDMS environment ......................................................................................................32Figure 28: HTTP URI for XCAP ......................................................................................................33Figure 29: Subscription authorization rules update by the Presentity .......................................................34Figure 30: Subscription to a Presence List via the RLS .........................................................................35Figure 31: RLS Notification as a multipart/related MIME type................................................................36Figure 32: Partial Publication ......................................................................................................37Figure 33: Use of the Presence Service with PoC ...............................................................................39Figure 34: Use case #1 - Bob at home.............................................................................................40Figure 35: Use case #1 - Bob goes to work .......................................................................................41Figure 36: Use case #2 - Bob is in a meeting.....................................................................................41Figure 37: Use case #3 - presence authorization and Push-to-Share.........................................................42

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    4/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 4

    Executive Summary

    Presence services enable entities to expose their ability and willingness to communicate with other entities. For a

    long time, proprietary solutions have been used by ISPs for offering instant messaging services coupled with presence.

    Unsurprisingly, these products could not interoperate. In 1999, the IETF (the Internet standardization body) createdthe IMPP (instant messaging and presence protocol) working group that a year later defined a model for presence and

    the requirements for both instant messaging and presence protocols. Based on this initial work, two solutions have

    emerged at the IETF: XMPP (extensible messaging and presence protocols) and SIMPLE (SIP for instant messaging and

    presence leveraging extensions). XMPP is oriented XML streaming while SIMPLE re-uses SIP signalling. This paper

    explores the SIP/SIMPLE solution also adopted by the 3GPP for IMS and by the OMA.

    The focus is first on how presence element user agents publish presence information to a presence server on behalf of

    presence entities, aka presentities, and how it is distributed to watchers who have required it via the subscribe and

    notify event state mechanisms. At this stage, the document processing at the presence server is simply outlined since

    a more accurate understanding of presence information is required for going in more detail.

    The base format of presence information is PIDF (presence information data format) that uses XML for enabling a

    hierarchical and extensible structure, as per the IMPP initial requirements. PIDF is an outcome of the IMPP working

    group and is compliant to the CPP (common profile for presence) that enables the creation of gateways between

    different systems. For SIP/SIMPLE, PIDF is supplemented by the Data Model and by RPID, as well as several other

    extensions related to geographical location and user agent capabilities.

    [...]

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    5/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 5

    1 Introduction

    Presence services enable general-purpose entities to expose their ability, willingness and desire to communicate with

    other entities. These services have been increasingly developed during the last decade, in combination with Instant

    Messaging (IM). As a result, several Presence/IM systems have emerged (such as AOL, IBM, ICQ, MSN, Yahoo ones),

    based on proprietary protocols and therefore not interoperable, excepted in case of bilateral agreements.

    Figure 1 illustrates the standardization work carried out at the IETF, from 1999, in regards to presence and instant

    messaging. The purpose of the IMPP working group was first to define an abstract model for presence and instant

    messaging, and the requirements for a transport protocol enabling the distribution of messaging and presence

    information. This led, around 2001-2002, to the creation of two other working groups: SIMPLE and XMPP that proposed

    different approaches. The purpose of the XMPP working group was to extend the deployed XMPP protocol, an XML

    streaming technology originally implemented by the Jabber open-source community, in order to be conformant to the

    IMPP requirements (RFC 2779). Likewise, the purpose of the SIMPLE working group was to extend the SIP signaling

    protocol in order to fulfill the model and the protocol requirements defined by the IMPP working group.

    This white paper is focused on the SIP/SIMPLE-based Presence system specified at the IETF, and adopted by the 3GPP

    for IMS, and also the Open Mobile Alliance (OMA) in the context of the services it standardizes.

    Figure 1: IETF standardization work on Presence and IM

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    6/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 6

    XMPP is already deployed through Jabber, while SIMPLE-based implementations are only emerging. It is expected that

    XMPP and SIMPLE will coexist in the future, and the interoperability between XMPP and SIMPLE is currently addressed

    by the saintandre-xmpp-simple IETF draft, which is based on the specifications released by the IMPP working group.

    The SIMPLE working group has already released a set of RFCs and many drafts, currently used by early

    implementations, will be edited as RFCs soon. From the time the SIP specification version 2.0 was released, in June

    2002, a considerable work has been carried out and numerous extensions have been brought to the SIP protocol. The

    features of interest for the presence requirements are in particular the routing of requests and the event framework.The extensibility of SIP has proven to be very useful and especially efficient for presence and instant messaging.

    As outlined earlier, the 3GPP (which had already adopted SIP as a session signaling protocol for IMS) follows the

    SIMPLE specifications for offering Presence services in IMS. Similarly, its counterpart 3GPP2 uses SIMPLE for its MMD.

    The 3GPP specifications clarify the presence roles with respect to the IMS architecture. The OMA, which is focused on

    service definitions and interoperability, especially in the IMS (and MMD) context, refines and supplements when

    necessary both the IETF and IMS specifications. The relationship between the IETF, 3GPP and OMA organizations is

    illustrated in Figure 2.

    IETF (Internet Engineering Task Force)

    SIP/SIMPLE Presence Pr ot ocol s

    3GPP (Third Generation Partnership Project)

    Implement at ion of IETF SIP/SIMPLE specif icat ions

    in IMS (IP Mult imed ia Subsyst em)

    3GPP2 (Third Generation Partnership Project 2)

    Implement at ion of IETF SIP/SIMPLE specif icat ions

    in MMD (Mult i Media Domain)

    OMA (Open Mobile Alliance)

    OMA Presence SIMPLE: Appl icat ion-l evel semant ics fo r SIP/SIMPLE-based Presence, guidel ines f or use...

    Figure 2: IETF - 3GPP - OMA support for Presence

    Note: Besides and prior to OMA Presence SIMPLE, the OMA has released a set of specifications, referred to as

    IMPS (instant messaging and presence service) that is directly derived from the Wireless Village initiative.

    OMA IMPS is not SIP-based and should not be confused with OMA Presence SIMPLE.

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    7/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 7

    2 The SIMPLE Presence Environment

    Figure 3 depicts the presence environment based on SIP/SIMPLE.

    A Presence service is the transfer of information, via a Presence Server, from a presentity (presence entity) to one or

    more watchers, aimed at facilitating and optimizing the communications between them, by using the mostappropriate means at the most opportune time. In most of the cases, the presentity is a human user, but it can also

    represent a group of people such as a help desk or a radio station. One or more presence element agents (this term is

    defined by the 3GPP) push presence information, at different times, into the presence server on behalf of the

    presentity. A presence element agent is an intermediary between the presentity and the presence server. A presence

    server is sometimes called a presence agent, however in the remainder of this paper the term presence server will

    be used for avoiding ambiguity.

    SIP/SIMPLEEnvironment

    PresentityPresentity

    PresenceNetwork

    Agent

    NOTIFY

    Watcher3rd-Party

    ApplicationWatcher

    OtherApplication

    Server

    Any Domai n,

    including A and B

    PUBLISH

    PresenceServer

    RLS(Resource

    ListServer)

    PresenceServer

    RLS(Resource

    ListServer)

    PresenceUserAgent

    PresenceNetwork

    Agent

    PresenceUserAgent

    PresenceNetwork

    Agent

    PresenceUserAgent

    PUBLISH

    NOTIFYNOTIFYNOTIFY

    Domain

    A

    Domain

    B

    Handset s,

    network elements,

    3 rd par t y app l i ca t ions

    (e.g. calendar ),

    appl icat ion servers. . .

    Figure 3: Presence Overview

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    8/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 8

    As per the 3GPP, there are 3 types of presence element agents: PUA, PNA and PEA. Here are their definitions:

    Presence User Agents (PUA)A PUA is a presence source that resides in a terminal or in the network. The PUA interacts with the user for

    collecting user-related presence information and sending it to the presence server.

    Presence Network Agents (PNA)A PNA collects network-related information, associated to a presentity, from various network elements in thesame administrative network and sends it to the presence server. Examples of network elements from which a

    PNA collects presence information are, considering an IMS network with a radio access network: the MSC

    Server/VLR, the SGSN, the GGSN, the GMLC (Gateway Mobile Location Center), the HSS (Home Subscriber

    Server), and the S-CSCF.

    As shown in Figure 4, a PNA could interact both with the HSS, via the DIAMETER-based Sh reference point, and

    the S-CSCF, via the SIP-based ISC reference point, for collecting subscription and registering information,

    transforms it as presence information and pushes it into the presence server.

    Figure 4: Example of Presence Network Agent

    Presence External Agents (PEA)A PEA collects presence information from external networks, resolves the location of the relevant presence

    server, depending on the presentity, and pushes presence information into it.

    The SIP routing infrastructure and the SIP event framework are the main mechanisms used for interacting with the

    presence server. A presentity is uniquely identified by a URI (uniform request identifier) that is either a protocol-

    agnostic pres URI or a SIP URI. A presence user agent will issue a SIP PUBLISH request addressed to the presentity

    URI. The classical DNS-based SIP location services are used to reach the relevant presence server. Presence

    information is conveyed as a MIME content-type in the body of PUBLISH messages.

    The responsibility of the presence server is then to aggregate the presence information related to a presentity, and to

    deliver it to potential watchers according to the presentity authorization rules, and also to the information subset

    possibly required by the watchers. A watcher listens to presence information about a presentity via the SIP

    SUBSCRIBE/NOTIFY mechanisms. Here again, the SIP routing enables a watcher to address direcly the presence server

    that serves this presentity. He will then be notified every time new presence data is available.

    When a watcher wants to be informed about several presentities, it may use a presence list (a buddy list) and address

    its subscription, via a SIP URI representing this list, to a resource list server (RLS). This latter is typically co-located

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    9/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 9

    with the presence server of the same domain. The presentities in the list may belong to the same domain or to

    another domain, in which case the RLS will issue so-called back-end subscriptions to the relevant presence server.

    Figure 5 shows in more detail the servers that are required when a SIP/SIMPLE-based presence service is offered in a

    single domain. Both the Presence Server and the Resource List Server are respectively supplemented with XDM-

    specific servers: the Presence XDM server and the RLS XDM server. XDMS (XML document management service) relates

    to the management of user-related configuration data. On the one hand, a watcher can create and update presence

    lists via HTTP/XCAP. On the other hand, the RLS can get the contents of presence lists either directly via HTTP/XCAP,or listen to changes in presence lists via the SIP SUBSCRIBE/NOTIFY mechanism.

    Similarly, a presentity can create and update his/her authorization rules via HTTP/XCAP, and in turn, the presence

    server can directly get those rules, or listen to changes to those rules.

    Figure 5: Presence-related Servers

    The presentity may also get information about watchers by subscribing to the presence.winfo event. In particular,

    the presentity may be informed in near real-time of a watcher subscription attempt that would be in a pending state

    because not identified and authorized yet. As a result, the presentity could give permissions to this watcher or not.

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    10/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 10

    3 From Presentity to Watchers

    3.1 Overview

    Figure 6 illustrates the processing of presence information for a single presentity, several sources and two watchers.

    This process is invoked by the Presence Server under several conditions: source changes, policy changes, watcherinitial subscriptions or refreshes.

    PresenceServer

    PUBLISH

    View 2

    CompositionPolicy

    PUBLISH PUBLISH

    Composition

    Raw PresenceDocument

    (related to Alice)

    PresenceSource 1

    PresenceSource 2

    PresenceSource 3

    View 1 View 3

    Filtered PresenceDocument

    (Carol)Watchers

    Policy

    Watcher(Carol)

    Privacy Filtering

    Watcher Filtering

    Candidate PresenceDocument(for Carol)

    NOTIFY

    (presence)

    SUBSCRIBE

    (presence)

    Privacy Filtering

    Filtered PresenceDocument

    (Bob)Watchers

    Policy

    Watcher(Bob)

    Watcher Filtering

    Candidate PresenceDocument(for Bob)

    NOTIFY

    (presence)

    SUBSCRIBE

    (presence)

    Authorization Authorization

    (Alice)Presence

    AuthorizationRules

    (content) (content)

    (subscription) (subscription)

    Presentity(Alice)

    Figure 6: Presence Document Generation Process

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    11/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 11

    One or more presence user or network agents may, over time, push presence information into a presence server, on

    behalf of a presentity. From this collection of views, the presence server produces a single raw presence document.

    The remainder of the processing consists in filtering operations that depend on watchers. First, the presence server

    applies a privacy filtering operation based on the presentitys authorization policy. For example, the presentity may

    restrict presence information to her/his home environment only for some watchers. Any change to this policy by the

    presentity will entail a new application of this filtering action. The outcome of privacy filtering is one candidate

    presence document per current watcher. Before notification to a watcher, the presence server will apply a second

    filtering, depending on whether or not this watcher has sent its own filtering rules at subscription time. For example,

    a watcher may only be interested in instant messaging communication regarding a presentity.

    In the remainder of this section, the publication by PUAs or PNAs of presence information and the notification of

    presence information to watchers is examined in more detail. The processing performed on presence information by

    the presence server requires the understanding of presence data structure, described in section 4, and is therefore

    discussed in section 5.

    3.2 Publication on behalf of a presentity

    Presence Information related to a presentity is pushed into the presence server by potentially several presence user

    agents or presence network agents, on behalf of this presentity. This section describes the way one PUA or PNA (in the

    illustrations, a PUA is represented) publishes presence data over time.

    Publication of presence information is performed via the PUBLISH SIP method with the presence event. This method

    is generic and can be applied to any event package defined for SIP. However, at the time it was defined, its main

    application was presence.

    From the PUBLISH method perspective, the user agent client (UAC) that publishes event state is an Event Publication

    Agent (EPA) and the entity that processes it is an Event State Compositor (ESC). Since several user agents can

    potentially publish different states for a given event, the role of the ESC is to generate a composite event state for

    the resource, for delivery to potential subscribers. For Presence, the EPA will typically be located in a presence user

    agent (PUA) and the ESC in the presence server. The ESC then can be referred to as a presence compositor.

    The PUBLISH method is similar to the REGISTER method in that it enables a user to create, modify and remove event-

    related information in another entity, which then manages this information on behalf of the user. A PUBLISH request

    does not establish a dialog. The Request-URI of the Presence PUBLISH request will contain the pres-URI or SIP URI of

    the presentity. This URI must be the same URI as the one placed in the element of the PIDF document.

    For each successful PUBLISH request, the ESC generates an entity-tag that is returned in the SIP-ETagheader field.

    Figure 7: Initial Presence Publication

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    12/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 12

    The presence event is a soft state event, that is to say: the presence state is maintained for a limited time

    negotiated between the PUA and the presence server. When the timer is going to expire, it is the responsibility of the

    PUA to refresh the presence state of its presentity. As illustrated in Figure 8, this is performed by issuing a new

    PUBLISH request without content, but with the current entity tag value placed in the SIP-If-Ma t chheader field, for

    enabling the presence server to correlate the corresponding presence state document. The presence server will return

    another entity tag value to be used by the next PUBLISH request, if any. It can also reduce the duration of the

    presence state.

    It should be noted that a zero value in the Expiresheader field of the PUBLISH request enables a PUA to remove its

    presence state information.

    Figure 8: Presence Publication Refresh

    When presence information changes, as seen by a PUA, this latter publishes a new PIDF document that will replace

    the current one. This is done by providing both a SIP-If-Match value and the PIDF document as the content of the

    PUBLISH request.

    Figure 9: Presence Publication Modification

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    13/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 13

    3.3 Notifying watchers of presence information

    For receiving presence information related to a presentity, a watcher must require it to the presence server. This is

    performed via the SUBSCRIBE and NOTIFY SIP requests applied to the presence event package, defined in [RFC3856].

    The watcher issues a SUBSCRIBE request addressed to the presentity SIP URI. At the same time, it may also provide its

    own filtering rules in the body of the subscribe request, according to the application/simple-filter+xml [RFC4661]

    MIME content-type. This request is then routed via one or more SIP proxies to the relevant presence server, by

    application of the classical SIP server location mechanisms [RFC3263].

    The presence server, on behalf of the presentity, may accept or reject the subscription. Nevertheless, in case of

    acceptation, it may place it in a pending state, meaning that there is insufficient policy information to grant or deny

    the subscription yet, and wait for an authorization from the presentity.

    Note: Typically, via a subscription to the presence.winfo event, the presentity will learn that there is a new

    watcher in a pending state, and will modify, via HTTP/XCAP, its authorization rules at the XDM Server for

    accepting it. The presence server, either by polling or via a subscription to the ua_profile SIP event

    package, will be notified of any change in the authorization rules, and then be able to pass the watcher

    subscription from a pending to active state.

    A subscription has a duration time negotiated between the subscriber and the notifier, which is the presence server. A

    subscriber proposes its own value in the Expiresheader field. This value may be equal to zero. This means that it acts

    as a Fetcher and wants to get current presence information, whenever available, only once.

    The subscriber may refresh its subscription at any time, either for explicitly providing new filtering rules, or because

    it is going to expire, according to the negotiated duration time.

    Watcher(Bob)

    Presentity(Alice)

    PUA PNAPUBLISH1

    SIP/2.0 200 OK

    Expires: 1800

    Contact:

    2

    3

    PUBLISH 5

    PresenceServer

    NOTIFY sip:[email protected]

    Subscription-State: active;expires=1600

    Event: presence

    Contact:

    Content-Type: application/pidf+xml

    Content-Length: ...

    [New PIDF Document]

    NOTIFY sip:[email protected]

    Subscription-State: active;expires=1799

    Event: presence

    Contact:

    Content-Type: application/pidf+xml

    Content-Length: ...

    [PIDF Document]

    SUBSCRIBE sip:[email protected]

    Expires: 3600

    Event: presenceContact:

    Content-Type: application/simple-filter+xml

    Content-Length: ...

    [bobs filtering rules]

    3

    4

    6

    Figure 10: Watchers subscription and notifications

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    14/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 14

    4 Presence Information

    4.1 The Data Model for Presence

    The data model for presence [RFC4779] gives guidance on how to map real-world communications systems, built

    around SIP in particular, into a presence document. There are three components in the model: the person, the serviceand the device. Each attribute in a presence document is affiliated to the service, person or device because they

    describe a facet of that service, presentity or device, independently of which piece of equipment has reported this

    attribute.

    Presentity URI

    Service

    Device

    Person

    Service

    Device Device

    Service

    Figure 11: Presence Data Model

    A single presentity may be represented by multiple URIs. It may be represented by a presentity URI or a protocol-

    specific URI such as a SIP URI. It may also have several aliases. When the URI is a SIP URI, it will typically be the

    Address of Record (AoR) for that user, to which SIP calls can be directed.

    The person component models information about the presentity under consideration. A person may represent a

    group such as a help desk. Examples of presence attributes related to a person are her/his activity, her/his willingness

    to communicate, her/his picture. The model supports only one person component per presentity, although in someconflicting cases, at composition time, the presence server may keep more than one person component.

    The service data components model the forms of communications for interacting with the presentity. Examples of

    services through which a presentity may communicate are PoC (Push-to-talk over Cellular), IM (Instant Messaging),

    SMS (short messaging service) or MMS (Multimedia Messaging Service). However, the meaning of service is broad and

    there is not any list defined in [RFC4479]. This RFC says that a reasonable approach is to model each software or

    hardware agent in the system as a service.

    The device data components model the physical equipment in which services execute: for instance a PC, a PDA, or

    a mobile phone. As a given service may execute in more than one device, the mapping of services to devices is many

    to many. Devices are uniquely identified with a device ID.

    4.2 Presence Data StructureThe structure of a presence document conformant to the data model is based on PIDF (Presence Information Data

    Format) defined in [RFC3859] and compliant to the Common Profile for Presence [RFC3859]. Although PIDF is very

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    15/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 15

    limited in describing presence, it is the basis of any presence data format. The root of an application/pidf+xml

    MIME document is the element. This element has an entity attribute that identifies, as a pres or SIP

    URI, the presentity publishing the presence document, and one or more XML namespace declarations (xmlns). It

    must contain the urn:ietf:params:xml:ns:pidf namespace declaration and may contain other namespace

    declarations for the extensions of the document. Here is an example:

    All elements and some attributes are associated with a namespace, which is in turn associated with a globally

    unique URI. Within the presence data, element or attribute names are associated with a particular namespace by a

    namespace prefix (e.g. pdm, rpid). The prefix name is a local matter and there are no reserved names. the

    default namespace is typically the pidf namespace: urn:ietf:params:xml:ns:pidf. Figure 12 shows the structure of

    a PIDF document and highlights the possible extensions. A PIDF document without any extension is limited to providing

    an address for communication () and an indication of availability via the element that can be either

    open or closed. The elements may enrich the presence information with text but they can be interpreted

    by a human observer only.

    #n

    #n

    #n

    #n

    #n

    #n

    At this level, the Presence Data Model [RFC4479] defines two extensionelements: and

    Figure 12: PIDF Structure

    Figure 13 shows the general structure of a presence document conformant to the data model for presence. It is

    constrained by the PIDF document structure. It adds the and elements as extension elements and

    uses the existing element to represent the Service. It is to be enriched by the RPID format as well as some

    other formats defined by the IETF, the OMA or any other organization. These new attributes will appear as children of, or . However, for backward compatibility with the PIDF format, they may appear as

    children of .

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    16/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 16

    The element can appear either before or after the element; there are no constraints on order.

    #n

    #n

    #n

    #n

    #n

    #n

    #n

    #n

    #n

    #n

    #n

    #n

    #n

    #n

    The existing PIDF element is used to represent the Service

    The element is used to encode the service URI

    The element contains the URN: the version 4UUID as defined in [RFC4122] shall be used

    There is only one element excepted in a fewseldom cases

    Figure 13: Presence Data Model Format

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    17/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 17

    4.3 RPID: Rich Presence Extensions to PIDF

    Neither PIDF nor the data model defines presence attributes beyond the status element. [RFC4480] defines

    additional presence attributes that extend the PIDF element and the and elements defined

    in the data model. Generally, the extensions have been chosen to provide features common in existing presence

    systems, in addition to elements that could readily be derived automatically from existing sources of presence, such

    as calendaring systems or communication devices, or sources describing the user's current physical environment.

    The following table shows which component of the data model for presence are potentially enriched by the elements

    defined in RPID [RFC4480]. It also indicates whether the from / until attributes are applicable as well as whether

    a element can be included in the element. Elements that do not have from/until parameters must not appear

    more than once in each , , or .

    Figure 14: RPID element to data model component mapping table

    The element describes what the person is currently doing. A person can be engaged in multiple

    activities at the same time, e.g., traveling and having a meal. This information enables a watcher to evaluate

    how approppriate a communication attempt is and what is the better way for communicating. Here are some

    examples of activities: away, appointment, meeting, meal, breakfast, lunch, dinner, busy, holiday, in-transit,

    looking-for-work (for paid work), sleeping, travel...

    Most of them can be derived from calendar information.

    The element describes the class of the service, device, or person. Multiple elements can have the same

    class name within a presence document, but each person, service, or device can only have one class label. The

    naming of classes is left to the presentity.

    The element represents a way to map a service component to a device component. One service can

    be provided by multiple devices, so that each service tuple may contain zero or more elements.

    The element describes the mood of the person. For example: confused, amazed.

    The element describes properties of the place the person is currently at. This offers the watcher an

    indication of what kind of communication is likely to be successful. Each major media type has its own set of

    attributes:

    audio (noisy, ok, quiet, unknown) video (toobright, ok, dark, unknown) text (uncomfortable, inappropriate, ok, unknown)

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    18/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 18

    The element describes the type of place the person is currently at. This offers the watcher an

    indication of what kind of communication is likely to be appropriate. The initial set of values is contained in

    [RFC4589: Location Types Registry] and it is registered under the urn:ietf:params:xml:ns:location-type

    namespace.

    The element indicates which types of communication third parties in the vicinity of the presentity

    are unlikely to be able to intercept accidentally or intentionally.

    The element extends and designates the type of relationship an alternate contact has

    with the presentity. This element is provided only if the tuple refers to somebody other than the presentity.

    Relationship values include "family", "friend", "associate" (e.g., for a colleague), "assistant", "supervisor", "self",

    and "unknown". The default is "self".

    The element extends and designates the type of service offered: electronic, postal,

    courier, freight, in-person...

    The element designates the current state and role that the person plays. For example, it might

    describe whether the person is in a work mode, at home, or participating in activities related to some other

    organization such as the IETF or a church. [RFC4480] does not define names for these spheres except for two

    common ones, "work" and "home", as well as "unknown".

    Spheres allow the person to easily turn on or off certain rules that depend on what groups of people should be

    made aware of the person's status.

    The element includes a URI pointing to an image (icon) representing the current status of the

    person or service. The watcher may use this information to represent the status in a graphical user interface.

    The element describes the number of minutes of offset from UTC at the person's current

    location. A positive number indicates that the local time-of-day is ahead (i.e., east of) Universal Time, while a

    negative number indicates that the local time-of-day is behind (i.e., west of) Universal Time.

    The element records the user-input or usage state of the service or device, based on human user

    input, e.g., keyboard, pointing device, or voice.

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    19/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 19

    Here is an example of presence document that follows the data model for presence and that is enriched by RPID

    elements.

    openurn:device:0003ba4811e3im:[email protected]'t Disturb Please!2005-10-27T16:49:29Z

    open

    mailto:[email protected]

    openurn:x-mac:0003ba4811e3emailhttp://example.com/mail.pngmailto:[email protected]

    I'll be in Tokyo next week

    idleurn:device:0003ba4811e3PC

    Far away

    calendar

    bowling leaguehttp://example.com/play.gif-240Scoring 1202005-05-30T16:09:44+05:00

    Figure 15: Example of RPID-based document

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    20/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 20

    4.4 Other PIDF Extensions

    4.4.1 Timed Presence

    The indication of status information for time intervals, either in the past or in the future, can be achieved via the

    element, defined in [RFC4881] as a child of the element. Here is an example:

    Figure 16: Example of timed-status element

    4.4.2 CIPID: Contact Information for the PIDF

    [RFC4482] describes elements for providing a "business card", including references to the homepage, map,

    representative sound, display name, and an icon.

    Figure 17: Example of contact information

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    21/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 21

    4.4.3 Geographic Location PIDF extensions

    [RFC4119: a Presence-based GEOPRIV location object format] describes an object format for carrying geographical

    information. It extends the 'status' element of PIDF with a complex element called 'geopriv'. There are two mandatory

    subelements that are encapsulated within geopriv: one for location information, and one for usage rules. [RFC4119]

    defines also two optional subelements: and .

    A location-info-element consists of one or more chunks of location information. PIDF implementations

    supporting the 'geopriv' element must implement the GML: Geography Markup Language (GML) 3.0 defined by

    the Open Geospatial Consortium. They may support the civil location format defined in [RFC4119].

    The following child elements may be used:

    The method element describes how the geographical location information was discovered. The methods are

    registered at: http://www.iana.org/assignments/method-tokens. Examples are: GPS, Cell, and 802.11.

    The element allows an explicit designation of the entity that provided the information.

    Here is an example of geopriv element with the use of a simple GML 3.0 markup:

    Figure 18: Example of geopriv element with GPS coordinates in GML

    Here is another example with the use of the civilLoc object defined in [RFC4119].

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    22/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 22

    Figure 19: Example of geopriv element with the use of a civicLoc object

    4.4.4 SIP User Agent Capabilities Extensions to PIDF

    As per [RFC3840], a SIP user agent may specify a number of capabilities about itself in the Cont actheader field at

    REGISTER time. Similarly, as per [RFC3841] a caller may express its preferences when initiating a call to another UA.

    The set of capabilities defined in [RFC3840] are reused and augmented for enhancing PIDF.

    open

    truetextual description of the servicetrue

    sipfalse

    sip:[email protected]

    urn:uuid:d27459b7-8213-4395-aa77-ed859a3e5b3a

    Figure 20: User Agent Capability Presence Status

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    23/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 23

    4.5 OMA specific PIDF extensions

    The list of OMA-specific PIDF extensions is registered at the OMNA: Open Mobile Naming Authority.

    The element (under ) is used to describe OMA-specific services. It contains the following

    child elements: , and optionally . Here is an example:

    So far, the OMNA has registered the following services: PoC-session, PoC-alert and IM.

    The element shall be used as a child element of the element. It shall include the element and have two values open and closed indicating willingness for communication.

    The element shall be used as a child element of the element. It shall include

    the element and have two values open and closed indicating overriding willingness.

    The element can be used as a child element of the element. It includes one or

    more child elements. Each element shall contain an id attribute indicating the type of

    the network and shall include at least one of the following elements:

    the element indicating that the particular device is connected to the specific network; and the element indicating that the particular device is not connected to the specific

    network.

    The element shall be used as a child element of the element. It includes the

    element and have either

    the value open indicating that the particular presentity is participating in at least one session of aspecific service; or

    the value closed indicating that the presentity is not participating in any session of the specificservice.

    The element, if present, shall be used as a child element of the element. It shallinclude either

    the value active indicating that the particular presentity has an active registration with a specificservice; or

    the value terminated indicating that the presentity does not have an active registration with aspecific service.

    The element, if present, shall be used as a child element of the element. It shall

    include either

    the value active indicating that the particular presentity has activated communication barringpertaining to a specific service; or

    the value terminated indicating that the presentity has deactivated communication barring pertainingto a specific service.

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    24/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 24

    5 Document Processing at the Presence Server

    An overview of presence processing was presented earlier and is shown in Figure 6. The Presence server, which is in

    charge of collecting, storing and distributing presence information, performs a number of operations on presence

    documents. The understanding of presence information, discussed in the previous section, was a prerequisite tohaving a closer look at those operations. Presence document processing is now examined with the following sequence

    of operations: composition, privacy filtering and watcher filtering.

    5.1 Document Composition

    Presence document composition is still under study at the IETF, and there is not any MIME content type defined yet

    for the composition policy document shown in Figure 21. However it could represent the minimal approach that has

    been defined by the OMA, in the Presence SIMPLE specification. When several presence sources publish, at different

    times, a presence view for a presentity, the presence server has to produce a common view, which is a superset of

    what watchers will eventually obtain.

    Composition is independent of watchers. The special case of polite-blocking, which consists in providing a minimal

    presence view to the watcher instead of refusing his/her demand, is outside the composition process since the sameview will be offered over time, whatever the published views.

    As described in section 4, the structure of a presence document is made up of a set of XML elements, each

    element being related to one of the data model component types: person, service or device. Based on that, the

    simple-composition IETF draft proposes a good analysis on this issue and defines four steps for composition that are

    described briefly:

    Discarding

    Whole tuples corresponding to stale or redundant information can be removed: e.g. tuples that are

    not referenced by any tuples, or tuples older than a given threshold but not yet expired depending

    on the publish timer.

    Derivation

    This step consists in providing useful new data that has not been explicitly published. For instance, a user may

    wish to indicate that when he is on-the-phone (an information that may be published automatically by the

    UA once the connection is set up) this means that he is busy and should not be called except in an

    emergency.

    Conflict resolution

    Multiple sources of information may provide contradictory information, for example about the person location

    or activity. This may occur easily when the information is updated manually by the end-user. There may be

    situations much more complex for which an automaton is unlikely to be able to detect contradictory

    information and remove erroneous information.

    Merging

    This step consists in combining several tuples that logically represent the same information. An example of

    merging is for the element that should appear only once, unless several ones could be left in some

    conflicting situations. Another example is the merging of service tuples that would have the same contact URI.

    Figure 21 depicts an example of document composition, quite simple. According to the first published view, just

    before noon, Alice is attending a meeting. According to the second published view, by another presence source, Alice

    is still at work but she is having lunch, and is reachable on her phone. The element of the second view is

    retained in the raw presence document, which is the outcome of the composition operation.

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    25/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 25

    View 1

    Raw Presence Document

    Composition

    CompositionPolicy

    View 2

    openim:[email protected]

    work

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    26/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 26

    5.2 Privacy Filtering

    Privacy filtering is the function performed by the presence server for removing from the raw presence document that

    results of composition, all the data that is not explicitly authorized by the presentity for a given watcher. It

    corresponds to the application of the transformation rules, in the presence authorization document, that are

    applicable to this watcher. The outcome is a candidate presence document specific to a given watcher.

    Presence Authorization Rules is an XML document related to a Presentity and stored at the Presence XML Document

    Management Server (XDMS). It can be updated by the Presentity, and accessed by the Presence Server, using the

    HTTP/XCAP interface. The Presence Server may cache this information and be notified of any changes to it by

    subscribing to the ua-profile event for this resource. The Presence Authorization Rules document enables a

    presentity to control who is authorized to watch her/his presence information, and also what a watcher is

    authorized to see.

    The framework for policy documents is defined in [RFC 4745 - common policy]. For Presence, it is extended by the

    simple-presence-rules IETF draft. The presence authorization rules document inherits the MIME type of common

    policy documents: application/auth-policy+xml. Accordingly, it is composed of a set of rules, each rule being

    composed of three parts: conditions, actions and transformations.

    Figure 22 summarizes, for each main category, the rules respectively defined in the RFC 4745, the simple-presence-

    rules IETF draft, and also the OMA Presence XDM specification.

    The OMA retains all the and rules defined by the IETF. However, for , it only

    uses a subset.

    yes

    yes

    yes

    yes

    yes

    yes

    yes

    yes

    yes

    yes

    yes

    yes

    Common Policy(RFC 4745)

    PresenceAuthorization Rules

    OMA Presence XDM

    Figure 22: Privacy Filtering Rules

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    27/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 27

    The presence server goes through each rule in the rule set. For each rule, it evaluates the expressions in the

    conditions part. If the rule is applicable, the actions and transformations are applied.

    The element is used for watcher subscription handling. The block, allow, confirm values tell

    the presence server respectively to place the subscription in the rejected, accepted and pending state. The

    polite-block value also places the subscription in an accepted state but it instructs the presence server to

    produce a template document with minimal information.

    If the value is allow the watcher is allowed to access presence information. The transformation rules

    then are used for driving the privacy filtering operation. Each transformation defines the visibility a watcher is

    granted to a particular component of the presence document.

    Access permissions are defined at two levels:

    Firstly, the , and transformation rules providecoarse-grained access to presence data by allowing or blocking specific services or devices, and allowing or

    blocking person information.

    Secondly, once person, device or service tuples have been authorized, specific rules are used to for allowing orblocking presence attributes within those data components.

    For the first group of transformations, the following table shows the subelements that enable the identification of the

    data components that a watcher is granted to view.

    Regarding the second group of transformation rules, the following table shows the subelements that are always

    reported in the data components:

    The enables a user to specify a presence attribute name and a namespace that is not

    supported by the presence server, because it is not upgraded yet, or because this is a proprietary attribute.

    The grants access to all presence attributes in all the tuples that have been retained during

    the first step.

    Most of the other specific attributes are related to RPID.

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    28/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 28

    Figure 23 illustrates the application of Alices privacy filtering for the watcher Bob. The raw presence document

    related to Alice is the outcome of the document composition operation. In Alices presence authorization rules

    document, there is one transformation rule applicable to Bob. Alice only wants to communicate with Bob via a

    messaging system. This is reflected via the element. As a result, the tuple that includes a tel

    contact URI is removed in the candidate presence document for Bob.

    Alice's Presence Authorization Rules

    allow

    immailto

    truebaretrue

    Candidate Presence Document

    closedIM

    im:[email protected]

    openEMAILmailto:[email protected]

    Raw Presence Document (related to Alice)

    Privacy Filtering

    closedIMim:[email protected]

    openEMAILmailto:[email protected]

    openvoicetel:+1-404-123-4567

    Figure 23: Privacy Filtering Example

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    29/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 29

    5.3 Watcher Filtering

    [RFC4660] and [RFC4661] specify a filtering mechanism that enables a susbscriber to the state of a resource to control

    the content of event notifications. It is applicable to XML content types.

    Applied to presence, a watcher may provide its own filtering rules when it subscribes to presence for a presentity.

    The MIME type associated to event notification filtering information is: application/simple-filter+xml. This data

    enables a watcher to describe both the state changes that will cause notifications, and what those notifications are tocontain. In other words, a watcher may specify when and what. The XML document provided by the watcher

    consists in element that contains one element (optionally) and one or more

    elements.

    The element may contain a element and may contain one or more elements (the when

    condition). Moreover, a filter may have the domain, remove and enabled attributes that facilitate the

    management of filtering rules, over time, between a subscriber and a notifier.

    Figure 24 and Figure 25 illustrate the application of different filtering rules to the same candidate presence document

    for Bob, in regards to Alices presence.

    Figure 24: Watcher Filtering - Example 1

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    30/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 30

    The candidate presence document is the outcome of the privacy filtering operation, as discussed earlier. For these

    examples, it simply consists of two tuples: one reflecting a communication via instant messaging, and the other

    indicating a voice communication.

    Via the first filtering rules, Bob indicates that he wants to be informed about communicating via messaging services

    with Alice: either IM, or SMS, or MMS. As a result, the possibility of communicating via a phone call with Alice is

    filtered. Bob receives the Alices status regarding instant messaging and can see that she is not available for such a

    communication at present time.

    Via the second filtering rules, Bob indicates that he wants to be informed about all the communication means by

    which Alice is available. Since Alice is only available by phone, this is the only presence information communicated to

    Bob by the presence server.

    A more flexible way for Bob to communicate his filtering rules regarding Alices presence would be to have both filters

    in the document, and enabling/disabling them depending on his choice.

    Figure 25: Watcher Filtering - Example 2

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    31/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 31

    6 Presence winfo Notification

    As with the PUBLISH method, presence requirements have entailed the enhancement of the SIP event framework with

    a new feature: the Watcher Information (winfo) Event Template-Package, specified in [RFC3857]. A template

    package is like a regular SIP event package, but is associated to any event package. Applied to the presence event

    package, the Watcher Informationfacility enables a Presentity to be gradually informed about the subscription

    states of her/his watchers.[RFC3858].defines the format of the application/watcherinfo+xml MIME content-type.

    Note: the term watcher in the watcher information facility might suggest that it is related to the watcher

    presence role only, but it is a generic term applicable to any event states subscriber.

    Figure 26 illustrates the watcher information mechanism in the context of presence:

    Alice subscribes to the presence.winfo event for her own presentity, and receives the 200 OK response. Thehypothesis is that there are no watchers yet, and the initial NOTIFY, that follows systematically a subscription

    acceptation, is not shown whatever the event state. It should be noted that Alice could apply filtering rules, in

    the same way as a watcher for presence, by using [RFC4660] and [RFC4661] mechanisms.

    Bob subscribes to Alices presence, but is placed in a pending state: this is immediately notified to Alice bythe Presence Server. As a result, Alice may decide to authorize Bob to watch her presence information.

    Later on, Carol subscribes to Alices presence and is accepted: this is immediately notified to Alice by the PS.

    Watcher(Bob)

    Presentity(Alice)

    PresenceServer

    Watcher(Carol)

    SUBSCRIBE sip:[email protected]

    Event: presence.winfo

    NOTIFY sip:[email protected] SIP/2.0

    Event: presence.winfo

    Content-type: application/watcherinfo+xml

    sip:[email protected]

    NOTIFY sip:[email protected] SIP/2.0

    Event: presence.winfoContent-type: application/watcherinfo+xml

    sip:[email protected]

    SUBSCRIBE sip:[email protected]

    Event: presence

    SUBSCRIBE sip:[email protected]

    Event: presence202 Accepted

    200 OK

    200 OK

    1

    2

    3

    4

    5

    6

    7

    8

    Figure 26: Presence Watcher Information Example

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    32/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 32

    7 XCAP and XML Document Management

    When processing a request, it is sometimes necessary for the the presence and resource list servers to access per-user

    configuration data, such as policies and resource lists. This information is stored in the network as XML documents,

    but it is managed by the end-user themselves. According to the OMA, the servers in charge of storing and managing

    these XML documents are called XDMS: XML document management servers. They are either dedicated to anapplication server (presence, RLS...) or shared between several servers (Shared XDMS). An XDM client (XDMC) located

    in a terminal must be authenticated by an Aggregation Proxy (actually, a HTTP Proxy) before accessing XML

    documents stored in any XDMS.

    PresenceXDMS

    UE

    XDMC

    PresenceServer

    Aggregation Proxy

    RLSXDMS

    Shared XDMS

    RLSServer

    XCAPcreate/modify/retrieve/delete

    XCAPretrieve

    XCAPretrieve

    PresenceAuthorization

    Rules

    ResourceLists

    XCAPretrieve

    XCAPretrieve

    SUBSCRIBE

    NOTIFY

    (ua-profile)

    NOTIFY

    (ua-profile)

    SUBSCRIBE

    Figure 27: XDMS environment

    7.1 Document Management via XCAP

    The common protocol for access and manipulation of such user-related XML documents (policies, resource lists...) is

    XCAP: XML Configuration Access Protocol. Each XCAP resource on an XDM server is associated with an application, for

    which are defined a set of conventions referred to as the application usage. An application usage is identified by an

    AUID (application unique ID) that is registered at a naming authority (IANA, OMNA...) and it is mainly related to an

    XML schema, a MIME type, and some other validation rules.

    XCAP defines a specific naming convention for mapping XML documents and document components as HTTP URIs. The

    structure of an XCAP URI, along with the organisation of user-related XML documents at the XCAP server, is illustrated

    in Figure 28.

    The XCAP rootURI identifies the root of the tree within the domain where all XCAP documents are stored. Typically,

    it is built with the xcap word, followed by the domain name. As an example, http://xcap.atlanta.com would be

    the XCAP root URI for the XCAP server handling all user configuration documents in Alices domain, and this root URI

    would be provisioned into Alices device.

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    33/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 33

    The document selector is a sequence of path segments separated by a / that identifies a document within the

    XCAP root:

    The first path segment is the AUID that identifies the application usage. For Alice, who manages her presenceauthorization policy document, it would be pres-rules, i.e. the AUID value registered at the IANA for that

    purpose. An AUID identifies a file structure root at the XCAP Server, and the role of the XCAP Server that

    supports this AUID is to enable and ensure GET, PUT and DELETE HTTP operations on XML documents that

    conform to the rules associated to this application usage. The second path segment is either users or global, and corresponds to one of two sub-trees. The

    documents placed under global are those common to all users, if any.

    The third path segment, in case the second one is users, is the XUI (XCAP User Identifier). For SIPapplications, it is recommended that the XUI be equal to the Address-of-Record (AOR). The home directory for

    Alice presence authorization rule documents at her Presence XDMS would then be represented by the following

    URI:

    http://xcap.atlanta.com/pres-rules/users/sip:[email protected]

    The final path segment in the document selector identifies the actual document.

    Figure 28: HTTP URI for XCAP

    The node selectorspecifies nodes of an XML document that essentially refer to an XML element or an attribute of an

    element. The node selector uses XPATH syntax, as defined by the W3C.

    XCAP also defines a technique for using HTTP GET, PUT and DELETE methods for various document manipulation

    operations: retrieving/adding/deleting elements and attributes...

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    34/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 34

    Figure 29 shows how Alice can authorize Bob to subscribe to her presence state: pres-rules is the AUID value for

    presence authorization rules.

    Presentity(Alice)

    XDMClient

    AggregationProxy

    Presence

    XDMServer

    HTTP PUT

    HTTP PUT

    201 Created

    PUT /pres-rules/users/sip:[email protected]/index HTTP/1.1

    Content-Type: application/auth-policy+xml

    Host: xcap.presxdms.com

    allow

    201 Created

    (Alice)Presence

    AuthorizationRules

    Figure 29: Subscription authorization rules update by the Presentity

    7.2 Subscribing to Changes in the XML Documents

    Besides retrieving per-user configuration data via XCAP, the servers may be notified of changes (by end-users in most

    cases) to XML documents, by subscribing to the ua-profile event for those resources.

    The [draft-ietf-sipping-config-framework] specification defines a generic configuration framework enabling a UA to

    have its profile data delivered any time it is modified. In particular, it defines the ua-profile SIP event package.

    For XCAP, this event package is extended by [draft-ietf-sip-xcap-config] and it enables a presence or RLS server,

    acting as a UA, to subscribe to any changes (by the document owner) in policy or resource list documents. This feature

    enables the server to react in near-real-time,typically to any modifications that a presentity would perform on itsauthorization rules, or that a watcher would perform on resource lists.

    This facility can be applied to a specific document, to a set of documents belonging to a given user, or to a specific

    part of a given document.

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    35/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 35

    8 Subscription to a Presence List via RLS

    [RFC4662] defines an extension to the SIP Event Framework [RFC3265] that allows for requesting and conveying

    notifications for lists of resources. A resource list is identified by a URI, and it represents a list of zero or more URIs.

    Each of these URIs is an identifier for an individual resource for which the subscriber wants to receive information.

    The notifier for the list is called a "resource list server", or RLS. In order to determine the state of the entire list, the

    RLS will act as if it had generated a subscription to each resource in the list.

    The resource list is not restricted to be inside the domain of the subscriber. Similarly, the resources in the list are not

    constrained to be in the domain of the resource list server.

    Figure 30 illustrates an example where Bob, instead of subscribing to Alice, Bill and Carol presence, subscribes to an

    available resource list (containing these three people) at the RLS in his own domain. The Eventlist option tag is

    placed in the Suppor t ed header field. Moreover, the multipart/related and application/rlmi+xml MIME types

    must be included in an Acceptheader, in addition to the types (application/pidf+xml) required by the presence

    event package. The RLS is an authority for presence information for the users in the biloxi.com domain.

    Immediately upon accepting the subscription, the RLS sends a NOTIFY containing the RLMI (Resource List Meta-

    Information) as well as the presence information for Bill. The RLS then sends back-end subscriptions to the presence

    of Alice and Carol in their respective domains.

    Figure 30: Subscription to a Presence List via the RLS

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    36/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 36

    This first notification (3) is shown in Figure 31. The message body is composed of multiple parts: the full resource list

    under RLMI format, followed by the presence information for Bill.

    NOTIFY sip:bob-ua.biloxi.comEvent: presenceSubscription-State: active;expires=7200Require: eventlistContent-Type: multipart/related;type="application/rlmi+xml"; start=""; boundary="--xxxxx"Content-Length: ...

    --xxxxxContent-Transfer-Encoding: binaryContent-ID: Content-Type: application/rlmi+xml;charset="UTF-8"

    Buddy List at the meetingListe de mes amis au meeting

    Bill Jones

    Alice Smith

    Carol Cooper

    --xxxxxContent-Transfer-Encoding: binaryContent-ID: Content-Type: application/pidf+xml;charset="UTF-8"

    opensip:[email protected]

    --xxxxx

    Figure 31: RLS Notification as a multipart/related MIME type

    When the RLS is notified of both Alice and Carol presence information, it then notifies a second time Bob with the

    presence information either for the full list, or for the updated resources only.

    When the list is partial, the attribute fullState must be set to false.

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    37/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 37

    9 Optimization Features

    9.1 Partial Publication / Notification

    With the PIDF format, the full presence information must be published or notified even when there are minor

    changes, compared to the previous version. In some environments with low bandwidth and high latency, it can beworth limiting the volume of transported information. The application/pidf-diff+xml content type has been

    specified for dealing with this facility. This new format is similar to the standard PIDF, excepted that the

    element is replaced by either a or element. The former is used with an initial view, while the

    latter is used for changes. These two elements have a version attribute which is only used with notifications since the

    Publish mechanism has its own mechanisms (SIP-ETag and SIP-If-Ma t ch headers) for correlating published

    information.

    Figure 32 shows an example with a first publication, using as the root element, and then a second

    publication with as the root element. The document content of this second PUBLISH is made up of patch

    operations: add, replace and remove, as defined in the simple-xml-patch-ops IETF draft. This latter utilizes the XML

    Path Language (XPath).

    PUBLISH sip:[email protected] SIP/2.0Event: presenceContent-Type: application/pidf-diff+xmlContent-Length: ...

    open

    truefalsetrue

    tel:+1-404-123-4567

    openim:[email protected]

    Full state presence document

    PUBLISH sip:[email protected] SIP/2.0Event: presenceSIP-If-Match: xyzContent-Type: application/pidf-diff+xmlContent-Length: ...

    open

    mailto:[email protected]

    This is a new tuple insertedbetween the last tuple and note element

    close

    Figure 32: Partial Publication

    For notifications, the processing is very similar. The only difference is that the version attribute must be used.

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    38/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 38

    9.2 Content Indirection

    9.3 Notification Throttling

    9.4 Compression

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    39/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 39

    10 Usage of Presence by other Services

    Figure 33 shows the architecture that combines Presence with the Push-to-talk over Cellular (PoC) service, as per the

    OMA.

    Push-to-talk is a walkie-talkie like service that enables voice and data communications in a half-duplex mode betweentwo or more participants. The presence information, describing the availability of the user to communicate via PoC

    Service, may be published by the Presence Source in the UE, or by the PoC Server on behalf of the PoC Client. The

    presence information may be fetched or subscribed to by the Watcher in the UE, or by the PoC Server on behalf of the

    PoC Client.

    A similar architecture is applicable to the Instant Messaging service.

    PresenceServer

    PoCServer

    PoCClient

    WatcherPresenceSource

    Presentity(Bob)

    User Equipment

    User Equipment

    Watcher

    PoCClient

    PresenceSource

    Presentity(Alice)

    PUBLISH

    (Alice)

    PUBLISH

    (Bob)

    PUBLISH

    (Bob/Alice)

    SUBSCRIBE

    (Bob)

    NOTIFY

    SUBSCRIBE

    (Alice) NOTIFY

    SUBSCRIBE

    (Bob/Alice)

    NOTIFY

    Figure 33: Use of the Presence Service with PoC

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    40/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 40

    11 Use Cases

    Here are the actors for this series of presence use cases:

    Bob has a multimedia portable PC that he uses both at home and at work. Alice is Bobs friend and owns a mobile device. John and Juliet are Bobs colleagues and, like him, use a PC. Jane is Bobs assistant and uses a mobile device.The pre-requisites are as follows:

    All actors have subscribed to the presence service. Alice is in Bobs friends contact list John is in Bobs colleagues contact list Juliet is not in Bobs colleagues contact list yet Bob is in Alices contact list as well as in Johns contact list, but is not in Juliets contact list yet.

    11.1Use case #1: privacy management via the sphere presence element

    1) Bob is at home

    Bob is at home and invokes the presence service settings menu in his PC. He chooses the current sphereoption and sets it up to home. He does not modify the service capability elements that reflect that message,

    audio and video communications can be established for contacting him. As a result, a new presence view is

    published towards the presence server by the presence user agent on his PC.

    Alice and John, who are current Bobs contacts, are notified with new presence information regarding Bob. Alice sees Bob on-line while John sees Bob off-line: actually, Bobs friends and colleagues contact lists

    have been reflected, by the presence software on Bobs PC, as sphere condition elements associated to Alice

    and John identities in Bobs presence authorization rules, available at the presence XDMS.

    Alice types a message and sends it to Bob. Bob receives it and they start chatting. John sets up a call-back on Bob.

    Figure 34: Use case #1 - Bob at home

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    41/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 41

    2) Bob goes to work

    Bob goes to work and invokes the presence service settings menu in his PC. He chooses the current sphereoption and sets it up to work. He does not modify the service capability elements that reflect that message,

    audio and video communications can be established for contacting him. As a result, a new presence view is

    published towards the presence server by the presence user agent on his PC.

    The software application on Johns PC that initiated the call back is coupled to the presence client andtherefore is notified that Bob is available. A call-back windows pops up and John decides to call Bob for anaudio/video call between their PCs.

    Figure 35: Use case #1 - Bob goes to work

    11.2Use case #2: relationship management

    Bob is attending a meeting and becomes not available. However, Jane, his assistant can be contacted forprofessional calls: John forwards his calls to Jane and declares her as a presence relationship.

    Figure 36: Use case #2 - Bob is in a meeting

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    42/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 42

    Alice is notified that Bob is not available, conversely to John. Bob meets Juliet at the meeting and they exchange business contact information due to a project they will be

    working on together.

    John calls Bob and his call is forwarded to Jane. John could also contact Jane directly since he is aware thanBob is not available and suggests to call Jane for any urgent matter.

    11.3Use case #3: presence authorization Juliet is back to her office and she adds Bob to her contact list. This entails a subscription, by her presence

    client, to Bobs presence.

    Bob receives a presence authorization request from Juliet: since Juliet is not in Bobs contact list, andtherefore not in Bobs presence authorization rules at the XDMS server, the presence server puts Juliets

    subscription in a pending state. Bobs presence client is notified of this state, since it subscribed to

    presence.winfo, and requests the authorization from Bob.

    Bob accepts the demand from Juliet and adds her to his colleagues contact list. As the same time, Bobspresence client subscribes to Juliets presence.

    Similarly, Juliet receives a presence authorization from Bob and accepts it. Juliet and Bob can now see each other on-line. Juliet shares with Bob the Excel file she mentioned during the meeting.

    Figure 37: Use case #3 - presence authorization and Push-to-Share

    11.4Use case #4: unavailability Bob goes back home in the evening. He is tired afer a day of work. He sets up the current sphere option and

    to home and declares himself unaivalable for all the services: text, voice, video.

    Alice would like to call Bob from her SIP phone but since her presence client was notified of latest presenceinformation about Bob, she sees that Bob is currently unavailable

  • 8/13/2019 Alcatel Lucent WP SIMPLE Based Presence v2.4

    43/44

    Copyright 2007 Alcatel-Lucent. All Rights Reserved.

    Telecommunication Application ServersSIP/SIMPLE-based Presence Services White Paper (V2.4 04/2007) Page 43

    List of abbreviations

    3GPP 3rdGeneration Partnership

    Project

    AoR Address of Record

    AS Application Server

    AUID Application Unique ID

    CPP Common Profile for

    Presence

    EPA Event Publication Agent

    ESC Event State Compositor

    GGSN Gateway GPRS Support Node

    GPRS General Packet Radio

    Service

    HSS Home Subscriber Server

    HTTP Hypertext Transfer ProtocolIETF Internet Engineering Task

    Force

    IM Instant Messaging

    IMPP Instant Messaging and

    Presence Protocol

    IMS IP Multimedia Subsystem

    ISC IMS Service Control

    MIME Multipurpose Internet MailExtensions

    MSC Mobile Switching Center

    OMA Open Mobile Alliance

    OMNA Open Mobile Naming

    Authority

    PDA Personal Digital Assistant

    PEA Presence External Agent

    PIDF Presence Information Data

    Format

    PNA Presence Network Agent

    PoC Push-to-talk over Cellular

    PUA Presence User AgentRFC Request For Comments

    RLS Resource List Server

    RPID Rich Presence Extensions to

    PIDF

    S-CSCF Serving Call Session Control

    Function

    SGSN Serving GPRS Support Node

    SIMPLE SIP for Instant Messaging andPresence Leveraging

    Extensions

    SIP Session Initiation Protocol

    UAC User Agent Client

    UAS User Agent Server

    URI Uniform Resource Identifier

    URL Uniform Resource Locator

    URN Uniform Resource Name

    VLR Visitor Location Register