5.3.2. 外观编号和呼叫控制
当生成 INVITE 以尝试桥接或接管呼叫时 (即, 其中包含 Join 或 Replaces, 且该头字段带有共享外观组 (shared appearance group) 中另一个对话的对话标识符), UA MUST 首先向外观代理发送 PUBLISH. 此 PUBLISH 将包含:
-
在
<appearance>元素中包含被加入或被替换呼叫的外观编号 -
如果正在加入该对话, 则在
<joined-dialog>元素中包含来自 Join 头字段的对话信息 -
如果正在替换该对话, 则在
<replaced-dialog>元素中包含来自 Replaces 头字段的对话信息
请注意, 向外观代理提供这些信息是为了让它能够执行正确的外观分配行为. 如果未先发布就发送带有 Join 或 Replaces 的 INVITE, 外观代理可能会为该 INVITE 分配新的外观编号, 这将是错误的. 对于 Join, 发布中包含 <joined-dialog> 元素, 以防止外观代理因外观编号复用而生成 400 (Bad Request) 响应. 对于 Replaces, <replaced-dialog> 的用途是防止一种竞态条件: BYE 可能导致外观编号被释放, 而此时该编号本应继续归替换对话使用.