Internet DRAFT - draft-gurbani-spirits-implementation

draft-gurbani-spirits-implementation









INTERNET-DRAFT                                         Vijay K. Gurbani
February 2003                                            Sudha Gouthama
Expires: August 2003                                  Byron J. Williams
                                              Lucent Technologies, Inc.

Document: draft-gurbani-spirits-implementation-00.txt
Category: Experimental

Early implementation of the Services in PSTN requesting Internet services
                           (SPIRITS) protocol

STATUS OF THIS MEMO
   This document is an Internet-Draft and is in full conformance with
   all provisions of Section 10 of RFC2026.

   Internet-Drafts are working documents of the Internet Engineering
   Task Force (IETF), its areas, and its working groups.  Note that
   other groups may also distribute working documents as Internet-
   Drafts.

   Internet-Drafts are draft documents valid for a maximum of six months
   and may be updated, replaced, or obsoleted by other documents at any
   time.  It is inappropriate to use Internet-Drafts as reference
   material or to cite them other than as "work in progress."

   The list of current Internet-Drafts can be accessed at
   http://www.ietf.org/ietf/1id-abstracts.txt

   The list of Internet-Draft Shadow Directories can be accessed at
   http://www.ietf.org/shadow.html.

Abstract
   This document describes our early implementation of the SPIRITS
   protocol.  The purpose of the SPIRITS protocol is to support services
   that originate in the Public Switched Telephone Network (PSTN) and
   necessitate the interactions between the PSTN and the Internet.

1. Introduction

   The SPIRITS protocol defines the mechanisms and the semantics to
   subscribe to and convey certain PSTN events to interested Internet
   hosts for service execution [1].  This Internet-Draft describes our
   initial implementation of a SPIRITS framework based on the
   architecture and requirements outlined in [2] and [3], respectively.
   We have implemented two services based on such an architecture: a
   SPIRITS-based presence service which provides a coarse-grained
   presence status for a user represented by a device (phone), and a
   SPIRITS-based Instant Messaging (IM) service whereby the PSTN sends a
   SIP IM to a SPIRITS User Agent (UA).  These services, the attendant
   architecture and the relevant call flows are described next.

   It is expected that the reader is conversant in the SPIRITS and SIP
   terminology.  For those who are not, [5,6] provide a good reference
   for SIP and its event-based mechanism, and [1,2,3] provide a good



draft-gurbani-spirits-implementation-00.txt                    [Page 1]

Early implementation of the SPIRITS protocol               February 2003


   reference for SPIRITS.

   It is important to point out that the SPIRITS protocol [1] is not a
   standard yet, it is still an Internet-Draft.  Thus, what is described
   in this draft is an early implementation designed to validate the
   suitability of the protocol as well as provide some implementation
   experience that will be leveraged in further refining the protocol.

2. Services implemented

   We implemented two SPIRITS services; the first one is a presence-
   based service consisting of a user agent (UA) that  subscribes to
   those detection points (DP) in the PSTN which constituted a coarse
   form of presence -- on-hook, off-hook, and picking the phone up to
   make (or receive) a call.  When such events occurred, two SIP NOTIFY
   requests were send by the PSTN to the SIP UA. The first NOTIFY
   request contained the DP that triggered the request, and following it
   was a NOTIFY that indicated the change in the presence state for a
   user represented by the phone number.  Accordingly, the payload type
   of the first NOTIFY was "application/spirits-event" and that of the
   second NOTIFY was "application/cpim-pidf+xml" [4] with local
   extensions to the <status> element to impart the a richer presence-
   based component of the service.

   The SPIRITS UA is thus able to act as an endpoint which can display
   change in presence status for any CPIM-compliant presence system,
   including acting as a clients for a SPIRITS-compliant system.

   The second service demonstrates the capability of the PSTN to send a
   SIP IM to a SPIRITS UA using the SIP MESSAGE extensions [8].  Under
   this service scenario, a user in her office may be interested in
   knowing who called her home while she was at work.  Thus, she would
   like to get real-time notifications of calls terminating to her home
   line.  Accordingly, she subscribes to the DP that gets triggered on
   an incoming call.  When the DP triggers, the PSTN sends out a SIP
   NOTIFY intimating her of that event, and following the NOTIFY is a
   SIP MESSAGE request, the body of which contains the date and time the
   PSTN received the call, and if available, the callers phone number.

   Our initial thrust in service implementation has been the wireline
   aspects of the PSTN since these are well formalized by the SPIRITS
   protocol I-D. SPIRITS supports the wireless services as well, and the
   next sample set of services will be drawn from that domain.

