一种用于SIP通信系统的网络穿越方法技术方案

技术编号:18951566 阅读:39 留言:0更新日期:2018-09-15 13:31
本发明专利技术提出一种用于SIP通信系统的网络穿越方法,实现步骤为:(1)对主叫客户端和被叫客户端进行初始化;(2)主叫客户端向被叫客户端发起会话请求;(3)被叫客户端接收INVITE请求并响应会话;(4)被叫客户端获取主叫候选通信地址,主叫客户端获取被叫候选通信地址;(5)主叫客户端获取被叫媒体流传输地址,被叫客户端获取主叫媒体流传输地址;(6)主叫客户端和被叫客户端进行媒体流传输。本发明专利技术具有服务器负荷小,通信时延和丢包率低的优点,可用于多媒体数据的点对点传输。

A network traversal method for SIP communication system

The invention provides a network traversal method for SIP communication system, and the implementation steps are: (1) initializing the calling client and the called client; (2) the calling client initiates a session request to the called client; (3) the called client receives the INVITE request and responds to the session; (4) the called client obtains the calling candidate communication place. The calling client obtains the called candidate communication address; (5) The calling client obtains the called media streaming transmission address, and the called client obtains the calling media streaming transmission address; (6) The calling client and the called client carry out media streaming transmission. The invention has the advantages of small server load, low communication delay and packet loss rate, and can be used for point-to-point transmission of multimedia data.

