INTERNET-DRAFT                                Vijay K. Gurbani (Editor)
November 2002                                          Alec Brusilovsky
Expires: May 2003                                         Igor Faynberg
                                                             Hui-Lan Lu
                                                          Musa Unmehopa
                                                           Kumar Vemuri
                                              Lucent Technologies, Inc.

                                                             Jorge Gato
                                                              Vodafone


Document: draft-ietf-spirits-protocol-03.txt
Category: Standards Track

  The SPIRITS (Services in PSTN requesting Internet services) 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 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.  Such services are called SPIRITS services.
   On the PSTN side, the SPIRITS services are most often initiated from
   the Intelligent Network (IN) entities. Internet Call Waiting,
   Internet Caller-ID Delivery, are examples of SPIRITS services; as are
   location-based services or application-specific ones.  The protocol
   is to define the building blocks from which many other services can
   be built.









draft-ietf-spirits-protocol-03.txt                             [Page 1]


The SPIRITS Protocol                                           June 2002


                             Table of Contents
   1.  INTRODUCTION...............................................2
       1.1 Conventions used in this document .....................3
   2.  OVERVIEW OF OPERATIONS.....................................3
   3.  CALL-RELATED EVENTS........................................
       3.1 Background.............................................
       3.2 IN-specific details....................................
       3.3 Services through dynamic DPs...........................
           3.3.1  Normative usage.................................
           3.3.2  Event package name..............................
           3.3.3  Event package parameters........................
           3.3.4  SUBSCRIBE bodies................................
           3.3.5  Subscription duration...........................
           3.3.6  NOTIFY bodies...................................
           3.3.7  Notifier processing of SUBSCRIBE requests.......
           3.3.8  Notifier generation of NOTIFY requests..........
           3.3.9  Subscriber processing of NOTIFY requests........
           3.3.10 Handling of forked requests.....................
           3.3.11 Rate of notifications...........................
           3.3.12 State Agents....................................
           3.3.13 Examples........................................
           3.3.14 Use of URIs to retrieve state...................
       3.4 Services through static DPs............................
           3.4.1 Internet Call Waiting............................
           3.4.2 Call disposition choices.........................
           3.4.3 Accepting an ICW session using VoIP..............
   4.  NON-CALL RELATED EVENTS....................................
       4.1  Background............................................
       4.2  Normative usage.......................................
       4.3  Event package name....................................
       4.4  Event package parameters..............................
       4.5  SUBSCRIBE bodies......................................
       4.6  Subscription duration.................................
       4.7  NOTIFY bodies.........................................
       4.8  Notifier processing of SUBSCRIBE requests.............
       4.9  Notifier generation of NOTIFY requests................
       4.10 Subscriber processing of NOTIFY requests..............
       4.11 Handling of forked requests...........................
       4.12 Rate of notifications.................................
       4.13 State Agents..........................................
       4.14 Examples..............................................
       4.15 Use of URIs to retrieve state.........................
   5.  IANA CONSIDERATIONS..... ..................................
       5.1 Registering event packages.............................
       5.2 Registering MIME type..................................
   6.  SECURITY CONSIDERATIONS....................................

       ACKNOWLEDGMENTS............................................
       CHANGES....................................................
       AUTHORS' ADDRESS...........................................
       ACRONYMS...................................................
       NORMATIVE REFERENCE........................................
       INFORMATIVE REFERENCE......................................




draft-ietf-spirits-protocol-03.txt                             [Page 2]


The SPIRITS Protocol                                           June 2002


1. Introduction

   SPIRITS (Services in the PSTN Requesting InTernet Services) is an
   IETF architecture and associated protocol that enables call
   processing elements in the telephone network such as the PSTN to make
   service requests that are then processed on Internet hosted servers.
   The term PSTN is used here to include all manner of access; i.e.
   wireline circuit-switched network as well as the wireless circuit-
   switched network.

   The earlier IETF work on the PSTN/Internet Interworking (PINT)
   resulted in the protocol (RFC 2848) in support of the services
   initiated in the reverse direction - from the Internet to PSTN.

   This Internet-Draft has been written in response to the SPIRITS WG
   chairs call for SPIRITS Protocol proposals.  Among other
   contributions, this I-D is based on:

      o  Informational RFC2995, "Pre-SPIRITS implementations"
      o  Informational RFC3136, "The SPIRITS Architecture"
      o  Informational RFC3298, "SPIRITS Protocol Requirements"

   The rest of this document is organized as follows: section 2 provides
   an overview of SPIRITS operations; sections 3 and 4 discusses the
   mechanisms for an Internet host expressing an interest in PSTN
   events, and the PSTN propagating such events to the Internet host.
   Section 5 is concerned with the tokens defined in this document with
   IANA.  Finally, section 6 discusses the important aspect of securing
   the communications between the PSTN and the Internet.

1.1 Conventions used in this document

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED",  "MAY", and "OPTIONAL" in this
   document are to be interpreted as described in RFC 2119.

2. Overview of operations

   The purpose of the SPIRITS protocol is to enable the execution of
   services in the Internet based on certain events occurring in the
   PSTN.  The term PSTN is used here to include all manner of switching;
   i.e. wireline circuit-switched network as well as the wireless
   circuit-switched network.

   In general terms, an Internet host will express an interest in
   getting notifications of certain events occurring in the PSTN.  When
   the event of interest occurs, the PSTN notifies the Internet host.
   The Internet host can execute approrpiate services based on the
   notification.

                        +------+
                        | PSTN |
                        |Events|
                        +------+



draft-ietf-spirits-protocol-03.txt                             [Page 3]


The SPIRITS Protocol                                           June 2002


                       /       \
                      /         \
             +-------+            +--------+
             |Call   |            |Non-Call|
             |Related|            |Related |
             +-------+            +--------+
            /        \             /   \
           /          \           /     \
      +---/--+     +---\--+   +--/-----+   +-------------+
      |Static|     |Dynamic|   |Location|  |App. Specific| ...
      +------+     +-------+   +--------+  +-------------+

                     Figure 1: The SPIRITS hierarchy.

   Figure 1 contains a very the SPIRITS events heirarchy including their
   subdivision in two discrete classes for service execution: events
   related to the setup, teardown, and maintenence of a call; and events
   un-related to call setup, teardown or maintenance.  Example of the
   latter class of events are geo-location mobility events that are
   tracked by the cellular PSTN.  SPIRITS will specify the framework to
   provide services for both these types of events.

   Call-related events, its further subdivisions and how they enable
   services in the Internet is contained in section {X-Ref 3}.  Services
   enabled from events not related to call setup, teardown, or
   maintenance are covered in detail in section {X-Ref 4}.

   For reference, the SPIRITS architecture from [1] is reproduced below.
   This document is primarily focused on interfaces B and C.  Interface
   D, is a matter of local policy; the PSTN operator may have a
   functional interface between the SPIRITS client or a message passing
   interface.  This document does not discuss interface D in any detail.

             +--------------+
             | Subscriber's |
             |   IP Host    |              +--------------+
             |              |              |              |
             | +----------+ |              | +----------+ |
             | | PINT     | |      A       | | PINT     | |
             | |  Client  +<-------/-------->+  Gateway +<-----+
             | +----------+ |              | +----------+ |    |
             |              |              |              |    |
             | +----------+ |              | +----------+ |    |
             | | SPIRITS  | |      B       | | SPIRITS  | |    |
             | |  Server  +<-------/-------->+  Gateway | |    |
             | +----------+ |              | +--------+-+ |    |
             |              |              |          ^   |    |
             +--------------+              +----------|---+    |
                                                      |        |
                                      IP Network      |        |
            ------------------------------------------|--------|---
                                      PSTN            / C      / E
                                                      |        |
                                                      v        |