3. Software needed

   In order to realize SPIRITS services, we had to write specialized
   SPIRITS UAs.  These UAs, in addition to being conversant with the
   standard SIP extensions for presence [7] and instant messaging [8],
   also had to be knowledgeable about SPIRITS.  To that extent, they
   needed the capability to subscribe to the SPIRITS events and receive
   notifications for them and execute the appropriate service-specific
   behavior when a notification for these events arrived.




draft-gurbani-spirits-implementation-00.txt                    [Page 2]

Early implementation of the SPIRITS protocol               February 2003


   We wrote two specialized SPIRITS UAs.  The first UA, corresponding to
   the first service, is a presence-based UA that subscribed to the
   presence- related DPs in the PSTN.  It also accepts NOTIFYs
   containing the SPIRITS payload and NOTIFY requests containing a CPIM
   document as a payload [4].  We implemented a local namespace to
   further quantify the <status> element of the CPIM document.

   In order to realize a SPIRITS framework, a Service Control Function
   (SCF) associated with a Service Switching Point (SSP) is required
   (see Figure 1: SPIRITS Architecture in [2]).  We had a specialized
   load on a SSP which sent selected events to another piece of software
   we authored.  This software was the embodiment of a SCF with a co-
   located SPIRITS client (as depicted in Figure 1 of [2]).  The SPIRITS
   client accepted SIP SUBSCRIBE requests from Internet hosts and
   maintained a subscription database in the SCF.  When the SCF got
   notified of an event by the SSP, the subscription database was
   checked to see if an Internet host had subscribed to such an event.
   If so, a SIP NOTIFY was sent, followed by any other service-specific
   SIP extension.  For example, if the SPIRITS client "knew" that a
   SPIRITS UA supported the MESSAGE extension (through the "Allows" SIP
   header), it would also send out a SIP MESSAGE request to the client
   (thus realizing the IM service).  In the absence of any such
   indication, a plain NOTIFY would be sent out.

   Note that the machinations described above for SSP and SCF
   communications are incidental, and in fact, the SPIRITS protocol does
   not deal directly with this interface.  What is of utmost importance
   is the behavior of the SPIRITS UA; more specifically, the behavior of
   the SPIRITS client (in the PSTN domain) and that of the SPIRITS
   server (in the Internet domain). The SPIRITS server (or subscriber)
   simply sent out a SIP SUBSCRIBE with the Event token and payload as
   specified in [1] and the SPIRITS client (or notifier) sent out a SIP
   NOTIFY with the payload and behavior as specified in [1].  The
   SPIRITS WG is chartered to specify the syntax and semantics of
   communication between the SPIRITS client and the SPIRITS server.
   What the SPIRITS server does on receiving a SIP NOTIFY is beyond the
   need for standardization; it depends on the creativity that leads to
   novel services. Likewise, what the SPIRITS client does on receiving a
   SIP SUBSCRIBE depends on the service provider and the representation
   of their network.

4. Detailed call flows

   We now present the detailed call flows for the two services.  The
   call flows are presented as vertical time-line diagrams, with the
   messages being exchanged between the entities represented as
   horizontal lines.  Each such line has a corresponding number (Fn) and
   the contents of that message are described  in detail after the call
   flow.

   For brevity, the messages are directly exchanged between the SPIRITS
   server (subscriber) and the SPIRITS client (notifier).
   Intermediaries like the SPIRITS gateway or proxies are not
   represented in the call flows.  Also, we have chosen not to show the