【技术实现步骤摘要】
一种用于SIP通信系统的网络穿越方法
本专利技术属于网络数据传输
,涉及一种用于SIP通信系统的网络穿越方法,可用于多媒体数据的点对点传输。
技术介绍
会话初始协议(SIP,SessionInitiationProtocol)是一个应用层的信令控制协议,用于创建、修改、释放会话。SIP协议具有灵活、可扩充的优点,广泛应用于语音、视频等数据业务。SIP通信系统主要包含客户端和服务器,其中客户端包含主叫客户端和被叫客户端。每个客户端包括会话控制模块、多媒体处理模块和网络穿越模块。其中,会话控制模块使用SIP协议进行会话的创建和释放;多媒体处理模块进行多媒体数据的采集,编解码,呈现等;网络穿越模块主要完成网络穿越。SIP通信系统客户端常在局域网中使用,局域网通过网络地址转换(NAT,NetworkAddressTranslation)设备与公网连接。NAT设备的主要工作是对TCP和UDP的地址信息进行修改,把内网地址转换成公网地址。NAT可以分为两类,一类是具有相同内网的IP和端口的不同会话,映射到相同的外网IP和端口,即锥形NAT;另一类是具有相同内网IP和端口的不同会话,映射到相同IP和不同端口,即对称型NAT。NAT设备是在TCP/IP层以下进行处理的,但是SIP协议在应用层。SIP协议中媒体流的地址信息不能被NAT设备修改,因此SIP协议中保存的是通信对端的私网地址,使用这个地址是不能正常通信的。为了解决这一问题,就需要进行网络穿越,常见的网络穿越方法有NAT的UDP简单穿越(STUN,SimpleTraversalofUDPthroughNAT)和通过Relay方式穿越NAT(TURN,TraversalUsingRelayNAT)等。在STUN协议中,客户端通过向STUN服务器发消息,查询其公网映射地址,这样在NAT设备上就有了对应的映射表项,之后就可以进行数据传输。在TURN协议中,客户端通过某种机制得到TURN服务器上的公网地址,之后通信两端的报文都经过TURN服务器转发给对端。目前常见的SIP通信系统使用STUN和TURN相结合的方式来解决对称型NAT的穿越,例如授权公告号为CN10245580B、名称为“NAT穿越方法及系统”的中国专利,公开了一种穿越NAT的方法及系统。通信节点根据获得的通信接收节点的通信地址和第一鉴权信息,发起自身通信地址到通信接收节点的第一单向联通性测试,并根据第一单向联通性测试结果,选择能够互相通信的通信地址对。该专利技术解决了传统网络穿越方法中存在的无法穿越对称型NAT的问题。但是,在联通性测试时,使用了TURN协议,通信两端需要以服务器作为中继进行数据传输,这会使服务器负荷增大,同时数据传输的时延和丢包率也会增大。
技术实现思路
本专利技术的目的是克服上述现有技术存在的缺陷,提出一种应用于SIP通信系统的网络穿越方法,旨在降低服务器负荷,并减少通信时延和丢包率。为实现上述目的,本专利技术采取的技术方案为:一种用于SIP通信系统的网络穿越方法,所述SIP通信系统包括客户端和服务器,其中,所述客户端包括主叫客户端和被叫客户端,每个客户端包括会话控制模块、媒体处理模块和网络穿越模块,穿越方法包括如下步骤:(1)对主叫客户端和被叫客户端进行初始化;(2)主叫客户端向被叫客户端发起会话请求:(2a)主叫客户端向服务器发起STUN探测,得到主叫候选通信地址;(2b)主叫客户端将主叫候选通信地址添加到SDP描述中,并将添加有主叫候选通信地址的SDP描述添加到SIP协议的INVITE请求中,然后将INVITE请求发送给被叫客户端;(3)被叫客户端接收INVITE请求并响应会话:(3a)被叫客户端接收INVITE请求,并向服务器发起STUN探测,得到被叫候选通信地址;(3b)被叫客户端将被叫候选通信地址添加到SDP描述中,并将添加有被叫候选通信地址的SDP描述添加到SIP协议的200OK响应中,然后将200OK响应发送给主叫客户端;(4)被叫客户端获取主叫候选通信地址,主叫客户端获取被叫候选通信地址:(4a)被叫客户端对INVITE请求进行解析:被叫客户端从INVITE请求中分离出SDP描述,然后从SDP描述中读取出主叫候选通信地址;(4b)主叫客户端对200OK响应进行解析:主叫客户端从200OK响应中分离出SDP描述,然后从SDP描述中读取出被叫候选通信地址;(5)主叫客户端获取被叫媒体流传输地址,被叫客户端获取主叫媒体流传输地址:(5a)主叫客户端向被叫客户端发起地址协商会话:主叫客户端向被叫候选通信地址发起探测,查询可用通信地址是否存在,若是,则对可用通信地址进行分级,得到最优可用通信地址,并将最优可用通信地址作为被叫媒体流传输地址,否则,对被叫媒体流传输端口进行预测,得到被叫媒体流传输地址;(5b)被叫客户端向主叫客户端发起地址协商会话:被叫客户端向主叫候选通信地址发起探测,查询可用通信地址是否存在,若是,则对可用通信地址进行分级,得到最优可用通信地址,并将最优可用通信地址作为主叫媒体流传输地址,否则,对主叫媒体流传输端口进行预测,得到主叫媒体流传输地址;(6)主叫客户端和被叫客户端进行媒体流传输:主叫客户端向被叫媒体流传输地址发送媒体流数据,同时被叫客户端向主叫媒体流传输地址发送媒体流数据。本专利技术与现有技术相比,具有如下优点:本专利技术在被叫客户端向主叫客户端发起地址协商会话和被叫客户端向主叫客户端发起地址协商会话时,通过端口预测来完成对称型NAT的穿越,端口预测成功后,媒体流可以点对点传输,避免了现有使用TURN协议的通信系统需要使用服务器中继转发的缺点,降低了服务器负荷,并减少了通信的时延和丢包率低。附图说明图1是本专利技术的实现流程图。具体实施方式以下结合附图和具体实施例,对本专利技术作进一步详细说明:参考图1,一种用于SIP通信系统的网络穿越方法,所述SIP通信系统包括客户端和服务器,其中,所述客户端包括主叫客户端和被叫客户端,每个客户端包括会话控制模块、媒体处理模块和网络穿越模块,穿越方法包括如下步骤:步骤1,对主叫客户端和被叫客户端进行初始化:所述初始化包含对会话控制模块、媒体处理模块和网络穿越模块的初始化,首先申请内存,创建对应的数据结构,并对数据结构赋初值。初始化完成后,就能正常使用这些模块。步骤2,主叫客户端向被叫客户端发起会话请求:步骤2a,主叫客户端向服务器发起STUN探测,得到主叫候选通信地址;所述探测由主叫客户端网络穿越模块发起,探测遵循STUN协议,实现步骤为:客户端向服务器发送BindingRequest,服务器给客户端返回BindingSuccessResponse响应,该响应包含了MAPPED-ADDRESS字段,公网映射地址就包含在这个字段中。探测的次数根据客户端使用的通信地址数目来确定,如果是视频会话则需要的通信地址有两个,一个用于视频,一个用于语音。所述的候选通信地址就包括客户端本机地址和公网映射地址。步骤2b,主叫客户端将主叫候选通信地址添加到SDP描述中,并将添加有主叫候选通信地址的SDP描述添加到SIP协议的INVITE请求中,然后将INVITE请求发送给被叫客户端;该步骤由主叫客户端的会话控制模块完成,所述主叫候选通信地址包括IP本文档来自技高网
...

