rfc-4575

A Session Initiation Protocol (SIP) Event Package for Conference State

J. Rosenberg, H. Schulzrinne, O. Levin (Editor)
date2006-08 streamIETF arearai wgsipping statusPROPOSED STANDARD pages48 canonicalhttps://www.rfc-editor.org/rfc/rfc4575 doi10.17487/RFC4575
This document defines a conference event package for tightly coupled conferences using the Session Initiation Protocol (SIP) events framework, along with a data format used in notifications for this package. The conference package allows users to subscribe to a conference Uniform Resource Identifier (URI). Notifications are sent about changes in the membership of this conference and optionally about changes in the state of additional conference components. [STANDARDS-TRACK]

Extracted elements (31)

design-rationale §3.2

Partial notifications are delivered by default (except in the initial NOTIFY response to a SUBSCRIBE, which carries full state) to minimize notification traffic. This avoids retransmitting large conference documents on every small roster change, at the cost of a subscriber-side state reconstruction algorithm.

sip, realtime

interoperability-note §3

A focus MAY subscribe to the conference package of a cascaded (peer) focus to discover its participant list, then include that list using <cascaded-focus> elements. Only flat (peer-to-peer) cascading topology is representable; the full graph requires correlating this package with the Dialog Package of each focus.

sip, realtime

normative-requirement §4.1 MUST

A conference information document MUST be well-formed and valid XML 1.0, MUST be encoded using UTF-8.

sip, realtime

normative-requirement §5.2 MUST

A "full" conference document MUST at least include the <conference-description> and <users> child elements.

sip, realtime

normative-requirement §3.4 MUST

All subscribers and notifiers MUST support the "application/conference-info+xml" data format. If an Accept header is present in the SUBSCRIBE request, it MUST include "application/conference-info+xml".

sip, realtime

normative-requirement §4.5 MUST

Element key values MUST be unique among siblings of the same type. Two keys of type xs:anyURI are equal if their UTF-8 representations are identical; using relative URIs or lexical white space in keys is NOT RECOMMENDED.

sip, realtime

normative-requirement §4.6 MUST

If a received NOTIFY's 'version' number is more than one higher than the local version, the subscriber MUST generate a subscription refresh to trigger a full state notification. If exactly one higher, the local state is updated incrementally.

sip, realtime

normative-requirement §3.9 RECOMMENDED

Notification rate SHOULD NOT exceed once every 5 seconds per subscriber for congestion control reasons.

sip, realtime, congestion

normative-requirement §5.7.9 MUST

Privacy policies MUST be consulted before revealing <call-info> (SIP dialog identifiers) to other participants.

sip, privacy, security

normative-requirement §3.5 SHOULD

Subscriptions to the conference event package SHOULD be authenticated and authorized before approval. It is RECOMMENDED that all users in the conference be allowed to subscribe.

sip, security

normative-requirement §5.6 MUST

The 'entity' value of a <user> element MUST be unique among all participants. If identity is not revealed, the host portion MUST use the .invalid top-level domain; the anonymous URI generation method of RFC 3323 MUST be followed for privacy-requesting participants.

sip, privacy

normative-requirement §3.1 REQUIRED

The name of the SIP event package defined by this document is "conference". This name is carried in the Event and Allow-Events header fields as defined in RFC 3265.

sip, realtime

normative-requirement §4.4 MUST

The partial notifications mechanism using the 'state' attribute MUST be supported by all subscribing clients. The 'state' attribute of a child element MUST be consistent with its parent's 'state': if parent is "full", all children MUST be "full".

sip, realtime

normative-requirement §5.2 MUST

The 'version' attribute MUST be included in the root <conference-info> element. The server MUST increment the 32-bit monotonically increasing version number for each notification sent to a subscriber reporting a change in conference state.

sip, realtime

normative-requirement §3.8 MUST NOT

When a SUBSCRIBE request forks, subscribers to this package MUST NOT establish more than a single SIP dialog as a result. Detailed information from cascaded foci requires individual SUBSCRIBE dialogs with each focus.

sip, realtime

protocol-element §5.9

