一种对订阅进行集中控制的方法转让专利

申请号 : CN200610079089.0

文献号 : CN101047691B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 王啸

申请人 : 华为技术有限公司

摘要 :

本发明公开了一种对订阅进行集中控制的方法,该方法包括:订阅者与通知者设置两者之间的订阅管理集及其对应的会话;通知者接收到当前订阅的相关消息,判断该订阅的相关消息是否为所述订阅者发来的,如果是,通知者在自身所建立的订阅管理集中记录对应于当前订阅的订阅实例的标识,释放当前订阅及其对应的会话,并且,通知者触发订阅者执行,在其建立的订阅管理集中记录对应于当前订阅的订阅实例的标识并释放当前订阅及其对应的会话。本发明减少了服务器间由订阅建立的会话的数量,大大减少了服务器端所需维护的会话初始协议(SIP)会话的数量,提高了服务器端的处理效率。

权利要求 :

1.一种对订阅进行集中控制的方法,其特征在于,该方法包括:

A1、订阅者将预先设置的集中控制业务标识携带在针对第一订阅的第一订阅消息中发送至通知者;

A2、所述通知者从第一订阅消息中解析出集中控制业务标识;

A3、所述通知者建立订阅管理集,并设置订阅管理集标识,以及将自身所建立的订阅管理集与第一订阅所对应会话进行关联,在订阅管理集中记录第一订阅对应的会话所关联的信息和第一订阅实例的标识;

A4、所述通知者将所设置的订阅管理集标识携带在第一通知消息中发送至所述订阅者;

A5、所述订阅者建立订阅管理集,将第一通知消息中携带的订阅管理集标识设置为自身所建立订阅管理集的标识,并将所建立的订阅管理集与第一订阅所对应会话进行关联,并在所建立的订阅管理集中记录第一订阅对应的会话所关联的信息和第一订阅实例的标识;

B、通知者在当前订阅对应的会话上接收到当前订阅的相关消息,判断该相关消息是否为所述订阅者发来的,如果是,则执行步骤C,否则,执行针对当前订阅者创建订阅管理集的过程,结束当前流程;

C、通知者在自身所建立的订阅管理集中记录对应于当前订阅的订阅实例的标识,释放当前订阅及其对应的会话,并且,通知者触发订阅者执行,在其建立的订阅管理集中记录对应于当前订阅的订阅实例的标识并释放当前订阅及其对应的会话。

2.根据权利要求1所述的方法,其特征在于,所述第一订阅对应的会话所关联的信息包括:第一订阅对应会话的会话标识Call-ID、路由集Route-set和远程目标remote target。

3.根据权利要求1所述的方法,其特征在于,该方法进一步包括:设置允许使用集中控制业务的策略;

在步骤A2与步骤A3之间进一步包括:所述通知者根据预先设置的允许使用集中控制业务的策略判断是否允许所述订阅者使用集中控制业务,如果是,则继续执行步骤A3,否则,结束当前流程。

4.根据权利要求3所述的方法,其特征在于,该方法进一步包括:设置允许使用集中控制业务的特定订阅者;

所述判断是否允许所述订阅者使用集中控制业务的步骤包括:判断所述订阅者是否属于预先设置的所述特定订阅者,如果是,则确定允许所述订阅者使用集中控制业务,否则,确定不允许所述订阅者使用集中控制业务。

5.根据权利要求3或4所述的方法,其特征在于,在步骤A1中,所述订阅者将预先设置的集中控制业务标识携带在第一订阅消息中的步骤包括:所述订阅者将预先设置的集中控制业务标识携带在第一订阅消息中的支持Supported头域中;

所述步骤A2包括:所述通知者从第一订阅的订阅消息中的Supported头域中解析出集中控制业务标识;

在判断出不允许所述订阅者使用集中控制业务之后,并在结束当前流程之前,进一步包括:执行现有的针对第一订阅的订阅过程。

6.根据权利要求3或4所述的方法,其特征在于,在步骤A1中,所述订阅者将预先设置的集中控制业务标识携带在第一订阅消息中的步骤包括:所述订阅者将预先设置的集中控制业务标识携带在第一订阅消息中的要求Require头域中;

所述步骤A2包括:所述通知者从第一订阅的订阅消息中的Require头域中解析出集中控制业务标识;

在判断出不允许所述订阅者使用集中控制业务之后,并在结束当前流程之前,进一步包括:所述通知者向所述订阅者返回失败响应。

7.根据权利要求1所述的方法,其特征在于,该方法进一步包括:在通知消息中,定义一个订阅管理集标识头域;

所述步骤A4包括:所述通知者将所设置的订阅管理集标识携带在第一通知消息的订阅管理集标识头域中发送至所述订阅者。

8.根据权利要求2所述的方法,其特征在于,在步骤B中,所述判断该订阅的相关消息是否为所述订阅者发来的步骤包括:所述通知者判断所设置的订阅管理集中的remote target与当前订阅的Contact头域的地址部分是否相同,如果是,则确定当前订阅的相关消息是所述订阅者发来的,否则,确定当前订阅的相关消息不是所述订阅者发来的。

9.根据权利要求8所述的方法,其特征在于,在步骤B中,在判断出所设置的订阅管理集的remote target与当前订阅的Contact头域的地址部分相同之后,并在执行步骤C之前,进一步包括:所述通知者判断所设置的订阅管理集的路由集中的Route-set与当前订阅的Route-set是否相同,如果是,则继续执行所述的步骤C,否则,结束当前流程。

10.根据权利要求1所述的方法,其特征在于,该方法进一步包括:在通知消息中,在事件Event头域中定义用于传递迁移订阅信息的参数newid,并定义订阅管理集标识头域;

在步骤C中,所述通知者触发所述订阅者执行在其建立的订阅管理集中记录对应于当前订阅的订阅实例的标识的步骤包括:C1、所述通知者在针对当前订阅的通知消息中,在订阅管理集标识头域中携带自身所设置的订阅管理集的标识,将当前订阅的标识作为该通知消息Event头域中newid参数的值,然后将该通知消息发送至所述订阅者;

C2、所述订阅者从接收到的通知消息的订阅管理集标识头域中获取订阅管理集标识,利用所获取的订阅管理集标识在本地匹配到所建立的订阅管理集,设置一个针对当前订阅的订阅实例,从接收到的通知消息的Event头域中获取newid参数的值,将所获取的newid参数的值作为所设置的订阅实例的标识记录到所匹配到的订阅管理集中。

