一种会话初始化协议终端的注册方法及系统的制作方法

文档序号:7767293阅读:311来源:国知局
专利名称:一种会话初始化协议终端的注册方法及系统的制作方法
技术领域
本发明涉及移动通信领域,尤其涉及一种会话初始化协议(Session InitiationProtocol,SIP)终端的注册方法及系统。
背景技术
SIP是一个由因特网工程任务组 Qnternet Engineering Task Force,IETF)制定的,可供多媒体数据传输和因特网电话呼叫等使用的标准协议,是目前电信行业最重要的一种网络电话(Voice over Internet Protocol, VoIP)标准协议。例如第三代合作伙伴计划(The 3rd Generation Partnership Pro ject, 3GPP)定义的下一代多媒体通信系统, 也就是IP多媒体子系统(IP Multimedia Subsystem, IMS)即采用SIP进行端到端的呼叫控制。在SIP的基本协议RFC3261中,IETF已对SIP终端进行SIP注册的流程进行定义, 如图1所示,该流程的详细步骤如下步骤SlOl =SIP终端向注册服务器发送注册请求;步骤S102 注册服务器收到注册请求后,保存SIP终端的相关信息;步骤S103 注册服务器向SIP终端返回注册成功的消息。其中,所述注册服务器保存SIP终端的相关信息时,主要将SIP终端注册的SIP通用资源标志符(Uniform Resource Identifier,URI)与SIP终端的地址信息间的绑定关系存储到定位服务器;所述SIP终端的地址信息位于SIP终端所发注册请求的Contact头域中。图1中所示网络地址转换设备(Network Address Translator, NAT)是最初为应对互联网IP地址枯竭而提出的一种网络地址扩充技术,是一种将私网地址转化为合法IP 地址的转换技术,被广泛应用于各种类型hternet接入方式和各种类型的网络中。由于 NAT强大的网络扩展能力和网络安全防护能力,已成为一种互联网不可或缺的关键技术。但是,NAT技术在提供一系列优越性的同时,也为不同SIP终端之间的通信造成了一定的困难,例如如果SIP终端位于NAT之后,SIP终端向注册服务器发送注册消息时, SIP终端此时不知道也不可能在所发出的注册消息中携带SIP终端在NAT网络之外的公网地址信息,因此无法进行注册,后续SIP终端之间的信息交互也不可能继续下去。也就是说,图1中所述SIP终端的注册流程不适用于SIP终端位于NAT之后的情况,即不能实现 SIP终端的NAT穿越。现有技术中,SIP以及IMS中已提供多种方法用于SIP终端的NAT穿越,例如 IMS中,在用户侧或核心网边缘设备代理呼叫会话控制功能(Proxy callsession control Function,P-CSCF)实体上部署应用层网关(Application LayerGateway,ALG)或边界网关控制器(Session Border Controller, SBC)等设备辅助SIP终端进行NAT穿越。这些方案作为可选方案为IMS提供较为灵活的实现SIP终端NAT穿越的方案选择,但灵活的部署也增加了网络的复杂性。最重要的是,当这些NAT穿越辅助设备因故障不能正常工作或根本就不存在时,则无法实现SIP终端的NAT穿越。

