基于XMPP协议的数字家庭网络可视电话设计与实现

2011-08-10 04:43
电视技术 2011年1期
关键词:数字家庭通信地址音视频

张 勇

(中山大学 信息科学与技术学院,广东 广州 510006)

责任编辑:任健男

0 引言

随着网络技术的快速发展和网络基础设施的逐步加强,高速的网络为流媒体的普及提供了可能。近些年,视频电话的研发也逐渐升温。本文基于XMPP协议提出一种适用于数字家庭网络环境下的视频电话系统,旨在将视频电话与数字家庭视频系统进行融合,为用户提供便利舒适的通话体验。

XMPP协议[1-3]是一种扩展消息和表示协议,XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性,用于即时消息(IM)以及在线现场探测,其扩展协议Jingle使得其支持语音和视频。

ICE(Interactive Connectivity Establishment)是一种用于解决计算机网络中NAT穿透问题[4-6]的常用技术,被广泛应用于VoIP,P2P传输系统,即时通信等领域。ICE是由IETF的MMUSIC工作组开发出来的一种 framework,可整合 STUN(Simple Traversal of UDP Through Network Address Translators)[7-8]、TURN等NAT穿透技术。本系统将ICE技术与STUN技术进行整合完成NAT穿透,从而实现客户端之间的直接通信,提高了音视频传输的实时性。

1 相关技术分析

1.1 XMPP协议与会话建立

XMPP协议是一种扩展消息和表示协议,XMPP是一种基于XML的协议,它继承了在XML环境中灵活的发展性。XMPP协议定义了3种一级XML标签:<pres⁃ence/>,<iq/>和<message/>。<presence/>标签用于描述客户端本身的状态及可用性信息;<iq/>标签用于客户之间建立会话;<message/>标签用于客户端之间发送消息。

在会话建立过程中,客户端通过<iq/>描述本次会话本身的属性,包括接收流媒体数据的网络实体地址、本地流媒体类型及载荷基本属性等。其中网络实体地址是通过STUN协议通过STUN Server获得的公网通信地址(STUN协议将在下一节介绍)。图1描述了音频通话的会话过程,在此过程中主要包括ses⁃sion-initiate,session-info,session-accept,session-ter⁃minate等动作,在会话成功建立后,会话成员使用con⁃tent-add,content-modify,content-accept等动作添加新媒体——视频(图中未体现)。

1.2 STUN与ICE技术

图1 XMPP协议会话建立过程示意图

视频电话要解决的另一个关键问题是音视频数据的实时传输,一个高效的音视频数据传输方案直接影响视频电话系统的可用性,更是关系到用户体验的关键问题。如果通过服务器转发音视频数据流,不仅增加了服务器的负荷,同时也大大影响了通话的实时性。XMPP协议描述以中ICE技术解决客户端间对等通信问题,本文结合ICE技术介绍一种基于STUN协议的音视频数据对等实时传输方案。

STUN是一个轻量级的协议,其算法实现了各种类型的NAT穿透(如图2所示),是一个常用的NAT穿透协议。

图2 STUN协议算法流程

视频会话参与者通过STUN协议获取自身在公网上的通信地址,并在会话建立的过程中通过XML描述告知媒体接收端。会话成功建立后,会话参与者便可与其他参与者实现音视频数据的对等传输。

到目前为止,STUN协议仅仅完成的是外网通信地址的获取,在负责多变的网络环境下,要保证会话双方通信的稳定性这远远不够。在这种情况下,ICE技术应运而生。ICE技术能够在复杂网络环境下,实现各种形式的NAT穿透,使得媒体流在通信双方顺利传输。

ICE技术是一种探索式的解决方案,其核心思想是收集本地及会话对方的所有可能通信地址,并对这些地址进行连通性检查,从而得到一条能够实现NAT穿透的通信链路。为保证通信的稳定性,在通信过程中需要不断更新地址信息。