draft-ietf-spirits-protocol-03.txt                             [Page 4]


The SPIRITS Protocol                                           June 2002


                                                 +----+------+ |
                                                 | SPIRITS   | |
                                                 |   Client  | v
               +-------------------+         +---+-----D-----+-++
               | Service Switching |INAP/SS7 | Service Control  |
               |    Function       +---------+     Function     |
               +----+--------------+         +------------------+
                    |
                    |line
                   +-+
                   [0] Subscriber's

                    Figure 2: The SPIRITS Architecture.

     (Note: The interfaces A-E are described in detail in the SPIRITS
                        Architecture document [1])

   The requirements of a SPIRITS protocol are detailed in [5].  For the
   sake of completeness, we simply re-iterate the decisions that lead to
   the selection of SIP as a SPIRITS protocol: Most of the pre-SPIRITS
   implementations [11] of a benchmark SPIRITS service, Internet Call
   Waiting (ICW), were realized in SIP.  Furthermore, a companion
   protocol, PINT [9], successfully used SIP for its operations.  SIP
   also provides the notification capabilities needed by SPIRITS through
   the SIP event notification framework [4].  Based on all of these
   factors, the protocol used on interfaces B and C is SIP.

3. Call-related events

   The PSTN today supports service models such as the Intelligent
   Network (IN), whereby some features are executed locally on switching
   elements called Service Switching Points (SSPs), and other features
   are executed on service elements called Service Control Points
   (SCPs). The SPIRITS architecture [1] permits these SCP elements to
   act as intelligent proxies to leverage and use Internet hosts and
   capabilities to further enhance the telephone end-user's experience.

3.1 Background

   A call model (CM) is a finite state machine used in SSPs and other
   call processing elements that accurately and concisely reflects the
   current state of a call at any given point in time. Call models
   consist of states called PICs (Points In Call) and transitions
   between states. Inter-state transitions pass through elements called
   Detection Points or DPs. DPs house one or more triggers.  Every
   trigger has a firing criteria associated with it. When a trigger is
   armed (made active), and its associated firing criteria are
   satisfied, it fires. The particulars of firing criteria may vary
   based on the call model being supported.

   When a trigger fires, a message is formatted with call state
   information and transmitted by the SSP to the SCP. The SCP then reads
   this call related data and generates a response which the SSP then
   uses in further call processing.



draft-ietf-spirits-protocol-03.txt                             [Page 5]


The SPIRITS Protocol                                           June 2002


   Detection Points are of two types: TDPs (or Trigger Detection
   Points), and EDPs (or Event Detection Points). TDPs are provisioned
   with statically armed triggers (armed through Service Management
   Tools).  EDPs are dynamically armed triggers (armed by the SCP as
   call processing proceeds). DPs may also be classified as "Request" or
   "Notification" DPs. Thus, one can have TDP-R's, TDP-N's, EDP-R's and
   EDP-N's [3],

   The "-R" type of DPs require the SSP to suspend call processing when
   communication with the SCP is initiated. Call processing resumes when
   a response is received. The "-N" type of DPs enable the SSP to
   continue with call processing when the trigger fires, after it sends
   out the message to the SCP, notifying it that a certain event has
   occurred.

   Call models typically support different types of detection points.
   Note that while INAP and the IN Capability Set (CS)-2 [8] call model
   are used in this draft as examples, and for ease of explanation,
   other call models possess similar properties.  For example, the WIN
   call model also supports the dynamic arming of triggers.  Thus, the
   essence of this discussion applies not just to the wireline domain,
   but applies equally well to the wireless domain as well.

   When the SCP receives the INAP formatted message from the SSP, if the
   SCP supports the SPIRITS architecture, it can encode the INAP message
   contents into a SPIRITS protocol message which is then transmitted to
   SPIRITS-capable elements in the IP network. Similarly, when it
   receives responses back from said SPIRITS capable elements, it can
   reformat the response content into the INAP format and forward these
   messages back to SSPs. Thus the process of inter-conversion and/or
   encoding between the INAP parameters and the SPIRITS protocol is of
   primary interest.

   An SCP is a physical manifestation of the Service Control Function.
   An SSP is a physical manifestation of the Service Switching Function
   (and the Call Control Function). To support uniformity of
   nomenclature between the various SPIRITS drafts, we shall use the
   terms SCP and SCF, and SSP and SSF interchangeably in this document.

3.2 IN-specific details

   IN-specific details in relation to SPIRITS, namely, how to extract
   common data types, parameters and response codes information, with
   their associated descriptions, for particular DPs and triggers of
   interest to SPIRITS and their associated data elements are captured
   in [7].  Appendix B of [7] also includes an example XML DTD that may
   be used to support the XML-encoding for SPIRITS messages.

   Appendices A and B of [7] contain a select subset of IN CS-2
   detection points and information flows that we believe will be useful
   in the context of SPIRITS services.  Admittedly, this list may not be
   exhaustive. Note that INAP and similar protocols support a large
   number of optional parameters in each message.  Not all such
   parameters may be useful in the SPIRITS context, thus, only a subset



draft-ietf-spirits-protocol-03.txt                             [Page 6]


The SPIRITS Protocol                                           June 2002


   of available information elements are of direct interest.

   Note also, that depending on what kinds of SPIRITS services are
   supported, and how they are implemented, the "thickness" of the
   SPIRITS implementation may drive exactly what subset of parameters
   received by the SCP are forwarded on towards the SPIRITS server for
   processing. An SCP could thus function in one of three modes for
   every incoming request:


      (1) process the request locally (as is traditionally done today,
          no SPIRITS involvement)

      (2) process part of the request locally and forward some
          parameters to a SPIRITS-entity for further processing, and
          formulate a response based on both the local processing and
          the SPIRITS response

      (3) forward all the received data in a SPIRITS protocol-
          compliant format to a SPIRITS entity for processing, and
          forward back the appropriately formatted response to the
          entity that originated the request.

   We do not here preclude operation in any of the modes above.

   As mentioned previously, the first trigger that fires during call
   processing is typically a TDP (since there is no pre-existing control
   relationship between the SSF and the SCF prior to this). TDPs are
   provisioned through a management system interface on the switching
   element (SSP). In the future, other mechanisms (such as PINT) may be
   used to provision this data as well, but in this document we limit
   our discussion to pure SPIRITS implementations.

