rfc-6796

A User Agent Profile Data Set for Media Policy

V. Hilt, G. Camarillo, J. Rosenberg, D. Worley
date2012-12 streamIETF wgnon working group statusPROPOSED STANDARD pages43 canonicalhttps://www.rfc-editor.org/rfc/rfc6796 doi10.17487/RFC6796
This specification defines an XML document format to describe the media properties of Session Initiation Protocol (SIP) sessions. Examples for media properties are the codecs or media types used in the session. This document also defines an XML document format to describe policies that limit the media properties of SIP sessions. [STANDARDS-TRACK]

Extracted elements (30)

design-rationale §1

Merging rules are part of the semantics of each session policy XML element, so it is not possible to build an entity that can mechanically merge two session policy documents without understanding the semantics of all elements. This design choice places merging responsibility on semantics-aware UAs.

sip, realtime

interoperability-note §4.4

The <media-intermediaries> element is not intended to replace ICE-based connectivity discovery; it defines an administrative policy for intermediaries that should be traversed. The set of intermediaries in <media-intermediaries> and those discovered through ICE may overlap but are not required to.

sip, realtime, nat

normative-requirement §4.1 MUST

A UA MUST create a separate <stream> element for each 'm=' line in a session description or SDP offer/answer pair, in the same order. For a session description the UA MUST insert the media type and MUST create a <codec> element for each codec listed. <codec> elements MUST have 'q' attributes with values decreasing with codec order in the 'm=' line.

sip, realtime

normative-requirement §3.1 MUST

An MPDF document MUST be well-formed and MUST be valid according to schemas available to the validator. MPDF documents MUST be based on XML 1.0 and MUST be encoded using UTF-8.

sip, realtime

normative-requirement §3.2 MUST

Elements or attributes from unknown namespaces MUST be ignored, enabling forward-compatible extensibility. Elements from different XML namespaces MAY be present within an MPDF document.

sip, realtime

normative-requirement §9 MUST

The privacy of documents containing the <shared-secret> element MUST be preserved during transmission between server and UA. When RFC 6795 is used to distribute such documents, encryption as defined in RFC 3261 (i.e., TLS or S/MIME) MUST be used.

security, sip, realtime, crypto

normative-requirement §4.1 MUST

The UA MUST create a <local-host-port> element per stream using the port from the 'm=' line and address from the 'c=' line of the local session description. The UA SHOULD create a <remote-host-port> element from the remote session description if available.

sip, realtime

normative-requirement §5.1.2 MUST

To merge media-types-* and codecs-* containers from multiple session policy documents, a UA MUST apply all containers it has received one after the other to the set of supported media types/codecs. Each application MUST keep the set the same or reduce it; media types/codecs cannot be added during this process.

sip, realtime

protocol-element §6.2

The <codec> element identifies a specific codec using a <media-type-subtype> child (e.g., 'audio/PCMA') and optional <mime-parameter> children for encoding or profile specifics. For audio/video it MUST be a registered RTP Payload Type; for other media types it MUST contain the media type and format (e.g., 'message/msrp').

sip, realtime

protocol-element §5.5

The <codecs-allowed> element defines the set of permitted codecs; all codecs not listed MUST NOT be used. A policy MUST allow at least one codec per media type. It MUST NOT coexist with <codecs-excluded> in the same container.

sip, realtime

protocol-element §6.7

The <context> element provides context information about a policy or session document and MAY contain <policy-server-URI>, <contact>, <info>, <token>, and (in session-info only) <request-URI> elements. The <request-URI> element MUST NOT be included in session policy documents.

sip, realtime

protocol-element §3.3.2

The 'direction' attribute restricts a property to a specific stream direction: 'sendonly', 'recvonly', or 'sendrecv' (default). It is used to express unidirectional media properties.

sip, realtime

protocol-element §4.4.1

The <fixed-intermediary> element describes a pre-configured media relay. It MUST contain one <int-host-port> element and MAY contain multiple <int-addl-port> elements. Its contents MUST be echoed to all policy servers that provide policies for the session.

sip, realtime

protocol-element §4.3.1.1

The <local-host-port> and <remote-host-port> elements contain a hostname or IP address and port number separated by ':', e.g., 'host.example.com:49562'. They identify the local and remote endpoints of a media stream in the session description.

sip, realtime

protocol-element §5.7

