5.8.3. Semantics Verification (语义验证)
5.8.3. Semantics Verification (语义验证)
假定解析成功完成, 随后对解析后的描述进行评估, 以确保内部一致性以及对必选特性的适当支持. 具体执行下列检查:
-
对每个
m=段, 第 5.1.1 节所列各必选使用特性必须存在有效取值. 这些值可以出现在媒体级, 也可以从会话级继承.-
ICE ufrag 与口令值, 必须符合 [RFC8839] 第 5.4 节规定的长度限制.
-
tls-id 值, 必须按 [RFC8842] 第 5 节设置. 若为再次提议 (re-offer) 或对再次提议的响应, 且 tls-id 与当前所用不同, 则 DTLS 连接未在延续, 远程描述必须属于 ICE 重启的一部分, 并带有新的 ufrag 与口令值.
-
DTLS setup 值, 必须按 [RFC5763] 第 5 节规则设置, 且若存在正在延续的当前 DTLS 连接, 必须与所选角色一致.
-
DTLS 指纹值, 至少必须出现一条指纹.
-
-
a=simulcast行中引用的所有 rid-id 必须作为a=rid行存在. -
还会检查每个
m=段, 确保未使用禁止的特性. -
若 RTP/RTCP 复用策略为
require, 每个m=段必须包含a=rtcp-mux属性. 若某m=段包含a=rtcp-mux-only属性, 该段还必须包含a=rtcp-mux属性. -
若某
m=段存在于先前的应答中, RTP/RTCP 复用状态必须与先前协商的一致.
若本会话描述类型为 pranswer 或 answer, 还应用下列附加检查:
-
会话描述必须遵循 [RFC3264] 第 6 节定义的规则, 包括
m=段数量必须与关联提议中的m=段数量完全一致. -
对每个
m=段, 媒体类型与协议值必须与关联提议中对应m=段的媒体类型与协议值完全一致.
若上述任一检查失败, 处理必须停止并必须返回错误.