3.3 Services through dynamic DPs

   Triggers in the PSTN can be armed dynamically, often outside the
   context of a call.  The SIP event notification mechanism [4] is,
   therefore, a convenient means to exploit in those cases where
   triggers housed in EDPs fire (see section 3 of [5]).  Note that [5]
   uses the term "persistent" to refer to call-related DP arming and
   associated interactions.

   The SIP Events Package enables IP endpoints (or hosts) to subscribe
   to and receive subsequent notification of events occurring in the
   PSTN.  With reference to Figure 2, this includes communication on the
   interfaces marked "B" and "C".

   Following the nomenclature outlined in [4], the SPIRITS server in
   Figure 2 is a "Subscriber" and the SPIRITS client in Figure 2 is a
   "Notifier".  These terms will be used to refer to the SPIRITS server
   and SPIRITS clients respectively in the remaining of this section.
   Please refer to [4] for detailed workings of the SUBSCRIBE/NOTIFY
   mechanism.




draft-ietf-spirits-protocol-03.txt                             [Page 7]


The SPIRITS Protocol                                           June 2002


3.3.1 Normative usage

   A subscriber, under the effect of the user controlling it, may issue
   a SUBSCRIBE request which identifies the events it is interested in
   getting the notification of.  The SUBSCRIBE request is routed to the
   notifier, where it is authenticated and may be accepted.

   When an event of the nature requested for in the earlier SUBSCRIBE
   request occurs in the notifier, the notifier will format a NOTIFY
   request and direct it towards the subscriber.  The NOTIFY request
   will contain the relevant information requested by the subscriber.
   The subscriber can then choose to act in a manner appropriate to the
   notification.

   The dialog established by the SUBSCRIBE terminates when the event of
   interest occurs and this notification is passed to the subscriber
   through a NOTIFY request.  If the subscriber is interested in the
   future occurrence of the same event, it MUST issue a new SUBSCRIBE
   request, establishing a new dialog.

   The remaining sections fill in the template that is needed in order
   to fully specify a SIP Event package for the SPIRITS protocol.

3.3.2 Event package name

   This document defines two event packages; the first of these is
   defined in this section and is called "spirits-INDPs".  This package
   MUST be used for events corresponding to IN detection points.  All
   entities that implement the SPIRITS protocol and support IN detection
   points MUST set the "Event" request header [4] to "spirits-INDPs."
   The "Allow-Events" general header [4] MUST include the token
   "spirits-INDPs" if the entity implements the SPIRITS protocol and
   supports IN detection points.

      Event: spirits-INDPs
      Allow-Events: spirits-INDPs

3.3.3 Event package parameters

   The "spirits-INDPs" event package does not support any additional
   parameters to the Event header.

3.3.4 SUBSCRIBE bodies

   SUBSCRIBE requests that serve to terminate the subscription MAY
   contain an empty body; however, SUBSCRIBE requests that establish a
   dialog MUST contain a body which encodes three pieces of information:

      (1) The particular event that is being subscribed to.

      (2) Because of the requirement [5] that IN be informed whether the
      detection point is set as the request or notification, all events
      in the "spirits-INDPs" package (but not in the "spirits-user-prof"
      package) are require to provide a "mode" parameter, whose values



draft-ietf-spirits-protocol-03.txt                             [Page 8]


The SPIRITS Protocol                                           June 2002


      are "R" (for report) and "N" for notification.

      (3) A list of the values of the parameters associated with the
      event detection point (Note: the term "event" here refers to the
      IN usage -- a dynamically armed DP is called an Event Detection
      Point)

   The default body type for SUBSCRIBEs in SPIRITS is denoted by the
   MIME type "application/spirits-event".  The "Accept" header, if
   present, MUST include this MIME type.

3.3.5 Subscription duration

   For package "spirits-INDPs", the purpose of the SUBSCRIBE request is
   to arm the DP, since as far as IN is concerned, being armed is the
   first essential pre-requisite.  A DP maybe armed either statically
   (for instance, through service provisioning), or dynamically (by the
   SCF).  A statically armed DP remains armed until it is disarmed
   proactively.  A dynamically armed DP remains armed for the duration
   of a call (or more appropriately, no longer than the duration of a
   particular SSF-SCF relationship).

   Dynamically armed DPs are automatically disarmed when the event of
   interest occurs in the notifier.  It is up to the subscriber to re-
   arm the DPs within the context of a call, if it so desires.

   Statically armed DPs are considered outside the scope of the SPIRITS
   protocol [5] and thus will not be considered any further.

3.3.6 NOTIFY bodies

   Bodies in NOTIFY requests for the "spirits-INDPs" package are
   optional.  If present, they MUST be of the MIME type
   "application/spirits-event".  The body in a NOTIFY request
   encapsulates the following pieces of information which can be used by
   the subscriber:

      (1) The event that resulted in the NOTIFY being generated
      (typically, but not always, this will be the same event present in
      the corresponding SUBSCRIBE request).

      (2) The "mode" parameter; it is simply reflected back from the
      corresponding SUBSCRIBE request.

      (3) A list of values of the parameters associated with the event
      that the NOTIFY is being generated for.  Depending on the actual
      event, the list of the parameters will vary.

3.3.7 Notifier processing of SUBSCRIBE requests

   When the notifier receives a SUBSCRIBE request, it MUST authenticate
   the request and ensure that the subscriber is authorized to access
   the resource being subscribed to, in this case, PSTN/IN events on a
   certain PSTN line.



draft-ietf-spirits-protocol-03.txt                             [Page 9]


The SPIRITS Protocol                                           June 2002


   Once the SUBSCRIBE request has been authenticated and authorized, the
   notifier interfaces with the SCF over interface D to arm the
   detection points corresponding to the PSTN line contained in the
   SUBSCRIBE body.  The particulars about interface D is out of scope
   for this draft; here we will simply assume that the notifier can
   effect the arming (and disarming) of triggers in the PSTN through
   interface D.

3.3.8 Notifier generation of NOTIFY requests

   If the notifier expects the arming of triggers to take more than 200
   ms (NOTE:  is this too small, too large, okay?), it MUST send a 202
   response to the SUBSCRIBE request immediately, accepting the
   subscription.  It should then send a NOTIFY request with an empty
   body.  This NOTIFY request MUST have a "Subscription-State" header
   with a value of "pending".


        This immediate NOTIFY with an empty body is needed since the
        resource identified in the SUBSCRIBE request does not have as
        yet a meaningful state.

   Once the notifier has successfully interfaced with the SCF, it MUST
   send a subsequent NOTIFY request with an empty body and a
   "Subscription-State" header with a value of "active."

   When the event of interest identified in the SUBSCRIBE request
   occurs, the notifier sends out a new NOTIFY request which MUST
   contain a body (see X-Ref 3.3.6).  The NOTIFY request MUST have a
   "Subscription-State" header and its value MUST be set to "terminated"
   with a reason parameter of "fired".

3.3.9 Subscriber processing of NOTIFY requests

   The exact steps executed at the subscriber when it gets a NOTIFY
   request will depend on the nature of the information contained in the
   request.  As a generality, the UA associated with the subscriber
   should somehow impart this information to the user, by visual or
   auditory means, if at all possible.

   If the NOTIFY request contained a "Subscription-State" header with a
   value of "terminated" and a reason parameter of "fired", the UA
   associated with the subscriber MAY initiate a new subscription for
   the event that was just reported through the NOTIFY request.

        Whether or not to initiate a new subscription when an existing
        one expires is upto the context of the service that is being
        implemented.  For instance, a user may configure her UA to
        always re-subscribe to the same event when it fires, but this is
        not necessarily the normative case.

