在网络视频会议系统中实现网内穿透的方法

文档序号:7926485阅读:366来源:国知局
专利名称:在网络视频会议系统中实现网内穿透的方法
在网络视频会议系统中实现网内穿透的方法
技术领域
本发明涉及计算机通信和网络视频会议系统领域,尤其是涉及一种基于
H 3 2 3协议体系的实体间内网穿透的方法。背景技术
在视频会议系统中,出于安全考虑,多点控制单元(MCU,多点控制 单元,h323终端实体的一种)通常部署在内网,并且有防火墙将公网隔开。 与多点控制单元同在内网的客户端(H323 Endpoint/ H323 EndPort: h323终端 实体的一种,通常缩写成EP,也可称为客户端。)可以直接连上服务器。而 在公网的客户端的连接将被防火墙拦下。如果防火墙开放所有的端口,在公 网的客户端还是无法加入会"i义。私网IP地址无法/人/^网寻址,RAS, Q.931和 H.245信令中的地址信息需要进行网络地址转换,即将多点控制单元的内网 传输地址换成公网的传输地址。同理,在外网的客户端也可能处在某个内网 的防火墙后面。例如图l中所描述的情况多点控制单元位于防火墙NAT1之 后的私网中,客户端EP1位于公网上,客户端EP2位于防火墙NAT2之后的私 网中。 一般情况下,当客户端EP1拨入多点控制单元时,将被防火墙NAT1 拦截。为了解决该问题,可配置防火墙NAT1,防火墙NAT1与多点控制单元 进行端口映射。端口映射解决了客户端EP1拨入多点控制单元的情况,但不 能解决客户端EP2拨入多点控制单元。然而只做端口映射,客户端EP2的音视 数据可以进入多点控制单元,但多点控制单元的音视数据无法到达客户端 EP2,因为客户端EP2不知道自己的网络环境,所以客户端EP2交给多点控制 单元的打开逻辑通道参数带的是私网地址。由于多点控制单元获取不到对方 实际的公网地址,所以不能正确建立RTP会话。
如何解决/人内网到内网防火墙后的H323实体间的呼叫和音视数据传
4送,目前主要存在下面两种方案
第一种是,私网内的H323实体预先获得公网上的服务地址,在信令中直接填写出口NAT(路由、防火墙等设备)上的对外地址。比如STUN方式和TURN方式,要在公网上挂一个Server服务器。如当使用STUN方式进行防火墙穿透时,必须在公网上架设一台具有双网卡的双公网IP的STUN服务器。当处于内网的客户端(EP)拨入处于另一内网的多点控制单元(MCU)后,H323终端实体(无论是客户端或是多点控制单元)在填写打开逻辑通道参数(OLC,打开逻辑通道参数,主要包含有发送方的IP地址和通信端口号)之前,必须与STUN服务器进行通信(发送STUN信令)。通信过程如下1、客户端1向STUN服务器上第一个网卡(IP1: P0RT1 )发送STUN协议信令1。 2、STUN服务器收到信令1后,从第二个网卡(IP2: PORT2)向客户端l发送信令2。 3、客户端收到信令3后向STUN服务器第二个网卡(IP2: P0RT2 )回复信令5。 4、当STUNI良务器收到信令5后,认为该防火墙是可以穿透的,则回复信令6,通过信令6告诉客户端,该客户端前的防火墙地址;如果收不到信令5, STUN服务器iL为此防火墙无法穿透。STUN通过这次通信获得该H323终端实体的防火墙地址,并回复H323终端实体数据包,将H323终端实体所处防火墙的IP地址告诉该H323终端实朱H323终端实体根据得到的地址填写打开逻辑通道参数,并发送给对方。这样对方就根据得到的公网地址,与发起方建立起RTP会话。在STUN方式中,由STUN发送RTP维护数据包,用以维护防火墙上的端口处于活动状态。此种方式的缺点需要在公网上架设服务器,增加系统成本,将服务器暴露在公网上降低系统安全性。
第二种是,通过可信的第三方relay转发,存在的标准:H460。其中,H460.17/H460.18对应于信令,H460.19对应于音视等媒体数据。
H460协议需要用到关守(Gatekeeper )。关守在其中扮演中间人的角色。H460.17使用已存在的H225通道转发信令数据。防火墙通常拒绝拨入,而对拨出 一般比较宽松。H460.18通过关守让内网的H323实体发起对外网的H323的连接。如果外网的H323实体也在防火墙后面,那么H460.18关守充当代理的角色。此种方式的缺点增加了数据包延迟和丟包的可能性。因此,提供一种可正确建立RTP会话,体统安全性高,数据包延迟小,减少丟包可能的一种安全可靠的在网络 f见频会议系统中实现网内穿透的方法实为必要。