11.根据权利要求1所述的方法,其特征在于,在步骤C中,在通知者在自身所建立的订阅管理集中记录对应于当前订阅的订阅实例的标识之前,进一步包括:C001、所述通知者将所建立的订阅管理集的标识或该订阅管理集对应会话的标识发送至所述订阅者;

C002、所述订阅者根据接收到的订阅管理集的标识或该订阅管理集对应会话的标识,在本地匹配到所建立订阅管理集对应的会话;

C003、所述订阅者通过所匹配到的会话将当前订阅的相关消息发送至所述通知者。

12.根据权利要求11所述的方法,其特征在于,该方法进一步包括:在失败响应消息中定义订阅管理集标识头域;

所述步骤C001包括:所述通知者将所建立的订阅管理集的标识或该订阅管理集对应会话的标识,携带在失败响应消息的订阅管理集标识头域中发送至所述订阅者;

在步骤C002中,所述订阅者所根据的订阅管理集的标识或该订阅管理集对应会话的标识是从接收到的失败响应消息的订阅管理集标识头域中获取的。

13.根据权利要求1或11所述的方法,其特征在于,在步骤C中,所述通知者触发所述订阅者执行释放当前订阅及其对应的会话的步骤包括:所述通知者将失败响应消息发送至所述订阅者;所述订阅者根据接收到的失败响应消息释放当前订阅及其对应的会话。

14.根据权利要求1所述的方法,其特征在于,该方法进一步包括:在通知消息中定义订阅管理集标识头域;

在步骤C中,在通知者在自身所建立的订阅管理集中记录对应于当前订阅的订阅实例的标识之前,进一步包括:C011、所述通知者将订阅管理集的标识或该订阅管理集对应会话的标识携带在通知消息的订阅管理集标识头域中,然后将该通知消息发送至所述订阅者;

C012、所述订阅者根据通知消息的订阅管理集标识头域中所携带的订阅管理集的标识或该订阅管理集对应会话的标识,在本地匹配到所建立订阅管理集对应的会话;

C013、所述订阅者通过所匹配到的会话将当前订阅的相关消息发送至所述通知者。

15.根据权利要求1、10或14所述的方法,其特征在于,该方法进一步包括:在通知消息中定义表示当前订阅被一个新订阅取代的终止原因值migration;

在步骤C中,所述通知者触发所述订阅者执行释放当前订阅及其对应的会话的步骤包括:所述通知者在针对当前订阅的通知消息中,将Subscription-State头域的值设置为终止标识terminated,将原因reason参数的值设置为migration,然后将该通知消息发送至所述订阅者;所述订阅者解析出接收到的通知消息的Subscription-State头域值为terminated,且reason参数的值为migration,确定当前订阅在所述通知者侧发生了迁移,释放当前订阅及其对应的会话。

16.根据权利要求15所述的方法,其特征在于,在将针对当前订阅的通知消息发送至所述订阅者之前进一步包括:所述通知者在针对当前订阅的通知消息的Supported头域中携带集中控制业务标识。

17.根据权利要求11或14所述的方法,其特征在于,在步骤C中,所述通知者触发所述订阅者在其建立的订阅管理集中记录对应于当前订阅的订阅实例的标识的步骤包括:所述通知者将200OK响应消息发送至所述订阅者;所述订阅者接收到200OK响应消息后,在其建立的订阅管理集中记录对应于当前订阅的订阅实例的标识。

18.根据权利要求1所述的方法,其特征在于,当所述当前订阅为当前需建立的一个新订阅时,所述当前订阅的相关消息为初始订阅消息;

当所述当前订阅为所述订阅者与所述通知者之间已建立的一个订阅时,所述当前订阅的相关消息为刷新订阅消息。

说明书 :

技术领域

本发明涉及网络通信技术,特别是涉及一种对同一订阅者和通知者之间的订阅进行集中控制的方法。

背景技术

会话初始协议(Session Initiation Protocol,SIP)是一个基于文本的应用层控制协议,独立于底层协议,用于建立、修改和终止IP网上的双方或多方多媒体会话。
SIP实现了订阅/通知框架,并引入了订阅(SUBSCRIBE)方法和通知(NOTIFY)方法。SUBSCRIBE方法用于订阅者向通知者发起订阅,而NOTIFY方法用于订阅者与通知者之间传递一个事件的任何变化的通知。所谓订阅通知就是,一个用户或资源作为订阅者向其他资源的拥有者即通知者发起订阅,之后订阅者会接收到通知者发来的有关该事件的状态和任何变化的通知。图1是在现有技术中实现一次订阅的流程图。参见图1,在现有技术中,订阅者向通知者发起一次订阅的过程具体包括以下步骤:
步骤101:订阅者向资源的拥有者即通知者发送一个SUBSCRIBE消息,请求订阅用户所感兴趣的资源状态信息。
步骤102:通知者接收到SUBSCRIBE消息并确定允许本次订阅后,向订阅者发送一个200OK响应消息。
步骤103:订阅者和通知者建立与对方的一个对话(dialog),并分别设置订阅实例,记录订阅和会话的标识以及记录订阅和相关参数。
步骤104:通知者向订阅者发送一个NOTIFY消息,在该NOTIFY消息的消息体中携带所订阅的资源状态信息。
步骤105:订阅者收到NOTIFY消息后,向通知者发送一个200OK响应,表示成功接收了NOTIFY消息。
在实现订阅时,订阅者对于用户的每一次订阅均需要向拥有订阅资源的通知者发起不同的订阅。这样,如果针对不同的订阅分别进行控制,即分别建立会话并对不同的会话分别进行管理维护,则会大大增加作为订阅者和通知者的服务器端所需维护的SIP会话的数量,即增加服务器端的业务负荷量,降低服务器端的处理效率。另外,对话数量的增加会过多的占用网络的带宽资源。
虽然,现有协议提出可以将同一订阅者和通知者之间的不同订阅对应一个会话,进行集中控制,但是,目前却并不存在任何将同一订阅者和通知者之间的不同订阅对应一个会话进行集中控制的实现方案。

发明内容

