rfc-3910

The SPIRITS (Services in PSTN requesting Internet Services) Protocol

V. Gurbani (Editor), A. Brusilovsky, I. Faynberg, J. Gato, H. Lu, M. Unmehopa
date2004-10 streamIETF areatsv wgspirits statusPROPOSED STANDARD pages50 canonicalhttps://www.rfc-editor.org/rfc/rfc3910 doi10.17487/RFC3910
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. [STANDARDS-TRACK]

Extracted elements (30)

design-rationale §6.2

For spirits-INDPs, the subscription dialog terminates when the event fires, requiring a new SUBSCRIBE for the next occurrence. For spirits-user-prof (cellular events), the subscription persists until expiry because cellular location events may fire at far greater frequency and it is more expedient to allow normal expiration.

sip, realtime, mobility

design-rationale §2

SIP was chosen as the protocol enabler for SPIRITS because the SPIRITS protocol requirements mandate that parameters be carried in a manner consistent with SIP practices, and SIP already provides payload description capabilities (Content-Type, Content-Length). The rationale for this choice is detailed in the SPIRITS requirements RFC 3298.

sip, realtime

design-rationale §2

The document intentionally reverses the intuitive naming: the 'SPIRITS server' (IP host) acts as the SIP subscriber (issues SUBSCRIBE requests), and the 'SPIRITS client' (PSTN gateway) acts as the SIP notifier (issues NOTIFY requests). This was done to adhere to RFC 3265 nomenclature and reduce architectural ambiguity.

sip, realtime

interoperability-note §3

Implementations MUST support the base XML schema (Section 9) to ensure interoperability. Richer event sets MAY be supported via additional XML namespaces; if an unknown extension is received, a SPIRITS subscriber MUST search for mandatory elements which MUST be present in all notification schemas.

sip, realtime

interoperability-note §3

Support for SIP REGISTER is included for PINT (RFC 3298) compatibility, and support for SIP INVITE is mandated because pre-existing SPIRITS implementations did not use SIP event notification but instead used INVITE to deliver the initial PSTN detection point.

sip, realtime

normative-requirement §3 MUST

All SPIRITS subscribers MUST support the base XML schema defined in Section 9 for subscribing to PSTN events. All SPIRITS notifiers MUST support this schema; the schema MAY be extended via additional XML namespaces.

sip, realtime

normative-requirement §5.3.14 MUST NOT

Both 'spirits-INDPs' and 'spirits-user-prof' packages MUST NOT use URIs to retrieve state. Implementations MUST use a congestion-controlled transport if the request size is within 200 bytes of path MTU or exceeds 1300 bytes when path MTU is unknown.

sip, realtime, congestion

normative-requirement §5.4.2 MUST

For ICW service, one of three methods MUST be used to inform the SCP that the subscriber line is in use for an Internet session: ICW subscriber-based SIP REGISTER, IN-based ISP number list, or a combination of both.

sip, realtime, voip

normative-requirement §5.4 MUST

For static DP (TDP) notifications via SIP INVITE, the body of the SIP request MUST contain multi-part MIME with two components: the normal payload and SPIRITS-specific information about the fired DP.

sip, realtime

normative-requirement §6.12 MUST

For the spirits-user-prof package, whenever a location update NOTIFY is sent, the notifier MUST start a 15-second throttle timer (Tn). Any subsequent location update NOTIFY that would be sent before Tn expires MUST be discarded; transmissions are allowed only after Tn expires.

sip, realtime, mobility

normative-requirement §5.3.10 MUST

Forking of SUBSCRIBE requests is prohibited for both event packages. The normal SIP DNS lookup and routing rules should result in a target set with exactly one element: the notifier.

sip, realtime

normative-requirement §5.3.1 MUST

If a subscriber wants the event to be monitored again after a 'terminated;reason=fired' notification, it MUST issue a new SUBSCRIBE request establishing a new dialog; the existing terminated dialog cannot be reused.

sip, realtime

normative-requirement §5.3.8 MUST

If arming of detection points is expected to take more than 200 ms, the notifier MUST send a 202 response immediately, then send a NOTIFY with an empty body and Subscription-State: pending. Once the SCF interface succeeds, a subsequent NOTIFY with Subscription-State: active MUST be sent.

sip, realtime

normative-requirement §8 MUST

SPIRITS mandates support of S/MIME as a security mechanism. TLS or HTTP Digest authentication may additionally be utilized by SPIRITS operators.

security, sip, crypto

normative-requirement §5.3.4 MUST

