IEC 29341-20-11:UPnP电话呼叫服务标准

ISO/IEC 29341-20-11 — 电话 — 通用即插即用呼叫服务规范

UPnP电话呼叫服务概述

ISO/IEC 29341-20-11标准定义了UPnP电话呼叫服务,这是UPnP电话体系结构中的核心组件,可在家庭和小型企业网络中实现呼叫控制功能。该服务规范提供了一个标准化接口,用于通过IP网络发起、管理和终止电话呼叫,同时支持音频和视频通信会话。它抽象了底层电话基础设施,使IP电话、软电话、媒体服务器和家庭网关等多种设备能够在多供应商环境中无缝互操作。该服务还支持紧急呼叫处理、呼叫转移、多方会议和呼叫等待等高级补充功能,满足从个人通信到企业协作的多样化需求。

UPnP电话呼叫服务利用ISO/IEC 29341-1中定义的标准UPnP设备架构(UDA),确保所有支持UPnP的电话设备之间具有一致的发现、描述和事件通知机制。

服务架构与状态变量

呼叫服务公开一组反映网络中电话呼叫当前状态的状态变量。关键状态变量包括CallState(空闲、拨号、振铃、已连接、保持、会议等)、ActiveCallList(使用唯一标识符枚举所有当前活动呼叫)以及LineStatus(指示电话线路的可用性)。每个呼叫会话由唯一的CallID标识,服务维护用于诊断和计费目的的呼叫历史记录。呼叫服务还提供了详细的通话统计信息,包括呼叫时长、接通率和平均呼叫建立时间,为网络质量监控和用户体验优化提供数据支持。

管理呼叫转换的状态机遵循适用于分组交换网络的ITU-T Q.931建议。状态之间的转换由Dial(拨号)、Answer(应答)、Hangup(挂断)、Hold(保持)、Retrieve(取回)、Conference(会议)和Transfer(转接)等操作触发,每个操作都映射到具有明确定义的输入和输出参数的相应UPnP操作。该状态机还支持呼叫保持音乐播放、静音控制和通话录音等增强功能的状态转换,为开发者提供灵活的呼叫功能扩展能力。

实现者必须处理并发来电、呼叫等待指示和网络发起的断开等边界情况。当任何一方或由于网络故障终止呼叫时,状态机必须正确转换到空闲状态。

关键操作与用例

操作 描述 必需参数
Dial(拨号) 向指定的URI发起呼出 CallTargetURI, PreferredMedia
Answer(应答) 接收入呼叫会话 CallID
Hangup(挂断) 终止活动呼叫会话 CallID
Hold(保持) 将活动呼叫置于保持状态 CallID
Conference(会议) 将多个呼叫合并为会议会话 CallIDList
Transfer(转接) 将呼叫转接到另一个URI CallID, TargetURI
SendDTMF(发送DTMF) 在呼叫期间发送DTMF音 CallID, Digits

典型用例包括基本的点对点呼叫、三方会议、呼叫转接以及与媒体服务器集成以实现语音邮件和自动话务员服务。该服务还支持主叫号码显示、呼叫等待通知和匿名呼叫拒绝等补充服务。此外,呼叫服务支持基于用户状态的路由策略,可以根据用户的在线状态自动选择呼入路由目标。

呼叫服务的事件通知机制支持控制点上的实时UI更新。当呼叫状态发生变化时,服务向所有订阅的控制点发送事件通知,使应用程序无需轮询即可显示振铃提示、呼叫时长计时器和线路状态指示器。

工程设计要点

在实现UPnP电话呼叫服务时,必须特别注意UPnP状态机与底层SIP或H.323协议栈之间的同步。服务作为抽象层,将UPnP操作映射到SIP方法(例如,Dial对应INVITE,Hangup对应BYE,Hold对应带有保持SDP的re-INVITE)。必须最小化UPnP控制路径引入的延迟,以避免呼叫建立过程中出现可察觉的延迟。

安全考虑包括呼叫控制请求的认证、通过TLS加密信令消息、以及URI参数的验证以防止话费欺诈和未授权呼叫。制造商还应对Dial操作实施速率限制,以减轻自动化拨号场景中的滥用风险。

未能正确实现呼叫状态机可能导致资源泄漏——孤立媒体通道、控制点上卡住的状态指示器以及计费差异。始终为半开呼叫实现基于超时的清理,并严格根据标准中定义的状态图验证状态转换。

常见问题

问:UPnP呼叫服务是否支持视频呼叫?
答:支持。PreferredMedia参数允许指定纯音频或音视频媒体配置文件。该服务与支持UPnP AV架构进行视频渲染的媒体接收器互操作。
问:该服务支持多少并发呼叫?
答:标准未规定具体限制。数量取决于实现,并通过MaxActiveCalls状态变量公告。典型的住宅实现支持2至6个并发呼叫。
问:底层信令是否必须使用SIP?
答:不是。虽然SIP是最常见的传输协议,但标准对底层信令协议不做限制。只要UPnP状态机行为得以保持,实现可以使用H.323、专有协议甚至模拟FXO/FXS接口。
问:呼叫服务如何处理网络中断?
答:服务通过KeepAlive机制和注册的到期计时器来检测网络中断。当检测到网络故障时,受影响呼叫的状态转换为CallState_Disconnected,并通过事件通知控制点。

发表回复

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