发明内容
有鉴于此,本发明的主要目的在于提供一种SIP终端的注册方法及系统,可在不借助第三方辅助设备的情况下实现SIP终端的NAT穿越,完成SIP终端的注册。为达到上述目的,本发明的技术方案是这样实现的一种SIP终端的注册方法,包括SIP终端向注册服务器发起注册请求,所述注册请求的Via头域携带rport参数;SIP终端收到注册服务器返回的Via头域携带rport参数和Received参数的注册请求响应消息后,确定所述Received参数与SIP终端自身的地址信息是否一致,两者不一致时,SIP终端根据响应消息中的参数构建新的注册请求,并发送给注册服务器进行注册。所述SIP终端发起的注册请求的Contact头域置空、或直接填写SIP终端自身的地址信息。所述SIP终端构建新的注册请求,为SIP终端根据响应消息Via头域中的 Received参数,以及响应消息中的rport参数构建Contact头域,形成新的注册请求。该方法还包括SIP终端在完成所述注册流程后,将主动向注册服务器发起保活流程。在所述保活流程中,SIP终端向注册服务器发送的保活请求消息为OPTION消息、 或为MESSAGE消息。一种SIP终端的注册系统,包括SIP终端和注册服务器;其中,所述SIP终端,用于向注册服务器发起Via头域携带rport参数的注册请求,并在收到注册服务器返回的Via头域携带rport参数和Received参数的注册请求响应消息后, 确定所述Received参数与SIP终端自身的地址信息是否一致,两者不一致时,根据响应消息中的参数构建新的注册请求,并发送给注册服务器进行注册;所述注册服务器,用于接收SIP终端所发的注册请求,并返回Via头域携带rport 参数和Received参数的注册请求响应消息;接收SIP终端所发的新的注册请求,并执行与 SIP终端间的注册操作。所述SIP终端,进一步用于完成注册流程后,主动向注册服务器发起保活流程;相应的,所述注册服务器,进一步用于执行与SIP终端间的保活流程。所述SIP终端所发的注册请求的Contact头域置空、或直接填写SIP终端自身的地址信息。本发明提供的SIP终端的注册方法及系统,SIP终端向注册服务器发起注册请求, 所述注册请求的Via头域携带rport参数;SIP终端收到注册服务器返回的Via头域携带 rport参数和Received参数的注册请求响应消息后,确定所述Received参数与SIP终端自身的地址信息是否一致,两者不一致时,则表明SIP终端位于NAT之后,SIP终端则根据响应消息中的参数构建新的注册请求,并发送给注册服务器进行注册。本发明中,SIP终端根据注册服务器返回的注册请求响应消息确定自身位于NAT之后时,则根据响应消息中的 Received参数,即SIP终端在公网的地址信息参数,重新向注册服务器发起注册请求,从而实现SIP终端的NAT穿越;而且,本发明的方法不依赖于第三方辅助设备,对注册服务器也没有改动需求,实现方法简便。