3.3.10 Handling of forked requests

   Forking of SUBSCRIBE requests is prohibited.  Since the SUBSCRIBE



draft-ietf-spirits-protocol-03.txt                            [Page 10]


The SPIRITS Protocol                                           June 2002


   request is targetted towards the PSTN, highly irregular behaviors
   occur if the request is allowed to fork.  The normal SIP DNS lookup
   and routing rules [7b] should result in a target set with exactly one
   element: the notifier.

3.3.11 Rate of notifications

   For reasons of security more than network traffic, it is RECOMMENDED
   that the notifier issue two or, at most three NOTIFY requests for a
   subscription.  If the subscription was accepted with a 202 response,
   a NOTIFY will be sent immediately towards the subscriber.  This
   NOTIFY serves to inform the subscriber that the request has been
   accepted and is being acted on.

   Once the resource (detection points) identified in the SUBSCRIBE
   request have been initialized, the notifier MUST send a second NOTIFY
   request.  This request contains the base state of the resource.

   When an event of interst occurs which leads to the firing of the
   detection points identified in the SUBSCRIBE request, a final NOTIFY
   is sent to the subscriber.  This NOTIFY request contains more
   information about the event of interest.

   If the subscription was accepted with a 200 response, the notifier
   simply sends two NOTIFY requests: one containing the base state of
   the resource, and the other containing information that lead to the
   firing of the detection point.

3.3.12 State agents

   <To fill in>

3.3.13 Examples

   This section contains example call flows for a SPIRITS service called
   Internet Caller-ID Delivery (ICID).  One of the benchmark SPIRITS
   service, as described in section 2.2 of [1] is Internet Caller-ID
   delivery:

      This service allows the subscriber to see the caller's
      number or name or both while being connected to the
      Internet.  If the subscriber has only one telephone line
      and is using the very line for the Internet connection, the
      service is a subset of the ICW service and follows the
      relevant description in Section 2.1.  Otherwise, the
      subscriber's IP host serves as an auxiliary device of the
      telephone to which the call is first sent.

   We present an example of a SPIRITS call flow to realize this service.
   Note that this is an example only, not a normative description of the
   Internet Caller-ID service

   Further text and details of SIP messages below refer to the call flow
   provided in Figure 2.  Figure 2 depicts the 4 entities that are an



draft-ietf-spirits-protocol-03.txt                            [Page 11]


The SPIRITS Protocol                                           June 2002


   integral part of any SPIRITS service (the headings of the entities
   refer to the names established in Figure 1 in [1]) -- the SPIRITS
   server (also termed as a "subscriber" as per section 4.0), the
   SPIRITS gateway (also termed as a "notifier" as per section 4.0), the
   SPIRITS client, and the SCF.

      SPIRITS server      SPIRITS gateway      SPIRITS client      SCF
      ("subscriber")                            ("notifier")
         S                      G                  N
         |                      |                  |                |
         | F1 SUBSCRIBE         |                  |                |
         +--------------------->| F2 SUBSCRIBE     |                |
         |                      +----------------->|                |
         |                      | F3 200 OK (SUBS) |                |
         |     F4 200 OK (SUBS) |<-----------------+ F5 Arm DP      |
         |<---------------------+                  +--------------->|
         |                      |        F6 NOTIFY |                |
         |            F7 NOTIFY |<-----------------+                |
         |<---------------------+                  |                |
         |                      |                  |                |
         |      F8 200 OK (NOT) |                  |                |
         +--------------------->|  F9 200 OK (NOT) |                |
         |                      +----------------->|                |
         |                      |                  |                |
         ~                      ~                  ~                ~
         ~                      ~                  ~                ~
         |                      |                  |  F10 Evt. Not. |
         |                      |       F11 NOTIFY |<---------------+
         |           F12 NOTIFY |<-----------------+                |
         |<---------------------+                  |                |
         |                      |                  |                |
         |     F13 200 OK (NOT) |                  |                |
         +--------------------->| F14 200 OK (NOT) |                |
         |                      +----------------->|                |
         |                      |                  |                |
         |                      |                  |                |
        \|/                    \|/                \|/              \|/
         v                      v                  v                v

                        Figure 2: Sample call flow

   This call flow depicts an overall operation of a "subscriber"
   successfully subscribing to the IN Termination_Attempt DP (the
   "subscriber" is assumed to be a user, possibly at work, who is
   interested in knowing when he/she gets a phone call to his/her home
   phone number) -- this interaction is captured in messages F1 through
   F9 in Figure 2.  The user sends (F1) a SIP SUBSCRIBE request
   identifying the DP it is interested in along with zero or more
   parameters relevant to that DP (in this example, the
   Termination_Attempt_DP will be employed).  The SPIRITS gateway
   authorizes the user (F2) and propagates the request to the SPIRITS
   client (F2).  The SPIRITS client in turns interacts with the SCF to
   arm the Termination_Attempt_DP for the service (F5).  An immediate
   NOTIFY with the current state information is send to the subscriber



draft-ietf-spirits-protocol-03.txt                            [Page 12]


The SPIRITS Protocol                                           June 2002


   (F6 through F9).

   At some later point in time after the above sequence of events has
   transpired, the PSTN gets a call to the users phone.  The SSF informs
   the SCF of this event when it encounters an armed
   Termination_Attempt_DP (not shown in Figure 2).  The SCF informs the
   SPIRITS client of this event (F10).

   When the SPIRITS client receives this event, it forms a SIP NOTIFY
   request and directs it to the SPIRITS gateway (F11).  This NOTIFY
   will contain all the information elements necessary to identify the
   caller to the subscriber.  The subscriber, upon receiving the
   notification (F12) may pop open a window with the date/time and the
   number of the caller.

   The rest of this section contains the details of the SIP messages in
   Figure 2.  The call flow details below assume that the SPIRITS
   gateway is, for the purpose of this example, a SIP proxy that serves
   as the default outbound proxy for the notifier and an ingress host of
   the myprovider.com domain for the subscriber. The subscriber and
   notifier may be in separate administrative domains.

   F1: S->G

   SUBSCRIBE sip:myprovider.com SIP/2.0
   From: <sip:vkg@lucent.com>;tag=8177-afd-991
   To: <sip:16302240216@myprovider.com>
   CSeq: 18992 SUBSCRIBE
   Call-ID: 3329as77@host.lucent.com
   Contact: <sip:vkg@host.lucent.com>
   Via: SIP/2.0/UDP host.lucent.com
   Expires: 3600
   Event: spirits-INDPs
   Allow-Events: spirits-INDPs, spirits-user-prof
   Accept: application/spirits-event
   Content-Type: application/spirits-event
   Content-Length: ...

   <spirits-event>
     <DP INDPs="TAA" Mode="N"/>
     <Termination_Attempt_Authorized>
         <CallingPartySubaddress>6302240216</CallingPartySubaddress>
     </Termination_Attempt_Authorized>
   </spirits-event>

   The subscriber forms a SIP SUBSCRIBE request which identifies the DP
   that it wants to subscribe to (in this case, the TAA DP) and the
   actual line it wants that DP armed for (in this case, the line
   associated with the phone number 6302240216).  This request
   eventually arrives at the SPIRITS gateway, G, which forwards it to
   the SIPRITS client, N:

   F2: G->N