The <local-ports> element defines a policy for UA local port range expressed as 'start-end' (inclusive, 1–65535). Default is '1-65535'. Merging: permitted ranges are set-intersected; if the result is empty the merged value MUST be an allowed value with start port greater than end port.

sip, realtime

protocol-element §6.3

The <max-bw> element defines the overall maximum bandwidth in kbps (1024 bits/s) across all sessions a UA may run in parallel, including lower-layer transport overhead. Merging: the lowest value MUST be used.

sip, realtime, qos

protocol-element §6.4

The <max-session-bw> element defines the maximum bandwidth in kbps for media streams within a single session, including lower-layer overhead. Merging: the lowest value MUST be used.

sip, realtime, qos

protocol-element §6.5

The <max-stream-bw> element defines the per-stream maximum bandwidth in kbps including RTP, UDP, and IP overhead. It supports 'direction', 'media-type', and 'label' attributes; a 'label' scoped element applies only to the <stream> element with the matching label. Merging: the lowest value MUST be used.

sip, realtime, qos

protocol-element §4.4

The <media-intermediaries> element defines an ordered chain of media intermediaries a UA must traverse for its media streams. A <media-intermediaries> element MUST contain one or more intermediary elements (e.g., <fixed-intermediary> or <turn-intermediary>) and SHOULD only contain intermediaries of the same type.

sip, realtime, nat

protocol-element §3.1

The Media Policy Data Set Format (MPDF) is an XML document format with namespace URN 'urn:ietf:params:xml:ns:mediadataset' and media type 'application/media-policy-dataset+xml'. It has two root elements: <session-info> for session information documents and <session-policy> for session policy documents.

sip, realtime

protocol-element §5.3

The <media-types-allowed> element defines the set of permitted media types; all types not listed are forbidden. It MUST NOT coexist with <media-types-excluded> in the same container. Absence of both indicates no media type restrictions. Merging: containers are set-intersected as described in Section 5.1.2.

sip, realtime

protocol-element §4.4.3

The <msrp-intermediary> element describes an MSRP relay (RFC 4976). It MUST contain one <msrp-uri> element (scheme MUST be 'msrps:') and MAY contain <shared-secret> and <user> elements. The UA authenticates with the relay and then uses the learned URI for MSRP media.

sip, realtime

protocol-element §3.3.3

The 'q' attribute expresses relative preference among allowed values in a set. Its value is a decimal in [0,1] with up to two decimal places; higher values indicate greater preference. It is only allowed on elements specifying allowed (not excluded) values.

sip, realtime

protocol-element §6.6

The <qos-dscp> element contains a DSCP value (decimal integer 0–63) to populate the IP DS field of media packets. Merging: the local domain's DSCP value from the local policy server MUST take precedence over values from other domains.

sip, realtime, diffserv, qos

protocol-element §4.3.1

The <stream> element describes a single media stream and MUST contain one <media-type> element, one or more <codec> elements, and one <local-host-port> element. It MUST contain zero or one <remote-host-port> elements and MAY have 'direction', 'label', and 'enabled' attributes.

sip, realtime

protocol-element §4.4.2

The <turn-intermediary> element describes a TURN relay (RFC 5766) to be used as a media intermediary. It MUST contain one <int-host-port> and MAY contain <int-addl-port>, <shared-secret>, <user>, and <transport> elements. If no <transport> element is present, UDP is assumed.

sip, realtime, nat

protocol-element §3.3.1

The 'visibility' attribute advises whether the UA should display a property value to the user. Values are 'visible' (default) and 'hidden'; 'hidden' indicates the value should not be shown in ordinary user interfaces.

sip, realtime

registry §10

RFC 6796 registers three IANA artifacts: the media type 'application/media-policy-dataset+xml', a RELAX NG schema at URN 'urn:ietf:params:xml:schema:mediadataset', and an XML namespace at URN 'urn:ietf:params:xml:ns:mediadataset'.

registry, sip, realtime

security-consideration §9

A UA needs to verify the policy server's certificate and MUST only accept policies from servers it is configured to trust, as described in RFC 6794 Section 5. Session info and session policy information can be sensitive; the distribution protocol SHOULD ensure authentication, confidentiality, and message integrity.

security, sip, realtime, pkix

security-consideration §9

An attacker could modify or forge session policy documents to increase client processing cost or cause DoS, or to inject fake policies. The protocol distributing session policy documents SHOULD ensure authentication, privacy, and message integrity; use of RFC 6795 meets these requirements.

security, sip, realtime