背景技术
以基于IP技术的语音通话(VoIP)为代表的多媒体通信协议作为一种典型的宽带应用正面临着前所未有的发展机遇。在VoIP技术和标准方面,主要使用的有协议有H.323、MGCP和SIP,这三种通信协议都可以完成IP网络上的语音处理。H.323协议应用较为广泛,而SIP协议以其更加开放、更易扩展、与Internet紧密结合等特性,逐渐成为VoIP的主流协议。
然而,在目前的网络环境中,IPv4地址空间处于严重耗尽的境况。为解决这个问题,人们设计出了网络地址转换(NAT)/端口地址解析(PAT)装置,NAT/PAT后的网络终端仅有私有IP地址,这些私有地址在公众网上是不可路由的。NAT是将私有地址和公有地址一一对应,并在一定时间内保持这种对应关系;PAT则是将私有地址+TCP/UDP端口转换并为一个公有地址+一个TCP/UDP端口,通常会将多个私有地址对应一个公有地址,以不同的TCP/UDP端口进行区分。
穿越NAT/PAT是SIP等多媒体通信协议普遍面临的一个问题是:如何使位于私有网络中NAT/PAT装置后的SIP终端成为被叫,NAT/PAT需要为SIP终端建立永久的地址绑定关系,当该SIP终端完成注册过程后,如果一段时间内没有来自该SIP终端的任何消息,NAT/PAT装置内的地址绑定将会过期,SIP服务器中所记录的地址(NAT/PAT的公有地址/端口号)不再对应该SIP终端的实际私有地址。
出于上述考虑,当前一般采用如下方式以维持NAT/PAT地址绑定关系:
方式一:位于私有网络中NAT/PAT装置后的SIP终端周期性地发送注册(REGISTER)请求给位于公共网络中的SIP服务器,请求周期必须低于NAT/PAT装置地址绑定周期,但是该方式具有如下缺点:1)、相比其它NON-INVITE请求方式,REGISTER请求需要消耗更多的SIP服务器资源;2)、SIP服务器不能通过相应的REGISTER响应消息将一些有用的信息传递给SIP终端;3)、所有的SIP终端都不得不支持这种周期性的“Pinging”方式。
方式二:位于公共网络中的SIP服务器周期性地发送可选项OPTIONS(SIP协议定义的一种请求方式,用于查询接收方性能)请求给位于私有网络中NAT/PAT装置后的所有的SIP终端,请求周期必须低于NAT/PAT装置地址绑定周期,但是该方式具有如下缺点:1)、相比其它方式,响应OPTIONS请求需要消耗更多的SIP终端资源,其响应消息中需要包含额外的头部信息,例如Allow,Accept语言等,对SIP终端的性能影响较大;2)、可靠性差,当SIP服务器处于过负荷工作状态而不能及时生成OPTIONS请求通知SIP终端,将导致地址绑定过期;3)、可扩展性差,由于OPTIONS请求仅仅为简单的请求消息,不可能携带额外信息给SIP终端。
发明内容
本发明通过SIP服务器周期性地向位于私有网络NAT/PAT装置后的SIP用户代理发送NOTIFY消息、SIP用户代理通过响应NOTIFY消息使得NAT/PAT装置维持对NAT地址绑定更新。
本发明目的在于提供一种SIP网络系统中维持NAT地址绑定的方法,SIP用户代理通过私有网络的NAT/PAT装置与第二网络的SIP服务器相连,所述方法包括如下步骤:a)、SIP服务器周期性地生成一个NOTIFY消息给SIP用户代理;b)、SIP用户代理响应所述NOTIFY消息以维持NAT/PAT装置对NAT地址绑定。
优选地,前述步骤a)中,SIP服务器在所述NOTIFY消息中进一步包括其服务器状态信息。
优选地,前述步骤a)中,SIP服务器在所述NOTIFY消息中进一步包括网络参数配置信息。所述网络参数配置信息可以是重定向SIP服务器信息。
优选地,前述步骤b)中,SIP用户代理在NAT地址绑定周期终止前没有收到NOTIFY消息,生成一个用于维持所述NAT地址绑定的OPTIONS请求消息。
优选地,本发明上述方法进一步包括步骤c),SIP用户代理根据NOTIFY消息所携带的服务器状态信息决定是否进行重定向操作。
本发明进一步目的在于提供一种SIP服务器,其特征在于包括一个控制装置:周期性地生成一个NOTIFY消息给私有网络的NAT/PAT装置的SIP用户代理。
优选地,所述控制装置进一步在所述NOTIFY消息中插入SIP服务器状态信息。
优选地,所述控制装置进一步在所述NOTIFY消息中插入网络参数配置信息。所述网络参数配置信息可以是重定向SIP服务器地址信息。
本发明进一步目的还在于提供一种SIP用户代理,通过私有网络的NAT/PAT装置与第二网络的SIP服务器相连,其特征在于包括:识别装置:识别来自SIP服务器的非预订的NOTIFY消息;响应装置:对所述非预订的NOTIFY消息进行响应,用于NAT/PAT装置维持NAT地址绑定。
优选地,SIP用户代理进一步包括:计时装置:用于计算NAT地址绑定周期;所述响应装置在NAT地址绑定周期内未收到非预订的NOTIFY消息计时装置触发其生成OPTIONS请求消息以维持NAT/PAT装置对NAT地址绑定更新。
优选地,前述响应装置根据非预订的NOTIFY消息中的SIP服务器状态信息决定是否进行重定向操作。
本发明进一步目的还在于提供了一种根据上述SIP用户代理、、NAT/PAT装置、SIP服务器组成的SIP网络系统,其中,SIP用户代理通过私有网络的NAT/PAT装置与第二网络的SIP服务器相连,其中:SIP服务器周期性地生成一个NOTIFY消息给私有网络的NAT/PAT装置的SIP用户代理;SIP用户代理识别并响应所述NOTIFY消息;NAT/PAT装置根据来自SIP用户代理的响应消息维持对NAT地址的绑定
本发明所带来的有益效果:
1)、本发明对整个SIP网络系统、以及SIP服务器、SIP用户代理的性能相对影响较小,有效地维持了私有网络中NAT/PAT装置后的SIP用户代理的可连接性,增加了SIP网络系统的可靠性;
2)、系统的可扩展性:SIP服务器可以进一步通过扩展NOTIFY消息,通过携带SIP服务器状态、网络参数等以指示SIP用户代理进行其它操作,如重新定向等。
具体实施方式
下面结合附图,对本发明的优选实施方式进行详细的说明。
如图1所示本发明SIP网络系统结构示意图,它包括位于私有网络10中的SIP用户代理12、NAT/PAT装置11、以及位于公有网络20中的SIP服务器21。
SIP用户代理12主要指SIP端系统,包括处理SIP请求的用户代理客户(UAC)和处理SIP响应的用户代理服务器(UAS),在SIP网络中具有SIP用户代理功能的设备是:工作站、SIP终端、综合接入媒体网关、呼叫代理等;
SIP服务器21的功能实体则有几种类型:重定向服务器、代理服务器、注册服务器。其中,代理服务器:可以当作一个客户端或者是一个服务器。具有解析能力,负责接收用户代理发来的请求,根据网络策略将请求发给相应的服务器,并根据应答对用户做出响应,也可以将收到的消息改写后再发出;重定向服务器:负责规划SIP呼叫路由,它将获得的呼叫的下一跳地址信息告诉呼叫方,呼叫方由此地址直接向下一跳发出申请,而重定向服务器则退出这个呼叫控制过程;注册服务器:用来完成UAS的登录,在SIP网络系统中所有的UAS都要在网络上注册、登录,以便UAC通过服务器能找到。在实际使用中,这几种服务器功能可共存于一个SIP服务器中,也可以分别存在于不同的SIP服务器中。
图2A是本发明所提供的维持NAT/PAT地址绑定方法实施例之一。
步骤S201、S201′,SIP用户代理12发送注册(REGISTER)请求消息给位于公共网络20中的SIP服务器21,假设其目标IP地址为202.168.5.1、端口号5060,其源地址为其在私有网络10中对应的私有地址172.24.161.89、端口号5060;NAT/PAT装置11在完成源地址和端口转换后进一步将该REGISTER请求发送给目标SIP服务器21,转换后的数据包源地址替换为NAT/PAT装置11在公网20中所对应的202.168.5.100(本例中源端口维持不变)。
步骤S202′、S202,SIP服务器21在接收REGISTER请求消息后,对SIP用户代理21进行身份验证,确认其合法后再对该用户的状态信息、IP地址信息等进行更新,这里,SIP服务器记录的是NAT/PAT装置11分配给SIP用户代理12的公共IP地址202.168.5.100、端口号5060,SIP服务器21在成功地解析和执行了Register请求后返回200OK消息;NAT/PAT装置11完成目标地址(端口)的替换转发给SIP用户代理21,转换后的200OK消息目标IP地址为172.24.161.89、目标端口号5060。
步骤S203′S203,SIP服务器21可通过静态配置或其他方式知道NAT/PAT装置11的NAT地址绑定周期T1,在该T1周期结束前,SIP服务器21生成一个NOTIFY消息发送给该SIP用户代理12,消息目标IP地址为202.168.5.100、端口号5060(NOTIFY消息的结构例将在后文中进一步明确);NAT/PAT装置11完成目标地址(端口)的替换转发给SIP用户代理21,转换后的NOTIFY消息目标IP地址为172.24.161.89、目标端口号5060。
步骤S204、S204′,SIP用户代理12在收到该NOTIFY消息后,对该NOTIFY消息予以识别并予以响应,它以200OK消息或其它非200最终响应方式予以应答。值得说明的是,SIP用户代理12通常可以作为预订者使用登记(SUBSCRIBE)消息来预订包括SIP服务器21在内的远端端点的状态变化通知,远端端点以NOTIFY消息通知预订者它所预订的状态的变化,但SIP用户代理12一般不会对登记的NOTIFY消息予以应答,因此,SIP用户代理12有必要对该非预订的的NOTIFY消息予以识别并予以响应;NAT/PAT装置11在接收到上述来自SIP用户代理12的响应消息后,即可以维持对NAT地址绑定更新,并进一步将所述响应消息在源地址、源端口替换后发送给SIP服务器。
在实际网络环境下,当SIP服务器21处于忙状态、没有及时生成NOTIFY消息、或该NOTIFY消息无法有效送达SIP用户代理12(步骤S205′)、致使SIP代理12没有及时响应,将导致NAT/PAT装置11中的NAT地址绑定周期过期。因此,作为本实施例的补充,如图例步骤S206、S206′,如果位于私有网络中的SIP用户代理(12)在NAT地址绑定周期终止前没有收到NOTIFY消息,它将生成一个OPTIONS请求消息,通常OPTIONS请求消息通常用来查询另外一个SIP用户代理或者SIP服务器的能力,本实施例中旨在作为一种补充方式用于NAT/PAT装置11维持所述NAT地址绑定更新。
作为一种优选的实施方式,如图2B例步骤S213、S213′,SIP服务器21可以进一步在生成的NOTIFY消息包含其服务器状态信息,如Normal(正常)或OverLoad(过负荷)。如此,SIP用户代理12在获得SIP服务器21状态信息后可进一步执行其他操作,例如它可以在获知SIP服务器21处于OverLoad状态,它可以选择第二SIP服务器21′进行注册(步骤S209,S209′),第二SIP服务器的参数配置可以根据DHCP、静态配置等方式予先配置在SIP用户代理12中。
作为一种优选的实施方式,SIP服务器21也可以在其生成的NOTIFY消息中包括网络参数配置信息。例如:当该SIP服务器状态为OverLoad时,它可以进一步将第二SIP服务器21′的地址等参数附加在该NOTIFY消息中,SIP用户代理12在获得SIP服务器状态信息、第二SIP服务器21′地址后可进一步执行重定向操作、选择第二SIP服务器21进行注册(步骤S209,S209′),方便了系统管理;
图3进一步示意了上述实施方式中的一种NOTIFY消息数据包结构例,该消息包括IP头、UDP头、SIP LOAD三部分:IP头、UDP头部分分别包含了数据包对应的目标设备NAT/PAT 11的IP地址“202.168.5.100”及对应目标端口号“5060”等信息;SIP LOAD部分包括:
(1)起始行:起始行传达消息类型NOTIFY与协议版本2.0;
(2)SIP头:用来传递消息属性。这里,SIP的头部字段定义了:From:指示请求的发端;T0:指示请求的收端;Call-ID:用于唯一标识一个特定的会话或标识某一客户的所有登记;Cseq:表示命令序列号;Contact:给出直接通信的地址;
(3)消息体:用于描述被初始的会话。清晰区别了在起始行和SIP头中传递的信令信息与在SIP范围之外的会话描述信息。消息体中包括一项用于指示SIP服务器状态信息的标识“<basic>OverLoad</basic>”;以及通知接收该NOTIFY消息的SIP用户代理进行重定向操作的第二SIP服务器21′的地址参数。
图4是根据本发明思想的所提供的SIP服务器21功能框图,它包括网络接口装置41、网络协议处理装置42、SIP协议处理装置43三大部分。网络接口装置41为服务器提供与传输介质无关的接口形式,例如有线、无线、光传输等方式;网络协议处理装置42为所接收、发送的数据包进行网络层的解封装、封装处理,例如:它根据所接收的数据包的相关信息(如图3中NOTIFY数据包结构IP、UDP包头中的目的地址信息、端口信息)向上层的SIP协议处理装置43提供IP数据包的所承载的SIP消息;SIP协议处理装置43对所接收的SIP LOAD中的纯文本信令协议进行处理,以用来建立、修改、和终止SIP会话。
上述SIP协议处理装置43可以包括注册处理装置431、它接收来自SIP用户代理的Register请求,对其进行身份验证,确认其合法后再对其状态信息、IP地址信息等进行更新,生成注册表432。
根据本发明所提供的实施例,为了触发位于私有网络(10)的NAT/PAT装置11后的SIP用户代理12产生一个用于维持NAT地址绑定的响应消息,SIP协议处理装置43包含一个控制装置434,它可以根据一个定时装置433的触发、周期性地生成一个给注册SIP用户代理的NOTIFY消息。这里,SIP服务器可通过静态配置或其他方式知道NAT/PAT装置11的NAT地址绑定周期T1,配置在注册表432相应SIP用户代理条目下。
前述控制装置434还可以进一步在生成的NOTIFY消息包含其服务器状态信息,如Normal或OverLoad,如此,接收该NOTIFY消息的SIP用户代理在获得SIP服务器状态信息后可进一步执行其他操作,例如:它在获知SIP服务器处于OverLoad状态,可以选择第二SIP服务器进行注册,第二SIP服务器的参数配置可以根据DHCP、静态配置等方式予先配置在SIP用户代理中。
前述控制装置434还可以进一步在生成的NOTIFY消息包含网络参数配置信息,例如:当服务器状态为OverLoad时,它可以进一步将一个第二SIP服务器地址等参数附加在该NOTIFY消息中,接收该NOTIFY消息的SIP用户代理在获得SIP服务器状态信息、第二SIP服务器地址后可进一步执行重定向操作、选择第二SIP服务器进行注册,方便了系统管理。
图5是根据本发明所提供的SIP用户代理12功能框图实施例,不失一般性,它包括网络接口装置51、网络协议处理装置52、SIP协议处理装置53三大部分;其中,SIP协议处理装置53包括一个注册请求装置531,它发起Register请求。
根据本发明所提供的方法及SIP服务器,结合图1示意,为了使SIP用户代理12所在的私有网络10的NAT/PAT装置11维持对其NAT地址的绑定,公有网络20中的SIP服务器21周期性地发送NOTIFY消息给SIP用户代理12。因此,SIP协议处理装置53需要一个识别装置532,它识别来自SIP服务器的非预订的NOTIFY消息:由于SIP用户代理通常可以作为预订者使用登记(SUBSCRIBE)消息来预订包括SIP服务器在内的远端端点的状态变化通知,远端端点以NOTIFY消息通知预订者它所预订的状态变化,但SIP用户代理一般不会对登记的NOTIFY消息予以应答,因此,SIP用户代理有必要对来自SIP服务器21该非预订的NOTIFY消息予以识别。SIP协议处理装置53还需要包括一个响应装置533,对所述非预订的NOTIFY消息进行响应,用于NAT/PAT装置维持NAT地址绑定,它以200OK消息或其它非200最终响应方式予以应答。
前述SIP协议处理装置53还可以进一步包含一个计时装置534:用于计算NAT地址绑定过期时间,当响应装置533在一个NAT地址绑定过期前没有对所述非预订的NOTIFY消息进行响应,该计时装置534将触发所述响应装置533生成一个用于NAT/PAT装置维持NAT地址绑定的OPTIONS请求消息(相反,当响应装置533已经对对所述非预订的NOTIFY消息进行响应,它可以同时对计时装置534进行复位处理以解除其对OPTIONS请求的触发),通常OPTIONS请求消息用来查询另外一个SIP用户代理或者SIP服务器的能力,本实施例中旨在作为一种补充方式用于NAT/PAT装置11维持所述NAT地址绑定。
与本发明实施例中所提供的SIP服务器相对应,所述响应装置533还可以解析所接收到的NOTIFY消息,根据其提供的SIP服务器状态信息、网络参数配置信息,决定是否进行重定向操作,例如在当前SIP服务器处于OverLoad状态,它触发注册单元531向第二SIP服务器发出Register请求。第二SIP服务器IP地址等参数信息可以DHCP等方式予以配置或由所接收的NOTIFY消息中的网络参数提供。
本领域的技术人员能进一步理解,结合这里公开的实施例所描述的各种说明性的逻辑块、模块和算法步骤可以作为电子硬件、计算机软件或二者的组合来实现。为了清楚说明硬件和软件之间的互换性,各种说明性的组件、框图、模块、电路和步骤一般按照其功能性进行了阐述。这些功能性究竟作为硬件或软件来实现取决于整个系统所采用的特定的应用程序和设计。技术人员可以认识到这些情况下硬件和软件的交互性,以及怎样最好地实现每个特定应用程序的所述功能。技术人员可能以对于每个特定应用不同的方式来实现所述功能,但这种实现决定不应被解释为造成背离本发明的范围。
上述实施例所描述的各种说明性的逻辑装置可能直接包含在硬件模块中,由处理器执行的软件模块中或在两者当中。硬件模块的实现或执行可以用:通用处理器、数字信号处理器(DSP)、专用集成电路(ASIC)、场可编程门阵列(FPGA)或其它可编程逻辑器件、离散门或晶体管逻辑、离散硬件组件或为执行这里所述功能而设计的任意组合;软件模块可能驻留在RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、可移动盘、CD-ROM或本领域中已知的任何其它形式的存储媒质中。
尽管上述说明为本发明提供了一些实施例,并非用来限定本发明的保护范围,本技术领域的专业人员可以在不脱离本发明的范围和精神的前提下,对实施例进行各种修改,这种修改均属于本发明的范围内。