draft-ietf-spirits-protocol-03.txt                            [Page 13]


The SPIRITS Protocol                                           June 2002


   SUBSCRIBE sip:notifier.myprovider.com SIP/2.0
   From: <sip:vkg@lucent.com>;tag=8177-afd-991
   To: <sip:16302240216@myprovider.com>
   CSeq: 18992 SUBSCRIBE
   Call-ID: 3329as77@host.lucent.com
   Contact: <sip:vkg@host.lucent.com>
   Via: SIP/2.0/UDP gateway.myprovider.com
   Via: SIP/2.0/UDP host.lucent.com
   Expires: 3600
   Event: spirits-INDPs
   Accept: application/spirits-event
   Content-Type: application/spirits-event
   Content-Length: ...

   <spirits-event>
     <DP INDPs="TAA" Mode="N"/>
     <Termination_Attempt_Authorized>
         <CallingPartySubaddress>6302240216</CallingPartySubaddress>
     </Termination_Attempt_Authorized>
   </spirits-event>

   A 200 OK is sent by the notifier when it gets the SUBSCRIBE request
   and understands the contents in it.  The notifier also interfaces
   with the SCF to arm the DP (F5, not shown in the SIP messages below):

   F3: N->G

   SIP/2.0 200 OK
   From: <sip:vkg@lucent.com>;tag=8177-afd-991
   To: <sip:16302240216@myprovider.com>;tag=SPIRITS-TAA-6302240216
   CSeq: 18992 SUBSCRIBE
   Call-ID: 3329as77@host.lucent.com
   Contact: <sip:notifier.myprovider.com>
   Via: SIP/2.0/UDP gateway.myprovider.com
   Via: SIP/2.0/UDP host.lucent.com
   Expires: 3600
   Accept: application/spirits-event
   Content-Length: 0

   The 200 OK arrives at the subscriber, thus creating a dialog between
   the subscriber and the notifier:

   F4: G->S

   SIP/2.0 200 OK
   From: <sip:vkg@lucent.com>;tag=8177-afd-991
   To: <sip:16302240216@myprovider.com>;tag=SPIRITS-TAA-6302240216
   CSeq: 18992 SUBSCRIBE
   Call-ID: 3329as77@host.lucent.com
   Contact: <sip:notifier.myprovider.com>
   Via: SIP/2.0/UDP host.lucent.com
   Expires: 3600
   Accept: application/spirits-event
   Content-Length: 0



draft-ietf-spirits-protocol-03.txt                            [Page 14]


The SPIRITS Protocol                                           June 2002


   The notifier also sends an immediate NOTIFY towards the subscriber
   informing the subscriber of the current state of the notification:

   F6: N->G

   NOTIFY sip:vkg@host.lucent.com SIP/2.0
   From: <sip:16302240216@myprovider.com>;tag=SPIRITS-TAA-6302240216
   To: <sip:vkg@lucent.com>;tag=8177-afd-991
   Via: SIP/2.0/UDP notifier.myprovider.com
   Call-ID: 3329as77@host.lucent.com
   Contact: <sip:notifier.myprovider.com>
   CSeq: 3299 NOTIFY
   Event: spirits-INDPs
   Allow-Events: spirits-INDPs, spirits-user-prof
   Subscription-State: active
   Accept: application/spirits-event
   Content-Length: 0

   The SPIRITS gateway routes the SIP request towards the subscriber:

   F7: G->S

   NOTIFY sip:vkg@host.lucent.com SIP/2.0
   From: <sip:16302240216@myprovider.com>;tag=SPIRITS-TAA-6302240216
   To: <sip:vkg@lucent.com>;tag=8177-afd-991
   Via: SIP/2.0/UDP gateway.myprovider.com
   Via: SIP/2.0/UDP notifier.myprovider.com
   Call-ID: 3329as77@host.lucent.com
   Contact: <sip:notifier.myprovider.com>
   Subscription-State: active
   CSeq: 3299 NOTIFY
   Accept: application/spirits-event
   Content-Length: 0

   And finally, the 200 OK to the NOTIFY reaches the notifier:

   F8: S->G

   SIP/2.0 200 OK
   From: <sip:16302240216@myprovider.com>;tag=SPIRITS-TAA-6302240216
   To: <sip:vkg@lucent.com>;tag=8177-afd-991
   Via: SIP/2.0/UDP gateway.myprovider.com
   Via: SIP/2.0/UDP notifier.myprovider.com
   Call-ID: 3329as77@host.lucent.com
   Contact: <sip:vkg@host.lucent.com>
   CSeq: 3299 NOTIFY
   Accept: application/spirits-event
   Content-Length: 0

   F9: G->N

   SIP/2.0 200 OK
   From: <sip:16302240216@myprovider.com>;tag=SPIRITS-TAA-6302240216
   To: <sip:vkg@lucent.com>;tag=8177-afd-991



draft-ietf-spirits-protocol-03.txt                            [Page 15]


The SPIRITS Protocol                                           June 2002


   Via: SIP/2.0/UDP notifier.myprovider.com
   Call-ID: 3329as77@host.lucent.com
   Contact: <sip:vkg@host.lucent.com>
   CSeq: 3299 NOTIFY
   Accept: application/spirits-event
   Content-Length: 0

   At some later point in time (before the subscription established in
   F1 expires at the notifier), a call arrives at the number identified
   in XML-encoded body of F1 -- 6302240216.  The SCF notifies the
   notifier (F10, not shown in the SIP messages below).  Included in
   this notification is the relevant information from the PSTN, namely,
   the phone number of the party attempting to call 6302240216.  The
   notifier uses this information to create a SIP NOTIFY request and
   sends it to the default outbound proxy.  The SIP NOTIFY request has a
   XML-encoded body with the relevant information from the PSTN:

   F11: N->G

   NOTIFY sip:vkg@host.lucent.com SIP/2.0
   From: <sip:16302240216@myprovider.com>;tag=SPIRITS-TAA-6302240216
   To: <sip:vkg@lucent.com>;tag=8177-afd-991
   Via: SIP/2.0/UDP notifier.myprovider.com
   Call-ID: 3329as77@host.lucent.com
   Contact: <sip:notifier.myprovider.com>
   CSeq: 3300 NOTIFY
   Subscription-State: terminated;reason=fired
   Accept: application/spirits-event
   Event: spirits-INDPs
   Allow-Events: spirits-INDPs, spirits-user-prof
   Content-Type: application/spirits-event
   Content-Length: ...

   <spirits-event>
     <DP INDPs="TAA" Mode="N"/>
     <Termination_Attempt_Authorized>
         <CallingPartySubaddress>6302240216</CallingPartySubaddress>
         <CalledPartySubaddress>3125675000</CalledPartySubaddress>
     </Termination_Attempt_Authorized>
   </spirits-event>

   The default outbound proxy delivers the SIP NOTIFY request to the
   subscriber:

   F12: G->S

   NOTIFY sip:vkg@host.lucent.com SIP/2.0
   From: <sip:16302240216@myprovider.com>;tag=SPIRITS-TAA-6302240216
   To: <sip:vkg@lucent.com>;tag=8177-afd-991
   Via: SIP/2.0/UDP gateway.myprovider.com
   Via: SIP/2.0/UDP notifier.myprovider.com
   Call-ID: 3329as77@host.lucent.com
   Contact: <sip:notifier.myprovider.com>
   CSeq: 3300 NOTIFY



