8.3.1 Modifying Address, Port or Transport (修改地址, 端口或传输)
8.3.1 Modifying Address, Port or Transport (修改地址, 端口或传输)
流的端口号可以更改。为此, 提议方创建新的媒体描述, 使其 m 行中的端口号与上一份 SDP 中对应流不同。若仅更改端口号, 则媒体流描述的其余部分应该保持不变。提议方必须在发出 Offer 后立即做好在旧端口与新端口上接收媒体的准备。提议方不应该在收到 Answer 且新媒体已到达新端口之前, 就停止在旧端口上监听媒体, 否则可能在切换过程中丢失媒体。
此处的 "Received (收到)" 是指媒体已递交给媒体宿 (media sink)。这意味着若存在播放缓冲 (playout buffer), 实现应继续在旧端口上监听, 直到新端口上的媒体到达播放缓冲的顶端。此时, 其可以停止在旧端口上监听媒体。
Answer 中对应的媒体流可以与 Answerer 上一份 SDP 中的该流相同, 也可以不同。若 Answerer 接受更新后的流, 其应该立即开始向新端口发送该流的流量。若 Answerer 相对上一份 SDP 更改了端口, 则其必须在发出 Answer 后立即做好在旧端口与新端口上接收媒体的准备。Answerer 不得在媒体到达新端口之前, 就停止在旧端口上监听媒体。此时, 其可以停止在旧端口上监听媒体。对发出带新端口的更新 Offer 的提议方而言, 同样如此: 不得在媒体到达新端口之前, 就停止在旧端口上监听媒体。
当然, 若所提供的流被拒绝, 提议方一收到拒绝即可停止为使用新端口做准备。
若要更改媒体发送目标 IP 地址, 遵循与更改端口号相同的流程, 唯一区别是更新的是连接 (connection) 行而非端口号。
流的传输 (transport) 可以更改。做法与更改端口相同, 只是更新的是传输部分而非端口。