跳到主要内容

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 复用状态必须与先前协商的一致.

若本会话描述类型为 pransweranswer, 还应用下列附加检查:

  • 会话描述必须遵循 [RFC3264] 第 6 节定义的规则, 包括 m= 段数量必须与关联提议中的 m= 段数量完全一致.

  • 对每个 m= 段, 媒体类型与协议值必须与关联提议中对应 m= 段的媒体类型与协议值完全一致.

若上述任一检查失败, 处理必须停止并必须返回错误.