draft-ietf-spirits-protocol-03.txt                            [Page 16]


The SPIRITS Protocol                                           June 2002


   Subscription-State: terminated;reason=fired
   Accept: application/spirits-event
   Event: spirits-INDPs
   Allow-Events: spirits-INDPs, spirits-user-prof
   Content-Type: application/spirits-event
   Content-Length: ...

   <spirits-event>
     <DP INDPs="TAA" Mode="N"/>
     <Termination_Attempt_Authorized>
         <CallingPartySubaddress>6302240216</CallingPartySubaddress>
         <CalledPartySubaddress>3125675000</CalledPartySubaddress>
     </Termination_Attempt_Authorized>
   </spirits-event>

   There are a couple of important issues to note in the call flows for
   F11 or F12:

      (1) The body of the NOTIFY request contains the information
          passed to the SPIRITS client from the SCF.  In this particular
          example, this is the phone number of the party (3125675000)
          that attempted to call 6302240216.

      (2) Since the notification occurred, the subscription established
          in F1 terminated (as evident by the Subscription-State
          header).  The subscription terminated normally due to the
          DP associated with TAA firing (hence the reason code of
          "fired" in the Subscription-State header).  If the subscriber
          wants to get notified of another attempt to call the number
          6302240216, he/she should send a new SUBSCRIBE request to the
          notifier.

   The subscriber can take any appropriate action upon the receipt of
   the NOTIFY in F12.  A reasonable implementation may pop up a window
   populated with the information contained in the body of F12, along
   with a button asking the subscriber if they would like to re-
   subscribe to the same event.  Alternatively, a re-subscription could
   be generated automatically by the subscriber's UA based on his/her
   preferences.

   To complete the protocol, the subscriber also sends a 200 OK message
   towards the notifier:

   F13: S->G

   200 OK SIP/2.0
   From: <sip:16302240216@myprovider.com>;tag=SPIRITS-TAA-6302240216
   To: <sip:vkg@lucent.com>;tag=8177-afd-991
   Via: SIP/2.0/UDP gateway.myprovider.com
   Via: SIP/2.0/UDP notifier.myprovider.com
   Call-ID: 3329as77@host.lucent.com
   CSeq: 3300 NOTIFY
   Content-Length: 0




draft-ietf-spirits-protocol-03.txt                            [Page 17]


The SPIRITS Protocol                                           June 2002


   F14: G->N

   200 OK SIP/2.0
   From: <sip:16302240216@myprovider.com>;tag=SPIRITS-TAA-6302240216
   To: <sip:vkg@lucent.com>;tag=8177-afd-991
   Via: SIP/2.0/UDP notifier.myprovider.com
   Call-ID: 3329as77@host.lucent.com
   CSeq: 3300 NOTIFY
   Content-Length: 0

3.3.14 Use of URIs to retrieve state

   The "spirits-INDPs" package MUST not use URIs to retrieve state.  All
   state information for this package is compact enough to fit in a SIP
   message body.

3.4 Services through static DPs

   We mentioned in section {X-Ref 3.2} that the first trigger that fires
   during call processing is typically a TDP since there isn't any pre-
   existing control relationship between the SSF and the SCF.  Some
   Internet hosts may have expressed an interest in executing services
   based on TDPs (through an a-priori arrangement, which is not a part
   of this specificiation).  Thus, the PSTN will notify such hosts.  To
   do so, it will send a SIP request (typically an INVITE) towards the
   Internet host.  The body of the SIP request MUST contain multi-part
   MIME with two MIME components: the first part corresponding to the
   normal payload, if any, of the request; and the second part will
   contain SPIRITS-specific information (e.g. the DP that fired).
   Responses to the INVITE request, or subsequent SUBSCRIBE messages
   from the Internet host to the PSTN within a current call context may
   result in EDPs being armed.

3.4.1 Internet Call Waiting (ICW)

   ICW as a benchmark SPIRITS service actually predates SPIRITS itself.
   Pre- SPIRITS implementations of ICW are detailed in [11].  However,
   as the draft notes, while a diversity of implementations exists,
   these implementations are not interoperable.  At the time [11] was
   published, the industry did not have the depth of experience with SIP
   as is the case now.  The use of SIP in [11] does not constitute
   normative usage of SIP as described in [6]; for instance, no mention
   is made of the SDP (if any) in the initial INVITE (especially since
   this pertains to "accept the call using VoIP" case).  Thus this
   section serves to provide a normative description of ICW in SPIRITS.

   The description of ICW is deceptively simple: it is a service most
   useful for single line phone subscribers that use the line to
   establish an Internet session.  In a nutshell, the service enables a
   subscriber engaged in an Internet dial-up session to

      o  be notified of an incoming call to the very same telephone line
         that is being used for the Internet connection;




draft-ietf-spirits-protocol-03.txt                            [Page 18]


The SPIRITS Protocol                                           June 2002


      o  specify the desirable treatment of the call; and

      o  have the call handled as specified.

3.4.2 Call disposition choices

   Section 2 of [11] details the call disposition outcome of a ICW
   session. They are reproduced here as a numbered list for further
   discussion:

      1. Accepting the call over the PSTN line, thus terminating
      the Internet (modem) connection

      2. Accepting the call over the Internet using Voice over IP
      (VoIP)

      3.  Rejecting the call

      4. Playing a pre-recorded message to the calling party and
      disconnecting the call

      5. Forwarding the call to voice mail

      6. Forwarding the call to another number

      7. Rejecting (or Forwarding) on no Response - If the
      subscriber fails to respond within a certain period time
      after the dialog box has been displayed, the incoming call
      can be either rejected or handled based on the treatment
      pre-defined by the subscriber.

   It should be pointed out for the sake of completeness that ICW as a
   SPIRITS service is not possible without making the SCP aware of the
   fact that the subscriber line is being used for an Internet session.
   That awareness, however, is not a part of the ICW service, but solely
   a pre-requisite.  One of the following three methods MUST be utilized
   to impart this information to the SCP:

      1. ICW subscriber based method: the ICW client on the
      subscriber's PC notifies the SCP of the Internet session by
      issuing a SIP REGISTER request.

      2. IN based method: SCP maintains a list of ISP access
      numbers for a geographical area; when one of these numbers
      is dialed and connected to, it (the SCP) assumes that the
      calling party is engaged in an Internet session.

      3. Any combination of methods 1 and 2.

   ICW depends on a TDP to be provisioned in the SSP.  When the said TDP
   is encountered, the SSP suspends processing of the call and sends a
   request to the SPIRITS-capable SCP.  The SCP determines that the
   subscriber line is being used for an Internet session.  It instructs
   the SPIRITS client on the SCP to create a SIP INVITE request and send



