跳到主要内容

5.2.2. Subsequent Offers (后续提议)

5.2.2. Subsequent Offers (后续提议)

当第二次 (或更晚) 调用 createOffer 或在已经安装本地描述后调用时, 处理过程与初始提议有所不同。

如果之前的提议未使用 setLocalDescription 应用, 这意味着 PeerConnection 仍处于 "stable" 状态, 则必须遵循生成初始提议的步骤, 但需遵守以下限制:

  • "o=" 行的字段必须保持不变, 除了 <session-version> 字段, 如果提议可能与之前调用 createOffer 的输出不同, 则该字段必须在每次调用 createOffer 时增加一; 实现可以选择在每次调用时都增加 <session-version>。

如果之前的提议使用 setLocalDescription 应用了, 但来自远程端的相应应答尚未应用, 这意味着 PeerConnection 仍处于 "have-local-offer" 状态, 则通过遵循上述 "stable" 状态的步骤来生成提议, 并有以下例外:

  • "s=" 和 "t=" 行必须保持不变。
  • 每个 "a=mid" 行必须保持不变。
  • 每个 "a=ice-ufrag" 和 "a=ice-pwd" 行必须保持不变, 除非 ICE 配置已更改或指定了 IceRestart 选项。
  • 对于仍然存在的 RtpTransceiver, "a=rid" 行必须保持不变。
  • 对于仍然存在的 RtpTransceiver, 任何 "a=simulcast" 行必须保持不变。