Skip to main content

5.3.1. 外观号码和呼叫上下文

存在这样的情况, 即 UA 上的两个独立对话没有混合但共享相同的"上下文"。也就是说, 它们彼此相关, 不应像组内任何其他两个对话一样对待。其中一个例子是"咨询呼叫", 用户将现有对话置于保持状态, 然后呼叫另一个用户, 然后再切换回原始对话。另一种情况 (如下所述) 发生在转接操作期间, 在短暂的时间内, UA 与其他两个 UA 进行对话, 但这些对话是相关的, 不应被视为独立的对话。这些情况最好的处理方式是, 当新创建的对话与现有对话共享上下文时, 不为其分配外观号码。但是, 如果预先存在的对话被终止, 则应将其外观号码重新分配给新创建的对话。

希望拨打呼叫但尚未分配外观号码的 UA 在发送 INVITE 之前发送 PUBLISH。PUBLISH 不包含 'appearance' 元素, 但包含 'shared' Event 头字段参数。如果外观代理策略不允许没有分配外观号码的呼叫, 则外观代理会发送 400 (Bad Request) 响应, 并且 UA 将重新发布, 选择/占用外观号码或在不发布的情况下发送 INVITE, 在这种情况下, 外观代理将分配一个。

请注意, 如果外观代理拒绝没有外观号码的呼叫, 则某些操作 (如咨询呼叫、转接和保持音乐) 可能会受到负面影响。