基于会话发起协议的订阅方法

文档序号:7613843阅读:147来源:国知局
专利名称:基于会话发起协议的订阅方法
技术领域
本发明涉及通信技术,特别涉及基于会话发起协议的订阅方法。
背景技术
会话发起协议(Session Initation Protocol,简称“SIP”)是因特网工程任务组(IETF)于1999年3月发布的“一种在网上传送话音(VoIP)的标准”。
SIP是一信令协议,用于初始化、管理和终止分组网络中的语音和视频会话,具体地说就是用来生成、修改和终结一个或多个参与者之间的会话。SIP是IETF多媒体数据和控制体系结构的一个组成部分,因此它与IETF的许多其他协议都有联系,例如实时传输协议(RealTime Transfer Protocol,简称“RTP”)、会话描述协议(Session Description Protocol,简称“SDP”)等。
SIP主要提供了与会话建立和终结相关的五个方面功能,它们是(1)用户定位用于通信的终端系统的决定;(2)用户可用性被呼叫方参与通信的意愿的决定;(3)用户能力使用的媒体和媒体参数的决定;(4)会话建立“振铃”,呼叫和被呼叫方会话参数的建立;(5)会话管理包括转移和终结会话,修改会话参数,以及调用业务等。
SIP有两种类型的消息,它们是(1)请求从客户机发到服务器的消息。(2)响应从服务器发到客户机的消息。
每条SIP消息由以下三部分组成(1)起始行(Start Line)每个SIP消息由起始行开始。起始行传达消息类型(在请求中是方法类型,在响应中是响应代码)与协议版本。起始行可以是一请求行(请求)或状态行(响应)。
(2)SIP头用来传递消息属性和修改消息意义。它们在语法和语义上与HTTP头域相同(实际上有些头就是借自HTTP),并且总是保持格式<名字><值>。
(3)消息体用于描述被初始的会话(例如,在多媒体会话中包括音频和视频编码类型,采样率等)。消息体能够显示在请求与响应中。SIP清晰区别了在SIP起始行和头中传递的信令信息与在SIP范围之外的会话描述信息。可能的消息体类型就包括本文将要描述的SDP会话描述协议。
自1999年至今,SIP基础协议已从最初的RFC 2543发展到了现在的RFC3261,协议内容得到了很大的扩充,其描述的信令框架也更加完善。人们已不再满足于使用SIP完成基本的呼叫控制,更多的是关注如何利用SIP灵活实现增值业务。
值得一提的是,在SIP协议中给出了一种SUBSCRIBE/NOTIFY(订阅/通知)的方法。其中,SUBSCRIBE方法用于订阅,而NOTIFY方法用于传递一个事件的任何变化的通知。所谓事件通知就是,一个用户或资源向其他资源发起订阅,由于后者有前者感兴趣的事件,之后前者会接收到有关该事件的状态和任何变化的通知。图1示出该过程的信令流程。如图1所示,首先,步骤101订阅者(Subscriber)向通知者(Notifier)发送一个订阅(SUBSCRIBE)消息,请求订阅感兴趣的资源状态。此处资源状态是指用户或设备终端的一系列的状态信息,如用户当前的位置,用户正在进行的活动,终端的电量等。
接着,在步骤102如果通知者(Notifier)需要对订阅者(Subscriber)的订阅请求进行策略控制,则向订阅者(Subscriber)发送“202OK”响应,否则向订阅者(Subscriber)发送一个“200OK”响应。策略控制的具体操作有许多种,一种典型的策略控制如下用户设备A作为订阅者向通知者订阅用户设备B的状态,通知者如果根据本地的信息无法知道用户设备B所支持的状态,则要与用户设备B或其归属设备查询其可支持的状态。这个查询的过程就是一种策略控制。这一过程可能是跨网络的,可能会比较慢。为了使订阅者可以及时得到反馈,需要在策略控制前向订阅者回复一个“202OK”响应。
此后,在步骤103,通知者(Notifier)向订阅者(Subscriber)发送一个NOTIFY(通知)消息,在NOTIFY消息的消息体中携带订阅者(Subscriber)所订阅的资源状态的内容信息;步骤104订阅者(Subscriber)收到NOTIFY消息后,向通知者(Notifier)发送一个“200OK”响应,表示成功接收了NOTIFY消息。
如上所述,SIP消息由起始行、SIP头以及消息体组成,图1所示流程中的NOTIFY消息的格式如图2所示。
根据SIP的扩展协议,允许通知者(Notifier)对订阅者(Subscriber)所请求订阅的资源状态进行策略控制,即根据用户设置的条件,限制资源状态是否允许被订阅。在这种情况下,对于不同的订阅者(Subscriber),Notifier允许其订阅不同的资源状态,此时可能出现Subscriber订阅的资源状态中只有一部分才能得到许可,对于这种情况如何告诉Subscriber,目前协议中没有给出一个解决方法。