draft-gurbani-spirits-implementation-00.txt                    [Page 3]

Early implementation of the SPIRITS protocol               February 2003


   contents of the 200 OK responses.

4.1 Presence

       SPIRITS server                 SPIRITS client
       (subscriber)                   (nofitier)
       192.168.1.1                    192.168.1.2
         |F1 (SUBS)                    |
         +---------------------------->|
         |                (200 OK SUBS)|  Update PSTN elements
         |<----------------------------+
         |                    F2 (NOT) |
         |<----------------------------+  Accept the subscription;
         |(200 OK NOT)                 |  send base notification
         +---------------------------->|
         |                    F3 (NOT) |
         |<----------------------------+  Send base PIDF document
         |(200 OK NOT)                 |
         +---------------------------->|
         |                             |
         =                             =
         |                             |
         |                             |   Event of interest occurs
         |                    F4 (NOT) |   Send NOTIFY containing DP
         |<----------------------------+
         |(200 OK NOT)                 |
         +---------------------------->|
         |                    F5 (NOT) |
         |<----------------------------+   Send delta PIDF document
         |(200 OK NOT)                 |
         +---------------------------->|
         |                             |
        \/                            \/

   F1
   SUBSCRIBE sip:192.168.1.2:9001 SIP/2.0
   Via: SIP/2.0/TCP 192.168.1.1;branch=z9hG4bK1.0239881922202132
   To: <sip:5552207722@192.168.1.2>
   From: <sip:192.168.1.1>;tag=6738688359992660166
   CSeq: 472596 SUBSCRIBE
   Call-ID: 5945339689215500186@192.168.1.1
   Event: spirits-INDPs
   Allow: SUBSCRIBE, NOTIFY
   Accept: application/spirits-event, application/cpim-pidf+xml
   Contact: <sip:192.168.1.1:9090>
   Content-Type: application/spirits-event
   Content-Length: 462

   <?xml version="1.0"?>
   <spirits-event>
      <DP INDPs="TA" Mode="N">
         <CalledPartySubaddress>5552207722</CalledPartySubaddress>
      </DP>
      <DP INDPs="OAA" Mode="N">



draft-gurbani-spirits-implementation-00.txt                    [Page 4]

Early implementation of the SPIRITS protocol               February 2003


         <CallingPartySubaddress>5552207722</CallingPartySubaddress>
      </DP>
      <DP INDPs="OD" Mode="N">
         <CalledPartySubaddress>5552207722</CalledPartySubaddress>
      </DP>
      <DP INDPs="TD" Mode="N">
         <CalledPartySubaddress>5552207722</CalledPartySubaddress>
      </DP>
   </spirits-event>

   This SIP request contains a SPIRITS payload that identifies the DPs
   required to detect a coarse-grained form of presence on a device
   (phone).  The DPs are: Termination Answer (TA), Termination
   Disconnect (TD) on the Terminating Basic Call State Model (T_BCSM)
   side; Origination Attempt Authorized (OAA), and Origination
   Disconnect (OD) on the Originating Basic Call State Model (O_BCSM)
   side.  Whenever a DP from this set is triggered, the SPIRITS client
   (notifier) will send a NOTIFY request to the SPIRITS server
   (subscriber).

   Of interest is also the MIME types that appear in the "Accept" header
   of the SUBSCRIBE.  The subscriber UA accepts two MIME types: SPIRITS
   payload, and a Presence Information Data Format (PIDF) document.
   Thus, when a DP from the above set is triggered, a NOTIFY
   corresponding to it will be sent (F3); in addition, another NOTIFY
   (F4) will also be sent which includes a PIDF document for presence
   purposes.

      Note that we could have send two SUBSCRIBE requests; one
      corresponding to the SPIRITS DPs (Event: spirits-INDPs) and the
      other corresponding to presence-related events (Event: presence)
      [7]. Instead, in this example implementation, we have chosen to
      denote the presence aspect by including the appropriate Accept
      header MIME type (application/cpim-pidf+xml).

   F2
   NOTIFY sip:192.168.1.1:9090 SIP/2.0
   To: <sip:192.168.1.1>;tag=6738688359992660166
   From: <sip:5552207722@192.168.1.2>;tag=--*befb@@
   Call-ID: 5945339689215500186@192.168.1.1
   CSeq: 9323 NOTIFY
   Via: SIP/2.0/TCP 192.168.1.2:9001;branch=z9hG4bK3e554116
   Contact: <sip:192.168.1.2:9001>
   Subscription-State: active
   Content-Length: 0

   A base NOTIFY is sent to the subscriber accepting the subscription.

   F3
   NOTIFY sip:192.168.1.1:9090 SIP/2.0
   To: <sip:192.168.1.1>;tag=6738688359992660166
   From: <sip:5552207722@192.168.1.2>;tag=--*befb@@
   Call-ID: 5945339689215500186@192.168.1.1
   CSeq: 9324 NOTIFY