draft-ietf-spirits-protocol-03.txt                            [Page 19]


The SPIRITS Protocol                                           June 2002


   it to the SPIRITS server running on the subscriber's IP host.

   The SPIRITS server MUST return one of the possible call disposition
   outcomes cataloged section 3.1.  Note that outcomes 1 and 4 through 7
   can all be coalesced into one case, namely redirecting (using the SIP
   3xx response code) the call to an alternative SIP URI.  In case of 1,
   the URI of the redirected call MUST match the very same number being
   used by the customer to get online. Rejecting the call implies
   sending a non-2xx and non-3xx final response; the remaining outcomes
   result in the call being redirected to an alternate URI which
   provides the desired service (i.e. play a pre-recorded announcement,
   or record a voice message).

   Further processing of a SPIRITS client when it receives a final non-
   2xx response can be summarized by the following steps:

      1. If the response is a 4xx, 5xx, or 6xx class of response,
      generate and transmit an ACK request and instruct the SSP
      to play a busy tone to the caller.

      2. Else, for all 3xx responses, generate and transmit an
      ACK request, and compare the redirected URI to the
      subscriber's line number:

            2a. If the comparison indicates a match,
            instruct the SSP to hold onto the call for just
            enough time to allow the SPIRITS server to
            disconnect the modem, thus freeing up the line;
            and then continue with normal call processing,
            which will result in the subscriber's phone to
            ring.

            2b. If the comparison fails, instruct the SSP to
            route the call to the redirected URI.

      3. Else, for a 2xx response, follow the steps in section
      3.2.

3.4.3 Accepting an ICW session using VoIP

   One call handling option in ICW is to "accept an incoming call using
   VoIP".  The SPIRITS client has no way of knowing a-priori if the
   subscriber (callee) will be choosing this option; nonetheless, it has
   to account for such a choice by adding a SDP in the body of the
   INVITE request.  A possible way of accomplishing this is to have the
   SPIRITS client control a PSTN gateway and allocate appropriate
   resources on it.  Once this is done, the SPIRITS client adds network
   information (IP address of the gateway and port numbers where media
   will be received) and codec information as the SDP portion of the
   body in the INVITE request.  SPIRITS requires the DP information to
   be carried in the request body as well.  To that extent, the SPIRITS
   client MUST also add the information associated with the TDP that
   triggered the service.  Thus, the body of the INVITE MUST contain
   multi-part MIME, with two components.



draft-ietf-spirits-protocol-03.txt                            [Page 20]


The SPIRITS Protocol                                           June 2002


   The SPIRITS client transmits the INVITE request to the subscriber and
   now waits for a final response.  Further processing when the SPIRITS
   server returns a 200 OK MUST be handled as follows:

      On the receipt of a 200 OK containing the SDP of the
      subscriber's UA, the SPIRITS client will instruct the SSP
      to terminate the call on a pre-allocated port on the
      gateway.  This port MUST be correlated by the gateway to
      the SDP that was sent in the earlier INVITE.

   The end result is that the caller and callee hold a voice session
   with part of the session occurring over VoIP.

4. Non-call related events

   <To fill in>

4.1 Background

   <To fill in>

4.2 Normative usage

   <To fill in>

4.3 Event package name

   <To fill in>

4.4 Event package parameters

   <To fill in>

4.5 SUBSCRIBE bodies

   <To fill in>

4.6 Subscription duration

   <To fill in>

4.7 NOTIFY bodies

   <To fill in>

4.8 Notifier processing of SUBSCRIBE requests

   <To fill in>

4.9 Notifier generation of NOTIFY requests

   <To fill in>

4.10 Subscriber processing of NOTIFY requests



draft-ietf-spirits-protocol-03.txt                            [Page 21]


The SPIRITS Protocol                                           June 2002


   <To fill in>

4.11 Handling of forked requests

   <To fill in>

4.12 Rate of notifications

   <To fill in>

4.13 State agents

   <To fill in>

4.14 Examples

   <To fill in>

4.15 Use of URIs to retrieve state

   <To fill in>

5. IANA considerations

5.1 Registering event packages

   Package Name: spirits-INDPs

   Type: package

   Contact: Vijay K. Gurbani, vkg@lucent.com

   Reference: RFC XXXX [Note to RFC Editor: please replace with RFC
   number for this draft].

   Package Name: spirits-user-prof

   Type: package

   Contact: Vijay K. Gurbani, vkg@lucent.com

   Reference: RFC XXXX [Note to RFC Editor: please replace with RFC
   number for this draft].

   Package Name: spirits-user-prof

   Type: package

   Contact: Vijay K. Gurbani, vkg@lucent.com

   Reference: RFC XXXX [Note to RFC Editor: please replace with RFC
   number for this draft].

5.2 Registering MIME type



draft-ietf-spirits-protocol-03.txt                            [Page 22]


The SPIRITS Protocol                                           June 2002


   MIME media type name: application

   MIME subtype name: spirits-event

   Mandatory parameters: none

   Optional parameters: charset (same semantics of charset parameter in
   application/xml [10])

   Encoding considerations: same as considerations outlined for
   application/xml in [10].

   Security considerations: section 10 of [10] and section 7 of this
   document.

   Interoperability considerations: none.

   Published specifications: this document.

   Applications which use this media type: SPIRITS aware entities which
   adhere to this document.

   Additional information:

      Magic number(s): none.

      File extension(s): none.

      Macintosh file type code(s): none.

      Object Identifier(s) or OID(s): none.

   Person and email address for further information: Vijay K. Gurbani,
   <vkg@lucent.com>

   Intended usage: Common

   Author/Change controller: The IETF

6. Security considerations

   Security concerns are listed here as a starting point; this list is
   by no means exhaustive and will be updated as this I-D progresses.

   As outlined in Chapter 10 of [5], the following security aspects are
   applicable to the SPIRITS protocol:


      Authentication

      Integrity

      Confidentiality




draft-ietf-spirits-protocol-03.txt                            [Page 23]


The SPIRITS Protocol                                           June 2002


      Availability

      Non-repudiation


   For the most part, the SPIRITS protocol will leverage the security
   infrastructure defined in SIP [6] as well as XML security [12].  In
   addition, there are other issues of concern to SPIRITS, most of which
   have to do with the trust relationship between SPIRITS entities.  For
   example, in Figure 1, interface C straddles the boundary between the
   two networks -- PSTN and the Internet.  Thus it crosses both the
   administrative as well as the network domains.  As such, issues like
   authentication, message integrity, and confidentiality take on a
   deeper meaning.

   These issues are being discussed in a separate I-D [7a] and the
   results of that discussion will be merged into this specification
   upon their conclusion.

