ietf-corpus

rfc-7462

URNs for the Alert-Info Header Field of the Session Initiation Protocol (SIP)

L. Liess (Editor), R. Jesske, A. Johnston, D. Worley, P. Kyzivat
date2015-03 streamIETF arearai wgsalud statusPROPOSED STANDARD pages46 canonicalhttps://www.rfc-editor.org/rfc/rfc7462 doi10.17487/RFC7462
The Session Initiation Protocol (SIP) supports the capability to provide a reference to a specific rendering to be used by the User Agent (UA) as an alerting signal (e.g., a ring tone or ringback tone) when the user is alerted. This is done using the Alert-Info header field. However, the reference (typically a URL) addresses only a specific network resource with specific rendering properties. There is currently no support for standard identifiers for describing the semantics of the alerting situation or the characteristics of the alerting signal, without being tied to a particular rendering. To overcome these limitations and support new applications, a new family of URNs for use in Alert-Info header fields (and situations with similar requirements) is defined in this specification. This document normatively updates RFC 3261, which defines the Session Initiation Protocol (SIP). It changes the usage of the Alert-Info header field defined in RFC 3261 by additionally allowing its use in any non-100 provisional response to INVITE. This document also permits proxies to add or remove an Alert-Info header field and to add or remove Alert-Info header field values.

updates

Extracted elements (26)

design-rationale §10.2

A private extension mechanism using @provider syntax is provided specifically to facilitate PBX-to-SIP migrations without requiring IANA coordination. Because existing PBX products use diverse proprietary conventions, the scheme must accommodate uncoordinated national and vendor variations while still enabling interoperation through the truncation fallback rules.

sip, realtime

design-rationale §7

The hierarchical URN structure is designed so that removing the final <alert-ind-part> always produces a less-specific but still meaningful URN. This enables graceful degradation: a receiver that does not recognize a full URN can truncate it until it reaches a recognizable parent, preserving partial intent rather than silently ignoring the entire indication.

sip, realtime

design-rationale §1

URNs are chosen over URLs of downloadable audio files to avoid download latency, formatting/compatibility issues, security risks of rendering unexpected content, and to allow local storage in any format. The URN specifies a rendering 'by name' rather than 'by value', enabling local policy decisions and accessibility adaptations.

sip, realtime, security

interoperability-note §13

A UA MUST produce a reasonable rendering when the Alert-Info header field contains a mix of URI schemes (e.g., an HTTP audio URL and an 'alert' URN). It must act on the URIs it understands per local policy and ignore the others; the proxy example in Section 14 shows both an HTTP URI and a URN coexisting in the same header field.

sip, realtime, http

interoperability-note §1

Backward compatibility with existing SIP devices is expected because devices that do not understand an 'alert' URN should ignore it, and multiple Alert-Info values were syntactically permitted by RFC 3261 before this document even though they were rarely used in practice.

sip, realtime

normative-requirement §4.2 MAY

A SIP proxy MAY add or remove an Alert-Info header field, and MAY add or remove Alert-Info header field values, in a SIP request or a non-100 provisional response when it needs to modify information about the call or provided services.

sip, realtime

normative-requirement §7 MUST

'alert' URN labels MUST comply with the syntax for Non-Reserved LDH labels (RFC 5890). Registered URNs and components thereof MUST be transmitted as registered (including case), while comparison is case-insensitive.

sip, realtime

normative-requirement §10.1 MUST

Extensions (standard or private) MUST conform to three principles: a new <alert-category> must be independent of all existing ones; a multi-part new <alert-identifier> must be a semantic refinement of its parent; and sibling <alert-identifier>s must have no semantic overlap.

sip, realtime

normative-requirement §7 MUST

Future interpreters of 'alert' URNs MUST operate correctly per Section 11.1 when given URNs containing A-labels (internationalized <alert-label>s), even though the current specification restricts <alert-label>s to ordinary ASCII LDH labels.

sip, realtime

normative-requirement §13 SHOULD

If subsequent provisional responses within the same dialog contain different Alert-Info header field values, the UA SHOULD render, at any time, the last received Alert-Info header field value. Values from different provisional responses are treated independently.

sip, realtime

normative-requirement §10.2 MUST NOT

Private extensions MUST NOT duplicate any standard URN or any private extension that the defining organization is aware of; in either case, the organization MUST use the existing URN. Private extensions must also respect the independence and subset principles of Section 10.1.