draft-gurbani-spirits-implementation-00.txt                    [Page 5]

Early implementation of the SPIRITS protocol               February 2003


   Via: SIP/2.0/TCP 192.168.1.2:9001;branch=z9hG4bK3e5540fa
   Contact: <sip:192.168.1.2:9001>
   Content-Type: application/cpim-pidf+xml
   Subscription-State: active
   Content-Length: 387

   <?xml version="1.0"?>
   <presence xlmns="urn:ietf:params:xml:ns:cpim-pidf"
             xlmns:local="urn:lucent-com:pidf-category"
             entity="pres:5552207722@lucent.com">
      <tuple id="910ss1">
         <status>
            <basic>CLOSED</basic>
            <local:category>Unavailable</local:category>
         </status>
         <contact>sip:5552207722@lucent.com</contact>
      </tuple>
   </presence>

   A NOTIFY containing the PIDF document is then sent to the subscriber.
   This NOTIFY request initializes the presence state of the device
   (Unavailable).  We deliberately chose the initial presence state to
   be Unavailable due to security and privacy reasons.

   F4
   NOTIFY sip:192.168.1.1:9090 SIP/2.0
   To: <sip:192.168.1.1>;tag=6738688359992660166
   From: <sip:5552207722@192.168.1.2>;tag=--*befb@@
   Call-ID: 5945339689215500186@192.168.1.1
   CSeq: 9325 NOTIFY
   Via: SIP/2.0/TCP 192.168.1.2:9001;branch=z9hG4bK3e4891aab
   Contact: <sip:192.168.1.2:9001>
   Content-Type: application/spirits-event
   Subscription-State: active
   Content-Length: 223

   <?xml version="1.0"?>
   <spirits-event>
      <DP INDPs="OAA" Mode="N">
         <CallingPartySubaddress>5552207722</CallingPartySubaddress>
         <CalledPartySubaddress>5552202040</CalledPartySubaddress>
      </DP>
   </spirits-event>

   This NOTIFY is sent out because an event of interest (OAA) was
   detected by the SPIRITS client.  As per the SPIRITS protocol, all the
   relevant information is collated and send as a SPIRITS payload.

   F5
   NOTIFY sip:192.168.1.1:9090 SIP/2.0
   To: <sip:192.168.1.1>;tag=6738688359992660166
   From: <sip:5552207722@192.168.1.2>;tag=--*befb@@
   Call-ID: 5945339689215500186@192.168.1.1
   CSeq: 9326 NOTIFY



draft-gurbani-spirits-implementation-00.txt                    [Page 6]

