A Session Initiation Protocol (SIP) Event Package for Conference State
Extracted elements (31)
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.
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.
A conference information document MUST be well-formed and valid XML 1.0, MUST be encoded using UTF-8.
A "full" conference document MUST at least include the <conference-description> and <users> child elements.
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".
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.
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.
Notification rate SHOULD NOT exceed once every 5 seconds per subscriber for congestion control reasons.
Privacy policies MUST be consulted before revealing <call-info> (SIP dialog identifiers) to other participants.
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.
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.
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.
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".
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.
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.
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).
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).
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.
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.
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>.
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.
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).
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.
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.
RFC 4575 registers the MIME type application/conference-info+xml for conference information documents. Encoding and charset considerations follow application/xml per RFC 3023.
RFC 4575 registers the XML namespace urn:ietf:params:xml:ns:conference-info and its associated XML schema for conference information documents.
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.
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.
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.
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.).
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.