【技术保护点】
1.一种用于SIP通信系统的网络穿越方法,其特征在于,包括如下步骤:(1)对主叫客户端和被叫客户端进行初始化;(2)主叫客户端向被叫客户端发起会话请求:(2a)主叫客户端向服务器发起STUN探测,得到主叫候选通信地址;(2b)主叫客户端将主叫候选通信地址添加到SDP描述中,并将添加有主叫候选通信地址的SDP描述添加到SIP协议的INVITE请求中,然后将INVITE请求发送给被叫客户端;(3)被叫客户端接收INVITE请求并响应会话:(3a)被叫客户端接收INVITE请求,并向服务器发起STUN探测,得到被叫候选通信地址;(3b)被叫客户端将被叫候选通信地址添加到SDP描述中,并将添加有被叫候选通信地址的SDP描述添加到SIP协议的200OK响应中,然后将200OK响应发送给主叫客户端;(4)被叫客户端获取主叫候选通信地址,主叫客户端获取被叫候选通信地址:(4a)被叫客户端对INVITE请求进行解析:被叫客户端从INVITE请求中分离出SDP描述,然后从SDP描述中读取出主叫候选通信地址;(4b)主叫客户端对200OK响应进行解析:主叫客户端从200OK响应中分离出SDP描述,然后从SDP描述中读取出被叫候选通信地址;(5)主叫客户端获取被叫媒体流传输地址,被叫客户端获取主叫媒体流传输地址:(5a)主叫客户端向被叫客户端发起地址协商会话:主叫客户端向被叫候选通信地址发起探测,查询可用通信地址是否存在,若是,则对可用通信地址进行分级,得到最优可用通信地址,并将最优可用通信地址作为被叫媒体流传输地址,否则,对被叫媒体流传输端口进行预测,得到被叫媒体流传输地址;(5b)被叫客户端向主叫客户端发起地址协商会话:被叫客户端向主叫候选通信地址发起探测,查询可用通信地址是否存在,若是,则对可用通信地址进行分级,得到最优可用通信地址,并将最优可用通信地址作为主叫媒体流传输地址,否则,对主叫媒体流传输端口进行预测,得到主叫媒体流传输地址;(6)主叫客户端和被叫客户端进行媒体流传输:主叫客户端向被叫媒体流传输地址发送媒体流数据,同时被叫客户端向主叫媒体流传输地址发送媒体流数据。...

【技术特征摘要】
1.一种用于SIP通信系统的网络穿越方法,其特征在于,包括如下步骤:(1)对主叫客户端和被叫客户端进行初始化;(2)主叫客户端向被叫客户端发起会话请求:(2a)主叫客户端向服务器发起STUN探测,得到主叫候选通信地址;(2b)主叫客户端将主叫候选通信地址添加到SDP描述中,并将添加有主叫候选通信地址的SDP描述添加到SIP协议的INVITE请求中,然后将INVITE请求发送给被叫客户端;(3)被叫客户端接收INVITE请求并响应会话:(3a)被叫客户端接收INVITE请求,并向服务器发起STUN探测,得到被叫候选通信地址;(3b)被叫客户端将被叫候选通信地址添加到SDP描述中,并将添加有被叫候选通信地址的SDP描述添加到SIP协议的200OK响应中,然后将200OK响应发送给主叫客户端;(4)被叫客户端获取主叫候选通信地址,主叫客户端获取被叫候选通信地址:(4a)被叫客户端对INVITE请求进行解析:被叫客户端从INVITE请求中分离出SDP描述,然后从SDP描述中读取出主叫候选通信地址;(4b)主叫客户端对200OK响应进行解析:主叫客户端从200OK响应中分离出SDP描述,然后从SDP描述中读取出被叫候选通信地址;(5)主叫客户端获取被叫媒体流传输地址,被叫客户端获取主叫媒体流传输地址:(5a)主叫客户端向被叫客户端发起地址协商会话:主叫客户端向被叫候选通信地址发起探测,查询可用通信地址是否存在,若是,则对可用通信地址进行分级,得到最优可用通信地址,并将最优可用通信地址作为被叫媒体流传输地址,否则,对被叫媒体流传输端口进行预测,得到被叫媒体流传输地址;(5b)被叫客户端向主叫客户端发起地址协商会话:被叫客户端向主叫候选通信地址发起探测,查询可用通信地址是否存在,若是,则对可用通信地址进行分级,得到最优可用通信地址,并将最优可用通信地址作为主叫媒体流传输地址,否则,对主叫媒体流传输端口进行预测,得到主叫媒体流传输地址;(6)主叫客户端和被叫客户端进行媒体流传输:主叫客户端向被叫媒体流传输地址发送媒体流数据,同时被叫客户端向主叫媒体流传输地址发送媒体流数据。2.根据权利要求1所述的一种用于SIP通信系统的网络穿越方法,其特征在于,步骤(5a)中所述的对被叫媒体流传输端口进行预测,实现步骤为:(5a1)主叫客户端依次创建三个绑定有同一本地IP和端口的socket,并通过第一个socket...

【专利技术属性】
技术研发人员:张岗山刘继凯刘炯吴炜冯磊赵林靖
申请(专利权)人:西安电子科技大学
类型:发明
国别省市:陕西,61

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1