图1为现有SIP终端注册的基本流程示意图;图2为本发明SIP终端的注册方法实现流程示意图;图3为本发明SIP终端的注册系统结构示意图;图4为本发明实施例一 SIP终端的注册方法实现流程示意图;图5为本发明实施例二 SIP终端的注册方法实现流程示意图;图6为本发明实施例三SIP终端的注册方法实现流程示意图。
具体实施例方式本发明的基本思想是SIP终端向注册服务器发起注册请求,所述注册请求的Via 头域携带rport参数;SIP终端收到注册服务器返回的Via头域携带rport参数和Received 参数的注册请求响应消息后,确定所述Received参数与SIP终端自身的地址信息是否一致,两者不一致时,则表明SIP终端位于NAT之后,SIP终端则根据响应消息中的参数构建新的注册请求,并发送给注册服务器进行注册。其中,如果SIP终端判断自身不位于NAT之后,则继续进行后续已有的注册流程。本发明中,所述注册服务器为SIP架构中的注册服务器,也可为IMS中P-CSCF实体和服务呼叫会话控制功能(Serving call session control Function, S-CSCF)实体的
组合等。下面结合附图及具体实施例对本发明作进一步详细说明。图2为本发明SIP终端的注册方法实现流程示意图,如图2所示,该流程的实现步骤如下步骤S201 =SIP终端向注册服务器发起注册请求,所述注册请求的Via头域携带 rport参数;这里,所述rport参数为已有SIP终端注册时涉及到的一个常用参数,在本发明中,限定所述注册请求的Via头域中必需携带该参数,该参数用于通知注册服务器在响应消息的Via头域携带Received参数和rport参数。一般注册请求中的rport参数可以置空,响应消息中的Received参数和rport参数分别为注册服务器获取的SIP终端的地址信息和端口信息。其中,所述SIP终端发起的注册请求的Contact头域可置空,也可直接填写SIP终端自身的地址信息。步骤S202 注册服务器向SIP终端返回Via头域携带rport参数和Received参数的注册请求响应消息;这里,注册服务器返回的注册请求响应消息存在如下三种类型1)当SIP终端所发注册请求的Contact头域为空时,注册服务器通常返回403响应消息,即Forbidden响应消息;2)当SIP终端所发注册请求的Contact头域不为空时,注册服务器返回的响应消息可为中间响应消息,例如401响应消息,即Unauthorized响应消息;
3)当SIP终端所发注册请求的Contact头域不为空时,注册服务器返回的响应消息还可以是最终响应消息,例如2000K响应消息。这里,对于上述不同类型的注册请求响应消息,Received参数和rport参数均相同。步骤S203 =SIP终端判断所述Received参数与SIP终端自身的地址信息是否一致,如果两者不一致,则执行步骤S204 ;如果两者一致,则继续进行后续的注册流程,之后执行步骤S205 ;具体为SIP终端收到注册服务器返回的注册请求响应消息后,判断响应消息Via 头域中的Received参数与SIP终端自身的地址信息是否一致,如果两者不一致,则证明SIP 终端位于NAT之后,则执行步骤S204 ;如果两者一致,则证明SIP终端不位于NAT之后,即当前SIP终端位于公网内,则继续进行后续已有的注册流程,如图1中所述步骤S102和步骤S103中的相应操作,之后执行步骤S205。其中,所述Received参数仅包括地址信息,也就是说Received参数为地址信息参数,即SIP终端在公网的地址信息参数;所述SIP终端内部已存储自身的地址信息。步骤S204 =SIP终端则根据响应消息中的参数构建新的注册请求,并发送给注册服务器进行注册,之后执行步骤S205 ;具体为SIP终端根据响应消息Via头域中的Received参数、以及响应消息中的 rport参数构建Contact头域,形成新的注册请求,并发送给注册服务器重新进行注册,之后执行步骤S205。这里,所述SIP终端与注册服务器重新进行注册的过程与已有的注册流程相同, 例如注册服务器收到SIP终端所发的新的注册请求后,保存SIP终端的相关信息到定位服务器,并向SIP终端返回注册成功的消息。步骤S205 =SIP终端的注册流程结束。本发明中,对于位于NAT之后的SIP终端,SIP终端在完成上述注册流程后,将主动发起一个保活流程,具体为SIP终端周期性向注册服务器发送保活请求消息,注册服务器收到保活请求并执行相应已有操作后,返回保活响应消息。目前,网络地址转换设备,即NAT的路由转发表是动态维护的,若SIP终端长时间不使用已被NAT分配的端口传输数据,NAT就可能将该端口资源回收并重新分配给其它SIP 终端使用。因此,SIP终端需要进行保活来维持端口的可用性。其中,所述SIP终端向注册服务器发送的保活请求消息可为OPTION消息,也可使用MESSAGE消息。这里,如果SIP终端位于IMS中,SIP终端则周期性向P-CSCF实体发送保活请求消息,P-CSCF实体最终将保活响应消息返回给SIP终端。为实现上述方法,本发明还提供了一种SIP终端的注册系统,如图3所示,该系统包括SIP终端和注册服务器;其中,所述SIP终端,用于向注册服务器发起Via头域携带rport参数的注册请求,并在收到注册服务器返回的Via头域携带rport参数和Received参数的注册请求响应消息后, 判断所述Received参数与SIP终端自身的地址信息是否一致,确定两者不一致时,根据响应消息中的参数构建新的注册请求,并发送给注册服务器进行注册;
所述注册服务器,用于接收SIP终端所发的注册请求,并返回Via头域携带rport 参数和Received参数的注册请求响应消息;接收SIP终端所发的新的注册请求,并执行与 SIP终端间的注册操作。所述SIP终端,进一步用于完成注册流程后,主动向注册服务器发起保活流程;相应的,所述注册服务器,进一步用于执行与SIP终端间的保活流程。其中,所述SIP终端所发的注册请求的Contact头域置空、或直接填写SIP终端自身的地址信息。下面结合具体实施例对本发明SIP终端的注册方法进行详细描述。上文中已阐述本发明所述注册服务器可为SIP架构中的注册服务器,也可为IMS 中P-CSCF实体和S-CSCF实体的组合,也就是说,本发明适用于SIP架构,也适用于IMS。关于SIP架构中SIP终端的注册方法与图2中的描述相同,此处不再详述,下面仅对IMS中 SIP终端的注册方法进行举例说明。实施例一本实施例为IMS中SIP终端的注册方法,其中,SIP终端向P-CSCF实体发送注册请求,且注册请求的Contact头域置空;S-CSCF实体确定注册请求的Contact头域为空,则返回403响应消息;SIP终端根据响应消息中的参数构建新的注册请求,重新进行注册。图 4为该方法的具体实现流程示意图,如图4所示,包括如下步骤步骤S401 =SIP终端向P-CSCF实体发送注册请求,该注册请求的Via头域携带 rport参数,且Contact头域置空;步骤S402 =P-CSCF实体向S-CSCF实体转发SIP终端所发的注册请求;步骤S403 =S-CSCF实体确定注册请求的Contact头域置空,则拒绝该注册请求,向 P-CSCF实体返回403响应消息;步骤S404 =P-CSCF实体向SIP终端转发403响应消息,所述响应消息的Via头域携带Received参数及rport参数;步骤S405 =SIP终端根据403响应消息Via头域中的Received参数与SIP终端自身的地址信息是否不一致,来判断SIP终端是否位于NAT之后;步骤S406 S413 =SIP终端确定自身位于NAT之后,则根据响应消息Via头域中的Received参数及rport参数构建Contact头域,形成新的注册请求,重新进行注册。实施例二本实施例为IMS中SIP终端的注册方法,其中,SIP终端向P-CSCF实体发送注册请求,且注册请求的Contact头域置为SIP终端的地址信息;SIP终端收到401响应消息时, 根据响应消息中的参数构建新的注册请求,重新进行注册。图5为该方法的具体实现流程示意图,如图5所示,包括如下步骤步骤S501 =SIP终端向P-CSCF实体发送注册请求,该注册请求的Via头域携带 rport参数,且Contact头域设为SIP终端的地址信息;步骤S502 =P-CSCF实体向S-CSCF实体转发SIP终端所发的注册请求;步骤S503 =S-CSCF实体收到注册请求后,返回401响应消息;步骤S504 =P-CSCF实体向SIP终端转发401响应消息,所述响应消息的Via头域携带Received参数及rport参数;
步骤S505 =SIP终端根据401响应消息Via头域中的Received参数与SIP终端自身的地址信息是否不一致,来判断SIP终端是否位于NAT之后;这里,若SIP终端判断自身不位于NAT之后,则直接执行步骤S510继续完成后续
注册流程。步骤S506 S513 =SIP终端确定自身位于NAT之后,则根据响应消息Via头域中的Received参数及rport参数构建Contact头域,形成新的注册请求,重新进行注册。实施例三本实施例为IMS中SIP终端的注册方法,其中,SIP终端向P-CSCF实体发送注册请求,且注册请求的Contact头域置为SIP终端的地址信息;SIP终端收到最终的2000K响应消息时,根据响应消息中的参数构建新的注册请求,重新进行注册。图6为该方法的具体实现流程示意图,如图6所示,包括如下步骤步骤S601 =SIP终端向P-CSCF实体发送注册请求,该注册请求的Via头域携带 rport参数,且Contact头域设为SIP终端的地址信息;步骤S602 =P-CSCF实体向S-CSCF实体转发SIP终端所发的注册请求;步骤S603 =SIP终端、P-CSCF实体和S-CSCF实体间进行SIP终端的鉴权流程;其中,所述SIP终端的鉴权流程是可选流程,即该步骤可选。这里,若进行SIP终端的鉴权流程,则SIP终端将记录P-CSCF实体返回的401响应消息Via头域中的Received参数和rport参数。步骤S604 S-CSCF实体向P-CSCF实体返回2000K响应消息;这里,若不进行SIP终端的鉴权流程,即步骤S603不执行,P-CSCF实体将向SIP终端返回2000K响应消息,该响应消息的Via头域携带Received参数和rport参数。步骤S605 =SIP终端收到P-CSCF实体返回的2000K响应消息;这里,若不进行SIP终端的鉴权流程,即步骤S603不执行,SIP终端将记录2000K 响应消息Via头域中的Received参数和rport参数。步骤S606 =SIP终端根据步骤S603或步骤S605中记录的Received参数与SIP终端自身的地址信息是否不一致,来判断SIP终端是否位于NAT之后;步骤S607 S609 =SIP终端确定自身位于NAT之后,则利用记录的Via头域中的 Received参数及rport参数构建Contact头域,形成新的注册请求,重新进行注册。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种会话初始化协议SIP终端的注册方法,其特征在于,该方法包括SIP终端向注册服务器发起注册请求,所述注册请求的Via头域携带rport参数;SIP 终端收到注册服务器返回的Via头域携带rport参数和Received参数的注册请求响应消息后,确定所述Received参数与SIP终端自身的地址信息是否一致,两者不一致时,SIP终端根据响应消息中的参数构建新的注册请求,并发送给注册服务器进行注册。
2.根据权利要求1所述的SIP终端的注册方法,其特征在于,所述SIP终端发起的注册请求的Contact头域置空、或直接填写SIP终端自身的地址信息。
3.根据权利要求1或2所述的SIP终端的注册方法,其特征在于,所述SIP终端构建新的注册请求,为SIP终端根据响应消息Via头域中的Received参数,以及响应消息中的rport参数构建Contact头域,形成新的注册请求。
4.根据权利要求1或2所述的SIP终端的注册方法,其特征在于,该方法还包括SIP终端在完成所述注册流程后,将主动向注册服务器发起保活流程。
5.根据权利要求4所述的SIP终端的注册方法,其特征在于,在所述保活流程中,SIP 终端向注册服务器发送的保活请求消息为OPTION消息、或为MESSAGE消息。
6.一种SIP终端的注册系统,其特征在于,该系统包括SIP终端和注册服务器;其中,所述SIP终端,用于向注册服务器发起Via头域携带rport参数的注册请求,并在收到注册服务器返回的Via头域携带rport参数和Received参数的注册请求响应消息后,确定所述Received参数与SIP终端自身的地址信息是否一致,两者不一致时,根据响应消息中的参数构建新的注册请求,并发送给注册服务器进行注册;所述注册服务器,用于接收SIP终端所发的注册请求,并返回Via头域携带rport参数和Received参数的注册请求响应消息;接收SIP终端所发的新的注册请求,并执行与SIP 终端间的注册操作。
7.根据权利要求6所述的SIP终端的注册系统,其特征在于,所述SIP终端,进一步用于完成注册流程后,主动向注册服务器发起保活流程;相应的,所述注册服务器,进一步用于执行与SIP终端间的保活流程。
8.根据权利要求6或7所述的SIP终端的注册系统,其特征在于,所述SIP终端所发的注册请求的Contact头域置空、或直接填写SIP终端自身的地址信息。
全文摘要
本发明公开了一种会话初始化协议(SIP)终端的注册方法,包括SIP终端向注册服务器发起注册请求,所述注册请求的Via头域携带rport参数;SIP终端收到注册服务器返回的Via头域携带rport参数和Received参数的注册请求响应消息后,确定所述Received参数与SIP终端自身的地址信息是否一致,两者不一致时,SIP终端根据响应消息中的参数构建新的注册请求,并发送给注册服务器进行注册。本发明还同时公开了一种SIP终端的注册系统,运用该方法和系统可在不借助第三方辅助设备的情况下实现SIP终端的NAT穿越,完成SIP终端的注册。
文档编号H04L29/12GK102487546SQ20101056969
公开日2012年6月6日 申请日期2010年12月1日 优先权日2010年12月1日
发明者胡永生, 郝振武, 陈志峰 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1