Early implementation of the SPIRITS protocol               February 2003


   Via: SIP/2.0/TCP 192.168.1.2:9001;branch=z9hG4bKuu71aa26
   Contact: <sip:192.168.1.2:9001>
   Content-Type: application/cpim-pidf+xml
   Subscription-State: active
   Content-Length: 416

   <?xml version="1.0"?>
   <presence xlmns="urn:ietf:params:xml:ns:cpim-pidf"
             xlmns:local="urn:lucent-com:pidf-category"
             entity="pres:5552207722@lucent.com">
      <tuple id="910ss1">
         <status>
            <basic>CLOSED</basic>
            <local:category>
               In a call since Thu Feb 20 14:56:54 2003
            </local:category>
         </status>
         <contact>sip:5552207722@lucent.com</contact>
      </tuple>
   </presence>

   This NOTIFY is sent out to watchers to update the presence status of
   the device.  To that extent, it contains a PIDF document with a local
   XML namespace extension (local) which further quantifies the <status>
   element. The <local:category> element imparts service provider
   specific information which may be displayed in the UI of the SPIRITS
   subscriber UA.  In this case, we opted to send the presence status of
   the user as being busy since a certain time.  There is no reason why
   additional informational elements such as the caller's phone number
   cannot be displayed (in fact, this information is already available
   through the NOTIFY in F4; however, we chose not to provide it as a
   display element in the UI).

4.2 Instant Message

   In this service, a subscriber is interested in monitoring a certain
   phone line.  For example, this line could represent the subscriber's
   home line which she would like to monitor from her work.  As soon as
   a call arrives at the line, she would like the PSTN to send an IM to
   her UA, whereupon she can decide if she would like to return the call
   immediately.

   The call flow is presented next followed by a message analysis.

       SPIRITS server                 SPIRITS client
       (subscriber)                   (nofitier)
       192.168.1.1                    192.168.1.2
         |F1 (SUBS)                    |
         +---------------------------->|
         |                (200 OK SUBS)|  Update PSTN elements
         |<----------------------------+
         |                    F2 (NOT) |
         |<----------------------------+  Accept the subscription;
         |(200 OK NOT)                 |  send base notification



draft-gurbani-spirits-implementation-00.txt                    [Page 7]

Early implementation of the SPIRITS protocol               February 2003


         +---------------------------->|
         |                             |
         =                             =
         |                             |
         |                             |   Event of interest occurs
         |                    F3 (NOT) |   Send NOTIFY containing DP
         |<----------------------------+
         |(200 OK NOT)                 |
         +---------------------------->|
         |                    F4 (MSG) |
         |<----------------------------+   Send the IM
         |(200 OK MSG)                 |
         +---------------------------->|
         |                             |
        \/

   F1
   SUBSCRIBE sip:192.168.1.2:9001 SIP/2.0
   Via: SIP/2.0/TCP 192.168.1.1;branch=z9hG4bK0.577242217883416
   To: <sip:5552202040@192.168.1.2>
   From: <sip:192.168.1.1>;tag=-976415514390200217
   CSeq: 65037 SUBSCRIBE
   Call-ID: -6299696320093323677@192.168.1.1
   Allow: SUBSCRIBE, NOTIFY, MESSAGE
   Accept: application/spirits-event, text/plain
   Contact: <sip:192.168.1.1:9091>
   Content-Type: application/spirits-event
   Content-Length: 154

   <?xml version="1.0"?>
   <spirits-event>
   <DP INDPs="TAA" Mode="N">
         <CalledPartySubaddress>5552202040</CalledPartySubaddress>
      </DP>
   </spirits-event>

   Here, a Termination Attempt Authorized (TAA) is set on a line.  This
   DP is encountered and is triggered on the terminating side when an
   incoming call arrives for the line.

   Note that the "Allow" header contains 3 SIP methods that are
   supported by this UA: SUBSCRIBE, NOTIFY, and MESSAGE.  Thus, the
   SPIRITS client (notifier) knows that the subscriber can accept
   MESSAGE requests.  This is further re-inforced by the presence of the
   MIME type "text/plain" in the "Accept" header.

   F2
   NOTIFY sip:sip:192.168.1.1:9091 SIP/2.0
   To: <sip:192.168.1.1>;tag=-976415514390200217
   From: <sip:5552202040@192.168.1.2>;tag=--*bf07@@
   Call-ID: -6299696320093323677@192.168.1.1
   CSeq: 9321 NOTIFY
   Via: SIP/2.0/TCP 192.168.1.2;branch=z9hG4bK9aas6794
   Contact: <sip:192.168.1.2:9001>