发明内容
本发明的目的在于提供一种可正确建立网络视频会话,体统安全性高,数据包延迟小,减少丟包可能的 一种安全可靠的在网络视频会议系统中实现网内穿透的方法。
为实现本发明目的,提供以下技术方案
提供一种在网络视频会议系统中实现网内穿透的方法,包括如下步骤
(1) 程序开始,系统读取配置文件,获得NAT上对本机的端口映射配
置;
(2) 获取映射配置后,终端实体侦听默认TCP端口;
(3) 若有终端接入,将此连接放入连接管理列表中,并为此连接开启225线程并进入下一步,若无终端接入则直接进入下一步;
(4) 如果用户选择程序退出,则退出程序,否则继续侦听默认端口。具体流程如下
将多点控制单元(MCU)上的端口和防火墙上的端口进行映射,分为两个映射段,分别用于UDP和TCP。其中一个TCP端口为系统中所有终端所共知的侦听端口,所有H.323终端实体启动时,都会侦听这个端口,本例采用1720。映射完成后,需要通过某种形式,如将防火墙配置写入配置文件,能够让应用程序知道当前防火墙配置。多点控制单元启动,并侦听默认端口,等待客户端(EP)拨入。
客户端启动,并拨入多点控制单元。当多点控制单元接受连接后,客户端与多点控制单元之间就建立起一条225连接。在连接建立后,客户端填写呼叫连接数据包(setup包),特别是将RTP数据接收地址填写该包中的打开逻辑通道参数(OLC)。在RTP数据接收地址上启动客户端RTP接收线程,接收对方发送的RTP数据。在225连接上发送该数据包到多点控制单元。
多点控制单元根据收到的呼叫连接数据包,解析得到客户端RTP接收地址。在此接收地址上启动多点控制单元RTP发送线程,并发送判断发送数据的的目的地址和目的端口是否处于防火墙后,如果是,则不立即发送数据,等待多点控制单元RTP接收线程的通知,当收到通知,动态调整目的传输地址,再开始发送数据。
多点控制单元回复呼叫连接应答数据包(connect包),判断自身是否处于防火墙后,如果是则在呼叫连接数据包的打开逻辑通道参数中写入可用地址,如果不是则写入本机传输地址。在打开逻辑通道参数上启动多点控制单元RTP接收线程。在225连接上发送该呼叫连接应答数据包。
客户端收到呼叫连接应答数据包,解析得到多点控制单元的接收地址,启动客户端RTP发送线程,向对方的接收地址发送数据。
多点控制单元RTP接收线程在收到对方发送的第一个RTP数据后。通过该RTP会话UDP套接字获得对方的公网地址,与呼叫连接数据包(setup包)中的打开逻辑通道参数比较,如果客户端处于防火墙后,则将客户端公网告诉多点控制单元RTP发送线程,通知其动态调整端口 。
本发明对比现有技术具有如下优点
本发明在基于H323协议的网络视频会议系统中实现网内穿透的方法,可正确建立RTP会话,体统安全性高,数据包延迟小,减少丢包可能,实现安全可靠的网络视频会议。


