5.8.3. Semantics Verification
5.8.3. Semantics Verification
Assuming that parsing completes successfully, the parsed description is then evaluated to ensure internal consistency as well as proper support for mandatory features. Specifically, the following checks are performed:
-
For each
m=section, valid values for each of the mandatory-to-use features enumerated in Section 5.1.1 MUST be present. These values MAY be either present at the media level or inherited from the session level.-
ICE ufrag and password values, which MUST comply with the size limits specified in [RFC8839], Section 5.4.
-
A tls-id value, which MUST be set according to [RFC8842], Section 5. If this is a re-offer or a response to a re-offer and the tls-id value is different from that presently in use, the DTLS connection is not being continued and the remote description MUST be part of an ICE restart, together with new ufrag and password values.
-
A DTLS setup value, which MUST be set according to the rules specified in [RFC5763], Section 5 and MUST be consistent with the selected role of the current DTLS connection, if one exists and is being continued.
-
DTLS fingerprint values, where at least one fingerprint MUST be present.
-
-
All rid-ids referenced in an
a=simulcastline MUST exist asa=ridlines. -
Each
m=section is also checked to ensure that prohibited features are not used. -
If the RTP/RTCP multiplexing policy is
require, eachm=section MUST contain ana=rtcp-muxattribute. If anm=section contains ana=rtcp-mux-onlyattribute, that section MUST also contain ana=rtcp-muxattribute. -
If an
m=section was present in the previous answer, the state of RTP/RTCP multiplexing MUST match what was previously negotiated.
If this session description is of type pranswer or answer, the following additional checks are applied:
-
The session description MUST follow the rules defined in [RFC3264], Section 6, including the requirement that the number of
m=sections MUST exactly match the number ofm=sections in the associated offer. -
For each
m=section, the media type and protocol values MUST exactly match the media type and protocol values in the correspondingm=section in the associated offer.
If any of the preceding checks failed, processing MUST stop and an error MUST be returned.