5.3.2. 外观号码和呼叫控制
当生成 INVITE 以尝试桥接或接管呼叫时 (即, 包含具有共享外观组中另一个对话的对话标识符的 Join 或 Replaces), UA 必须首先向外观代理发送 PUBLISH。此 PUBLISH 将包含:
-
<appearance>元素中被加入或替换的呼叫的外观号码 -
如果正在加入对话, 则
<joined-dialog>元素中来自 Join 头字段的对话信息 -
如果正在替换对话, 则
<replaced-dialog>元素中来自 Replaces 头字段的对话信息
请注意, 向外观代理提供此信息是为了使其能够提供适当的外观分配行为。如果在未首先发布的情况下发送 INVITE Join 或 Replaces, 外观代理可能会为此 INVITE 分配新的外观号码, 这将是一个错误。对于 Join, 发布具有 <joined-dialog> 元素以防止外观代理由于重用外观号码而生成 400 (Bad Request) 响应。对于 Replaces, <replaced-dialog> 的目的是防止在 BYE 可能导致外观号码被释放时应该保留在替换对话中的竞态条件。