SUBSCRIBE requests that establish a dialog MUST contain a body encoding: the set of detection points (DPs) subscribed to, the mode parameter ('R' or 'N') for spirits-INDPs events, and associated DP parameter values. SUBSCRIBE requests terminating a subscription MAY have an empty body.

sip, realtime

normative-requirement §3 MUST

The MIME type 'application/spirits-event+xml' MUST be present in the Content-Type header of all SPIRITS requests and responses. The Accept header, if present, MUST include this MIME type in SUBSCRIBE requests.

sip, realtime

normative-requirement §4 MUST

The <spirits-event> root element MUST contain a namespace declaration ('xmlns') with the URN 'urn:ietf:params:xml:ns:spirits-1.0' and MUST contain at least one <Event> element.

sip, realtime

normative-requirement §5.3.7 MUST

When the notifier receives a SUBSCRIBE request, it MUST authenticate the request and ensure the subscriber is authorized to access the PSTN resource being subscribed to.

sip, security, realtime

normative-requirement §5.3.8 MUST

When the subscribed event fires, the notifier MUST send a NOTIFY containing a body (per Section 5.3.6) with Subscription-State header set to 'terminated' and reason parameter 'fired'. All un-encountered DPs from the same SUBSCRIBE dialog MUST be dis-armed by the SPIRITS notifier and/or SCF.

sip, realtime

protocol-element §5.2

SPIRITS defines 11 originating-side Detection Points (OAA, OCI, OAI, OA, OTS, ONA, OCPB, ORSF, OMC, OAB, OD) and 8 terminating-side DPs (TA, TNA, TMC, TAB, TD, TAA, TFSA, TB), each with mandatory CallingPartyNumber or CalledPartyNumber parameters in SUBSCRIBE/NOTIFY.

sip, realtime, voip

protocol-element §6.1

SPIRITS defines 5 non-call related cellular events: LUSV (location update same VLR), LUDV (location update different VLR), REG (IMSI attach), UNREGMS (MS-initiated IMSI detach), and UNREGNTWK (network-initiated IMSI detach), each with CalledPartyNumber and optionally Cell-ID.

sip, realtime, mobility

protocol-element §4

The <Event> XML element has two mandatory attributes: 'type' (either 'INDPs' or 'userprof') and 'name' (a SPIRITS mnemonic such as OAA, TAA, REG). An optional 'mode' attribute takes values 'N' (notification) or 'R' (request), defaulting to 'N'.

sip, realtime

protocol-element §5.3.2

The 'spirits-INDPs' SIP event package is used for events corresponding to IN detection points in the cellular or wireline PSTN. The Event request header MUST be set to 'spirits-INDPs' and Allow-Events MUST include this token for entities supporting IN detection points.

sip, realtime

protocol-element §6.3

The 'spirits-user-prof' SIP event package is used for non-call-related cellular events (location updates, IMSI attach/detach). The Event header MUST be set to 'spirits-user-prof' and Allow-Events MUST include this token for supporting entities.

sip, realtime, mobility

registry §7.2

A new MIME type 'application/spirits-event+xml' is registered under the 'application' media type. It has no mandatory parameters and an optional 'charset' parameter with the same semantics as application/xml.

registry, sip

registry §7.1

Two new SIP event packages are registered: 'spirits-INDPs' for IN detection point events and 'spirits-user-prof' for non-call-related cellular events. Both are registered per RFC 3265 event package procedures.

registry, sip, realtime

registry §7.3

Two URNs are registered: the XML namespace 'urn:ietf:params:xml:ns:spirits-1.0' and the XML schema 'urn:ietf:params:xml:schema:spirits-1.0', both per the IETF XML registry procedures.

registry

security-consideration §8

SPIRITS security requirements address four aspects: authentication, integrity, confidentiality, and non-repudiation. SPIRITS mandates S/MIME support; TLS and HTTP Digest are optional supplementary mechanisms available to operators.

security, sip, crypto

state-machine §5.3.8

The SPIRITS subscription state machine has three states: 'pending' (subscription accepted but DP not yet armed, triggered when arming takes >200ms), 'active' (DP successfully armed in PSTN), and 'terminated' (DP fired, reason='fired', or subscription expired). States are communicated via the Subscription-State header in NOTIFY requests.

sip, realtime

wire-format §4

SPIRITS XML documents use the 'application/spirits-event+xml' MIME type. The root element is <spirits-event> with namespace 'urn:ietf:params:xml:ns:spirits-1.0', containing one or more <Event> elements each optionally containing child elements such as <CallingPartyNumber>, <CalledPartyNumber>, <DialledDigits>, <Cause>, or <Cell-ID> as string values.

sip, realtime