draft-gurbani-spirits-implementation-00.txt                    [Page 8]

Early implementation of the SPIRITS protocol               February 2003


   Subscription-State: active
   Content-Length: 0

   Subscription is accepted and a base NOTIFY request is sent out.

   F3
   NOTIFY sip:sip:192.168.1.1:9091 SIP/2.0
   To: <sip:192.168.1.1>;tag=-976415514390200217
   From: <sip:5552202040@192.168.1.2>;tag=--*bf07@@
   Call-ID: -6299696320093323677@192.168.1.1
   CSeq: 9322 NOTIFY
   Via: SIP/2.0/TCP 192.168.1.2;branch=z9hG4bK3e555644
   Contact: <sip:192.168.1.2:9001>
   Content-Type: application/spirits-event
   Subscription-State: active
   Content-Length: 223

   <?xml version="1.0"?>
   <spirits-event>
      <DP INDPs="TAA" Mode="N">
         <CallingPartySubaddress>5552202040</CallingPartySubaddress>
         <CalledPartySubaddress>5552207722</CalledPartySubaddress>
      </DP>
   </spirits-event>

   When a call arrives for the line, a NOTIFY is sent to the subscriber,
   followed immediately by a MESSAGE request.

   F4
   MESSAGE sip:sip:192.168.1.1:9091 SIP/2.0
   To: <sip:192.168.1.1>;tag=-976415514390200217
   From: <sip:5552202040@192.168.1.2>;tag=--*bf07@@
   Call-ID: -6299696320093323677@192.168.1.1
   CSeq: 9322 MESSAGE
   Via: SIP/2.0/TCP 192.168.1.2;branch=z9hG4bK89asd678
   Contact: <sip:192.168.1.2:9001>
   Content-Type: text/plain
   Content-Length: 86

   From PSTN buddy: Phone call from 5552207722
    to 5552202040 at Thu Feb 20 16:27:16 2003

   The body of the MESSAGE request contains a plain text formatted
   message which is displayed in the appropriate window of the SPIRITS
   subscriber's UA.

ACKNOWLEDGMENTS

   The authors would like to acknowledge Alec Brusilovsky, Jack Kozik,
   William O'Keefe, Doug Varney, and Cindy Yao, for their support and
   input to the early implementation.

AUTHORS' ADDRESSES




draft-gurbani-spirits-implementation-00.txt                    [Page 9]

Early implementation of the SPIRITS protocol               February 2003


   Vijay K. Gurbani
   2000 Lucent Lane
   Rm 6G-440
   Naperville, IL 60566
   USA
   Email: vkg@lucent.com

   Sudha Gouthama
   1960 Lucent Lane
   Rm 9B-530
   Naperville, IL 60566
   Email: gouthama@lucent.com

   Byron J. Williams
   1960 Lucent Lane
   Rm 9B-522
   Naperville, IL 60566
   Email: bjw@lucent.com


ACRONYMS

      CPIM                 Common Presence and Instant Messaging
      DP                   Detection Point
      IM                   Instant Message
      IN                   Intelligent Network
      IP                   Internet Protocol
      MIME                 Multipurpose Internet Mail Extensions
      O_BCSM               Originating Basic Call State Model
      PIDF                 Presence Information Data Format
      PSTN                 Public Switched Telephone Network
      SCF                  Service Control Function
      SIP                  Session Initiation Protocol
      SPIRITS              Services in the PSTN/IN Requesting InTernet Services
      SSP                  Service Switching Point
      T_BCSM               Terminating Basic Call State Model