Sidebar conferences are represented either by reference (<sidebars-by-ref>, containing sidebar URIs for independent subscriptions) or by value (<sidebars-by-val>, embedding full or partial conference-type content inline in the main conference document).

sip, realtime

protocol-element §5.3.4

The <available-media> element contains <entry> elements indexed by a required 'label' attribute corresponding to the SDP "label" media attribute. Each entry includes <type> (MUST be a registered SDP media type) and <status> (sendrecv/sendonly/recvonly/inactive from the participant's point of view).

sip, realtime, rtp

protocol-element §5.7.9

The <call-info> element provides SIP dialog identification via a <sip> child element containing <call-id>, <from-tag>, and <to-tag>. This element is extensible for non-SIP protocols.

sip, realtime

protocol-element §5.3

The <conference-description> element conveys static conference metadata: <display-text>, <subject>, <free-text>, <keywords>, <conf-uris>, <service-uris>, <maximum-user-count>, and <available-media>. This information is typically set before conference activation and rarely changes.

sip, realtime

protocol-element §5.2

The <conference-info> root element carries 'entity' (conference URI, required), 'state' (full/partial/deleted, default full), and 'version' (32-bit unsigned int) attributes. Its children are <conference-description>, <host-info>, <conference-state>, <users>, <sidebars-by-ref>, and <sidebars-by-val>.

sip, realtime

protocol-element §5.7

The <endpoint> element, keyed by its 'entity' attribute (unique within the parent user), carries <status>, <joining-method> (dialed-in/dialed-out/focus-owner), <joining-info>, <disconnection-method> (departed/booted/failed/busy), <disconnection-info>, <media>, and <call-info> sub-elements.

sip, realtime

protocol-element §5.8

The <media> element, keyed by 'id' (unique within endpoint), includes <type> (registered SDP media type), <label> (MUST match the corresponding <available-media> label if that element is present), <src-id> (RTP SSRC value), and <status> (sendrecv/sendonly/recvonly/inactive).

sip, realtime, rtp

registry §9.5

RFC 4575 establishes the "URI purposes" sub-registry under the IANA SIP parameters registry. Initial values are: participation, streaming, event, and recording — each describing the intended usage of a URI in the conference event package context.

sip, registry, realtime

registry §9.1

RFC 4575 registers the "conference" SIP event package with IANA, as defined in RFC 3265. The package is a non-template package covering tightly coupled conference state.

sip, registry, realtime

registry §9.2

RFC 4575 registers the MIME type application/conference-info+xml for conference information documents. Encoding and charset considerations follow application/xml per RFC 3023.

sip, registry, realtime

registry §9.3-9.4

RFC 4575 registers the XML namespace urn:ietf:params:xml:ns:conference-info and its associated XML schema for conference information documents.

sip, registry

security-consideration §8.2

A focus MUST support participant privacy requests. For any participant requesting privacy, no identity information SHOULD be revealed in included URIs; the .invalid TLD and anonymous URI generation per RFC 3323 MUST be applied.

sip, privacy, security

security-consideration §8.2

A notification server MUST be capable of generating distinct conference information views to different subscribers based on subscriber role, personal access rights, and local authorization policies.

sip, security

security-consideration §8.1

Conference subscriptions reveal very sensitive information. A focus MUST use strong authentication, and the mechanism conveying conference information MUST ensure integrity and SHOULD ensure confidentiality. S/MIME (end-to-end) is RECOMMENDED; mutual TLS is the fallback.

sip, security, tls

state-machine §5.7.3

The <endpoint> <status> element defines nine states: pending, dialing-out, dialing-in, alerting, on-hold, connected, muted-via-focus, disconnecting, disconnected. Transitions are driven by call signaling events (INVITE, BYE, 486, moderator action, etc.).

sip, realtime

wire-format §4.1-4.2

Conference information is encoded as XML 1.0, UTF-8, in the namespace urn:ietf:params:xml:ns:conference-info, carried as MIME type application/conference-info+xml. The root element is <conference-info>; partial updates use a 'state' attribute on applicable elements.

sip, realtime