发明内容
有鉴于此,本发明的主要目的在于提供一种基于会话发起协议的订阅方法,使得订阅者可以获知所订阅的资源状态被部分允许的情况。
为实现上述目的,本发明提供了一种基于会话发起协议的订阅方法,至少包含以下步骤A通知者向订阅者发送包含有第一信息的第一消息,B所述订阅者收到所述第一消息后,从所述第一信息中直接获取、或通过对所述第一信息的有限步运算获取所述通知者允许订阅的全部资源状态。
其中,所述第一消息是“NOTIFY”消息。
此外在所述方法中,在所述步骤A和B之后还包含以下步骤C所述订阅者向所述通知者回应“200OK”消息。
此外在所述方法中,首次订阅时,在所述步骤A、B和C之前包含以下步骤所述订阅者向所述通知者发送“SUBSCRIBE”消息,请求订阅指定资源的状态;所述通知者向所述订阅者回应“2××OK”消息;所述通知者对所述通知者的订阅请求进行策略控制。
此外在所述方法中,重订阅时,包含以下步骤所述订阅者向所述通知者发送“SUBSCRIBE”消息,请求重订阅指定资源的状态;所述通知者向所述订阅者回应“2××OK”消息;如果所述通知者判定所述订阅者请求订阅的内容发生了改变,就对该通知者的订阅请求进行策略控制,此后执所述步骤A、B和C。
此外在所述方法中,当所述通知者的策略控制发生变化,且该变化影响了所述订阅者所被允许订阅的资源状态时,执行所述步骤A、B和C。
此外在所述方法中,所述第一信息中包含以下内容之一或其任意组合
允许订阅的资源状态元素、禁止订阅的资源状态元素、以及不支持的资源状态元素。
此外在所述方法中,令所述第一信息中允许订阅的资源状态元素构成第一集合,全部禁止订阅的资源状态元素构成第二集合,全部不支持的资源状态元素构成第三集合;如果所述第一信息中第一集合为空或以下所述通知者允许订阅的全部资源状态为空,则表示终止订阅;如果所述第一信息中只有第一集合非空,则直接以第一集合作为所述通知者允许订阅的全部资源状态;如果所述第一信息中只有第一、第二集合非空,则以第一集合中不与第二集合相交的部分作为所述通知者允许订阅的全部资源状态;如果所述第一信息中只有第一、第三集合非空,则以第一集合中不与第三集合相交的部分作为所述通知者允许订阅的全部资源状态;如果所述第一信息中第一、第二、第三集合均非空,则以第一集合中不与第二或第三集合相交的部分作为所述通知者允许订阅的全部资源状态。
此外在所述方法中,所述第一信息是“NOTIFY”消息中的独立消息体或已有消息体的一部分。
通过比较可以发现,本发明的技术方案与现有技术的主要区别在于,在首次订阅、重订阅或通知者策略控制发生变化时,通知者通过NOTIFY消息通知订阅者,该消息中增加RIL(资源信息列表,Resource Information List),从RIL可直接或通过运算间接获得允许该订阅者订阅的全部资源状态。RIL可以作为一个独立的消息体出现在NOTIFY消息中或作为NOTIFY消息已有消息体的一部份。
这种技术方案上的区别,带来了较为明显的有益效果,即使订阅/通知机制更加完善,让订阅者知道能订阅的资源状态信息、不能订阅的资源状态信息、以及通知者不支持的资源状态信息,从而使订阅者能根据这些资源状态信息作出订阅的范围的调整,自身资源状态控制策略的调整。


