summaryrefslogtreecommitdiff
path: root/doc/rfc/rfc3910.txt
diff options
context:
space:
mode:
Diffstat (limited to 'doc/rfc/rfc3910.txt')
-rw-r--r--doc/rfc/rfc3910.txt2803
1 files changed, 2803 insertions, 0 deletions
diff --git a/doc/rfc/rfc3910.txt b/doc/rfc/rfc3910.txt
new file mode 100644
index 0000000..404f387
--- /dev/null
+++ b/doc/rfc/rfc3910.txt
@@ -0,0 +1,2803 @@
+
+
+
+
+
+
+Network Working Group V. Gurbani, Ed.
+Request for Comments: 3910 A. Brusilovsky
+Category: Standards Track I. Faynberg
+ Lucent Technologies, Inc.
+ J. Gato
+ Vodafone Espana
+ H. Lu
+ Bell Labs/Lucent Technologies
+ M. Unmehopa
+ Lucent Technologies, Inc.
+ October 2004
+
+
+ The SPIRITS (Services in PSTN requesting Internet Services) Protocol
+
+Status of this Memo
+
+ This document specifies an Internet standards track protocol for the
+ Internet community, and requests discussion and suggestions for
+ improvements. Please refer to the current edition of the "Internet
+ Official Protocol Standards" (STD 1) for the standardization state
+ and status of this protocol. Distribution of this memo is unlimited.
+
+Copyright Notice
+
+ Copyright (C) The Internet Society (2004).
+
+Abstract
+
+ This document describes the Services in PSTN (Public Switched
+ Telephone Network) requesting Internet Services (SPIRITS) protocol.
+ The purpose of the SPIRITS protocol is to support services that
+ originate in the cellular or wireline PSTN and necessitate
+ interactions between the PSTN and the Internet. On the PSTN side,
+ the SPIRITS services are most often initiated from the Intelligent
+ Network (IN) entities. Internet Call Waiting and Internet Caller-ID
+ Delivery are examples of SPIRITS services, as are location-based
+ services on the cellular network. The protocol defines the building
+ blocks from which many other services can be built.
+
+Table of Contents
+
+ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 3
+ 1.1. Conventions used in this document. . . . . . . . . . . 3
+ 2. Overview of operations. . . . . . . . . . . . . . . . . . . . 3
+ 2.1. Terminology. . . . . . . . . . . . . . . . . . . . . . 6
+ 3. Using XML for subscription and notification . . . . . . . . . 7
+ 4. XML format definition . . . . . . . . . . . . . . . . . . . . 8
+
+
+
+Gurbani, et al. Standards Track [Page 1]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ 5. Call-related events . . . . . . . . . . . . . . . . . . . . . 10
+ 5.1. IN-specific requirements . . . . . . . . . . . . . . . 11
+ 5.2. Detection points and required parameters . . . . . . . 12
+ 5.2.1. Originating-side DPs. . . . . . . . . . . . . 12
+ 5.2.2. Terminating-side DPs. . . . . . . . . . . . . 14
+ 5.3. Services through dynamic DPs . . . . . . . . . . . . . 15
+ 5.3.1. Normative usage . . . . . . . . . . . . . . . 15
+ 5.3.2. Event package name. . . . . . . . . . . . . . 16
+ 5.3.3. Event package parameters. . . . . . . . . . . 16
+ 5.3.4. SUBSCRIBE bodies. . . . . . . . . . . . . . . 16
+ 5.3.5. Subscription duration . . . . . . . . . . . . 17
+ 5.3.6. NOTIFY bodies . . . . . . . . . . . . . . . . 17
+ 5.3.7. Notifier processing of SUBSCRIBE requests . . 18
+ 5.3.8. Notifier generation of NOTIFY requests. . . . 18
+ 5.3.9. Subscriber processing of NOTIFY requests. . . 19
+ 5.3.10. Handling of forked requests . . . . . . . . . 19
+ 5.3.11. Rate of notifications . . . . . . . . . . . . 19
+ 5.3.12. State Agents. . . . . . . . . . . . . . . . . 20
+ 5.3.13. Examples. . . . . . . . . . . . . . . . . . . 20
+ 5.3.14. Use of URIs to retrieve state . . . . . . . . 25
+ 5.4. Services through static DPs. . . . . . . . . . . . . . 25
+ 5.4.1. Internet Call Waiting . . . . . . . . . . . . 26
+ 5.4.2. Call disposition choices. . . . . . . . . . . 26
+ 5.4.3. Accepting an ICW session using VoIP . . . . . 28
+ 6. Non-call related events . . . . . . . . . . . . . . . . . . . 29
+ 6.1. Non-call events and their required parameters. . . . . 29
+ 6.2. Normative usage. . . . . . . . . . . . . . . . . . . . 30
+ 6.3. Event package name . . . . . . . . . . . . . . . . . . 30
+ 6.4. Event package parameters . . . . . . . . . . . . . . . 31
+ 6.5. SUBSCRIBE bodies . . . . . . . . . . . . . . . . . . . 31
+ 6.6. Subscription duration. . . . . . . . . . . . . . . . . 31
+ 6.7. NOTIFY bodies. . . . . . . . . . . . . . . . . . . . . 32
+ 6.8. Notifier processing of SUBSCRIBE requests. . . . . . . 32
+ 6.9. Notifier generation of NOTIFY requests . . . . . . . . 32
+ 6.10. Subscriber processing of NOTIFY requests . . . . . . . 33
+ 6.11. Handling of forked requests. . . . . . . . . . . . . . 33
+ 6.12. Rate of notifications. . . . . . . . . . . . . . . . . 33
+ 6.13. State Agents . . . . . . . . . . . . . . . . . . . . . 33
+ 6.14. Examples . . . . . . . . . . . . . . . . . . . . . . . 33
+ 6.15. Use of URIs to retrieve state. . . . . . . . . . . . . 37
+ 7. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 38
+ 7.1. Registering event packages . . . . . . . . . . . . . . 38
+ 7.2. Registering MIME type. . . . . . . . . . . . . . . . . 38
+ 7.3. Registering URN. . . . . . . . . . . . . . . . . . . . 39
+ 7.4. Registering XML schema . . . . . . . . . . . . . . . . 40
+ 8. Security Considerations . . . . . . . . . . . . . . . . . . . 40
+ 9. XML schema definition . . . . . . . . . . . . . . . . . . . . 42
+ 10. Acknowledgements. . . . . . . . . . . . . . . . . . . . . . . 45
+
+
+
+Gurbani, et al. Standards Track [Page 2]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ 11. Acronyms. . . . . . . . . . . . . . . . . . . . . . . . . . . 45
+ 12. References. . . . . . . . . . . . . . . . . . . . . . . . . . 46
+ 13. Contributors. . . . . . . . . . . . . . . . . . . . . . . . . 48
+ 14. Authors' Addresses. . . . . . . . . . . . . . . . . . . . . . 48
+ 15. Full Copyright Statement. . . . . . . . . . . . . . . . . . . 50
+
+1. Introduction
+
+ SPIRITS (Services in the PSTN Requesting Internet Services) is an
+ IETF architecture and an associated protocol that enables call
+ processing elements in the telephone network to make service requests
+ that are then processed on Internet hosted servers. The term Public
+ Switched Telephone Network (PSTN) is used here to include the
+ 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 document has been written in response to the SPIRITS WG chairs
+ call for SPIRITS Protocol proposals. Among other contributions, this
+ document is based on:
+
+ o Informational "Pre-SPIRITS implementations" [10]
+ o Informational "The SPIRITS Architecture" [1]
+ o Informational "SPIRITS Protocol Requirements" [4]
+
+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 BCP 14, RFC 2119 [2].
+
+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 is interested 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 appropriate services based on these
+ notifications.
+
+
+
+
+Gurbani, et al. Standards Track [Page 3]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ +------+
+ | PSTN |
+ |Events|
+ +------+
+ / \
+ / \
+ +-------+ +--------+
+ |Call | |Non-Call|
+ |Related| |Related |
+ +-------+ +--+-----+
+ / \ |
+ / \ |
+ +---/--+ +---\---+ +--+-----------------+
+ |Static| |Dynamic| |Mobility Management/|
+ | | | | |Registration/De- |
+ +------+ +-------+ |registration |
+ +--------------------+
+
+ Figure 1: The SPIRITS Hierarchy.
+
+ Figure 1 contains the SPIRITS events hierarchy, including their
+ subdivision in two discrete classes for service execution: events
+ related to the setup, teardown and maintenance 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 of these types of events.
+
+ Call-related events, its further subdivisions, and how they enable
+ services in the Internet is contained in Section 5. Services enabled
+ from events not related to call setup, teardown, or maintenance are
+ covered in detail in Section 6.
+
+ For reference, the SPIRITS architecture from [1] is reproduced below.
+ This document is focused on interfaces B and C only. 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.
+
+
+
+
+
+
+
+
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 4]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ +--------------+
+ | Subscriber's |
+ | IP Host | +--------------+
+ | | | |
+ | +----------+ | | +----------+ |
+ | | PINT | | A | | PINT | |
+ | | Client +<-------/-------->+ Gateway +<-----+
+ | +----------+ | | +----------+ | |
+ | | | | |
+ | +----------+ | | +----------+ | |
+ | | SPIRITS | | B | | SPIRITS | | |
+ | | Server +<-------/-------->+ Gateway | | |
+ | +----------+ | | +--------+-+ | |
+ | | | ^ | |
+ +--------------+ +----------|---+ |
+ | |
+ IP Network | |
+ ------------------------------------------|--------|---
+ PSTN / C / E
+ | |
+ v |
+ +----+------+ |
+ | SPIRITS | |
+ | Client | v
+ +-------------------+ +---+-----D-----+-++
+ | Service Switching |INAP/SS7 | Service Control |
+ | Function +---------+ Function |
+ +----+--------------+ +------------------+
+ |
+ |line
+ +-+
+ [0] Subscriber's telephone
+
+ Figure 2: The SPIRITS Architecture.
+
+ (Note: The interfaces A-E are described in detail in the SPIRITS
+ Architecture document [1].)
+
+ 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). Other features are
+ executed on service elements called Service Control Points (SCPs).
+ The SPIRITS architecture [1] permits these SCP elements to act as
+ intelligent entities to leverage and use Internet hosts and
+ capabilities to further enhance the telephone end-user's experience.
+
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 5]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ The protocol used on interfaces B and C consists of the SPIRITS
+ protocol, and is based on SIP and SIP event notification [3]. The
+ requirements of a SPIRITS protocol and the choice of using SIP as an
+ enabler are detailed in [4].
+
+ The SPIRITS protocol is a set of two "event packages" [3]. It
+ contains the procedural rules and semantic context that must be
+ applied to these rules for processing SIP transactions. The SPIRITS
+ protocol has to carry subscriptions for events from the SPIRITS
+ server to the SPIRITS client and notifications of these events from
+ the SPIRITS client to the SPIRITS server. Extensible Markup Language
+ (XML) [12] is used to codify the subscriptions and notifications.
+
+ Finally, in the context of ensuing discussion, the terms "SPIRITS
+ server" and "SPIRITS client" are somewhat confusing since the roles
+ appear reversed; to wit, the "SPIRITS server" issues a subscription
+ which is accepted by a "SPIRITS client". To mitigate such ambiguity,
+ from now on, we will refer to the "SPIRITS server" as a "SPIRITS
+ subscriber" and to the "SPIRITS client" as a "SPIRITS notifier".
+ This convention adheres to the nomenclature outlined in [3]; the
+ SPIRITS server in Figure 2 is a subscriber (issues subscriptions to
+ events), and the SPIRITS client in Figure 2 is a notifier (issues
+ notifications whenever the event of interest occurs).
+
+2.1. Terminology
+
+ For ease of reference, we provide a terminology of the SPIRITS actors
+ discussed in the preceding above:
+
+ Service Control Function (SCF): A PSTN entity that executes service
+ logic. It provides capabilities to influence the call processing
+ occurring in the Service Switching Function (SSF). For more
+ information on how a SCF participates in the SPIRITS architecture,
+ please see Sections 5 and 5.1.
+
+ SPIRITS client: see SPIRITS notifier.
+
+ SPIRITS server: see SPIRITS subscriber.
+
+ SPIRITS notifier: A User Agent (UA) in the PSTN that accepts
+ subscriptions from SPIRITS subscribers. These subscriptions contain
+ events that the SPIRITS subscribers are interested in receiving a
+ notification for. The SPIRITS notifier interfaces with the Service
+ Control Function such that when the said event occurs, a notification
+ will be sent to the relevant SPIRITS subscriber.
+
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 6]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ SPIRITS subscriber: A UA in the Internet that issues a subscription
+ containing events in the PSTN that it is interested in receiving a
+ notification for.
+
+3. Using XML for subscription and notification
+
+ The SPIRITS protocol requirements mandate that "SPIRITS-related
+ parameters be carried in a manner consistent with SIP practices"
+ (RFC3298:Section 3). SIP already provides payload description
+ capabilities through the use of headers (Content-Type, Content-
+ Length). This document defines a new MIME type --
+ "application/spirits-event+xml" -- and registers it with IANA
+ (Section 7). This MIME type MUST be present in the "Content-Type"
+ header of SPIRITS requests and responses, and it describes an XML
+ document that contains SPIRITS-related information.
+
+ This document defines a base XML schema for subscriptions to PSTN
+ events. The list of events that can be subscribed to is defined in
+ the SPIRITS protocol requirements document [4] and this document
+ provides an XML schema for it. All SPIRITS subscribers (any SPIRITS
+ entity capable of issuing a SUBSCRIBE, REGISTER, or INVITE request)
+ MUST support this schema. All SPIRITS notifiers (any SPIRITS entity
+ capable of receiving and processing a SUBSCRIBE, REGISTER, or INVITE
+ request) MUST support this schema. The schema is defined in Section
+ 9.
+
+ The support for the SIP REGISTER request is included for PINT
+ compatibility (RFC3298:Section 6).
+
+ The support for the SIP INVITE request is mandated because pre-
+ existing SPIRITS implementations did not use the SIP event
+ notification scheme. Instead, the initial PSTN detection point
+ always arrived via the SIP INVITE request.
+
+ This document also defines a base XML schema for notifications of
+ events (Section 9). All SPIRITS notifiers MUST generate XML
+ documents that correspond to the base notification schema. All
+ SPIRITS subscribers MUST support XML documents that correspond to
+ this schema.
+
+ The set of events that can be subscribed to and the amount of
+ notification that is returned by the PSTN entity may vary among
+ different PSTN operators. Some PSTN operators may have a rich set of
+ events that can be subscribed to, while others have only the
+ primitive set of events outlined in the SPIRITS protocol requirements
+ document [4]. This document defines a base XML schema (in Section 9)
+ which MUST be used for the subscription and notification of the
+ primitive set of events. In order to support a richer set of event
+
+
+
+Gurbani, et al. Standards Track [Page 7]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ subscription and notification, implementations MAY use additional XML
+ namespaces corresponding to alternate schemas in a SPIRITS XML
+ document. However, all implementations MUST support the base XML
+ schema defined in Section 9 of this document. Use of the base schema
+ ensures interoperability across implementations, and the inclusion of
+ additional XML namespaces allows for customization.
+
+ A logical flow of the SPIRITS protocol is depicted below (note: this
+ example shows a temporal flow; XML documents and related SPIRITS
+ protocol syntax is specified in later sections of this document). In
+ the flow below, S is the SPIRITS subscriber and N is the SPIRITS
+ notifier. The SPIRIT Gateway is presumed to have a pure proxying
+ functionality and thus is omitted for simplicity:
+
+
+ 1 S->N Subscribe (events of interest in an XML document instance
+ using base subscription schema)
+ 2 N->S 200 OK (Subscribe)
+ 3 N->S Notify
+ 4 S->N 200 OK (Notify communicating current resource state)
+ 5 ...
+ 6 N->S Notify (Notify communicating change in resource state;
+ payload is an XML document instance using
+ XML extensions to the base notification schema)
+ 7 S->N 200 OK (Notify)
+
+ In line 1, the SPIRITS subscriber subscribes to certain events using
+ an XML document based on the base schema defined in this document.
+ In line 6, the SPIRITS notifier notifies the SPIRITS subscriber of
+ the occurrence of the event using extensions to the base notification
+ schema. Note that this document defines a base schema for event
+ notification as well; the SPIRITS notifier could have availed itself
+ of these. Instead, it chooses to pass to the SPIRITS subscriber an
+ XML document composed of extensions to the base notification schema.
+ The SPIRITS subscriber, if it understands the extensions, can
+ interpret the XML document accordingly. However, in the event that
+ the SPIRITS subscriber is not programmed to understand the
+ extensions, it MUST search the XML document for the mandatory
+ elements. These elements MUST be present in all notification schemas
+ and are detailed in Section 9.
+
+4. XML format definition
+
+ This section defines the XML-encoded SPIRITS payload format. Such a
+ payload is a well formed XML document and is produced by SPIRITS
+ notifiers and SPIRITS subscribers.
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 8]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ The namespace URI for elements defined in this document is a Uniform
+ Resource Name (URN) [14], using the namespace identifier 'ietf'
+ defined in [15] and extended by [16]:
+
+ urn:ietf:params:xml:ns:spirits-1.0
+
+ SPIRITS XML documents may have a default namespace, or they may be
+ associated with a namespace prefix following the convention
+ established in XML namespaces [17]. Regardless, the elements and
+ attributes of SPIRITS XML documents MUST conform to the SPIRITS XML
+ schema specified in Section 9.
+
+ The <spirits-event> element
+ The root of a SPIRITS XML document (characterized by a Content-
+ Type header of "application/spirits-event+xml">) is the <spirits-
+ event> element. This element MUST contain a namespace declaration
+ ('xmlns') to indicate the namespace on which the XML document is
+ based. XML documents compliant to the SPIRITS protocol MUST
+ contain the URN "urn:ietf:params:xml:ns:spirits-1.0" in the
+ namespace declaration. Other namespaces may be specified as
+ needed.
+
+ <spirits-event> element MUST contain at least one <Event> element,
+ and MAY contain more than one.
+
+ The <Event> element
+ The <Event> element contains three attributes, two of which are
+ mandatory. The first mandatory attribute is a 'type' attribute
+ whose value is either "INDPs" or "userprof".
+
+ These types correspond, respectively, to call-related events
+ described in Section 5 and non-call related events described in
+ Section 6.
+
+ The second mandatory attribute is a 'name' attribute. Values for
+ this attribute MUST be limited to the SPIRITS mnemonics defined in
+ Section 5.2.1, Section 5.2.2, and Section 6.1.
+
+ The third attribute, which is optional, is a 'mode' attribute.
+ The value of 'mode' is either "N" or "R", corresponding
+ respectively to (N)otification or (R)equest (RFC3298:Section 4).
+ The default value of this attribute is "N".
+
+ If the 'type' attribute of the <Event> element is "INDPs", then it
+ MUST contain at least one or more of the following elements
+ (unknown elements MAY be ignored): <CallingPartyNumber>,
+ <CalledPartyNumber>, <DialledDigits>, or <Cause>. These elements
+
+
+
+
+Gurbani, et al. Standards Track [Page 9]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ are defined in Section 5.2; they MUST not contain any attributes
+ and MUST not be used further as parent elements. These elements
+ contain a string value as described in Section 5.2.1 and 5.2.2.
+
+ If the 'type' attribute of the <Event> element is "userprof", then
+ it MUST contain a <CalledPartyNumber> element and it MAY contain a
+ <Cell-ID> element. None of these elements contain any attributes
+ and neither must be used further as a parent element. These
+ elements contain a string value as described in Section 6.1. All
+ other elements MAY be ignored if not understood.
+
+ A SPIRITS-compliant XML document using the XML namespace defined in
+ this document might look like the following example:
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <spirits-event xmlns="urn:ietf:params:xml:ns:spirits-1.0">
+ <Event type="INDPs" name="OD" mode="N">
+ <CallingPartyNumber>5551212</CallingPartyNumber>
+ </Event>
+ <Event type="INDPs" name="OAB" mode="N">
+ <CallingPartyNumber>5551212</CallingPartyNumber>
+ </Event>
+ </spirits-event>
+
+5. Call-related events
+
+ For readers who may not be familiar with the service execution
+ aspects of PSTN/IN, we provide a brief tutorial next. Interested
+ readers are urged to consult [19] for a detailed treatment of this
+ subject.
+
+ Services in the PSTN/IN are executed based on a call model. A call
+ model 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.
+
+
+
+
+Gurbani, et al. Standards Track [Page 10]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ 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.
+
+ 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 [7] call model
+ are used in this document as examples, and for ease of explanation,
+ other call models possess similar properties. For example, the
+ Wireless Intelligent Network (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.
+
+5.1. IN-specific requirements
+
+ Section 4 of [4] outlines the IN-related requirements on the SPIRITS
+ protocol. The SUBSCRIBE request arriving at the SPIRITS notifier
+ MUST contain the events to be monitored (in the form of a DP list),
+ the mode (request or a notification, the difference being that for a
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 11]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ request, the SPIRITS subscriber can influence subsequent call
+ processing and for a notification, no further influence is needed),
+ and any DP-related parameters.
+
+ Section 4 of [4] also enumerates a list of Capability Set 3 (CS-3)
+ DPs for SPIRITS services. It is a requirement (RFC3298:Section 4)
+ that the SPIRITS protocol specify the relevant parameters of the DPs.
+ These DPs and their relevant parameters to be carried in a SUBSCRIBE
+ request are codified in an XML schema. All SPIRITS subscribers MUST
+ understand this schema for subscribing to the DPs in the PSTN. The
+ schema is defined in Section 9.
+
+ When a DP fires, a notification -- using a SIP NOTIFY request -- is
+ transmitted from the SPIRITS notifier to the SPIRITS subscriber. The
+ NOTIFY request contains an XML document which describes the DP that
+ fired and any relevant parameters. The DPs and their relevant
+ parameters to be carried in a NOTIFY request are codified in an XML
+ schema. All SPIRITS notifiers MUST understand this schema; this
+ schema MAY be extended. The schema is defined in Section 9.
+
+ In addition, Appendices A and B of [6] contain a select subset of
+ CS-2 DPs that may be of interest to the reader. However, this
+ document will only refer to CS-3 DPs outlined in [4].
+
+5.2. Detection points and required parameters
+
+ The IN CS-3 DPs envisioned for SPIRITS services (RFC3298:Section 4)
+ are described next. IN DPs are characterized by many parameters,
+ however, not all such parameters are required -- or even needed -- by
+ SPIRITS. This section, thus, serves to list the mandatory parameters
+ for each DP that MUST be specified in subscriptions and
+ notifications. Implementations can specify additional parameters as
+ XML extensions associated with a private (or public and standardized)
+ namespace.
+
+ The exhaustive list of IN CS-3 DPs and their parameters can be found
+ in reference [13].
+
+ Each DP is given a SPIRITS-specific mnemonic for use in the
+ subscriptions and notifications.
+
+5.2.1. Originating-side DPs
+
+ Origination Attempt Authorized
+ SPIRITS mnemonic: OAA
+ Mandatory parameter in SUBSCRIBE: CallingPartyNumber
+ Mandatory parameters in NOTIFY: CallingPartyNumber, CalledPartyNumber
+
+
+
+
+Gurbani, et al. Standards Track [Page 12]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ CallingPartyNumber: A string used to identify the calling party for
+ the call. The actual length and encoding of this parameter depend on
+ the particulars of the dialing plan used.
+
+ CalledPartyNumber: A string containing the number (e.g., called
+ directory number) used to identify the called party. The actual
+ length and encoding of this parameter depend on the particulars of
+ the dialing plan used.
+
+ Collected Information
+ SPIRITS mnemonic: OCI
+ Mandatory parameter in SUBSCRIBE: CallingPartyNumber
+ Mandatory parameters in NOTIFY: CallingPartyNumber, DialledDigits
+
+ DialledDigits: This parameter contains non-translated address
+ information collected/received from the originating user/line/trunk
+
+ Analyzed Information
+ SPIRITS mnemonic: OAI
+ Mandatory parameter in SUBSCRIBE: CallingPartyNumber
+ Mandatory parameters in NOTIFY: CallingPartyNumber, DialledDigits
+
+ Origination Answer
+ SPIRITS mnemonic: OA
+ Mandatory parameter in SUBSCRIBE: CallingPartyNumber
+ Mandatory parameters in NOTIFY: CallingPartyNumber, CalledPartyNumber
+
+ Origination Term Seized
+ SPIRITS mnemonic: OTS
+ Mandatory parameter in SUBSCRIBE: CallingPartyNumber
+ Mandatory parameter in NOTIFY: CallingPartyNumber, CalledPartyNumber
+
+ Origination No Answer
+ SPIRITS mnemonic: ONA
+ Mandatory parameter in SUBSCRIBE: CallingPartyNumber
+ Mandatory parameter in NOTIFY: CallingPartyNumber, CalledPartyNumber
+
+ Origination Called Party Busy
+ SPIRITS mnemonic: OCPB
+ Mandatory parameter in SUBSCRIBE: CallingPartyNumber
+ Mandatory parameters in NOTIFY: CallingPartyNumber, CalledPartyNumber
+
+ Route Select Failure
+ SPIRITS mnemonic: ORSF
+ Mandatory parameter in SUBSCRIBE: CallingPartyNumber
+ Mandatory parameter in NOTIFY: CallingPartyNumber, CalledPartyNumber
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 13]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ Origination Mid Call
+ SPIRITS mnemonic: OMC
+ Mandatory parameter in SUBSCRIBE: CallingPartyNumber
+ Mandatory parameter in NOTIFY: CallingPartyNumber
+
+ Origination Abandon
+ SPIRITS mnemonic: OAB
+
+ Mandatory parameter in SUBSCRIBE: CallingPartyNumber
+ Mandatory parameter in NOTIFY: CallingPartyNumber
+
+ Origination Disconnect
+ SPIRITS mnemonic: OD
+ Mandatory parameter in SUBSCRIBE: CallingPartyNumber
+ Mandatory parameter in NOTIFY: CallingPartyNumber, CalledPartyNumber
+
+5.2.2. Terminating-side DPs
+
+ Termination Answer
+ SPIRITS mnemonic: TA
+ Mandatory parameter in SUBSCRIBE: CalledPartyNumber
+ Mandatory parameters in NOTIFY: CallingPartyNumber, CalledPartyNumber
+
+ Termination No Answer
+ SPIRITS mnemonic: TNA Mandatory parameter in SUBSCRIBE:
+ CalledPartyNumber
+ Mandatory parameters in NOTIFY: CallingPartyNumber, CalledPartyNumber
+
+ Termination Mid-Call
+ SPIRITS mnemonic: TMC
+ Mandatory parameter in SUBSCRIBE: CalledPartyNumber
+ Mandatory parameter in NOTIFY: CalledPartyNumber
+
+ Termination Abandon
+ SPIRITS mnemonic: TAB
+ Mandatory parameter in SUBSCRIBE: CalledPartyNumber
+ Mandatory parameter in NOTIFY: CalledPartyNumber
+
+ Termination Disconnect
+ SPIRITS mnemonic: TD
+ Mandatory parameter in SUBSCRIBE: CalledPartyNumber
+ Mandatory parameters in NOTIFY: CalledPartyNumber, CallingPartyNumber
+
+ Termination Attempt Authorized
+ SPIRITS mnemonic: TAA
+ Mandatory parameter in SUBSCRIBE: CalledPartyNumber
+ Mandatory parameters in NOTIFY: CalledPartyNumber, CallingPartyNumber
+
+
+
+
+Gurbani, et al. Standards Track [Page 14]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ Termination Facility Selected and Available
+ SPIRITS mnemonic: TFSA
+ Mandatory parameter in SUBSCRIBE: CalledPartyNumber
+ Mandatory parameter in NOTIFY: CalledPartyNumber
+
+ Termination Busy
+ SPIRITS mnemonic: TB
+ Mandatory parameter in SUBSCRIBE: CalledPartyNumber
+ Mandatory parameters in NOTIFY: CalledPartyNumber,
+ CallingPartyNumber, Cause
+
+ Cause: This parameter contains a string value of either "Busy" or
+ "Unreachable". The difference between these is translated as a
+ requirement (RFC3298:Section 5) to aid in the SPIRITS subscriber in
+ determining if the called party is indeed busy (engaged), or if the
+ called party is unavailable (as it would be if it were on the
+ cellular PSTN and the mobile subscriber was not registered with the
+ network).
+
+5.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 [3] is,
+ therefore, a convenient means to exploit in those cases where
+ triggers housed in EDPs fire (see section 3 of [4]). Note that [4]
+ 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".
+
+5.3.1. Normative usage
+
+ A subscriber will issue a SUBSCRIBE request which identifies a set of
+ events (DPs) it is interested in getting the notification of. This
+ set MUST contain at least one DP, it MAY contain more than one. The
+ SUBSCRIBE request is routed to the notifier, where it is accepted,
+ pending a successful authentication.
+
+ When any of the DPs identified in the set of events fires, the
+ notifier will format a NOTIFY request and direct it towards the
+ subscriber. The NOTIFY request will contain information pertinent to
+ the event that was triggered. The un-encountered DPs MUST be
+ subsequently dis-armed by the SPIRITS notifier and/or the SCF.
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 15]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ 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.
+
+ When the subscriber receives a NOTIFY request, it can subsequently
+ choose to act in a manner appropriate to the notification.
+
+ The remaining sections fill in the specific package responsibilities
+ raised in RFC3265 [3], Section 4.4.
+
+5.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 in the
+ cellular or wireline PSTN. All entities that implement the SPIRITS
+ protocol and support IN detection points MUST set the "Event" request
+ header [3] to "spirits-INDPs." The "Allow-Events" general header [3]
+ 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
+
+ The second event package is defined and discussed in Section 6.
+
+5.3.3. Event package parameters
+
+ The "spirits-INDPs" event package does not support any additional
+ parameters to the Event header.
+
+5.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 set of events (DPs) that is being subscribed to. A
+ subscriber MAY subscribe to multiple DPs in one SUBSCRIBE request,
+ or MAY issue a different SUBSCRIBE request for each DP it is
+ interested in receiving a notification for. The protocol allows
+ for both forms of representation, however, it recommends the
+ former manner of subscribing to DPs if the service depends on any
+ of the DPs being triggered.
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 16]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ (2) Because of the requirement [4] 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 required to provide a "mode" parameter, whose values
+ are "R" (for Request) 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). Please see Section 5.2.1 and Section 5.2.2 for a list of
+ parameters associated with each DP.
+
+ The default body type for SUBSCRIBEs in SPIRITS is denoted by the
+ MIME type "application/spirits-event+xml". The "Accept" header, if
+ present, MUST include this MIME type.
+
+5.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 requirements [4] and thus will not be considered any
+ further.
+
+5.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+xml". 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).
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 17]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ (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.
+
+ If the subscriber armed multiple DPs as part of a single SUBSCRIBE
+ request, all the un-encountered DPs that were part of the same
+ SUBSCRIBE dialog MUST be dis-armed by the SPIRITS notifier and/or the
+ SCF/SCP.
+
+5.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.
+
+ 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 document; here we will simply assume that the notifier can
+ affect the arming (and disarming) of triggers in the PSTN through
+ interface D.
+
+5.3.8. Notifier generation of NOTIFY requests
+
+ If the notifier expects the arming of triggers to take more than 200
+ ms, 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 Section 5.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".
+
+
+
+Gurbani, et al. Standards Track [Page 18]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+5.3.9. Subscriber processing of NOTIFY requests
+
+ The exact steps executed at the subscriber when it gets a NOTIFY
+ request will depend on the service being implemented. 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 up to 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.
+
+5.3.10. Handling of forked requests
+
+ Forking of SUBSCRIBE requests is prohibited. Since the SUBSCRIBE
+ request is targeted towards the PSTN, highly irregular behaviors
+ occur if the request is allowed to fork. The normal SIP DNS lookup
+ and routing rules [11] should result in a target set with exactly one
+ element: the notifier.
+
+5.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 interest occurs which leads to the firing of the
+ trigger associated with 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.
+
+
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 19]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ 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.
+
+5.3.12. State agents
+
+ State agents are not used in SPIRITS.
+
+5.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 3. Figure 3 depicts the 4 entities that are an
+ integral part of any SPIRITS service (the headings of the entities
+ refer to the names established in Figure 1 in [1]) -- the SPIRITS
+ subscriber, the SPIRITS notifier and the SCF. Note that the SPIRITS
+ gateway is not included in this figure; logically, SPIRITS messages
+ flow between the SPIRITS server and the SPIRITS client. A gateway,
+ if present, may act as a proxy.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 20]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ SPIRITS server SPIRITS client SCF
+ ("subscriber") ("notifier")
+ S N
+ | | |
+ | F1 SUBSCRIBE | |
+ +--------------------->+ |
+ | | |
+ | | F2 Arm DP |
+ | F3 200 OK (SUBS) +--------------->|
+ |<---------------------| |
+ | | |
+ | F4 NOTIFY | |
+ |<---------------------+ |
+ | | |
+ | F5 200 OK (NOT) | |
+ +--------------------->| |
+ | | |
+ ~ ~ ~
+ ~ ~ ~
+ | | F6 Evt. Not. |
+ | |<---------------+
+ | F7 NOTIFY + |
+ |<---------------------| |
+ | | |
+ | F8 200 OK (NOT) | |
+ +--------------------->| |
+ | | |
+ | | |
+ \|/ \|/ \|/
+ v v v
+
+ Figure 3: Sample call flow
+
+ This call flow depicts an overall operation of a "subscriber"
+ successfully subscribing to the IN Termination_Attempt_Authorized 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
+ F8 in Figure 3. 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 notifier in
+ turns interacts with the SCF to arm the Termination_Attempt_DP for
+ the service (F2). An immediate NOTIFY with the current state
+ information is send to the subscriber (F4, F5).
+
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 21]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ At some point 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 3). The SCF informs the SPIRITS notifier of this event
+ (F6).
+
+ When the SPIRITS notifier receives this event, it forms a SIP NOTIFY
+ request and directs it to the SPIRITS subscriber (F7). This NOTIFY
+ will contain all the information elements necessary to identify the
+ caller to the subscriber. The subscriber, upon receiving the
+ notification (F8) 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 3. 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->N
+
+ SUBSCRIBE sip:myprovider.com SIP/2.0
+ From: <sip:vkg@example.com>;tag=8177-afd-991
+ To: <sip:16302240216@myprovider.com>
+ CSeq: 18992 SUBSCRIBE
+ Call-ID: 3329as77@host.example.com
+ Contact: <sip:vkg@host.example.com>
+ Via: SIP/2.0/UDP host.example.com;branch=z9hG4bK776asdhds
+ Expires: 3600
+ Event: spirits-INDPs
+ Allow-Events: spirits-INDPs, spirits-user-prof
+ Accept: application/spirits-event+xml
+ Content-Type: application/spirits-event+xml
+ Content-Length: ...
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <spirits-event xmlns="urn:ietf:params:xml:ns:spirits-1.0">
+ <Event type="INDPs" name="TAA" mode="N">
+ <CalledPartyNumber>6302240216</CalledPartyNumber>
+ </Event>
+ </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
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 22]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ associated with the phone number 6302240216). This request
+ eventually arrives at the SIPRITS notifier, N, which authenticates it
+ (not shown) and sends a successful response to the subscriber:
+
+ F3: N->S
+
+ SIP/2.0 200 OK
+ From: <sip:vkg@example.com>;tag=8177-afd-991
+ To: <sip:16302240216@myprovider.com>;tag=SPIRITS-TAA-6302240216
+ CSeq: 18992 SUBSCRIBE
+ Call-ID: 3329as77@host.example.com
+ Contact: <sip:notifier.myprovider.com>
+ Via: SIP/2.0/UDP host.example.com;branch=z9hG4bK776asdhds
+ Expires: 3600
+ Accept: application/spirits-event+xml
+ Content-Length: 0
+
+ The notifier interacts with the SCF to arm the DP and also sends an
+ immediate NOTIFY towards the subscriber informing the subscriber of
+ the current state of the notification:
+
+ F4: N->S
+
+ NOTIFY sip:vkg@host.example.com SIP/2.0
+ From: <sip:16302240216@myprovider.com>;tag=SPIRITS-TAA-6302240216
+ To: <sip:vkg@example.com>;tag=8177-afd-991
+ Via: SIP/2.0/UDP gateway.myprovider.com;branch=z9hG4bK-9$0-1
+ Via: SIP/2.0/UDP notifier.myprovider.com;branch=z9hG4bKqo--9
+ Call-ID: 3329as77@host.example.com
+ Contact: <sip:notifier.myprovider.com>
+ Subscription-State: active
+ CSeq: 3299 NOTIFY
+ Accept: application/spirits-event+xml
+ Content-Length: 0
+
+ F5: S->N
+
+ SIP/2.0 200 OK
+ From: <sip:16302240216@myprovider.com>;tag=SPIRITS-TAA-6302240216
+ To: <sip:vkg@example.com>;tag=8177-afd-991
+ Via: SIP/2.0/UDP gateway.myprovider.com;branch=z9hG4bK-9$0-1
+ Via: SIP/2.0/UDP notifier.myprovider.com;branch=z9hG4bKqo--9
+ Call-ID: 3329as77@host.example.com
+ Contact: <sip:vkg@host.example.com>
+ CSeq: 3299 NOTIFY
+ Accept: application/spirits-event+xml
+ Content-Length: 0
+
+
+
+
+Gurbani, et al. Standards Track [Page 23]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ 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 (F6). 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 subscriber. The SIP
+ NOTIFY request has a XML-encoded body with the relevant information
+ from the PSTN:
+
+ F7: N->S
+
+ NOTIFY sip:vkg@host.example.com SIP/2.0
+ From: <sip:16302240216@myprovider.com>;tag=SPIRITS-TAA-6302240216
+ To: <sip:vkg@example.com>;tag=8177-afd-991
+ Via: SIP/2.0/UDP notifier.myprovider.com;branch=z9hG4bK9inn-=u7
+ Call-ID: 3329as77@host.example.com
+ Contact: <sip:notifier.myprovider.com>
+ CSeq: 3300 NOTIFY
+ Subscription-State: terminated;reason=fired
+ Accept: application/spirits-event+xml
+ Event: spirits-INDPs
+ Allow-Events: spirits-INDPs, spirits-user-prof
+ Content-Type: application/spirits-event+xml
+ Content-Length: ...
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <spirits-event xmlns="urn:ietf:params:xml:ns:spirits-1.0">
+ <Event type="INDPs" name="TAA" mode="N">
+ <CalledPartyNumber>6302240216</CalledPartyNumber>
+ <CallingPartyNumber>3125551212</CallingPartyNumber>
+ </Event>
+ </spirits-event>
+
+ There are two important issues to note in the call flows for F7:
+
+ (1) The body of the NOTIFY request contains the information passed
+ to the SPIRITS notifier from the SCF. In this particular
+ example, this is the phone number of the party (3125551212)
+ 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
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 24]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ 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 F7. 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:
+
+ F8: S->N
+
+ 200 OK SIP/2.0
+ From: <sip:16302240216@myprovider.com>;tag=SPIRITS-TAA-6302240216
+ To: <sip:vkg@example.com>;tag=8177-afd-991
+ Via: SIP/2.0/UDP notifier.myprovider.com;z9hG4bK9inn-=u7
+ Call-ID: 3329as77@host.example.com
+ CSeq: 3300 NOTIFY
+ Content-Length: 0
+
+5.3.14. Use of URIs to retrieve state
+
+ The "spirits-INDPs" package MUST NOT use URIs to retrieve state. It
+ is expected that most state information for this package is compact
+ enough to fit in a SIP message. However, to err on the side of
+ caution, implementations MUST follow the convention outlined in
+ Section 18.1.1 of [5] and use a congestion controlled transport if
+ the size of the request is within 200 bytes of the path MTU if known,
+ or if the request size is larger than 1300 bytes and the path MTU is
+ unknown.
+
+5.4. Services through static DPs
+
+ We mentioned in Section 5.1 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
+ specification). 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
+
+
+
+Gurbani, et al. Standards Track [Page 25]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ 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.
+
+5.4.1. Internet Call Waiting (ICW)
+
+ ICW as a benchmark SPIRITS service actually predates SPIRITS itself.
+ Pre-SPIRITS implementations of ICW are detailed in [10]. However, as
+ the document notes, while a diversity of implementations exists,
+ these implementations are not interoperable. At the time [10] was
+ published, the industry did not have the depth of experience with SIP
+ as is the case now. The use of SIP in [10] does not constitute
+ normative usage of SIP as described in [5]; 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,
+
+ o specify the desirable treatment of the call, and
+
+ o have the call handled as specified.
+
+5.4.2. Call disposition choices
+
+ Section 2 of [10] 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
+
+
+
+
+Gurbani, et al. Standards Track [Page 26]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ 6. Forwarding the call to another number
+
+ 7. Rejecting (or Forwarding) on no Response - If the subscriber
+ fails to respond within a certain period of 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:
+
+ A. 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.
+
+ B. IN based method: SCP maintains a list of Internet Service
+ Provider (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.
+
+ C. Any combination of methods A and B.
+
+ 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 notifier on the SCP to create a SIP INVITE request and
+ send it to the SPIRITS subscriber running on the subscriber's IP
+ host.
+
+ The SPIRITS subscriber MUST return one of the possible call
+ disposition outcomes catalogued in Section 5.4.2. 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).
+
+
+
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 27]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ Further processing of a SPIRITS notifier when it receives a final
+ 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
+ subscriber 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 5.4.3.
+
+5.4.3. Accepting an ICW session using VoIP
+
+ One call handling option in ICW is to "accept an incoming call using
+ VoIP". The SPIRITS notifier 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 notifier control a PSTN gateway and allocate appropriate
+ resources on it. Once this is done, the SPIRITS notifier 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 notifier 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.
+
+ The SPIRITS notifier transmits the INVITE request to the subscriber
+ and now waits for a final response. Further processing when the
+ SPIRITS subscriber 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 notifier 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.
+
+
+
+Gurbani, et al. Standards Track [Page 28]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ The end result is that the caller and callee hold a voice session
+ with part of the session occurring over VoIP.
+
+6. Non-call related events
+
+ There are network events that are not related to setting up,
+ maintaining, or tearing down voice calls. Such events occur on the
+ cellular wireless network and can be used by SPIRITS to provide
+ services. The SPIRITS protocol requirement explicitly includes the
+ following events for which SPIRITS notification is needed
+ (RFC3298:Section 5(b)):
+
+ 1. Location update in the same Visitor Location Register (VLR)
+ service area
+
+ 2. Location update in another VLR service area
+
+ 3. International Mobile Subscriber Identity (IMSI) attach
+
+ 4. Mobile Subscriber (MS) initiated IMSI detach
+
+ 5. Network initiated IMSI detach
+
+6.1. Non-call events and their required parameters
+
+ Each of the five non-call related event is given a SPIRITS-specific
+ mnemonic for use in subscriptions and notifications.
+
+ Location update in the same VLR area
+ SPIRITS mnemonic: LUSV
+ Mandatory parameter in SUBSCRIBE: CalledPartyNumber
+ Mandatory parameter in NOTIFY: CalledPartyNumber, Cell-ID
+
+ Cell-ID: A string used to identify the serving Cell-ID. The actual
+ length and representation of this parameter depend on the particulars
+ of the cellular provider's network.
+
+ Location update in different VLR area
+ SPIRITS mnemonic: LUDV
+ Mandatory parameter in SUBSCRIBE: CalledPartyNumber
+ Mandatory parameter in NOTIFY: CalledPartyNumber, Cell-ID
+
+ IMSI attach
+ SPIRITS mnemonic: REG
+ Mandatory parameter in SUBSCRIBE: CalledPartyNumber
+ Mandatory parameter in NOTIFY: CalledPartyNumber, Cell-ID
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 29]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ MS initiated IMSI detach
+ SPIRITS mnemonic: UNREGMS
+ Mandatory parameter in SUBSCRIBE: CalledPartyNumber
+ Mandatory parameter in NOTIFY: CalledPartyNumber
+
+ Network initiated IMSI detach
+ SPIRITS mnemonic: UNREGNTWK
+ Mandatory parameter in SUBSCRIBE: CalledPartyNumber
+ Mandatory parameter in NOTIFY: CalledPartyNumber
+
+6.2. Normative usage
+
+ A subscriber will issue a SUBSCRIBE request which identifies a set of
+ non-call related PSTN events it is interested in getting the
+ notification of. This set MAY contain exactly one event, or it MAY
+ contain multiple events. The SUBSCRIBE request is routed to the
+ notifier where it is accepted, pending a successful authentication.
+
+ When any of the events identified in the set occurs, the notifier
+ will format a NOTIFY request and direct it towards the subscriber.
+ The NOTIFY request will contain information pertinent to the one of
+ the event whose notification was requested.
+
+ The dialog established by the SUBSCRIBE persists until it expires
+ normally, or is explicitly expired by the subscriber. This behavior
+ is different than the behavior for subscriptions associated with the
+ "spirits-INDPs" package. In the cellular network, the events
+ subscribed for may occur at a far greater frequency than those
+ compared to the wireline network (consider location updates as a
+ cellular user moves around). Thus it is far more expedient to allow
+ the subscription to expire normally.
+
+ When a subscriber receives a NOTIFY request, it can subsequently
+ choose to act in a manner appropriate to the notification.
+
+ The remaining sections fill in the specific package responsibilities
+ raised in RFC3265 [3], Section 4.4.
+
+6.3. Event package name
+
+ This document defines two event packages; the first was defined in
+ Section 5.3. The second package, defined in this section is called
+ "spirits-user-prof". This package MUST be used for events
+ corresponding to non-call related events in the cellular network.
+ All entities that implement the SPIRITS protocol and support the
+ non-call related events outlined in the SPIRITS protocol requirements
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 30]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ (RFC3298:Section 5(b)) MUST set the "Event" header request header[3]
+ to "spirits-user-prof." The "Allow-Events" general header [3] MUST
+ include the token "spirits-user-prof" as well.
+
+ Example:
+
+ Event: spirits-user-prof
+ Allow-Events: spirits-user-prof, spirits-INDPs
+
+6.4. Event package parameters
+
+ The "spirits-user-prof" event package does not support any additional
+ parameters to the Event header
+
+6.5. SUBSCRIBE bodies
+
+ SUBSCRIBE requests that serve to terminate the subscriptions MAY
+ contain an empty body; however, SUBSCRIBE requests that establish a
+ dialog MUST contain a body which encodes two pieces of information:
+
+ (1) The set of events that is being subscribed to. A subscriber
+ MAY subscribe to multiple events in one SUBSCRIBE request, or MAY
+ issue a different SUBSCRIBE request for each event it is
+ interested in receiving a notification for. The protocol allows
+ for both forms of representation. However, note that if one
+ SUBSCRIBE is used to subscribe to multiple events, then an expiry
+ for the dialog associated with that subscription affects all such
+ events.
+
+ (2) A list of values of the parameters associated with the event.
+ Please see Section 6.1 for a list of parameters associated with
+ each event.
+
+ The default body type for SUBSCRIBEs in SPIRITS is denoted by the
+ MIME type "application/spirits-event+xml". The "Accept" header, if
+ present, MUST include this MIME type.
+
+6.6. Subscription duration
+
+ The duration of a dialog established by a SUBSCRIBE request is
+ limited to the expiration time negotiated between the subscriber and
+ notifier when the dialog was established. The subscriber MUST send a
+ new SUBSCRIBE to refresh the dialog if it is interested in keeping it
+ alive. A dialog can be terminated by sending a new SUBSCRIBE request
+ with an "Expires" header value of 0, as outlined in [3].
+
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 31]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+6.7. NOTIFY bodies
+
+ Bodies in NOTIFY requests for the "spirits-user-prof" package are
+ optional. If present, they MUST be of the MIME type
+ "application/spirits-event+xml". 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) 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.
+
+6.8. 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, non-call related
+ cellular events for a mobile phone.
+
+ Once the SUBSCRIBE request has been authenticated and authorized, the
+ notifier interfaces with the SCF over interface D to set marks in the
+ HLR corresponding to the mobile phone number contained in the
+ SUBSCRIBE body. The particulars of interface D are outside the scope
+ of this document; here we simply assume that the notifier is able to
+ set the appropriate marks in the HLR.
+
+6.9. Notifier generation of NOTIFY requests
+
+ If the notifier expects the setting of marks in the HLR to take more
+ than 200 ms, 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."
+
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 32]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ When the event of interest identified in the SUBSCRIBE request
+ occurs, the notifier sends out a new NOTIFY request which MUST
+ contain a body as described in Section 6.7.
+
+6.10. Subscriber processing of NOTIFY requests
+
+ The exact steps executed at the subscriber when it receives a NOTIFY
+ request depend on the nature of the service that is being
+ implemented. 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.
+
+6.11. Handling of forked requests
+
+ Forking of SUBSCRIBE requests is prohibited. Since the SUBSCRIBE
+ request is targeted towards the PSTN, highly irregular behaviors
+ occur if the request is allowed to fork. The normal SIP DNS lookup
+ and routing rules [11] should result in a target set with exactly one
+ element: the notifier.
+
+6.12. Rate of notifications
+
+ For reasons of congestion control, it is important that the rate of
+ notifications not become excessive. For instance, if a subscriber
+ subscribes to the location update event for a notifier moving through
+ the cellular network at a high enough velocity, it is entirely
+ conceivable that the notifier may generate many NOTIFY requests in a
+ small time frame. Thus, within this package, the location update
+ event needs an appropriate throttling mechanism.
+
+ Whenever a SPIRITS notifier sends a location update NOTIFY, it MUST
+ start a timer (Tn) with a value of 15 seconds. If a subsequent
+ location update NOTIFY request needs to be sent out before the timer
+ has expired, it MUST be discarded. Any future location update NOTIFY
+ requests MUST be transmitted only if Tn has expired (i.e. 15 seconds
+ have passed since the last NOTIFY request was send out). If a
+ location update NOTIFY is send out, Tn should be reset to go off
+ again in 15 seconds.
+
+6.13. State agents
+
+ State agents are not used in SPIRITS.
+
+6.14. Examples
+
+ This section contains an example of a SPIRITS service that may be
+ used to update the presence status of a mobile user. The call flow
+ is depicted in Figure 4 below.
+
+
+
+Gurbani, et al. Standards Track [Page 33]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ SPIRITS server SPIRITS client SCF
+ ("subscriber") ("notifier")
+ S N
+ | | |
+ | F1 SUBSCRIBE | |
+ +--------------------->+ |
+ | | |
+ | | F2 Set HLR mark|
+ | F3 200 OK (SUBS) +--------------->|
+ |<---------------------| |
+ | | |
+ | F4 NOTIFY | |
+ |<---------------------+ |
+ | | |
+ | F5 200 OK (NOT) | |
+ +--------------------->| |
+ | | |
+ ~ ~ ~
+ ~ ~ ~
+ | | F6 Evt. Not. |
+ | |<---------------+
+ | F7 NOTIFY + |
+ |<---------------------| |
+ | | |
+ | F8 200 OK (NOT) | |
+ +--------------------->| |
+ | | |
+ | | |
+ \|/ \|/ \|/
+ v v v
+
+ Figure 4: Sample call flow
+
+ In F1 of Figure 4, the subscriber indicates an interest in receiving
+ a notification when a mobile user registers with the cellular
+ network. The cellular network notes this event (F2) and confirms the
+ subscription (F3-F5). When the mobile user turns on her cell phone
+ and registers with the network, this event is detected (F6). The
+ cellular network then sends out a notification to the subscriber
+ informing it of this event (F7-F8).
+
+ We present the details of the call flow next.
+
+ In F1, the subscriber subscribes to the registration event (REG) of a
+ cellular phone number.
+
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 34]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ F1: S->N
+ SUBSCRIBE sip:myprovider.com SIP/2.0
+ From: <sip:vkg@example.com>;tag=8177-afd-991
+ To: <sip:16302240216@myprovider.com>
+ CSeq: 18992 SUBSCRIBE
+ Call-ID: 3329as77@host.example.com
+ Contact: <sip:vkg@host.example.com>
+ Via: SIP/2.0/UDP host.example.com;branch=z9hG4bK776asdhdsa8
+ Expires: 3600
+ Event: spirits-user-prof
+ Allow-Events: spirits-INDPs, spirits-user-prof
+ Accept: application/spirits-event+xml
+ Content-Type: application/spirits-event+xml
+ Content-Length: ...
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <spirits-event xmlns="urn:ietf:params:xml:ns:spirits-1.0">
+ <Event type="userprof" name="REG">
+ <CalledPartyNumber>6302240216</CalledPartyNumber>
+ </Event>
+ </spirits-event>
+
+ The subscription reaches the notifier which authenticates the request
+ (not shown) and interacts with the SCF to update the subscribers
+ database for this event. The notifier sends out a successful
+ response to the subscription:
+
+ F3: N->S
+ SIP/2.0 200 OK
+ From: <sip:vkg@example.com>;tag=8177-afd-991
+ To: <sip:16302240216@myprovider.com>;tag=SPIRITS-REG-16302240216
+ CSeq: 18992 SUBSCRIBE
+ Call-ID: 3329as77@host.example.com
+ Contact: <sip:notifier.myprovider.com>
+ Via: SIP/2.0/UDP host.example.com;branch=z9hG4bK776asdhdsa8
+ Expires: 3600
+ Allow-Events: spirits-INDPs, spirits-user-prof
+ Accept: application/spirits-event+xml
+ Content-Length: 0
+
+ The notifier also sends out a NOTIFY request confirming the
+ subscription:
+
+ F4: N->S
+ NOTIFY sip:vkg@host.example.com SIP/2.0
+ To: <sip:vkg@example.com>;tag=8177-afd-991
+ From: <sip:16302240216@myprovider.com>;tag=SPIRITS-REG-16302240216
+ CSeq: 9121 NOTIFY
+
+
+
+Gurbani, et al. Standards Track [Page 35]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ Call-ID: 3329as77@host.example.com
+ Contact: <sip:notifier.myprovider.com>
+ Subscription-State: active
+ Via: SIP/2.0/UDP notifier.myprovider.com;branch=z9hG4bK7007-091a
+ Allow-Events: spirits-INDPs, spirits-user-prof
+ Accept: application/spirits-event+xml
+ Content-Length: 0
+
+ The subscriber confirms the receipt of the NOTIFY request:
+
+ F5: S->N
+ SIP/2.0 200 OK
+ To: <sip:vkg@example.com>;tag=8177-afd-991
+ From: <sip:16302240216@myprovider.com>;tag=SPIRITS-REG-16302240216
+ CSeq: 9121 NOTIFY
+ Call-ID: 3329as77@host.example.com
+ Contact: <sip:vkg@host.example.com>
+ Via: SIP/2.0/UDP notifier.myprovider.com;branch=z9hG4bK7007-091a
+ Content-Length: 0
+
+ In F6, the mobile user identified by the PSTN number "6302240216"
+ turns the mobile phone on, thus causing it to register with the
+ cellular network. The cellular network detects this event, and since
+ a subscriber has indicated an interest in receiving a notification of
+ this event, a SIP NOTIFY request is transmitted towards the
+ subscriber:
+
+ F7: N->S
+ NOTIFY sip:vkg@host.example.com SIP/2.0
+ To: <sip:vkg@example.com>;tag=8177-afd-991
+ From: <sip:16302240216@myprovider.com>;tag=SPIRITS-REG-16302240216
+ CSeq: 9122 NOTIFY
+ Call-ID: 3329as77@host.example.com
+ Contact: <sip:notifier.myprovider.com>
+ Subscription-State: terminated;reason=fired
+ Via: SIP/2.0/UDP notifier.myprovider.com;branch=z9hG4bK7yi-p12
+ Event: spirits-user-prof
+ Allow-Events: spirits-INDPs, spirits-user-prof
+ Accept: application/spirits-event+xml
+ Content-Type: application/spirits-event+xml
+ Content-Length: ...
+
+
+
+
+
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 36]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ <?xml version="1.0" encoding="UTF-8"?>
+ <spirits-event xmlns="urn:ietf:params:xml:ns:spirits-1.0">
+ <Event type="userprof" name="REG">
+ <CalledPartyNumber>6302240216</CalledPartyNumber>
+ <Cell-ID>45987</Cell-ID>
+ </Event>
+ </spirits-event>
+
+ The subscriber receives the notification and acknowledges it by
+ sending a response:
+
+ F8: S->N
+
+ SIP/2.0 200 OK
+ To: <sip:vkg@example.com>;tag=8177-afd-991
+ From: <sip:16302240216@myprovider.com>;tag=SPIRITS-REG-16302240216
+ CSeq: 9122 NOTIFY
+ Call-ID: 3329as77@host.example.com
+ Via: SIP/2.0/UDP notifier.myprovider.com;branch=z9hG4bK7yi-p12
+ Content-Length: 0
+
+ Note that once the subscriber has received this notification, it can
+ execute appropriate services. In this particular instance, an
+ appropriate service may consist of the subscriber acting as a
+ composer of a presence service and turning the presence status of the
+ user associated with the phone number "6302240216" to "on". Also
+ note in F7 that the notifier included a Cell ID in the notification.
+
+ The Cell ID can be used as a basis for location specific services;
+ however, a discussion of such services is out of the scope of this
+ document.
+
+6.15. Use of URIs to retrieve state
+
+ The "spirits-user-prof" package MUST NOT use URIs to retrieve state.
+ It is expected that most state information for this package is
+ compact enough to fit in a SIP message. However, to err on the side
+ of caution, implementations MUST follow the convention outlined in
+ Section 18.1.1 of [5] and use a congestion controlled transport if
+ the size of the request is within 200 bytes of the path MTU if known,
+ or if the request size is larger than 1300 bytes and the path MTU is
+ unknown.
+
+
+
+
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 37]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+7. IANA Considerations
+
+ This document calls for IANA to:
+
+ o register two new SIP Event Packages per [3].
+
+ o register a new MIME type per [20].
+
+ o register a new namespace URN per [16].
+
+ o register a new XML schema per [16].
+
+7.1. Registering event packages
+
+ Package Name: spirits-INDPs
+
+ Type: package
+
+ Contact: Vijay K. Gurbani, vkg@lucent.com
+
+ Reference: RFC 3910
+
+ Package Name: spirits-user-prof
+
+ Type: package
+
+ Contact: Vijay K. Gurbani, vkg@lucent.com
+
+ Reference: RFC 3910
+
+7.2. Registering MIME type
+
+ MIME media type name: application
+
+ MIME subtype name: spirits-event+xml
+
+ Mandatory parameters: none
+
+ Optional parameters: charset (same semantics of charset parameter in
+ application/xml [9])
+
+ Encoding considerations: same as considerations outlined for
+ application/xml in [9].
+
+ Security considerations: Section 10 of [9] and Section 8 of this
+ document.
+
+ Interoperability considerations: none.
+
+
+
+Gurbani, et al. Standards Track [Page 38]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ 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
+
+7.3. Registering URN
+
+ URI
+ urn:ietf:params:xml:ns:spirits-1.0
+
+ Description
+ This is the XML namespace URI for XML elements defined by this
+ document. Such elements describe the SPIRITS information in the
+ "application/ spirits-event+xml" content type.
+
+ Registrant Contact
+ IESG.
+
+ XML
+ BEGIN
+ <?xml version="1.0"?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN"
+ "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
+ <html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <meta http-equiv="content-type"
+ content="text/html;charset=utf-8"/>
+ <title>Namespace for SPIRITS-related information</title>
+ </head>
+ <body>
+ <h1>Namespace for SPIRITS-related information</h1>
+
+
+
+Gurbani, et al. Standards Track [Page 39]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ <h2>application/spirits-event+xml</h2>
+ <p>See <a href="[[[URL of published RFC]]]">RFC3910</a>.</p>
+ </body>
+ </html>
+ END
+
+7.4. Registering XML schema
+
+ URI
+ urn:ietf:params:xml:schema:spirits-1.0
+
+ Description
+ XML base schema for SPIRITS entities.
+
+ Registrant Contact
+ IESG.
+
+ XML
+ Please see XML schema definition in Section 9 of this document.
+
+8. Security Considerations
+
+ This section focuses on security considerations which are unique to
+ SPIRITS. SIP security mechanisms are discussed in detail in the core
+ SIP specification [5] and are outside the scope of this document.
+ SPIRITS security mechanisms are based on and strengthen SIP security
+ [5], for example, SPIRITS mandates the support of S/MIME. Beyond
+ that, any other security solutions specified in [5], i.e., TLS or
+ HTTP Digest authentication, may be utilized by SPIRITS operators.
+
+ As outlined in Chapter 9 (Security Consideration) of RFC3298 [4], the
+ following security aspects are applicable to the SPIRITS protocol:
+
+ Authentication
+
+ Integrity
+
+ Confidentiality
+
+ Non-repudiation
+
+ The SPIRITS architecture in Figure 1 contains 5 interfaces -- A, B,
+ C, D, and E. Of these, only two -- B and C -- are of interest to
+ SPIRITS. Interfaces A and E are PINT interfaces and are thus assumed
+ secured by the PINT RFC [8]. Security for interface D is out of
+ scope in this document since it deals primarily with the PSTN
+ infrastructure. We will discuss security aspects on interfaces B and
+ C predicated on certain assumptions.
+
+
+
+Gurbani, et al. Standards Track [Page 40]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ A driving assumption for SPIRITS security is that the SPIRITS gateway
+ is owned by the same PSTN operator that owns the SPIRITS notifier.
+ Thus, it is attractive to simply relegate security of interface C to
+ the PSTN operator, and in fact, there are merits to doing just that
+ since interface C crosses the IP Network and PSTN boundaries.
+ However, a closer inspection reveals that both interfaces B and C
+ transmit the SPIRITS protocol; thus, any security arrangement we
+ arrive at for interface B can be suitably applied to interface C as
+ well. This makes it possible to secure interface C in case the
+ SPIRITS gateway is not owned by the same PSTN operator that owns the
+ SPIRITS notifier.
+
+ The ensuing security discussion assumes that the SPIRITS subscriber
+ is communicating directly to the SPIRITS notifier (and vice-versa)
+ and specifies a security apparatus for this arrangement. However,
+ the same apparatus can be used to secure the communication between a
+ SPIRITS subscriber and an intermediary (like the SPIRITS gateway),
+ and the same intermediary and the SPIRITS notifier.
+
+ Confidentiality of the SPIRITS protocol is essential since the
+ information carried in the protocol data units is of a sensitive
+ nature and may lead to privacy concerns if revealed to non-authorized
+ parties. The communication path between the SPIRITS notifier and the
+ SPIRITS subscriber should be secured through S/MIME [18] to alleviate
+ privacy concerns, as is described in the Security Consideration
+ section of the core SIP specification [5].
+
+ S/MIME is an end-to-end security mechanism which encrypts the
+ SPIRITS bodies for transit across an open network. Intermediaries
+ need not be cognizant of S/MIME in order to route the messages
+ (routing headers travel in the clear).
+
+ S/MIME provides all the security aspects for SPIRITS outlined at the
+ beginning of this section: authentication, message integrity,
+ confidentiality, and non-repudiation. Authentication properties
+ provided by S/MIME would allow the recipient of a SPIRITS message to
+ ensure that the SPIRITS payload was generated by an authorized
+ entity. Encryption would ensure that only those SPIRITS entities
+ possessing a particular decryption key are capable of inspecting
+ encapsulated SPIRITS bodies in a SIP request.
+
+ All SPIRITS endpoints MUST support S/MIME signatures (CMS SignedData)
+ and MUST support encryption (CMS EnvelopedData).
+
+ If the B and C interfaces are owned by the same PSTN operator, it is
+ possible that public keys will be installed in the SPIRITS endpoints.
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 41]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ S/MIME supports two methods -- issuerAndSerialNumber and
+ subjectKeyIdentifier -- of naming the public key needed to validate a
+ signature. Between these, subjectKeyIdentifier works with X.509
+ certificates and other schemes as well, while issuerAndSerialNumber
+ works with X.509 certificates only. If the administrator configures
+ the necessary public keys, providing integrity through procedural
+ means, then S/MIME can be used without X.509 certificates.
+
+ All requests (and responses) between SPIRITS entities MUST be
+ encrypted.
+
+ When a request arrives at a SPIRITS notifier from a SPIRITS
+ subscriber, the SPIRITS notifier MUST authenticate the request. The
+ subscription (or registration) from a SPIRITS subscriber MUST be
+ rejected if the authentication fails. If the SPIRITS subscriber
+ successfully authenticated itself to the SPIRITS notifier, the
+ SPIRITS notifier MUST, at the very least, ensure that the SPIRITS
+ subscriber is indeed allowed to receive notifications of the events
+ it is subscribing to.
+
+ Note that this document does not proscribe how the SPIRITS
+ notifier achieves this. In practice, it could be through access
+ control lists (ACL) that are populated by a service management
+ system in the PSTN, or through a web interface of some sort.
+
+ Requests from the SPIRITS notifier to the SPIRITS subscribers MUST
+ also be authenticated, lest a malicious party attempts to
+ fraudulently pose as a SPIRITS notifier to hijack a session.
+
+9. XML schema definition
+
+ The SPIRITS payload is specified in XML; this section defines the
+ base XML schema for documents that make up the SPIRITS payload. All
+ SPIRITS entities that transport a payload characterized by the MIME
+ type "application/spirits-event+xml" MUST support documents
+ corresponding to the base schema below.
+
+ Multiple versions of the base schema are not expected; rather, any
+ additional functionality (e.g., conveying new PSTN events) must be
+ accomplished through the definition of a new XML namespace and a
+ corresponding schema. Elements from the new XML namespace will then
+ co-exist with elements from the base schema in a document.
+
+
+
+
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 42]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+<xs:schema targetNamespace="urn:ietf:params:xml:ns:spirits-1.0"
+ xmlns:tns="urn:ietf:params:xml:ns:spirits-1.0"
+ xmlns:xs="http://www.w3.org/2001/XMLSchema"
+ elementFormDefault="qualified"
+ attributeFormDefault="unqualified">
+
+ <!-- This import brings in the XML language attribute xml:lang-->
+ <xs:import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+ <xs:annotation>
+ <xs:documentation xml:lang="en">
+ Describes SPIRITS events.
+ </xs:documentation>
+ </xs:annotation>
+
+ <xs:element name="spirits-event" type="tns:SpiritsEventType"/>
+
+ <xs:complexType name="SpiritsEventType">
+ <xs:sequence>
+ <xs:element name="Event" type="tns:EventType" minOccurs="1"
+ maxOccurs="unbounded"/>
+ <xs:any namespace="##other" processContents="lax"
+ maxOccurs="unbounded"/>
+ </xs:sequence>
+ </xs:complexType>
+
+ <xs:complexType name="EventType">
+ <xs:sequence>
+ <xs:element name="CalledPartyNumber" type="xs:token"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="CallingPartyNumber" type="xs:token"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="DialledDigits" type="xs:token"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Cell-ID" type="xs:token"
+ minOccurs="0" maxOccurs="1"/>
+ <xs:element name="Cause" type="tns:CauseType"
+ minOccurs="0" maxOccurs="1"/>
+ </xs:sequence>
+ <xs:attribute name="type" type="tns:PayloadType"
+ use="required"/>
+ <xs:attribute name="name" type="tns:EventNameType"
+ use="required"/>
+ <xs:attribute name="mode" type="tns:ModeType"
+ use="optional" default="N"/>
+ </xs:complexType>
+
+
+
+
+Gurbani, et al. Standards Track [Page 43]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ <xs:simpleType name="PayloadType">
+ <!-- The <spirits-event> will contain either a list of -->
+ <!-- INDPs events or a list of userprof events -->
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="INDPs"/>
+ <xs:enumeration value="userprof"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="EventNameType">
+ <xs:restriction base="xs:string">
+ <!-- These are the call related events (DPs). If the -->
+ <!-- PaylaodType is "INDPs", then the value of the "name" -->
+ <!-- attribute is one of these; example -->
+ <!-- <spirits-event type="INDPs" name="OCI"> -->
+ <xs:enumeration value="OAA"/>
+ <xs:enumeration value="OCI"/>
+ <xs:enumeration value="OAI"/>
+ <xs:enumeration value="OA"/>
+ <xs:enumeration value="OTS"/>
+ <xs:enumeration value="ONA"/>
+ <xs:enumeration value="OCPB"/>
+ <xs:enumeration value="ORSF"/>
+ <xs:enumeration value="OMC"/>
+ <xs:enumeration value="OAB"/>
+ <xs:enumeration value="OD"/>
+ <xs:enumeration value="TA"/>
+ <xs:enumeration value="TMC"/>
+ <xs:enumeration value="TAB"/>
+ <xs:enumeration value="TD"/>
+ <xs:enumeration value="TAA"/>
+ <xs:enumeration value="TFSA"/>
+ <xs:enumeration value="TB"/>
+ <!-- These are the non-call related events. If the -->
+ <!-- PayloadType is "user-prof", then the value of the -->
+ <!-- "name" attribute is one of these; example -->
+ <!-- <spirits-event type="userprof" name="LUDV"> -->
+ <xs:enumeration value="LUSV"/>
+ <xs:enumeration value="LUDV"/>
+ <xs:enumeration value="REG"/>
+ <xs:enumeration value="UNREGMS"/>
+ <xs:enumeration value="UNREGNTWK"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="ModeType">
+ <!-- One of two values: "N"otification or "R"equest -->
+ <xs:restriction base="xs:string">
+
+
+
+Gurbani, et al. Standards Track [Page 44]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ <xs:enumeration value="N"/>
+ <xs:enumeration value="R"/>
+ </xs:restriction>
+ </xs:simpleType>
+
+ <xs:simpleType name="CauseType">
+ <xs:restriction base="xs:string">
+ <xs:enumeration value="Busy"/>
+ <xs:enumeration value="Unreachable"/>
+ </xs:restriction>
+ </xs:simpleType>
+</xs:schema>
+
+10. Acknowledgements
+
+ The authors are grateful to participants in the SPIRITS WG for the
+ discussion that 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. The authors also
+ acknowledge Steve Bellovin, Allison Mankin and Jon Peterson for help
+ provided on the Security section.
+
+11. Acronyms
+
+ ACL Access Control List
+ 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
+ IMSI International Mobile Subscriber Identity
+ IN Intelligent Network
+ INAP Intelligent Network Application Protocol
+ IP Internet Protocol
+ ISP Internet Service Provider
+ ITU International Telecommunications Union
+ MIME Multipurpose Internet Mail Extensions
+ MS Mobile Station (or Mobile Subscriber)
+ OBCSM Originating Basic Call State Model
+ PIC Point In Call
+ PINT PSTN/Internet Interworking
+ PSTN Public Switched Telephone Network
+ SCF Service Control Function
+
+
+
+Gurbani, et al. Standards Track [Page 45]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ SCP Service Control Point
+ SDP Session Description Protocol
+ SIP Session Initiation Protocol
+ SIP-T SIP for Telephones
+ 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"
+ TLS Transport Layer Security
+ UA User Agent
+ VLR Visitor Location Register
+ WIN Wireless Intelligent Network
+ XML Extensible Markup Language
+
+12. References
+
+12.1. Normative References
+
+ [1] Slutsman, L., Faynberg, I., Lu, H., and M. Weissman, "The
+ SPIRITS Architecture", RFC 3136, June 2001.
+
+ [2] Bradner, S., "Key words for use in RFCs to Indicate Requirement
+ Levels", BCP 14, RFC 2119, March 1997.
+
+ [3] Roach, A., "Session Initiation Protocol (SIP)-Specific Event
+ Notification", RFC 3265, June 2002.
+
+ [4] Faynberg, I., Gato, J., Lu, H., and L. Slutsman, "Service in the
+ Public Switched Telephone Network/Intelligent Network (PSTN/IN)
+ Requesting InTernet Service (SPIRITS) Protocol Requirements",
+ RFC 3298, August 2002.
+
+ [5] Rosenberg, J., Schulzrinne, H., Camarillo, G., Johnston, A.,
+ Peterson, J., Sparks, R., Handley, M., and E. Schooler, "SIP:
+ Session Initiation Protocol", RFC 3261, June 2002.
+
+12.2. Informative References
+
+ [6] 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", Work In Progress, January 2003.
+
+
+
+
+Gurbani, et al. Standards Track [Page 46]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ [7] Intelligent Network Capability Set 2. ITU-T, Recommendation
+ Q.1228.
+
+ [8] Petrack, S. and L. Conroy, "The PINT Service Protocol:
+ Extensions to SIP and SDP for IP Access to Telephone Call
+ Services", RFC 2848, June 2000.
+
+ [9] Murata, M., St.Laurent, S., and D. Kohn, "XML Media Types", RFC
+ 3023, January 2001.
+
+ [10] Lu, H., Faynberg, I., Voelker, J., Weissman, M., Zhang, W.,
+ Rhim, S., Hwang, J., Ago, S., Moeenuddin, S., Hadvani, S.,
+ Nyckelgard, S., Yoakum, J., and L. Robart, "Pre-Spirits
+ Implementations of PSTN-initiated Services", RFC 2995, November
+ 2000.
+
+ [11] Rosenberg, J. and H. Schulzrinne, "Session Initiation Protocol
+ (SIP): Locating SIP Servers", RFC 3263, June 2002.
+
+ [12] Thompson, H., Beech, D., Maloney, M. and N. Mendelsohn, "XML
+ Schema Part 1: Structures", W3C REC REC-xmlschema-1-20010502,
+ May 2001. <http://www.w3c.org/XML/>.
+
+ [13] "Interface recommendations for intelligent network capability
+ set 3: SCF-SSF interface", ITU-T Recommendation Q.1238.2, June
+ 2000.
+
+ [14] Moats, R., "URN Syntax", RFC 2141, May 1997.
+
+ [15] Moats, R., "A URN Namespace for IETF Documents", RFC 2648,
+ August 1999.
+
+ [16] Mealling, M., "The IETF XML Registry", BCP 81, RFC 3688, January
+ 2004.
+
+ [17] Tim Bray, Dave Hollander, and Andrew Layman, "Namespaces in
+ XML", W3C recommendation: xml-names, 14th January 1999,
+ <http://www.w3.org/ TR/REC-xml-names>.
+
+ [18] Ramsdell, B., "Secure/Multipurpose Internet Mail Extensions
+ (S/MIME) Version 3.1 Message Specification", RFC 3851, July
+ 2004.
+
+ [19] Faynberg, I., L. Gabuzda, M. Kaplan, and N.Shah, "The
+ Intelligent Network Standards: Their Application to Services",
+ McGraw-Hill, 1997.
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 47]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ [20] Freed, N. and N. Borenstein, "Multipurpose Internet Mail
+ Extensions (MIME) Part One: Format of Internet Message Bodies",
+ RFC 2045, November 1996.
+
+ Freed, N. and N. Borenstein, "Multipurpose Internet Mail
+ Extensions (MIME) Part Two: Media Types", RFC 2046, November
+ 1996.
+
+ Moore, K., "MIME (Multipurpose Internet Mail Extensions) Part
+ Three: Message Header Extensions for Non-ASCII Text ", RFC
+ 2047, November 1996.
+
+ Freed, N., Klensin, J., and J. Postel, "Multipurpose Internet
+ Mail Extensions (MIME) Part Four: Registration Procedures", BCP
+ 13, RFC 2048, November 1996.
+
+ Freed, N. and N. Borenstein, "Multipurpose Internet Mail
+ Extensions (MIME) Part Five: Conformance Criteria and Examples",
+ RFC 2049, November 1996.
+
+13. Contributors
+
+ Kumar Vemuri
+ Lucent Technologies, Inc.
+ 2000 Naperville Rd.
+ Naperville, IL 60566
+ USA
+
+ EMail: vvkumar@lucent.com
+
+14. Authors' Addresses
+
+ Vijay K. Gurbani, Editor
+ 2000 Lucent Lane
+ Rm 6G-440
+ Naperville, IL 60566
+ USA
+
+ EMail: vkg@lucent.com
+
+
+ Alec Brusilovsky
+ 2601 Lucent Lane
+ Lisle, IL 60532-3640
+ USA
+
+ EMail: abrusilovsky@lucent.com
+
+
+
+
+Gurbani, et al. Standards Track [Page 48]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+ Igor Faynberg
+ Lucent Technologies, Inc.
+ 101 Crawfords Corner Rd.
+ Holmdel, NJ 07733
+ USA
+
+ EMail: faynberg@lucent.com
+
+
+ Jorge Gato
+ Vodafone Espana
+ Isabel Colbrand, 22
+ 28050 Madrid
+ Spain
+
+ EMail: jorge.gato@vodafone.com
+
+
+ Hui-Lan Lu
+ Bell Labs/Lucent Technologies
+ Room 4C-607A, 101 Crawfords Corner Road
+ Holmdel, New Jersey, 07733
+
+ Phone: (732) 949-0321
+ EMail: huilanlu@lucent.com
+
+
+ Musa Unmehopa
+ Lucent Technologies, Inc.
+ Larenseweg 50,
+ Postbus 1168
+ 1200 BD, Hilversum,
+ The Netherlands
+
+ EMail: unmehopa@lucent.com
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 49]
+
+RFC 3910 SPIRITS Protocol October 2004
+
+
+15. Full Copyright Statement
+
+ Copyright (C) The Internet Society (2004).
+
+ This document is subject to the rights, licenses and restrictions
+ contained in BCP 78, and except as set forth therein, the authors
+ retain all their rights.
+
+ This document and the information contained herein are provided on an
+ "AS IS" basis and THE CONTRIBUTOR, THE ORGANIZATION HE/S HE
+ REPRESENTS OR IS SPONSORED BY (IF ANY), THE INTERNET SOCIETY AND THE
+ INTERNET ENGINEERING TASK FORCE DISCLAIM ALL WARRANTIES, EXPRESS OR
+ IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF
+ THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED
+ WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE.
+
+Intellectual Property
+
+ The IETF takes no position regarding the validity or scope of any
+ Intellectual Property Rights or other rights that might be claimed to
+ pertain to the implementation or use of the technology described in
+ this document or the extent to which any license under such rights
+ might or might not be available; nor does it represent that it has
+ made any independent effort to identify any such rights. Information
+ on the IETF's procedures with respect to rights in IETF Documents can
+ be found in BCP 78 and BCP 79.
+
+ Copies of IPR disclosures made to the IETF Secretariat and any
+ assurances of licenses to be made available, or the result of an
+ attempt made to obtain a general license or permission for the use of
+ such proprietary rights by implementers or users of this
+ specification can be obtained from the IETF on-line IPR repository at
+ http://www.ietf.org/ipr.
+
+ The IETF invites any interested party to bring to its attention any
+ copyrights, patents or patent applications, or other proprietary
+ rights that may cover technology that may be required to implement
+ this standard. Please address the information to the IETF at ietf-
+ ipr@ietf.org.
+
+Acknowledgement
+
+ Funding for the RFC Editor function is currently provided by the
+ Internet Society.
+
+
+
+
+
+
+
+Gurbani, et al. Standards Track [Page 50]
+