ACKNOWLEDGMENTS

   The authors are grateful to participants in the SPIRITS WG for the
   discussion that has contributed to this work.  These include J-L.
   Bakker, J. Bjorkner, J. Buller, J-E. Chapron, B.Chatras, O. Cleuziou,
   L. Conroy, R.  Forbes, F. Haerens, J. Humphrey, J.  Kozik, W.
   Montgomery, S. Nyckelgard, M.  O'Doherty, A. Roach, J. Rosenberg, H.
   Sinnreich, L. Slutsman, D. Varney, and W. Zeuch.

CHANGES

   Changes in -03

   (1) Re-organized much of the I-D to better reflect the nature of
   SPIRITS services; specifically, divided the services in two classes:
   call-related events and non-call related events.

   Changes in -02

   (1) Added section on the ICW service and its realization in SPIRITS

   (2) Added 'Mode' parameter to SUBSCRIBE/NOTIFY call flow examples

   (3) Took out Appendix A and B; the information contained in them
       is now in a new I-D.

   (4) Filled out IANA consideration section.

   Changes in -01

   (1) Changed the name of the I-D to draft-ietf-spirits-protocol-01.txt
       to reflect the WG decision of making it an agenda item

   Changes since draft-gurbani-spirits-protocol-00




draft-ietf-spirits-protocol-03.txt                            [Page 24]


The SPIRITS Protocol                                           June 2002


   (1) Updated section 8.0 (Acknowledgments)

   (2) Fleshed out the call flow in section 4.0 (Example SPIRITS
       service call flow)

AUTHORS' ADDRESSES

   Alec Brusilovsky                           Igor Faynberg
   Lucent Technologies, Inc.                  Lucent Technologies, Inc.
   2000 Naperville Rd.,                       101 Crawfords Corner Rd.,
   Naperville, IL 60566                       Holmdel, NJ 07733
   USA                                        USA
   abrusilovsky@lucent.com                    faynberg@lucent.com

   Jorge Gato                                 Vijay K. Gurbani
   Airtel Movil, S.A.                         2000 Lucent Lane
   Avda de Europa, 1                          Rm 6G-440
   28108 Alcobendas (Madrid)                  Naperville, IL 60566
   Spain                                      USA
   jgato@airtel.es                            vkg@lucent.com

   Musa Unmehopa                              Kumar Vemuri
   Lucent Technologies, Inc.                  Lucent Technologies, Inc.
   Larenseweg 50,                             2000 Naperville Rd.,
   Postbus 1168                               Naperville, IL 60566
   1200 BD, Hilversum,                        USA
   The Netherlands                            vvkumar@lucent.com
   unmehopa@lucent.com

ACRONYMS

      CM                   Call Model
      CS                   Capability Set
      DP                   Detection Point
      DTD                  Document Type Definition
      EDP                  Event Detection Point
      EDP-N                Event Detection Point "Notification"
      EDP-R                Event Detection Point "Request"
      IANA                 Internet Assigned Numbers Authority
      ICW                  Internet Call Waiting
      IN                   Intelligent Network
      INAP                 Intelligent Network Application Protocol
      IP                   Internet Protocol
      ITU                  International Telecommunications Union
      MIME                 Multipurpose Internet Mail Extensions
      OBCSM                Originating Basic Call State Model
      PIC                  Point In Call
      PINT                 PSTN/Internet Interworking
      PSTN                 Public Switched Telephone Network
      SCF                  Service Control Function
      SCP                  Service Control Point
      SDP                  Session Description Protocol
      SIP                  Session Initiation Protocol
      SIP-T                SIP for Telephones



draft-ietf-spirits-protocol-03.txt                            [Page 25]


The SPIRITS Protocol                                           June 2002


      SPIRITS              Services in the PSTN/IN Requesting InTernet Services
      SSF                  Service Switching Function
      SSP                  Service Switching Point
      STD                  State Transition Diagram
      TBCSM                Terminating Basic Call State Model
      TDP                  Trigger Detection Point
      TDP-N                Trigger Detection Point "Notification"
      TDP-R                Trigger Detection Point "Request"
      XML                  Extensible Markup Language

Normative references

   [1] L. Slutsman (Ed.), I. Faynberg, H. Lu, M. Weissman, "The SPIRITS
   Architecture", IETF RFC 3136, June 2001,
   <http://www.ietf.org/rfc/rfc3136.txt>

   [2] <Void>

   [3] Faynberg, I., L. Gabuzda, M. Kaplan, and N.Shah, "The Intelligent
   Network Standards: Their Application to Services", McGraw-Hill, 1997.

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

   [5]  I.Faynberg, J. Gato, H. Lu, and L. Slutsman, "SPIRITS Protocol
   Requirements", IETF RFC 3298, August 2002,
   <http://www.ietf.org/rfc/rfc3298.txt>

   [6] J. Rosenberg, H. Schulzrinne, G. Camarillo, J. Peterson, R.
   Sparks, A. Johnston, M. Handley, and E. Schooler, "SIP: Session
   Initiation Protocol" IETF RFC 3261, June 2002,
   <http://www.ietf.org/rfc/rfc3261.txt>

   [7] M. Unmehopa, K. Vemuri, A. Brusilovsky, E. Dacloush, A. Zaki, F.
   Haerens, J-L. Bakker, B. Chatras, and J. Dobrowolski, "On selection
   of IN parameters to be carried by the SPIRITS Protocol", IETF I-D,
   Expires January 2003, Work In Progress.

   [7a] Vijay K. Gurbani, "Security for SPIRITS services", IETF
   Internet-Draft, Work in Progress.

   [7b] J. Rosenberg, H. Schulzrinne, "Session Initiation Protocol
   (SIP):  Locating SIP Servers", IETF RFC 3263, June 2002,
   <http://www.ietf.org/rfc/ rfc3263.txt>

Informative references

   [8] Intelligent Network Capability Set 2. ITU-T, Recommendation
   Q.1228

   [9] S. Petrack, L. Conroy, "The PINT Service Protocol: Extensions to
   SIP and SDP for IP Access to Telephone Call Services", IETF RFC 2848,
   June 2000, <ftp://ftp.isi.edu/in-notes/rfc2848.txt>




draft-ietf-spirits-protocol-03.txt                            [Page 26]


The SPIRITS Protocol                                           June 2002


   [10] M. Murata, S. St. Laurent, D. Kohn, "XML Media Types", IETF RFC
   3023, January 2001, <ftp://ftp.isi.edu/in-notes/rfc3023.txt>

   [11] H. Lu (Ed.), I. Faynberg, J. Voelker, M. Weissman, W. Zhang, S.
   Rhim, J. Hwang, S. Ago, S. Moeenuddin, S. Hadvani, S. Nyckelgard, J.
   Yoakum, and L. Robart, "Pre-SPIRITS Implementations of PSTN-initiated
   Services", IETF RFC 2995, November 2000,
   <http://www.ietf.org/rfc/rfc2995.txt>

   [12] Donald Eastlake, Joseph Reagle, David Solo at al., "XML-
   Signature Syntax and Processing", W3C Recommendation 12 February
   2002, <http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/>

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
   HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF
   MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.


















draft-ietf-spirits-protocol-03.txt                            [Page 27]