9. 与非共享外观 UA 的互操作 (Interoperability with Non-shared Appearance UAs)
允许不直接支持共享外观 (shared appearance) 的基础 UA 成为共享外观组的一部分是有价值的. 为支持这一点, 代理 (Proxy) 必须与外观代理 (Appearance Agent) 协作. 这在基本共享外观架构中并非必需; 因此, 并非所有共享外观部署都能提供与非共享外观 UA 的共享外观互操作.
首先讨论不支持对话事件或共享外观特性的 UA. 然后讨论支持对话事件但不支持共享外观特性的 UA.
9.1. 外观分配 (Appearance Assignment)
不了解外观的 UA 只有在外观代理为其分配时, 才会在外呼中具有外观号码. 如果非共享外观 UA 不支持 Join 或 Replaces, 所有对话都 SHOULD 标记为 "exclusive", 以指示这些选项不可用. 将这些对话标记为 "exclusive" 能提供更好的用户体验, 并避免额外的 SIP 消息失败.
9.2. 外观释放 (Appearance Release)
在所有情况下, 外观代理都必须感知对话生命周期, 以便将外观释放回组中.
还希望通过对话事件包 (Dialog Event Package) 将任何对话状态变化 (例如 hold 等) 提供给组内其他 UA. 如果外观代理包含一个代理, 并且该代理对来自不感知共享外观的 UA 的对话执行 Record-Route, 外观代理就会了解这些对话的状态, 包括 hold 等. 这些信息可以通过检查未端到端加密的 INVITE 和 re-INVITE 消息来确定, 并加入传送给其他 UA 的对话信息中.
9.3. 支持对话事件但不支持共享外观的 UA (UAs Supporting Dialog Events but Not Shared Appearance)
与支持对话事件但不支持共享外观特性的 UA 互操作更为直接. 与前述情况一样, 所有外观号码分配都必须由外观代理完成. 外观代理仍然 SHOULD 在 NOTIFY 中包含外观信息 -- 此类 UA 只会忽略这些额外信息. 这种 UA 还会忽略外观号码限制, 并且可能尝试加入或替换标记为 exclusive 的对话. 因此, 代理或 UA 需要拒绝此类请求, 否则这些对话将被加入或接管.