图1是现有技术中SIP的订阅机制流程图;图2是现有技术中NOTIFY消息的结构示意图;图3是通知者支持的资源状态示意图;图4是本发明中通过NOTIFY消息携带RIL的示意图;图5是根据本发明第一实施方式的用户订阅请求部分满足情况的实现流程图;图6是根据本发明第二实施方式的用户订阅请求部分满足情况的实现流程图;图7是根据本发明第三实施方式的用户订阅请求部分满足情况的实现流程图;图8是RIL中ASRE与FSRE的关系示意图。
具体实施例方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述。
本发明的核心在于,通知者在通知订阅者的NOTIFY消息中增加资源信息列表(Resource Information List,简称“RIL”),使得订阅者可以直接或通过运算间接获得该订阅者可订阅的全部资源状态元素。从而使订阅者能根据这些资源状态元素信息调整订阅的范围,以及自身资源状态元素的控制策略。所有资源状态、Subscriber订阅的资源状态、允许Subscriber订阅的资源状态、Notifer允许被订阅的资源状态、以及Notifer支持的资源状态之间的相互关系如图3所示。
其中,RIL是描述通知者允许订阅者订阅或不允许订阅者订阅的资源状态元素和不支持的资源状态元素的表现方式,可以作为一个独立的消息体出现在NOTIFY消息中或作为NOTIFY消息已有消息体的一部份,如图4所示。并且,RIL可以采用可扩充标记语言(extensible Markup Language,简称“XML”)进行编码。
由于在RIL中可以包含允许订阅的资源状态元素(Allow SubscribeResource Element,简称“ASRE”)、禁止订阅的资源状态元素(Forbid SubscribeResource Element,简称“FSRE”)以及不支持的资源状态元素(UnsupportResource Information List,简称“USRIL”)三部分的任意组合或是其中之一。其中,ASRE是通知者通过执行本地策略后,允许订阅者订阅的资源状态元素,可以是单个元素或多个元素的集合,其中可以包括FSRE;FSRE是通知者通过执行本地策略后,禁止订阅者订阅的资源状态元素,可以是单个元素或多个元素的集合;USRIL是表示被订阅者不支持的资源状态元素部分,可以是单个元素或多个元素的集合。所以,通过ASRE以及FSRE可以导出最终允许订阅的资源状态元素(Final Allow Subscribe Resource Element,简称“FASRE”),从而可以获知订阅者可订阅的全部资源状态元素。
下面结合附图,对本发明的第一实施方式进行说明,本实施方式应用于用户首次订阅时的情况。
如图5所示,在步骤510中,订阅者向通知者发送“SUBSCRIBE”消息,请求订阅该订阅者感兴趣的资源状态元素。比如说,订阅者用户A感兴趣的资源状态元素是用户B的R1、R2和R3,那么,用户A向用户B发送“SUBSCRIBE”消息,请求订阅用户B的资源状态元素R1、R2以及R3。
接着,在步骤502中,通知者向该订阅者回应“202OK”消息。由于订阅者所订阅的资源状态元素的相关数据有可能不在本地,因此,通知者需要向该订阅者回应“202OK”消息,表示通知者在对订阅者的订阅请求进行策略控制。针对上述案例,用户B接受到用户A所发送的“SUBSCRIBE”消息后,向用户A回应“202OK”消息,表示在对用户A的订阅请求进行策略控制。
在经过步骤503后,也就是通知者对订阅者的订阅请求进行策略控制后,进入步骤504,通知者向订阅者发送包含有RIL信息的“NOTIFY”消息。RIL信息的编码方式可以是XML,并且可以作为独立消息体或已有消息体的一部分出现在“NOTIFY”消息中,如图4所示。在RIL信息中可以包含ASRE、FSRE以及USRIL的任意组合或其中之一。针对上述案例,如果用户B全部的资源状态元素有R1、R2、R3、R4、R5,用户B支持的资源状态元素有R1、R2、R3、R4,其中R1、R2是单个资源状态元素,R3、R4是资源状态元素集合,比如说R3包括R31、R32、R33三个子资源状态元素,R4包括R41、R42两个子资源状态元素。用户B在接受到用户A发送的订阅请求并执行策略控制后(用户B的策略控制为允许用户A订阅资源状态元素R2、R3、R4),用户B向用户A发送的第一个“NOTIFY”消息的消息体中包含的RIL信息可以如下<RIL>
<ASRE>
<R2/>
<R3/>
</ASRE>
<FSRE>
<R1/>
</FSRE>
<USRIL>
<R5/>
</USRIL>
</RIL>
表示允许用户A订阅的资源状态元素为R2和R3;禁止用户A订阅的资源状态元素为R1;用户B不支持的资源状态元素为R5。
接着,进入步骤505,订阅者接受到“NOTIFY”消息后,从“该NOTIFY”消息的RIL信息中直接获取、或通过对该RIL信息的有限步运算获取通知者允许该订阅者订阅的全部资源状态,也就是FASRE,并向通知者回应“200OK”,确认接收“NOTIFY”消息成功。如果RIL信息中的ASRE构成第一集合,FSRE构成第二集合,USRIL构成第三集合,则通过RIL获取信息的方法如下如果第一集合为空或以下所述通知者允许该订阅者订阅的全部资源状态为空,则表示终止订阅;如果只有第一集合非空,则直接以第一集合作为通知者允许该订阅者订阅的全部资源状态;如果只有第一、第二集合非空,则以第一集合中不与第二集合相交的部分作为通知者允许该订阅者订阅的全部资源状态;如果只有第一、第三集合非空,则以第一集合中不与第三集合相交的部分作为通知者允许该订阅者订阅的全部资源状态;如果所述第一信息中第一、第二、第三集合均非空,则以第一集合中不与第二或第三集合相交的部分作为所述通知者允许订阅的全部资源状态。
针对上述案例,用户A接受到用户B发送的“NOTIFY”消息后,可以从该“NOTIFY”消息的RIL信息中的ASRE以及FSRE获知FASRE。如图8所示,当ASRE与FSRE不相交时,FASRE等于ASRE;当ASRE与FSRE相交时,FASRE等于ASRE与FSRE不相交部分;当ASRE包含FSRE时,FASRE等于ASRE除去FSRE部分;当FSRE包含ASRE时,FASRE等于空。因此,用户A可以获知被用户B所允许订阅的资源状态元素为R2和R3。
在本实施中,订阅者可以知道能订阅的资源状态信息、不能订阅的资源状态信息、以及通知者不支持的资源状态信息,从而使订阅者能根据这些资源状态信息作出订阅的范围的调整,自身资源状态控制策略的调整。
下面结合附图,对本发明的第二实施方式进行说明,本实施方式应用于订阅者处于订阅状态时,通知者发生策略变化,并且该变化影响了订阅者所被允许订阅的资源状态的情况。
如图6所示,当通知者的策略控制发生了改变,并且这个改变影响了订阅者所被允许订阅的资源状态时,就进入步骤601,通知者向受到影响的订阅者发送一个“NOTIFY”消息,在该消息体中携带策略控制改变后的RIL信息,如果通知者的策略控制改变将导致禁止订阅者订阅通知者的所有资源,则终止订阅。比如说,用户A正处于订阅状态,并且用户A订阅的是用户B的资源状态元素R2和R3,此时用户B的策略控制发生了改变,只允许用户A订阅R2以及R3中的R31和R32,因此,用户B的策略变化影响了用户A所被允许订阅的资源状态,所以,用户B需要重新执行策略控制,产生新的RIL信息,并通过“NOTIFY”消息的消息体发送给用户A。其中,新的RIL信息可以如下<RIL>
<ASRE>
<R2/>
<R3/>
</ASRE>
<FSRE>
<R1/>
<R3\R33/>
</FSRE>
<USRIL>
<R5/>
</USRIL>
</RIL>
表示用户B的策略控制更改后,允许用户A订阅的资源状态元素为R2和R3;禁止用户A订阅的资源状态元素为R1和R3中的R33;用户B不支持的资源状态元素为R5。
接着,进入步骤602,订阅者接受到“NOTIFY”消息后,从“该NOTIFY”消息的RIL信息中直接获取、或通过对该RIL信息的有限步运算获取通知者允许该订阅者订阅的全部资源状态,也就是FASRE,并向通知者回应“200OK”,确认接收“NOTIFY”消息成功。本步骤与步骤505完全相同,在此不再赘述。
在本实施方式中,即使通知者的策略控制发生了改变,只要该改变影响到了处于订阅状态的用户,该用户也可以通过通知者发送的“NOTIFY”消息获知能订阅的资源状态信息、不能订阅的资源状态信息、以及通知者不支持的资源状态信息,从而使订阅者能根据这些资源状态信息作出订阅的范围的调整,自身资源状态控制策略的调整。
下面结合附图对本发明的第三实施方式进行说明,本实施方式应用于处于订阅状态的订阅者向通知者发起重订阅的情况。
如图7所示,在步骤701中,订阅者向通知者发送“SUBSCRIBE”消息,请求重订阅指定资源的状态。由于订阅有时间限制,如果订阅者想继续该订阅,就需要在该时间期限内发起重订阅,因此,该重订阅中订阅者请求订阅的内容没有发生改变。如果是由于订阅者感兴趣的资源状态元素发生了改变发起的重订阅,则该重订阅中订阅者请求订阅的内容发生了改变。比如说,用户A原本订阅的是用户B的资源状态元素R2和R3,如果用户A是由于时间限制而发起的重订阅,则用户A向用户B发送的“SUBSCRIBE”消息中请求订阅的内容没有改变;如果用户A是由于希望订阅用户B的资源状态元素R1和R3而发起的重订阅,则用户A向用户B发送的“SUBSCRIBE”消息中请求订阅的内容发生了改变。
接着,进入步骤702,通知者回应“200OK”或“202OK”消息。如果在步骤701中,订阅者请求订阅的内容没有改变,则回应“200OK”消息,并结束本流程;如果在步骤701中,订阅者请求订阅的内容发生了改变,则回应“202OK”消息,表示通知者需要对订阅者订阅的资源重新进行策略控制,并执行步骤703至705。
在步骤703,通知者对订阅者的订阅请求进行策略控制。
接着,进入步骤704,通知者向订阅者发送包含有RIL信息的“NOTIFY”消息。本步骤与步骤504完全相同,在此不再赘述。
接着,进入步骤705,订阅者接受到“NOTIFY”消息后,从“该NOTIFY”消息的RIL信息中直接获取、或通过对该RIL信息的有限步运算获取通知者允许该订阅者订阅的全部资源状态,也就是FASRE,并向通知者回应“200OK”,确认接收“NOTIFY”消息成功。本步骤与步骤505完全相同,在此不再赘述。
在本实施方式中,即使订阅者发起重订阅,也可以通过通知者发送的“NOTIFY”消息获知能订阅的资源状态信息、不能订阅的资源状态信息、以及通知者不支持的资源状态信息,从而使订阅者能根据这些资源状态信息作出订阅的范围的调整,自身资源状态控制策略的调整。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。
权利要求
1.一种基于会话发起协议的订阅方法,其特征在于,至少包含以下步骤A通知者向订阅者发送包含有第一信息的第一消息,B所述订阅者收到所述第一消息后,从所述第一信息中直接获取、或通过对所述第一信息的有限步运算获取所述通知者允许订阅的全部资源状态。
2.根据权利要求1所述的基于会话发起协议的订阅方法,其特征在于,所述第一消息是“NOTIFY”消息。
3.根据权利要求2所述的基于会话发起协议的订阅方法,其特征在于,在所述步骤A和B之后还包含以下步骤C所述订阅者向所述通知者回应“200OK”消息。
4.根据权利要求3所述的基于会话发起协议的订阅方法,其特征在于,首次订阅时,在所述步骤A、B和C之前包含以下步骤所述订阅者向所述通知者发送“SUBSCRIBE”消息,请求订阅指定资源的状态;所述通知者向所述订阅者回应“2××OK”消息;所述通知者对所述通知者的订阅请求进行策略控制。
5.根据权利要求3所述的基于会话发起协议的订阅方法,其特征在于,重订阅时,包含以下步骤所述订阅者向所述通知者发送“SUBSCRIBE”消息,请求重订阅指定资源的状态;所述通知者向所述订阅者回应“2××OK”消息;如果所述通知者判定所述订阅者请求订阅的内容发生了改变,就对该通知者的订阅请求进行策略控制,此后执所述步骤A、B和C。
6.根据权利要求3所述的基于会话发起协议的订阅方法,其特征在于,当所述通知者的策略控制发生变化,且该变化影响了所述订阅者所被允许订阅的资源状态时,执行所述步骤A、B和C。
7.根据权利要求1至6中任一项所述的基于会话发起协议的订阅方法,其特征在于,所述第一信息中包含以下内容之一或其任意组合允许订阅的资源状态元素、禁止订阅的资源状态元素、以及不支持的资源状态元素。
8.根据权利要求7所述的基于会话发起协议的订阅方法,其特征在于,令所述第一信息中允许订阅的资源状态元素构成第一集合,全部禁止订阅的资源状态元素构成第二集合,全部不支持的资源状态元素构成第三集合;如果所述第一信息中第一集合为空或以下所述通知者允许订阅的全部资源状态为空,则表示终止订阅;如果所述第一信息中只有第一集合非空,则直接以第一集合作为所述通知者允许订阅的全部资源状态;如果所述第一信息中只有第一、第二集合非空,则以第一集合中不与第二集合相交的部分作为所述通知者允许订阅的全部资源状态;如果所述第一信息中只有第一、第三集合非空,则以第一集合中不与第三集合相交的部分作为所述通知者允许订阅的全部资源状态;如果所述第一信息中第一、第二、第三集合均非空,则以第一集合中不与第二或第三集合相交的部分作为所述通知者允许订阅的全部资源状态。
9.根据权利要求2至6中任一项所述的基于会话发起协议的订阅方法,其特征在于,所述第一信息是“NOTIFY”消息中的独立消息体或已有消息体的一部分。
全文摘要
本发明涉及通信技术,公开了一种基于会话发起协议的订阅方法,使得订阅者可以获知所订阅的资源状态被部分允许的情况。本发明中,在首次订阅、重订阅或通知者策略控制发生变化时,通知者通过NOTIFY消息通知订阅者,该消息中增加RIL列表信息,从RIL可直接或通过运算间接获得允许该订阅者订阅的全部资源状态。RIL可以作为一个独立的消息体出现在NOTIFY消息中或作为NOTIFY消息已有消息体的一部份。
文档编号H04L29/06GK1933476SQ200510029709
公开日2007年3月21日 申请日期2005年9月15日 优先权日2005年9月15日
发明者王啸 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1