图l 网络结构图2本发明多点控制单元主线程流程图;图3 本发明多点控制单元225线程流程图;图4本发明多点控制单元RTP发送线程流程图;图5 本发明多点控制单元RTP接收线程流程图。
具体实施方式
请参阅图2~5,本发明在基于H323协议的网络视频会议系统中实现网内穿透的方法的流程示意图。
1. 多点控制单元(MCU)启动后,启动主线程(参见图2),主线程读取程序配置文件,获得防火墙上端口映射信息。配置文件信息如下映射50000~60000端口到服务器,用于UDP传输;映射25000 26000端口 ,用于TCP传输;映射1720端口用于默认侦听。
2. 多点控制单元侦听1720端口,等待客户端拨入a当无客户端拨入,重复步骤2;
b当客户端拨入,则开启225线程(见图3),主线程执行步骤2。
3. 客户端(EP)启动,拨入地址[220.200.54.16:1720]已知的多点控制单元,建立225连接。将本机地址(不需要做可用地址判断)[10.1.4.74: 4080]写入呼叫连接数据包(setup包)中的打开逻辑通道参数(OLC)字段。在[10.1.4.74: 4080]启动客户端的RTP接收线程,接收到达[IO.1.4.74: 4080]的RTP数据。通过225连接发送该呼叫连接数据包。
4. 多点控制单元在225线程中处理接收到呼叫连接数据包a从呼叫连接数据包中取得打开逻辑通道参数字段,从打开逻辑通道参数可获得客户端的传输地址[IO.1.4.74: 4080],在可用地址上启动目的地址为[10丄4.74: 4080]的RTP发送线程(参见图4),并判断目的地址是否为公网地址
(1) 如果为公网地址,可直接向对方对方RTP接收线程发送数据;
(2) 如果为私网地址,则暂时不发送数据,等待多点控制单元RTP接收线程通知对方实际的RTP接收地址
a当接到多点控制单元RTP接收线程的通知后,进行动态地址替换,即将现在的目的地址[10丄4.74: 4080]替换为通知的地址[220.68,27.46: 2050],完成后可向对方RTP接收线程发送RTP数据。
b多点控制单元在呼叫连接回应包(connect包)中的逻辑通打开参数中写入可用地址[220.200.54.13: 50000],在此地址上启动RTP接收线程(参见图5),启动成功后,多点控制单元向客户端发送呼叫连接回应包。
5. 客户端在225连接上接收呼叫连接回应包,分析呼叫连接回应包中的打开逻辑通参数,得到多点控制单元的公网地址[220.200.54.13: 50000],根据此地址启动客户端RTP发送线程,并立即向该地址发送RTP数据。当有应用的RTP发送时发送该应用RTP数据,如果没有应用的RTP数据发送,则每隔15秒发送一个维护的RTP数据,目的是为了保持防火墙2上的端口处于活动状态。
6. 多点控制单元的RTP接收线程在接收到客户端发送的RTP数据,并进行分析
a当前为第一次接收到的RTP数据,从该UDP通信套接字中获得对方实际的公网传输地址[220.68.27.46: 2050],与此前的从呼叫连接数据包中打开逻辑通道参数字段获得的传输地址[10.1.4.74: 4080]相比较,如果中打开逻辑通道参数中的地址不为公网地址,则将实际的公网地址[220.68.27.46: 2050]通知多点控制单元的RTP发送线程。对接收数据做其他处理。b如果不是第一次接收对方的数据,直接对接收数据做其他处理。
以上所述仅为本发明的较佳实施例,本发明的保护范围并不局限于此, 任何基于本发明技术方案上的等效变换均属于本发明保护范围之内。
权利要求
1、一种在网络视频会议系统中实现网内穿透的方法,其特征在于,其包括如下步骤(1)程序开始,系统读取配置文件,获得NAT上对本机的端口映射配置;(2)获取映射配置后,终端实体侦听默认TCP端口;(3)若有终端接入,将此连接放入连接管理列表中,并为此连接开启225线程并进入下一步,若无终端接入则直接进入下一步;(4)如果用户选择程序退出,则退出程序,否则继续侦听默认端口。
2、 如权利要求l所述的在网络视频会议系统中实现网内穿透的方法,其 特征在于,将多点控制单元上的端口和防火墙上的端口进行映射,分为两个 映射段,分别用于UDP和TCP,其中一个TCP端口为系统中所有终端所共知的 侦听端口 。
3、 如权利要求2所述的在网络视频会议系统中实现网内穿透的方法,其 特征在于,在客户端接入该多点控制单元后,客户端填写呼叫连接数据包, 将RTP数据接收地址填写该包中的打开逻辑通道参数,在RTP数据接收地址上 启动客户端RTP接收线程,接收对方发送的RTP数据,在225连接上发送该数 据包到多点控制单元。
4、 如权利要求3所述的在网络-现频会议系统中实现网内穿透的方法,其 特征在于,多点控制单元根据收到的呼叫连接数据包,解析得到客户端RTP 接收地址。在此接收地址上启动多点控制单元RTP发送线程,并发送判断发 送数据的的目的地址和目的端口是否处于防火墙后,如果是,则不立即发送 数据,等待多点控制单元RTP接收线程的通知,当收到通知,动态调整目的 传输地址,再开始发送数据。
5、 如权利要求4所述的在网络视频会议系统中实现网内穿透的方法,其特征在于,多点控制单元回复呼叫连接应答数据包,判断自身是否处于防火 墙后,如果是则在呼叫连接数据包的打开逻辑通道参数中写入可用地址,如果不是则写入本机传输地址,在打开逻辑通道参数上启动多点控制单元RTP 接收线程,在225连接上发送该呼叫连接应答数据包。
6、 如权利要求5所述的在网络视频会议系统中实现网内穿透的方法,其 特征在于,客户端收到呼叫连接应答数据包,解析得到多点控制单元的接收 地址,启动客户端RTP发送线程,向对方的接收地址发送数据。
7、 如权利要求6所述的在网络视频会议系统中实现网内穿透的方法,其 特征在于,多点控制单元RTP接收线程在收到对方发送的第一个RTP数据后, 通过该RTP会话UDP套接字获得对方的公网地址,与呼叫连接数据包中的打开 逻辑通道参数比较,如果客户端处于防火墙后,则将客户端公网告诉多点控 制单元RTP发送线程,通知其动态调整端口。
全文摘要
提供一种在网络视频会议系统中实现网内穿透的方法,其特征在于,其包括如下步骤(1)程序开始,系统读取配置文件,获得NAT上对本机的端口映射配置;(2)获取映射配置后,终端实体侦听默认TCP端口;(3)若有终端接入,将此连接放入连接管理列表中,并为此连接开启225线程并进入下一步,若无终端接入则直接进入下一步;(4)如果用户选择程序退出,则退出程序,否则继续侦听默认端口。本发明实现网内穿透的方法,可正确建立RTP会话,体统安全性高,数据包延迟小,减少丢包可能,较为安全可靠。
文档编号H04L29/06GK101465852SQ200810218638
公开日2009年6月24日 申请日期2008年10月24日 优先权日2008年10月24日
发明者刘明宇, 徐蜀中, 扶冰恒 申请人:广东威创视讯科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1