有鉴于此,本发明的主要目的在于提供一种对订阅进行集中控制的方法,以便减少同一订阅者和通知者之间会话的数量,从而减少服务器端所需维护的SIP会话的数量。
为了达到上述目的,本发明的技术方案是这样实现的:
一种对订阅进行集中控制的方法,包括:
A1、订阅者将预先设置的集中控制业务标识携带在针对第一订阅的第一订阅消息中发送至通知者;
A2、所述通知者从第一订阅消息中解析出集中控制业务标识;
A3、所述通知者建立订阅管理集,并设置订阅管理集标识,以及将自身所建立的订阅管理集与第一订阅所对应会话进行关联,在订阅管理集中记录第一订阅对应的会话所关联的信息和第一订阅实例的标识;
A4、所述通知者将所设置的订阅管理集标识携带在第一通知消息中发送至所述订阅者;
A5、所述订阅者建立订阅管理集,将第一通知消息中携带的订阅管理集标识设置为自身所建立订阅管理集的标识,并将所建立的订阅管理集与第一订阅所对应会话进行关联,并在所建立的订阅管理集中记录第一订阅对应的会话所关联的信息和第一订阅实例的标识;
B、通知者在当前订阅对应的会话上接收到当前订阅的相关消息,判断该相关消息是否为所述订阅者发来的,如果是,则执行步骤C,否则,执行针对当前订阅者创建订阅管理集的过程,结束当前流程;
C、通知者在自身所建立的订阅管理集中记录对应于当前订阅的订阅实例的标识,释放当前订阅及其对应的会话,并且,通知者触发订阅者执行,在其建立的订阅管理集中记录对应于当前订阅的订阅实例的标识并释放当前订阅及其对应的会话。
所述第一订阅对应的会话所关联的信息包括:第一订阅对应会话的会话标识Call-ID、路由集Route-set和远程目标remote target。
该方法进一步包括:设置允许使用集中控制业务的策略;
在步骤A2与步骤A3之间进一步包括:所述通知者根据预先设置的允许使用集中控制业务的策略判断是否允许所述订阅者使用集中控制业务,如果是,则继续执行步骤A3,否则,结束当前流程。
该方法进一步包括:设置允许使用集中控制业务的特定订阅者;
所述判断是否允许所述订阅者使用集中控制业务的步骤包括:判断所述订阅者是否属于预先设置的所述特定订阅者,如果是,则确定允许所述订阅者使用集中控制业务,否则,确定不允许所述订阅者使用集中控制业务。
在步骤A1中,所述订阅者将预先设置的集中控制业务标识携带在第一订阅消息中的步骤包括:所述订阅者将预先设置的集中控制业务标识携带在第一订阅消息中的支持Supported头域中;
所述步骤A2包括:所述通知者从第一订阅的订阅消息中的Supported头域中解析出集中控制业务标识;
在判断出不允许所述订阅者使用集中控制业务之后,并在结束当前流程之前,进一步包括:执行现有的针对第一订阅的订阅过程。
在步骤A1中,所述订阅者将预先设置的集中控制业务标识携带在第一订阅消息中的步骤包括:所述订阅者将预先设置的集中控制业务标识携带在第一订阅消息中的要求Require头域中;
所述步骤A2包括:所述通知者从第一订阅的订阅消息中的Require头域中解析出集中控制业务标识;
在判断出不允许所述订阅者使用集中控制业务之后,并在结束当前流程之前,进一步包括:所述通知者向所述订阅者返回失败响应。
该方法进一步包括:在通知消息中,定义一个订阅管理集标识头域;
所述步骤A4包括:所述通知者将所设置的订阅管理集标识携带在第一通知消息的订阅管理集标识头域中发送至所述订阅者。
在步骤B中,所述判断该订阅的相关消息是否为所述订阅者发来的步骤包括:所述通知者判断所设置的订阅管理集中的remote target与当前订阅的Contact头域的地址部分是否相同,如果是,则确定当前订阅的相关消息是所述订阅者发来的,否则,确定当前订阅的相关消息不是所述订阅者发来的。
在步骤B中,在判断出所设置的订阅管理集的remote target与当前订阅的Contact头域的地址部分相同之后,并在执行步骤C之前,进一步包括:所述通知者判断所设置的订阅管理集的路由集中的Route-set与当前订阅的Route-set是否相同,如果是,则继续执行所述的步骤C,否则,结束当前流程。
该方法进一步包括:在通知消息中,在事件Event头域中定义用于传递迁移订阅信息的参数newid,并定义订阅管理集标识头域;
在步骤C中,所述通知者触发所述订阅者执行在其建立的订阅管理集中记录对应于当前订阅的订阅实例的标识的步骤包括:
C1、所述通知者在针对当前订阅的通知消息中,在订阅管理集标识头域中携带自身所设置的订阅管理集的标识,将当前订阅的标识作为该通知消息Event头域中newid参数的值,然后将该通知消息发送至所述订阅者;
C2、所述订阅者从接收到的通知消息的订阅管理集标识头域中获取订阅管理集标识,利用所获取的订阅管理集标识在本地匹配到所建立的订阅管理集,设置一个针对当前订阅的订阅实例,从接收到的通知消息的Event头域中获取newid参数的值,将所获取的newid参数的值作为所设置的订阅实例的标识记录到所匹配到的订阅管理集中。
在步骤C中,在通知者在自身所建立的订阅管理集中记录对应于当前订阅的订阅实例的标识之前,进一步包括:
C001、所述通知者将所建立的订阅管理集的标识或该订阅管理集对应会话的标识发送至所述订阅者;
C002、所述订阅者根据接收到的订阅管理集的标识或该订阅管理集对应会话的标识,在本地匹配到所建立订阅管理集对应的会话;
C003、所述订阅者通过所匹配到的会话将当前订阅的相关消息发送至所述通知者。
该方法进一步包括:在失败响应消息中定义订阅管理集标识头域;
所述步骤C001包括:所述通知者将所建立的订阅管理集的标识或该订阅管理集对应会话的标识,携带在失败响应消息的订阅管理集标识头域中发送至所述订阅者;
在步骤C002中,所述订阅者所根据的订阅管理集的标识或该订阅管理集对应会话的标识是从接收到的失败响应消息的订阅管理集标识头域中获取的。
在步骤C中,所述通知者触发所述订阅者执行释放当前订阅及其对应的会话的步骤包括:所述通知者将失败响应消息发送至所述订阅者;所述订阅者根据接收到的失败响应消息释放当前订阅及其对应的会话。
该方法进一步包括:在通知消息中定义订阅管理集标识头域;
在步骤C中,在通知者在自身所建立的订阅管理集中记录对应于当前订阅的订阅实例的标识之前,进一步包括:
C011、所述通知者将订阅管理集的标识或该订阅管理集对应会话的标识携带在通知消息的订阅管理集标识头域中,然后将该通知消息发送至所述订阅者;
C012、所述订阅者根据通知消息的订阅管理集标识头域中所携带的订阅管理集的标识或该订阅管理集对应会话的标识,在本地匹配到所建立订阅管理集对应的会话;
C013、所述订阅者通过所匹配到的会话将当前订阅的相关消息发送至所述通知者。
该方法进一步包括:在通知消息中定义表示当前订阅被一个新订阅取代的终止原因值migration;
在步骤C中,所述通知者触发所述订阅者执行释放当前订阅及其对应的会话的步骤包括:所述通知者在针对当前订阅的通知消息中,将Subscription-State头域的值设置为终止标识terminated,将原因reason参数的值设置为migration,然后将该通知消息发送至所述订阅者;所述订阅者解析出接收到的通知消息的Subscription-State头域值为terminated,且reason参数的值为migration,确定当前订阅在所述通知者侧发生了迁移,释放当前订阅及其对应的会话。
在将针对当前订阅的通知消息发送至所述订阅者之前进一步包括:所述通知者在针对当前订阅的通知消息的Supported头域中携带集中控制业务标识。
在步骤C中,所述通知者触发所述订阅者在其建立的订阅管理集中记录对应于当前订阅的订阅实例的标识的步骤包括:所述通知者将200OK响应消息发送至所述订阅者;所述订阅者接收到200OK响应消息后,在其建立的订阅管理集中记录对应于当前订阅的订阅实例的标识。
当所述当前订阅为当前需建立的一个新订阅时,所述当前订阅的相关消息为初始订阅消息;
当所述当前订阅为所述订阅者与所述通知者之间已建立的一个订阅时,所述当前订阅的相关消息为刷新订阅消息。
由此可见,本发明提出了一种具体的实现对同一订阅者和通知者之间的订阅进行集中控制的方案。本发明将同一订阅者和通知者之间的订阅通过订阅管理集进行管理,所有的订阅与该订阅管理集对应的会话进行关联,而不是现有技术的每一个订阅关联一个会话,因此,减少了服务器间由订阅建立的会话的数量,大大减少了作为订阅者和通知者的服务器端所需维护的SIP事务的数量,即降低了服务器端的业务负荷量,提高了服务器端的处理效率。
在本发明中,对话数量的减少也减少了对网络带宽资源的占用。另外,由于本发明对同一订阅者和通知者之间的订阅采用集中控制,因此可以很容易实现后续订阅的批量刷新及通知消息批量发送的过程,从而可减少网络上消息的流量,进一步节约网络带宽。

