A User Agent Profile Data Set for Media Policy
Extracted elements (30)
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.
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.
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.
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.
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.
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.
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.
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.
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').
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.
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.
The 'direction' attribute restricts a property to a specific stream direction: 'sendonly', 'recvonly', or 'sendrecv' (default). It is used to express unidirectional media properties.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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'.
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.
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.