IEC 29341-20-2:UPnP电话体系架构标准

ISO/IEC 29341-20-2 — 电话 — 通用即插即用体系架构规范

UPnP电话体系架构概述

ISO/IEC 29341-20-2标准定义了UPnP电话的总体体系架构,建立了所有其他电话服务(呼叫、消息、设备、媒体、设置)运行的框架。该体系架构标准规定了组件模型、服务关系、发现机制和通信模式,使得跨异构家庭和小型企业网络的可互操作电话解决方案成为可能。它是确保整个UPnP电话设备和服务器生态系统的一致性和可组合性的基础文档。

将ISO/IEC 29341-20-2视为支持电话的智能家居的蓝图。它定义了电话设备如何相互发现、服务如何组合成功能性的电话端点、以及控制点如何与电话基础设施交互而无需了解底层协议细节。

架构组件与分层

UPnP电话体系架构遵循分层模型。最底层是传输层,处理物理和网络连接——以太网、Wi-Fi和IP网络。其上是信令层,将SIP、H.323或专有协议抽象在UPnP电话服务接口之后。服务层包含四个电话特定服务(设备、呼叫、媒体、消息)以及用于初始配置的设置服务。最顶层是应用层,托管消费电话服务的控制点和面向用户的应用程序。

标准定义了两种主要设备类型:电话客户端设备(TCD),代表可以发起和接收呼叫的端点,以及电话服务器设备(TSD),为网络上的多个客户端提供电话服务。TSD可能是家庭网关或IP-PBX,在UPnP电话网络和外部电话网络(PSTN、蜂窝网络或VoIP提供商)之间桥接。TCD通常是电话手柄、软电话或智能音箱。

TCD和TSD之间的区别是逻辑上的而非物理上的。单个硬件设备可以同时充当电话客户端和电话服务器,在不同的网络接口上或为不同的用户账户托管这两种角色。实现者必须确保适当的关注点分离,以避免服务发现和事件路由中的冲突。

服务组合与互操作性

服务 角色 依赖关系
电话设备服务 设备能力、线路配置、注册 无(根服务)
电话呼叫服务 呼叫信令、状态机、会话管理 设备服务(托管)
电话媒体服务 媒体流控制、编解码器协商、重定向 设备服务、呼叫服务
电话消息服务 统一消息、语音邮件、短信、即时消息 设备服务(托管)
电话设置服务 初始配置、账户设置、网络设置 设备服务

服务组合遵循UPnP标准嵌入模型。设备服务充当根容器,通过其设备描述文档中的服务列表嵌入对其他服务的引用。发现电话设备的控制点可以立即枚举所有可用的电话服务及其能力,无需额外的发现往返。这种组合模型支持模块化实现,制造商可以只实现与其设备类别相关的服务。

关注点的架构分离是标准最强的特性之一。通过将呼叫信令与媒体控制和消息隔离,架构允许每个服务独立演进。制造商可以更新媒体服务以支持新的编解码器,而不影响呼叫服务的状态机——这极大地简化了跨设备代的固件维护工作。

工程设计要点

在设计UPnP电话系统时,服务粒度的选择对设备资源利用具有重要影响。资源受限的物联网设备可能只实现具有基本音频支持的设备服务和呼叫服务,而功能齐全的智能家居中心则实现所有五个服务以及全面的媒体和消息能力。体系架构标准通过其配置文件概念明确容纳了这种灵活性——每个设备声明一个TelephonyProfile,表明它支持哪些服务和能力。

跨服务的事件同步带来了架构挑战。当呼叫操作触发媒体状态变更时,呼叫服务和媒体服务都必须发出一致的事件通知。标准建议在设备内使用共享状态管理层,该层序列化状态转换并确保跨服务边界的事件顺序得以保持。没有这一点,控制点可能会在媒体流实际就绪之前收到”呼叫已连接”事件,导致用户界面更新中的竞态条件。

UPnP电话实现中一个常见的架构错误是呼叫服务和媒体服务之间的紧密耦合。虽然它们在逻辑上是相关的,但应该作为具有明确定义接口的独立状态机来实现。紧密耦合会造成脆弱性——媒体编解码器协商中的错误可能会破坏呼叫状态机。始终以服务独立性为目标进行设计,使用UPnP事件机制作为服务之间的唯一通信通道。

常见问题

问:UPnP电话体系架构如何处理NAT穿越?
答:该架构支持使用STUN和ICE进行媒体流的NAT穿越。设备服务公开NAT能力和从STUN服务器获取的公共IP地址,从而能够为跨越NAT边界的媒体会话生成正确的SDP。
问:该架构能否同时支持多个电话提供商?
答:可以。设备服务支持多个线路配置,每个配置具有独立的提供商凭据。控制点可以选择使用哪条线路进行呼出,并且该架构支持同时向多个提供商注册。
问:是否有专门针对电话设备的发现机制?
答:该架构通过SSDP利用标准UPnP发现。电话设备使用特定的设备类型URN(urn:schemas-upnp-org:device:TelephonyClient:1或TelephonyServer:1)广播其存在,使控制点能够专门筛选电话设备。
问:标准如何处理固件向后兼容性?
答:体系架构通过版本化服务定义确保向后兼容性。较新版本的服务会包含所有先前版本的操作和状态变量。设备描述文档中声明的服务版本号使控制点能够相应地调整其行为。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注