附图说明

图1是在现有技术中实现一次订阅的流程图。
图2是在本发明实施例中通过订阅过程设置订阅管理集(SMS)的流程图。
图3是在本发明实施例中订阅者1和通知者1将一个初始订阅加入订阅管理集的第一种实现方式的流程图。
图4是在本发明实施例中订阅者1与通知者1将一个已有订阅加入到订阅管理集的第一种实现方式的流程图。
图5是在本发明实施例中订阅者1和通知者1将一个初始订阅加入订阅管理集的第二种实现方式的流程图。
图6是在本发明实施例中订阅者1与通知者1将一个已有订阅加入到订阅管理集的第二种实现方式的流程图。
图7是在本发明实施例中订阅者1和通知者1将一个初始订阅加入订阅管理集的第三种实现方式的流程图。
图8是在本发明实施例中订阅者1与通知者1将一个已有订阅加入到订阅管理集的第三种实现方式的流程图。

具体实施方式

本发明提出了一种对同一订阅者和通知者之间的订阅进行集中控制的方法,其核心思想是:订阅者与通知者设置两者之间的订阅管理集(SMS)及其对应的会话;通知者接收到当前订阅的相关消息,判断该订阅的相关消息是否为所述订阅者发来的,如果是,则通知者在自身所建立的订阅管理集中设置对应于当前订阅的订阅实例,记录当前订阅及其对应的会话所关联的信息,并释放当前订阅及其对应的会话;通知者触发订阅者在其所建立的订阅管理集中设置对应于当前订阅的订阅实例,记录当前订阅及其对应的会话所关联的信息,并释放当前订阅及其对应的会话。
其中,订阅者与通知者设置两者之间的SMS及其对应的会话可以通过一次订阅过程来实现。并且,在设置SMS之前,订阅者与通知者还可以首先协商该两者之间是否使用集中控制业务,如果协商成功,则继续执行后续的设置SMS的过程。
为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述。
在本发明中,为了实现同一订阅者和通知者之间订阅的集中控制,可以首先定义相关的SIP扩展,包括:
1、在各SIP消息中,定义一个SIP的选项标记(Option tag)作为集中控制业务标识,比如为sms,用于订阅者与通知者之间协商使用SMS机制;
2、在各SIP消息中,在事件(Event)头域中定义一个新参数newid,用于传递迁移订阅的信息;
3、定义一个新的订阅终止的原因值,如命名为迁移(migration),表示已有的订阅已经被SMS上的一个新订阅取代;
4、定义一个SIP头域SMS-ID,用于传递SMS的标识,在订阅者和通知者侧匹配SMS。
在本发明中,如果订阅者与通知者通过协商建立SMS,那么,订阅者在发出初始订阅消息或刷新订阅消息时,在消息中的Supported头域中携带sms;通知者收到Supported头域中包含sms的初始订阅消息或刷新订阅消息,若允许该两者之间使用订阅的集中控制机制,通知者则在返回的成功响应消息中的Supported头域携带sms,否则不携带sms。这样就完成了订阅者和通知者间对于使用集中控制机制的协商。
使用Supported头域携带sms来进行集中控制机制的协商,是很委婉的方式,即使协商失败也不会影响已有的订阅流程。当然,订阅者还可以使用要求(Require)头域携带sms进行协商,协商成功通知者通过在成功响应消息中的Supported头域携带sms,但是如果协商失败将返回失败响应,这将导致正在设置的订阅或已有的订阅失败。
图2是在本发明实施例中通过订阅过程设置SMS的流程图。参见图2,在本发明中,为了便于在后续过程中实现对订阅者1与通知者1之间的所有订阅进行集中控制,需要首先通过订阅过程在订阅者1与通知者1之间设置SMS,以实现对A@example.com资源进行订阅的第一订阅为例,设置SMS的过程具体包括以下步骤:
步骤201:订阅者1构造针对第一订阅的初始订阅消息SUBSCRIBE消息1,并通过针对第一订阅的一个新建会话将所构造的初始订阅消息SUBSCRIBE消息1发送至通知者1。
这里,订阅者1为了通知资源的拥有者即通知者1设置SMS,以便于在后续过程中实现对订阅者1与通知者1之间的所有订阅进行集中控制,订阅者1在构造所述的SUBSCRIBE消息1时,在该SUBSCRIBE消息1中携带预先设置的集中控制业务标识,携带的方式具体包括:方式一、在SUBSCRIBE消息1的支持(Supported)头域中携带该集中控制业务标识sms;方式二、在SUBSCRIBE消息1的Require头域中携带该集中控制业务标识。
步骤202:通知者1接收到SUBSCRIBE消息1后,从该消息中解析出集中控制业务标识,判断是否允许对第一订阅采用集中控制,如果是,则执行步骤203,否则,执行现有的订阅过程。
这里,如果在步骤201中采用方式一来携带集中控制业务标识sms,那么,在本步骤202中,通知者1是从SUBSCRIBE消息1的Supported头域中解析出集中控制业务标识sms,这样,在判断出不允许对当前的订阅采用集中控制后,可以转向执行现有的实现订阅的过程。
如果在步骤201中采用方式二来携带集中控制业务标识sms,那么,在本步骤202中,通知者1是从SUBSCRIBE消息1的Require头域中解析出集中控制业务标识sms,这样,在判断出不允许对当前的订阅采用集中控制后,通知者1可以向订阅者1返回失败响应,当前的订阅失败。
在本发明中,为了增加集中控制业务的灵活性,可以在通知者侧设置允许使用集中控制业务的策略,比如,针对一些特定的订阅者允许或不允许使用集中控制业务等。这样,在本步骤中,通知者根据预先设置的策略判断是否允许对当前的订阅采用集中控制,比如,预先设置的策略为允许一些特定的订阅者允许集中控制业务,这样,通知者判断发来该SUBSCRIBE消息1的订阅者1是否属于预先设置的特定订阅者,如果是,则确定允许对当前的订阅采用集中控制,否则,确定不允许对当前的订阅采用集中控制。
步骤203:通知者1构造200OK响应消息,并将集中控制业务标识sms携带在所构造的200OK响应消息的Supported头域中发送至订阅者1。
这里,通知者1通过在200OK响应消息中携带集中控制业务标识sms,向订阅者1表示支持集中控制业务。
步骤204:通知者1接受对资源A@example.com的订阅,通知者1设置SMS,为该SMS设置标识,并关联所设置的SMS与第一订阅对应的会话,记录第一订阅的标识和第一订阅对应会话所关联的信息到SMS中。
这里,比如所设置的SMS的标识为smsid。
并且,第一订阅对应的会话所关联的信息包括:第一订阅对应会话的Call-ID、Route-set和remote target。
步骤205:通知者1向订阅者1发送针对第一订阅的NOTIFY消息,其中携带第一订阅的资源状态信息。
这里,在本步骤中,通知者1还可以在NOTIFY消息的Supported头域中携带所设置的集中控制业务标识sms,并在NOTIFY消息中的SMS-ID头域中携带所设置SMS的标识smsid。
步骤206:订阅者1接收到NOTIFY消息,解析出Supported头域包含集中控制业务标识sms,确定通知者1支持并允许使用集中控制业务,从NOTIFY消息的SMS-ID头域中提取出smsid。
步骤207:订阅者1在本地设置SMS,将所提取的smsid设置为本地SMS的标识,订阅者1在所设置的SMS中记录第一订阅及其对应的会话所关联的信息,关联自身所设置的SMS与第一订阅对应的会话。
在通过上述图2所示流程设置完订阅管理集之后,订阅者1与通知者1之间的订阅则可通过订阅管理集来进行集中控制。其中,对于初始的订阅和刷新的订阅,分别包括三种通过订阅管理集来进行集中控制的实现方式。
图3是在本发明实施例中订阅者1和通知者1将一个初始订阅加入订阅管理集的第一种实现方式的流程图。参见图2和图3,根据图2所示流程,当在订阅者1和通知者1之间设置了一个SMS及与其对应的会话dialog后,订阅者1向通知者1再次发起一个订阅,比如针对B@example.com资源的订阅2,此时,采用第一种方式实现对订阅者1与通知者1间的订阅2进行集中控制的过程包括以下步骤:
步骤301:订阅者1构造针对订阅2的初始订阅消息SUBSCRIBE消息2,并通过对应于订阅2的一个新建会话将所构造的初始订阅消息SUBSCRIBE消息2发送至通知者1。
这里,订阅者1为了通知资源的拥有者即通知者1,本次订阅需要进行集中控制,订阅者1在构造所述的SUBSCRIBE消息2时,在该SUBSCRIBE消息2中携带预先设置的集中控制业务标识,携带的方式具体包括:方式一、在SUBSCRIBE消息2的Supported头域中携带该集中控制业务标识sms;方式二、在SUBSCRIBE消息2的Require头域中携带该集中控制业务标识sms。
步骤302:通知者1接收到SUBSCRIBE消息2后,从该消息中解析出集中控制业务标识,判断是否允许对当前的订阅2采用集中控制,如果是,则执行步骤303,否则,执行现有的订阅过程。
这里,本步骤的具体实现过程与上述步骤202处所述实现过程完全相同。
步骤303:通知者1判断SUBSCRIBE消息2是否为订阅者1发来的,如果是,则执行步骤304,否则,执行针对当前订阅者创建SMS的过程,结束当前流程。
这里,针对当前订阅者创建SMS的过程与上述图2中的步骤204至步骤207过程所述原理完全相同。
在本步骤中,通知者1判断SUBSCRIBE消息2是否为订阅者1发来的过程包括:通知者1判断自身所设置的SMS中的远程目标(remote target)与本次订阅的SUBSCRIBE消息2中Contact头域的地址部分是否相同,如果是,则确定SUBSCRIBE消息2是订阅者1发来的,否则,确定SUBSCRIBE消息2不是订阅者1发来的。
另外,在本步骤中,在确定SUBSCRIBE消息2是订阅者1发来的之后,通知者1还可以进一步判断所设置的SMS的路由集(Route-set)与本次订阅的SUBSCRIBE消息2的Route-set是否相同,即判断从订阅者1到通知者1的路由是否相同,如果是,则继续执行后续的订阅集中控制过程,即执行步骤304,否则,执行针对当前订阅者创建SMS的过程。
步骤304:通知者1构造200OK响应消息,并将集中控制业务标识sms携带在所构造的200OK响应消息的Supported头域中发送至订阅者1。
这里,通知者1通过在200OK响应消息中携带集中控制业务标识sms,向订阅者1表示支持集中控制业务。
步骤305:通知者1接受对资源B@example.com的订阅2,通知者1创建订阅实例sub2,将订阅2的相关参数记录到sub2中,将sub2的标识记录到SMS中。
这里,通知者1还需要在NOTIFY消息的Supported头域中携带所设置的集中控制业务标识sms;并在NOTIFY消息中的SMS-ID头域中携带所设置SMS的标识smsid;将订阅2的id比如rs1-xx作为NOTIFY消息Event头域中newid参数的值;将NOTIFY消息中的Subscription-State头域值设置为terminated,reason参数的值设置为migration。
步骤306:通知者1将订阅2的ID以及其它相关参数记录到SMS中所设置的订阅实例sub2中。
步骤307:订阅者1收到NOTIFY消息,解析Supported头域包含sms标识,确定通知者1支持并允许使用SMS机制。
步骤308:订阅者1从NOTIFY消息的SMS-ID头域中取出smsid,在本地匹配到一个订阅管理集。
步骤309:订阅者1解析出NOTIFY消息的Subscription-State头域值为terminated,且reason参数值为migration,确定订阅在通知者1侧发生了迁移,订阅者1创建一个订阅实例sub2,将从NOTIFY消息的Event头域中获取的newid参数的值作为sub2的标识。
步骤310:订阅者1记录sub2的标识到所匹配到的SMS中,并释放当前的订阅2及其对应的会话。
至此,通过图2和图3所示的过程,则实现了首先设置SMS,并对后续的订阅实现集中控制的过程。
图4是在本发明实施例中订阅者1与通知者1将一个已有订阅加入到订阅管理集的第一种实现方式的流程图。参见图4,如果在设置SMS之前,在订阅者1与通知者1之间已经存在一个对资源C@example.com的订阅,比如订阅3,那么,采用第一种方式针对该订阅3实现集中控制的过程包括以下步骤:
步骤401:订阅者1通过订阅3所关联的会话发送一个刷新订阅消息SUBSCRIBE消息3给通知者1,其中,SUBSCRIBE消息3的Supported头域中携带预先设置的option tag即集中控制业务标识sms。
步骤402:通知者1接收到SUBSCRIBE消息3后,从该消息中解析出集中控制业务标识,判断是否允许对当前的订阅3采用集中控制,如果是,则执行步骤403,否则,执行现有订阅流程。
这里,本步骤执行判断的具体实现过程与上述步骤202处所述判断的实现过程完全相同。
步骤403:通知者1接受对订阅3的刷新请求,判断该刷新订阅消息SUBSCRIBE消息3是否为订阅者1发来的,如果是,则执行步骤404,否则,执行针对当前订阅者创建SMS的过程,结束当前流程。
这里,针对当前订阅者创建SMS的过程与上述图2中的步骤204至步骤207过程所述原理完全相同。
在本步骤中,通知者1判断该刷新的SUBSCRIBE消息3是否为订阅者1发来的过程与图3中步骤304所述判断的过程完全相同。并且,在本步骤中,在判断出该刷新的SUBSCRIBE消息3是订阅者1发来的之后,还可以进一步判断该刷新的SUBSCRIBE消息3对应的路由集与所设置的SMS的路由集是否相同,并在判断出相同之后,继续执行后续的集中控制过程,即执行步骤404,否则,执行针对当前订阅者创建SMS的过程。
步骤404:通知者1向订阅者1返回200OK消息,在该200OK消息中的Supported头域中携带sms,表示支持该订阅的集中控制。
步骤405:通知者1根据已有的订阅3的订阅实例设置一个对资源C@example.com的订阅实例sub3,将订阅3的相关参数记录到sub3中,并将sub3的标识记录到SMS中。
步骤406:通知者1向订阅者1发送一个NOTIFY消息携带订阅的资源状态信息。
这里,通知者1还需要在NOTIFY消息的Supported头域中携带所设置的option tag即集中控制业务标识sms;并在NOTIFY消息中的SMS-ID头域中携带订阅3所匹配到的SMS的标识smsid;将订阅3的id比如rs1-yy作为NOTIFY消息Event头域中newid参数的值;将NOTIFY消息中的Subscription-State头域值设置为terminated,reason参数的值设置为migration。
步骤407:订阅者1收到NOTIFY消息,解析出NOTIFY消息的Supported头域携带sms标识,确定通知者1支持并允许使用SMS机制。
步骤408:订阅者1从NOTIFY消息的SMS-ID头域中取出smsid,在本地匹配到SMS。
步骤409:订阅者1解析出NOTIFY消息的Subscription-State头域值为terminated,且reason参数值为migration,确定订阅3在通知者1侧发生了迁移,订阅者1创建一个订阅实例sub3,将从NOTIFY消息中获取的newid参数值作为sub3的标识。
步骤410:订阅者1记录sub3的标识到所匹配到的SMS中,并释放当前的订阅3及其对应的会话。
图5是在本发明实施例中订阅者1和通知者1将一个初始订阅加入订阅管理集的第二种实现方式的流程图。参见图5,当在订阅者1和通知者1之间设置了一个SMS及与其对应的会话dialog后,订阅者1向通知者1再次发起一个订阅,比如针对B@example.com资源的订阅2,此时,采用第二种方式实现对订阅者1与通知者1间的订阅2进行集中控制的过程包括以下步骤:
步骤501:订阅者1构造针对订阅2的初始订阅消息SUBSCRIBE消息2,并通过对应于订阅2的一个新建会话将所构造的初始订阅消息SUBSCRIBE消息2发送至通知者1。
这里,订阅者1为了通知资源的拥有者即通知者1,本次订阅需要进行集中控制,订阅者1在构造所述的SUBSCRIBE消息2时,在该SUBSCRIBE消息2中携带预先设置的集中控制业务标识,携带的方式具体包括:方式一、在SUBSCRIBE消息2的Supported头域中携带该集中控制业务标识sms;方式二、在SUBSCRIBE消息2的Require头域中携带该集中控制业务标识sms。
步骤502:通知者1接收到SUBSCRIBE消息2后,从该消息中解析出集中控制业务标识,判断是否允许对当前的订阅2采用集中控制,如果是,则执行步骤503,否则,执行现有的订阅过程。
这里,本步骤的具体实现过程与上述步骤202处所述实现过程完全相同。
步骤503:通知者1判断SUBSCRIBE消息2是否为订阅者1发来的,如果是,则执行步骤504,否则,执行针对当前订阅者创建SMS的过程,结束当前流程。
这里,针对当前订阅者创建SMS的过程与上述图2中的步骤204至步骤207过程所述原理完全相同。
在本步骤中,通知者1判断SUBSCRIBE消息2是否为订阅者1发来的过程包括:通知者1判断自身所设置的SMS中的remote target与本次订阅的SUBSCRIBE消息2中Contact头域的地址部分是否相同,如果是,则确定SUBSCRIBE消息2是订阅者1发来的,否则,确定SUBSCRIBE消息2不是订阅者1发来的。
另外,在本步骤中,在确定SUBSCRIBE消息2是订阅者1发来的之后,通知者1还可以进一步判断所设置的SMS的Route-set与本次订阅的SUBSCRIBE消息2的Route-set是否相同,即判断从订阅者1到通知者1的路由是否相同,如果是,则继续执行后续的订阅集中控制过程,即执行步骤504,否则,执行针对当前订阅者创建SMS的过程。
步骤504:通知者1将集中控制业务标识携带在失败响应消息的Supported头域中,将在本地匹配到的订阅管理集的标识或该订阅管理集对应会话的标识携带在失败响应消息的SMS-ID头域中,然后将该失败响应消息发送至订阅者1。
这里,所述的失败响应消息可以是本发明重新定义的一个失败响应消息,也可以是已有的3XX-6XX的任意一个失败响应消息。
步骤505:订阅者1根据失败响应消息Supported头域中的集中控制业务标识确定本次订阅采用集中控制,并根据失败响应消息的SMS-ID头域中携带的订阅管理集标识或会话的标识,在本地关联到一个会话。
这里,订阅者1根据失败响应消息的SMS-ID头域中携带的订阅管理集标识或会话的标识,在本地所关联到的会话即为订阅者1与通知者1之间所创建的订阅管理集对应的会话。
在本步骤中,订阅者1接收到失败响应消息时,释放专为本次订阅所建立的会话。
步骤506:订阅者1通过所关联到的会话,重新将初始订阅消息SUBSCRIBE消息2发送至通知者1。
步骤507:通知者1在订阅管理集所关联的会话上接收到SUBSCRIBE消息2,确定允许本次订阅,将本次订阅与订阅管理集进行关联。
这里,所述将本次订阅与订阅管理集进行关联的操作至少包括将对应于本次订阅的订阅实例的标识记录到所述订阅管理集中。
步骤508:通知者1构造200OK响应消息,并将集中控制业务标识sms携带在所构造的200OK响应消息的Supported头域中发送至订阅者1。
步骤509:订阅者1接收到200OK响应消息后,将本次订阅与订阅管理集进行关联。
图6是在本发明实施例中订阅者1与通知者1将一个已有订阅加入到订阅管理集的第二种实现方式的流程图。参见图6,如果在设置SMS之前,在订阅者1与通知者1之间已经存在一个对资源C@example.com的订阅,比如订阅3,那么,采用第二种方式针对该订阅3实现集中控制的过程包括以下步骤:
步骤601:订阅者1通过订阅3所关联的会话发送一个刷新订阅消息SUBSCRIBE消息3给通知者1,其中,SUBSCRIBE消息3的Supported头域中携带预先设置的option tag即集中控制业务标识sms。
步骤602:通知者1接收到SUBSCRIBE消息3后,从该消息中解析出集中控制业务标识,判断是否允许对当前的订阅3采用集中控制,如果是,则执行步骤603,否则,执行现有订阅流程。
这里,本步骤执行判断的具体实现过程与上述步骤202处所述判断的实现过程完全相同。
步骤603:通知者1接受对订阅3的刷新请求,判断该刷新订阅消息SUBSCRIBE消息3是否为订阅者1发来的,如果是,则执行步骤604,否则,执行针对当前订阅者创建SMS的过程,结束当前流程。
这里,针对当前订阅者创建SMS的过程与上述图2中的步骤204至步骤207过程所述原理完全相同。
在本步骤中,通知者1判断该刷新的SUBSCRIBE消息3是否为订阅者1发来的过程与图3中步骤304所述判断的过程完全相同。并且,在本步骤中,在判断出该刷新的SUBSCRIBE消息3是订阅者1发来的之后,还可以进一步判断该刷新的SUBSCRIBE消息3对应的路由集与所设置的SMS的路由集是否相同,并在判断出相同之后,继续执行后续的集中控制过程,即执行步骤604,否则,执行针对当前订阅者创建SMS的过程。
步骤604:通知者1将集中控制业务标识携带在失败响应消息的Supported头域中,将在本地匹配到的订阅管理集的标识或该订阅管理集对应会话的标识携带在失败响应消息的SMS-ID头域中,然后将该失败响应消息发送至订阅者1。
这里,所述的失败响应消息可以是本发明重新定义的一个失败响应消息,也可以是已有的3XX-6XX的任意一个失败响应消息。
步骤605:订阅者1根据失败响应消息Supported头域中的集中控制业务标识确定本次订阅采用集中控制,并根据失败响应消息的SMS-ID头域中携带的订阅管理集标识或会话的标识,在本地关联到一个会话。
这里,订阅者1根据失败响应消息的SMS-ID头域中携带的订阅管理集标识或会话的标识,在本地所关联到的会话即为订阅者1与通知者1之间所创建的订阅管理集对应的会话。
在本步骤中,订阅者1接收到失败响应消息时,释放订阅3原关联的会话。
步骤606:订阅者1通过在本地所关联到的会话,重新将针对本次订阅的订阅消息SUBSCRIBE消息3发送至通知者1。
步骤607:通知者1在订阅管理集所关联的会话上接收到SUBSCRIBE消息3,确定允许本次订阅,将本次订阅与订阅管理集进行关联。
步骤608:通知者1构造200OK响应消息,并将集中控制业务标识sms携带在所构造的200OK响应消息的Supported头域中发送至订阅者1。
步骤609:订阅者1接收到200OK响应消息后,将本次订阅与订阅管理集进行关联。
图7是在本发明实施例中订阅者1和通知者1将一个初始订阅加入订阅管理集的第三种实现方式的流程图。参见图7,当在订阅者1和通知者1之间设置了一个SMS及与其对应的会话dialog后,订阅者1向通知者1再次发起一个订阅,比如针对B@example.com资源的订阅2,此时,采用第三种方式实现对订阅者1与通知者1间的订阅2进行集中控制的过程包括以下步骤:
步骤701:订阅者1构造针对订阅2的初始订阅消息SUBSCRIBE消息2,并通过对应于订阅2的一个新建会话将所构造的初始订阅消息SUBSCRIBE消息2发送至通知者1。
这里,订阅者1为了通知资源的拥有者即通知者1,本次订阅需要进行集中控制,订阅者1在构造所述的SUBSCRIBE消息2时,在该SUBSCRIBE消息2中携带预先设置的集中控制业务标识,携带的方式具体包括:方式一、在SUBSCRIBE消息2的Supported头域中携带该集中控制业务标识sms;方式二、在SUBSCRIBE消息2的Require头域中携带该集中控制业务标识sms。
步骤702:通知者1接收到SUBSCRIBE消息2后,从该消息中解析出集中控制业务标识,判断是否允许对当前的订阅2采用集中控制,如果是,则执行步骤703,否则,执行现有的订阅过程。
这里,本步骤的具体实现过程与上述步骤202处所述实现过程完全相同。
步骤703:通知者1判断SUBSCRIBE消息2是否为订阅者1发来的,如果是,则执行步骤704,否则,执行针对当前订阅者创建SMS的过程,结束当前流程。
这里,针对当前订阅者创建SMS的过程与上述图2中的步骤204至步骤207过程所述原理完全相同。
在本步骤中,通知者1判断SUBSCRIBE消息2是否为订阅者1发来的过程包括:通知者1判断自身所设置的SMS中的remote target与本次订阅的SUBSCRIBE消息2中Contact头域的地址部分是否相同,如果是,则确定SUBSCRIBE消息2是订阅者1发来的,否则,确定SUBSCRIBE消息2不是订阅者1发来的。
另外,在本步骤中,在确定SUBSCRIBE消息2是订阅者1发来的之后,通知者1还可以进一步判断所设置的SMS的Route-set与本次订阅的SUBSCRIBE消息2的Route-set是否相同,即判断从订阅者1到通知者1的路由是否相同,如果是,则继续执行后续的订阅集中控制过程,即执行步骤704,否则,执行针对当前订阅者创建SMS的过程。
步骤704:通知者1构造200OK响应消息,并将集中控制业务标识sms携带在所构造的200OK响应消息的Supported头域中发送至订阅者1。
步骤705:通知者1将订阅管理集的标识或该订阅管理集对应会话的标识携带在NOTIFY消息的SMS-ID头域中,将NOTIFY消息中的Subscription-State头域值设置为terminated,reason参数的值设置为migration,然后将该NOTIFY消息发送至订阅者1。
步骤706:订阅者1接收到NOTIFY消息后,将200OK响应消息发送至通知者1。
这里,订阅者1接收到NOTIFY消息后,根据NOTIFY消息中的Subscription-State头域值设置为terminated,reason参数的值设置为migration,确定应将本次订阅移迁到订阅管理集中,则释放专为本次订阅所建立的会话。
步骤707:订阅者1根据NOTIFY消息的SMS-ID头域中携带的订阅管理集标识或会话的标识在本地关联到一个会话。
步骤708:订阅者1通过所关联到的会话重新将初始订阅消息SUBSCRIBE消息2发送至通知者1。
步骤709:通知者1在订阅管理集所关联的会话上接收到SUBSCRIBE消息2,确定允许本次订阅,将本次订阅与订阅管理集进行关联。
步骤710:通知者1将200OK响应消息发送至订阅者1。
步骤711:订阅者1接收到200OK响应消息后,将本次订阅与订阅管理集进行关联。
图8是在本发明实施例中订阅者1与通知者1将一个已有订阅加入到订阅管理集的第三种实现方式的流程图。参见图8,如果在设置SMS之前,在订阅者1与通知者1之间已经存在一个对资源C@example.com的订阅,比如订阅3,那么,采用第三种方式针对该订阅3实现集中控制的过程包括以下步骤:
步骤801:订阅者1通过订阅3所关联的会话发送一个刷新订阅消息SUBSCRIBE消息3给通知者1,其中,SUBSCRIBE消息3的Supported头域中携带预先设置的option tag即集中控制业务标识sms。
步骤802:通知者1接收到SUBSCRIBE消息3后,从该消息中解析出集中控制业务标识,判断是否允许对当前的订阅3采用集中控制,如果是,则执行步骤803,否则,执行现有订阅流程。
这里,本步骤执行判断的具体实现过程与上述步骤202处所述判断的实现过程完全相同。
步骤803:通知者1接受对订阅3的刷新请求,判断该刷新订阅消息SUBSCRIBE消息3是否为订阅者1发来的,如果是,则执行步骤804,否则,执行针对当前订阅者创建SMS的过程,结束当前流程。
这里,针对当前订阅者创建SMS的过程与上述图2中的步骤204至步骤207过程所述原理完全相同。
在本步骤中,通知者1判断该刷新的SUBSCRIBE消息3是否为订阅者1发来的过程与图3中步骤304所述判断的过程完全相同。并且,在本步骤中,在判断出该刷新的SUBSCRIBE消息3是订阅者1发来的之后,还可以进一步判断该刷新的SUBSCRIBE消息3对应的路由集与所设置的SMS的路由集是否相同,并在判断出相同之后,继续执行后续的集中控制过程,即执行步骤804,否则,执行针对当前订阅者创建SMS的过程。
步骤804:通知者1构造200OK响应消息,并将集中控制业务标识sms携带在所构造的200OK响应消息的Supported头域中发送至订阅者1。
步骤805:通知者1将订阅管理集的标识或该订阅管理集对应会话的标识携带在NOTIFY消息的SMS-ID头域中,将NOTIFY消息中的Subscription-State头域值设置为terminated,reason参数的值设置为migration,然后将该NOTIFY消息发送至订阅者1。
步骤806:订阅者1接收到NOTIFY消息后,将200OK响应消息发送至通知者1。
这里,订阅者1接收到NOTIFY消息后,根据NOTIFY消息中的Subscription-State头域值设置为terminated,reason参数的值设置为migration,确定应将本次订阅移迁到订阅管理集中,则释放本次订阅原关联的会话。
步骤807:订阅者1根据NOTIFY消息的SMS-ID头域中携带的订阅管理集标识或会话的标识在本地关联到一个会话。
步骤808:订阅者1通过所关联到的会话,重新将针对本次订阅的订阅消息SUBSCRIBE消息3发送至通知者1。
步骤809:通知者1在订阅管理集所关联的会话上接收到SUBSCRIBE消息3,确定允许本次订阅,将本次订阅与订阅管理集进行关联。
步骤810:通知者1将200OK响应消息发送至订阅者1。
步骤811:订阅者1接收到200OK响应消息后,将本次订阅与订阅管理集进行关联。
总之,以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。