sip, realtime

normative-requirement §4.1 MUST NOT

The Alert-Info header field, previously permitted only in 180 (Ringing) responses, is now additionally allowed in any non-100 provisional response to INVITE. This enables signaling of tones for situations such as 181 (Call Is Being Forwarded) and 182 (Call Is Being Queued).

sip, realtime

normative-requirement §13 MUST

Upon receiving an Alert-Info header field, the UA's processing MUST conform to the priority rules in Section 11. The UA MUST produce a rendering based on URIs it can understand; unless the message is immediately rejected, it SHOULD provide some alert unless instructed otherwise.

sip, realtime

normative-requirement §11.1 MUST

When a UA cannot render a URN because it is unrecognized or precluded by preceding URNs, it MUST repeatedly remove the final <alert-ind-part> until the resulting URN is renderable or has no <alert-ind-part> remaining, in which case the URN is ignored. Earlier URNs have precedence over later ones.

sip, realtime

normative-requirement §11.1 SHOULD

When selecting from equally effective signals after processing all received URNs, the least-specific signal SHOULD be chosen; a more-specific signal may be chosen only if the choice is based on information derived from the containing SIP message (e.g., a 'Priority: urgent' header field).

sip, realtime

protocol-element §10.2

Private-extension URNs use a <private-name> syntax of the form <alert-label>@<provider>, where <provider> is registered with IANA. A private-name may appear as either an <alert-category> or an <alert-ind-part>, and all subsequent <alert-label>s until the next <private-name> are owned by that organization.

sip, realtime, registry

protocol-element §8.1

Six <alert-category> values are defined: 'service' (telephony service type), 'source' (classification of the other call party), 'priority' (call priority), 'duration' (alerting signal duration), 'delay' (presentation delay), and 'locale' (country-specific alerting conventions).

sip, realtime

protocol-element §7

The 'alert' URN namespace uses a hierarchical Namespace Specific String of the form urn:alert:<alert-category>:<alert-indication>, where <alert-indication> is composed of one or more colon-separated <alert-ind-part>s. The ABNF constrains components to Non-Reserved LDH labels per RFC 5890.

sip, realtime, registry

protocol-element §8.2.3

The 'priority' category carries normal (default), low, and high indications; 'duration' carries normal (default), short, and long; 'delay' carries none (default) and yes; 'locale' carries default and country:<ISO 3166-1 code> patterns.

sip, realtime

protocol-element §8.2.1

The 'service' category carries indications: normal (default), call-waiting, forward, recall:callback, recall:hold, and recall:transfer. These cover common PBX and public telephony services without binding to a particular audio rendering.

sip, realtime

protocol-element §8.2.2

The 'source' category carries indications: unclassified (default), internal, external, friend, and family. These are typically inserted by a proxy acting on behalf of the recipient UA to convey the origin of the call.

sip, realtime

registry §9.2

A new 'Alert URN Identifiers' registry is created, managed under the 'Specification Required' policy (RFC 5226). It records standardized <alert-category> and <alert-identifier> values with reference and description. A new URN MUST NOT be registered if it equals an already-registered URN under case-insensitive comparison.

registry, sip

registry §9.3

A new 'Alert URN Providers' registry is created, managed under the 'First Come First Served' policy (RFC 5226), recording <provider> values used to construct <private-name>s. Each entry contains the provider value, registrant name, and contact URI. Private extension URNs themselves are not registered with IANA.

registry, sip

security-consideration §16

Authorization for providing alert indications SHALL NOT assume any limitation on potential recipients without obtaining specific information about the SIP transaction. A proxy SHOULD remove indications from untrusted sources that may be deceptive or that contain information to be suppressed for privacy reasons.

security, sip, privacy

security-consideration §16

Providing specific alert indications (e.g., call-waiting or call-forwarding) can reveal the dialog state of the source UA or services initiated at its end. Such provision SHALL always require authorization on behalf of the user of the source UA, typically through configured policy.

security, sip, privacy

security-consideration §16

The 'alert' URN is an identifier and does not by itself raise security issues, since it avoids the need to download or dereference a resource. This eliminates risks associated with fetching and rendering untrusted audio content that exist with HTTP URL-based Alert-Info references.

security, sip