Normative references

   [1]  Vijay K. Gurbani (Ed.), Alec Brusilovsky, Igor Faynberg, Hui-Lan
        Lu, Musa Unmehopa, Kumar Vemuri, and Jorge Gato, "The SPIRITS
        (Services in PSTN requesting Internet services) Protocol",
        Internet-Draft, Work in progress, expires May 2003,
        <http://www.ietf.org/internet-drafts/draft-ietf-spirits-
        protocol-03.txt>

   [2]  Lev Slutsman (Ed.), Igor Faynberg, Hui-Lan Lu, and Mark
        Weissman, "The SPIRITS Architecture", IETF RFC 3136, June
        2001, <http://www.ietf.org/rfc/rfc3136.txt>

   [3]  Igor Faynberg (Ed.), Jorge Gato, Hui-Lan Lu, and Lev Slutsman,
        "Service in the Public Switched Telephone Network/Intelligent
        Network (PSTN/IN) Requesting InTernet Service (SPIRITS) Protocol
        Requirements", IETF RFC 3298, August 2002,



draft-gurbani-spirits-implementation-00.txt                   [Page 10]

Early implementation of the SPIRITS protocol               February 2003


        <http://www.ietf.org/rfc/rfc3298.txt>

   [4]  Hiroyasu Sugano, Shingo Fujimoto, Graham Klyne, Adrian Bateman,
        Wayne Carr, and Jon Peterson, "Common Presence and Instant
        Messaging (CPIM) Presence Information Data Format", IETF
        Internet-Draft, Work in progress, expires June 2003,
        <http://www.ietf.org/internet-drafts/draft-ietf-impp-cpim-
        pidf-07.txt>

Informative references

   [5]  Jonathan Rosenberg, Henning Schulzrinne, Gonzalo Camarillo, Alan
        Johnston, Jon Peterson, Robert Sparks, Mark Handley, and Eve
        Schooler, "The Session Initiation Protocol (SIP)", IETF RFC
        3261, June 2002, <http://www.ietf.org/rfc/rfc3261.txt>.

   [6]  Adam Roach, "Session Initiation Protocol (SIP)-Specific Event
        Notification", IETF RFC 3265, June 2002,
        <http://www.ietf.org/rfc/rfc3265.txt>

   [7]  Jonathan Rosenberg, "A Presence Event Package for the Session
        Initiation Protocol (SIP)" IETF Internet-Draft, Work in
        progress, expires July 2003, <http://www.ietf.org/internet-
        drafts/draft-ietf-simple-presence-10.txt>

   [8]  Ben Campbell (Ed.), Jonathan Rosenberg, Henning Schulzrinne,
        Christian Huitema, and David Gurle, "Session Initiation
        Protocol (SIP) Extension for Instant Messaging", IETF RFC 3248,
        December 2002, <http://www.ietf.org/rfc/rfc3428.txt>

FULL COPYRIGHT STATEMENT

   "Copyright (C) The Internet Society (date). All Rights Reserved. This
   document and translations of it may be copied and furnished to
   others, and derivative works that comment on or otherwise explain it
   or assist in its implementation may be prepared, copied, published
   and distributed, in whole or in part, without restriction of any
   kind, provided that the above copyright notice and this paragraph are
   included on all such copies and derivative works. However, this
   document itself may not be modified in any way, such as by removing
   the copyright notice or references to the Internet Society or other
   Internet organizations, except as needed for the purpose of
   developing Internet standards in which case the procedures for
   copyrights defined in the Internet Standards process must be
   followed, or as required to translate it into followed, or as
   required to translate it into languages other than English.

   The limited permissions granted above are perpetual and will not be
   revoked by the Internet Society or its successors or assigns.

   This document and the information contained herein is provided on an
   "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING
   TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING
   BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION



draft-gurbani-spirits-implementation-00.txt                   [Page 11]

Early implementation of the SPIRITS protocol               February 2003


   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.























































draft-gurbani-spirits-implementation-00.txt                   [Page 12]