2 系统总体设计

2.1 物理架构设计

基于数字家庭环境的视频电话的关键问题之一是将其与电视系统及视频监控系统的整合。就此考虑,论文讨论的视频电话客户端被分为视频采集设备、视频接收解码设备(整合到家庭视频系统中)及会话管理设备,如图3所示,它们都接入到家庭网络中,并利用家庭网络进行数据交换。

1)会话管理设备,完成XMPP协议的会话功能及STUN协议的客户端功能,同时需要对视频采集及接收设备进行调度。

2)视频采集编码设备,采集摄像头的数据并对视频数据进行编码(采用流媒体编码格式,如H.264,WebM等)。该设备接受会话管理设备的调度,与远程客户端的视频解码设备进行直接通信。

3)视频接收解码设备,接收来自远程客户端及视频采集设备的视频数据,并对其进行解码后播放,或通过DLNA将其推送到其他视频设备播放。

图3 系统物理结构图

视频电话服务器是一个通用的Jabber服务器,主要负责所有用户信息及会话请求的转发,同时还允许搭载一个STUN服务器。

2.2 软件设计

根据需求客户端软件的主要模块有XMPP会话管理、STUN客户端、ICE连接管理、设备调度、视频采集编码模块、视频解码播放模块。

系统采用P2P架构进行视频传输,因此,首先需要通过STUN和ICE获取本地视频采集设备的外网通信地址实现NAT穿透,外网通信地址通过XMPP的candidate标签发送给其他会话参与者。同时设备调度模块通过ICE连接管理模块定时检测并获取其他会话参与者外网通信地址。会话参与者获得其他参与者的外网地址后,便可以直接向其发送音视频数据,而不需要通过服务器转发。图4描述了视频会话启动流程。

3 结束语

信息时代,网络技术和信息技术的发展给人们的生活带来了许多便利,与此同时,市场对信息产品的要求也不断提高,传统的电话已无法满足日益增长的需求。在这一背景下,视频电话应运而生并在这几年得到了很好的发展。本文结合数字家庭产业环境,介绍了一种基于XMPP协议和ICE技术的视频电话系统,并将其与数字家庭视频系统完美结合,为数字家庭用户带来一种新型的视频通话体验。

图4 视频会话启动流程图

[1]RFC 3920-3921,Extensible Messaging and Presence Protocol(XMPP):Core/Introduction[S].2004.

[2]Jabber Inc.Jabber White Paper:the XMPP cloud[EB/OL].[2008-11-05].http://www.jabber.com/CE/White-Paper.

[3]Jabber Inc.Core XMPP protocolstack[EB/OL].[2009-08-15].http://xmpp.org/protocols/.

[4]孙名松,段志鸣,王湛昱.混合式P2P网络UDP下NAT穿越方案的研究与设计[J].计算机与数字工程,2010(4):104-107.

[5]李航,马林华.IP音视频穿越NAT技术的研究[J].通信技术,2008(3):65-67.

[6]周晔,李生红.基于ICE的VoIP穿越NAT改进方案[J].计算机安全,2008(10):29-32.

[7]ROSENBERG J,WEINBERGER J.RFC 3489,STUN-simple tra⁃versal of user datagram protocol through network address transla⁃tors[S].2003.

[8]史永林,潘进.STUN技术深入分析[J].电脑知识与技术,2006,23(8):71-72.

猜你喜欢
数字家庭通信地址音视频
Microchip推出首款车载以太网音视频桥接(AVB)全集成解决方案
加快数字家庭示范社区建设
3KB深圳市一禾音视频科技有限公司
WIFI音视频信号传输的关键问题探究
高速公路整合移动音视频系统应用
湖北广电与思科合作开展数字家庭业务
参加《检验医学》“检验医学新技术”继续教育的回执(复印有效)
声 明
声明
参加《检验医学》“检验医学新技术”继续教育的回执(复印有效)