一种基于sip实现呈现业务的呈现服务器、系统及方法

文档序号:7957093阅读:274来源:国知局
专利名称:一种基于sip实现呈现业务的呈现服务器、系统及方法
技术领域
本发明涉及网络通信技术领域,尤其涉及一种基于SIP实现呈现业务的呈现服务器、系统及方法。
背景技术
会话启动协议SIP(Session Initiation Protocol)是一个在IP网络上进行多媒体通信的应用层控制协议,它被用来创建、修改、和终结一个或多个参加者参加的会话进程。这些会话包括Internet多媒体会议、Internet电话、远程教育以及远程医疗等。即所有的因特网上交互式两方或多方多媒体通信活动,统称为多媒体会话。参加会话的成员可以通过组播方式、单播联网方式或者两者结合的方式进行通信。
SIP消息采用文本方式编码,分为两类请求消息和响应消息。请求消息用于客户端为了激活按特定操作而发给服务器的SIP消息,包括INVITE,ACK,OPTIONS,BYE,SUBSCRIBE,CANCEL和REGISTER消息等。响应消息用于对请求消息进行响应,指示呼叫的成功或失败状态。不同类的响应消息由状态码来区分,如状态码为200的响应消息表示OK。
呈现服务(Presence)是以某种通信方式,按照一定的接入准则,实时获取呈现信息(如用户状态、通信能力、个人参考等信息),并展现给其它用户的一种方法。
目前,随着互联网的普及,越来越多的人喜欢通过即时通信的方式来与别人保持联系,这样的人群数量日益剧增。在移动通信领域,即时消息业务也逐渐兴起,丰富、完善的增值服务型即时通信业务,开始成为通信业务市场上的一道亮丽的风景线。呈现服务在这种即时通信中扮演着非常重要的角色。依靠呈现服务,即时通信业务能以“用户多种状态设置”等功能为基础(如用户设置为“打电话中”、“会议进行中”等多种状态),提供“订阅他人状态信息”等多种丰富的增值服务,为个人/企业用户的办公、会议、通信等多领域提供高效便捷的解决方案。
已有技术中用SIP来实现Presence功能,呈现服务器结构如图4所示。包括Presence Agent、Proxy Server和Controller,其中,Presence Agent用于接受并处理订阅请求,生成并发送通告响应;Proxy Server用于转发订阅请求或者通告响应;Controller用于控制和协调模块之间的工作,控制所述Presence Server是作为Presence Agent还是Proxy Server;呈现服务器收到来自本域内订阅者的订阅请求,请求订阅非本域内被订阅者的呈现信息,如果Controller解析得到所述订阅请求的被订阅者为本域内用户,Presence Agent生成并发送通告响应消息至所述订阅者,通告所述被订阅者的呈现信息;如果Controller解析得到所述订阅请求的被订阅者为非本域内用户,Proxy Server转发该订阅请求至被订阅者所在域内的呈现服务器。Presence Server收到来自其他域的NOTIFY时,Controller把该消息交由Proxy Server转发。
Presence可以支持域内和域间,关于域内较为简单,我们主要关注域间的情形。在图1中有两个域,分别为Domain A和Domain B。在Domain A中有呈现服务器(Presence Server)A以及用户User A1和User A2,在Domain B中有呈现服务器(Presence Server)B以及用户User B。
如果User A1和User A2要获取User B的呈现信息(presence信息),如图2所示1)User A1发送订阅请求SUBSCRIBE消息至Presence Server A,在SUBSCRIBE消息中请求订阅User B的呈现信息;2)Presence Server A发现被订阅的用户不是本域用户并发现是Domain B下的用户,则把订阅请求SUBSCRIBE消息简单转发给Presence Server B,Presence Server B如果同意User A1的请求,则回复响应消息200给User A1。
3)Presence Server B发送通告消息NOTIFY至Presence Server A,在NOTFIY消息中包含User B的呈现信息。
4)Presence Server A将NOTIFY消息转发至User A1。
5)User A2发送订阅请求SUBSCRIBE消息至Presence Server A,并在订阅请求SUBSCRIBE消息中请求订阅User B的呈现信息。
6)同理,Presence Server A把SUBSCRI BE消息简单转发给Presence ServerB,Presence Server B如果同意User A2的请,则回复响应消息200给User A2。
7)Presence Server B发送NOTIFY至Presence Server A,在NOTFIY消息中包含User B的呈现信息。
8)Presence Server A将NOTIFY消息转发至User A2。
User B呈现信息改变时,它通过某些方法(比如发送PUBLISH消息)使Presence Server B能够知道新的呈现信息。Presence Server B通过PresenceServer A分别向User A1和User A2发送通告消息NOTIFY告知User B的当前呈现信息。
在图2中,在Presence Server A和Presence Server B之间存在冗余的通告消息传递。如果Presence Server A下有10个用户同时订阅Presence ServerB的用户User B,那么只要User B的状态有所改变那么在Presence Server A和Presence Server B之间就会有20条SIP消息在传递。如果10个用户订阅不同的10个用户那么就有200条消息在传递。即Presence Server A和Presence ServerB之间的用户相互交叉订阅时,消息将会成倍增加。所以,已有技术中PresenceServer之间有大量的冗余消息,且瞬时的消息量会很大。

发明内容
本发明解决的技术问题是提供一种基于SIP实现呈现业务的呈现服务器,以及提供一种基于SIP实现呈现业务的系统及方法,以避免呈现服务系统中呈现服务器间冗余的信息交互。
本发明的目的是通过以下技术方案实现的本发明提供了一种基于SIP实现呈现业务的呈现服务器,包括PresenceAgent、Proxy Server、Watcher Agent和Controller,所述Watcher Agent用于获取非本域内用户的呈现信息,判断是否已经保存有非本域内被订阅者的呈现信息;所述呈现服务器收到来自本域内订阅者的订阅请求,Controller解析得到所述订阅请求的被订阅者为非本域内用户,Watcher Agent查询到所述被订阅者的呈现信息,发送该呈现信息给PresenceAgent,Presence Agent生成并发送通告响应消息至所述订阅者。
其中,Controller解析得到所述订阅请求的被订阅者为本域内用户时,由Presence Agent生成并发送通告响应消息至所述订阅者,通告所述被订阅者的呈现信息。
其中,如果所述Watcher Agent未查询到所述被订阅者的呈现信息,则Watcher Agent向所述被订阅者所在域的呈现服务器发送订阅请求,所述被订阅者所在域的呈现服务器发送通告响应消息给所述订阅者所在域的呈现服务器。
其中,所述呈现服务器收到通告响应消息时,如果所述Controller判断是对本域内发出的订阅请求的响应,Watcher Agent将解析所述通告响应消息得到的呈现信息发送给Presence Agent,Presence Agent生成并发送通告响应消息至发出所述订阅请求的订阅者,否则,Proxy Server转发所述通告响应消息。
其中,所述Watcher Agent向所述被订阅者所在域的呈现服务器发送订阅请求时,所述订阅请求由所述订阅者所在域的呈现服务器创建生成,或者是所述呈现服务器转发来自所述订阅者的订阅请求。
本发明进而提供了一种基于SIP实现呈现业务的系统,该系统包括至少一个呈现服务器,所述呈现服务器所在域内至少包括一个用户,所述呈现服务器收到来自所述用户的呈现服务的订阅请求,请求订阅非本域内被订阅者的呈现信息,查询得到该第一呈现服务器保存有所述被订阅者的呈现信息,直接通告响应所述被订阅者的呈现信息给所述订阅者。
其中,如果查询所述呈现服务器未保存有所述被订阅者的呈现信息,所述呈现服务器向所述被订阅者所在域内的呈现服务器发送订阅请求,所述被订阅者所在域内的呈现服务器向所述订阅者所在域内的呈现服务器通告所述被订阅者的当前呈现信息。
其中,所述订阅者所在域内的呈现服务器向所述被订阅者所在域内的呈现服务器发送订阅请求,所述订阅请求是所述订阅者所在域内的呈现服务器创建生成,或者转发来自所述订阅者的订阅请求。
其中,其特征在于,所述被订阅者的呈现信息改变时,则所述被订阅者所在域内的呈现服务器向所述订阅者所在域内的呈现服务器通告所述被订阅者的当前呈现信息,所述订阅者所在域内的呈现服务器通告所述呈现信息给所述订阅者。
本发明进而提供了一种基于SIP实现呈现业务的方法,该方法包括第一呈现服务器收到来自本域内第一订阅者的订阅请求,请求订阅非本域内被订阅者的呈现信息,查询到第一呈现服务器保存有所述被订阅者的呈现信息,直接通告响应所述被订阅者的呈现信息给所述订阅者。
其中,如果第一呈现服务器未保存有所述被订阅者的呈现信息,所述第一呈现服务器向所述被订阅者所在域内的第二呈现服务器发送订阅请求,所述第二呈现服务器向所述第一呈现服务器通告所述被订阅者的当前呈现信息,该第一呈现服务器通告所述呈现信息给所述第一订阅者。
其中,所述第一呈现服务器向所述被订阅者所在域内的第二呈现服务器发送订阅请求,所述订阅请求是第一呈现服务器创建生成,或者是第一呈现服务器转发来自所述第一订阅者的订阅请求。
其中,所述被订阅者的呈现信息改变,则所述第二呈现服务器向所述第一呈现服务器通告所述被订阅者的当前呈现信息,该第一呈现服务器通告所述呈现信息给所述第一订阅者。
通过采用本发明的解决方案,当呈现服务器收到来自本域内用户的相同的订阅请求时,只向被订阅者所在域的呈现服务器发送一次订阅请求,且被订阅者的呈现信息发生改变时,被订阅者所在域的呈现服务器向订阅者所在服务器只通告一次。在呈现服务器间,本发明丢弃用户级的相互订阅,通过实现呈现服务器级的相互订阅,有效地避免呈现服务系统中呈现服务器间冗余的信息交互。


图1实现呈现业务的系统结构示意图;图2为已有技术中实现呈现业务的方法流程图;图3为本发明中实现呈现业务的方法流程图;图4为已有技术中呈现服务器结构示意图;图5为本发明中呈现服务器结构示意图。
具体实施例方式
贯穿说明书,示出的该优选实施例和示例应被看作本发明的范例而不受限制。
一种基于SIP实现呈现业务的Presence Server,如图5所示,PresenceServer包括如下模块Presence Agent、Proxy Server、Watcher Agent和Controller,其中,Presence Agent用于接受并处理订阅请求,生成并发送通告响应;Proxy Server用于转发订阅请求或者通告响应;Watcher Agent用于获取非本域内用户的呈现信息,提供呈现信息给Presence Agent,判断是否已经保存有非本域内被订阅者的呈现信息;Controller用于控制和协调模块之间的工作,控制Presence Server是作为Presence Agent还是Proxy Server;Presence Server收到来自本域内订阅者的订阅请求,请求订阅非本域内被订阅者的呈现信息,Controller解析得到订阅请求的被订阅者为非本域内用户,Watcher Agent查询到被订阅者的呈现信息,发送该呈现信息给PresenceAgent,Presence Agent生成并发送通告响应消息至订阅者,通告被订阅者的呈现信息。
Controller解析得到订阅请求的被订阅者为本域内用户时,由PresenceAgent生成并发送通告响应消息至订阅者,通告被订阅者的呈现信息。
如果Watcher Agent未查询到被订阅者的呈现信息,则Watcher Agent向被订阅者所在域的Presence Server发送订阅请求,请求订阅被订阅者的呈现信息。
上述被订阅者的呈现信息保存在存储介质中。
Watcher Agent向被订阅者所在域的Presence Server发送订阅请求时,订阅请求由订阅请求者所在域内的Presence Server创建生成,或者是转发来自订阅者的订阅请求。
Presence Server收到通告响应消息时,如果Controller判断是对本域内发出的订阅请求的响应,Watcher Agent将解析通告响应消息得到的呈现信息发送给Presence Agent,Presence Agent生成并发送通告响应消息至发出订阅请求的订阅者;否则,Proxy Server转发通告响应消息。
一种基于SIP实现呈现业务的系统,如图1所示,该系统包括至少一个Presence Server,实际上,可以有多个Presence Server,Presence Server所在域内至少包括一个用户,Presence Server用于接受呈现服务的订阅,提供和更新呈现信息;用户代理向Presence Server订阅呈现服务;订阅者所在域内的Presence Server收到来自用户的呈现服务的订阅请求,请求订阅非本域内被订阅者的呈现信息,如果订阅者所在域内的PresenceServer保存有被订阅者的呈现信息,直接通告响应被订阅者的呈现信息给订阅者;否则,订阅者所在域内的Presence Server向被订阅者所在域内的PresenceServer发送订阅请求,被订阅者所在域内的Presence Server发送通告响应给订阅者所在域内的Presence Server。
被订阅者所在域内的Presence Server收到来自订阅者所在域内的Presence Server的订阅请求,或者被订阅者的呈现信息改变,则被订阅者所在域内Presence Server向订阅者所在域内Presence Server通告述被订阅者的当前呈现信息,该订阅者所在域内Presence Server通告呈现信息给订阅该信息的所有订阅者。
订阅请求是订阅者所在域内的Presence Server创建生成,或者是转发来自订阅者的订阅请求。
一种基于SIP实现呈现业务的方法,仍然以图1的系统为例PresenceServer A和User A1、User A2在Domain A中,Presence Server B和User B在Domain B中。User A1和User A2要获取User B的呈现信息,步骤如图3所示1)User A1发送订阅请求SUBSCRIBE消息至Presence Server A,请求订阅Domain B中用户User B的在线信息;2)Presence Server A发现被订阅的用户不是本域用户,是Domain B中的用户,Presence Server A查询是否保存有用户User B的在线信息,未查询到;3)Presence Server A向Presence Server B发送订阅请求SUBSCRIBE消息请求订阅User B的呈现信息,该SUBSCRIBE消息可以是向Presence Server A根据收到的SUBSCRIBE来重新创建或者直接用收到的SUBSCRIBE消息;4)Presence Server B用NOTIFY向Presence Server A告知User B的呈现信息;5)Presence Server A向User A1发送NOTIFY告知User B的在线状态。
6)User A2发送订阅请求SUBSCRIBE消息至Presence Server A,也是请求订阅User B的呈现信息。
7)Presence Server A发现被订阅的用户不是本域用户,PresenceServer A查询是否保存有用户User B的在线信息,可以查到,Presence ServerB直接向User A2发送NOTIFY告知User B的呈现信息。
当User B改变呈现信息时,它通过某些方法(比如发送PUBLISH消息)使Presence Server B能够得到最新的呈现信息。然后,Presence Server B向Presence Server A发送NOTIFY消息告知User B的呈现信息已改变,进而Presence Server A分别向User A1和User A2发送NOTIFY消息告知User B的当前呈现信息。
上述实施例中,如果被订阅用户域订阅者在同一个域内,Prensence Server处理SUBSCRIBE消息;上述实施例中,我们只以一个Prensence Server为例,替代方案可以有多个Prensence Server。
权利要求
1.一种基于SIP实现呈现业务的呈现服务器,其特征在于,所述呈现服务器包括Presence Agent、Proxy Server、Watcher Agent和Controller,所述Watcher Agent用于获取非本域内用户的呈现信息,判断是否已经保存有非本域内被订阅者的呈现信息;所述呈现服务器收到来自本域内订阅者的订阅请求,Controller解析得到所述订阅请求的被订阅者为非本域内用户,WatcherAgent查询到所述被订阅者的呈现信息,发送该呈现信息给Presence Agent,Presence Agent生成并发送通告响应消息至所述订阅者。
2.根据权利要求1所述的呈现服务器,其特征在于,Controller解析得到所述订阅请求的被订阅者为本域内用户时,由Presence Agent生成并发送通告响应消息至所述订阅者,通告所述被订阅者的呈现信息。
3.根据权利要求1或2所述的呈现服务器,其特征在于,如果所述WatcherAgent未查询到所述被订阅者的呈现信息,则Watcher Agent向所述被订阅者所在域的呈现服务器发送订阅请求,所述被订阅者所在域的呈现服务器发送通告响应消息给所述订阅者所在域的呈现服务器。
4.根据权利要求3所述的呈现服务器,其特征在于,所述呈现服务器收到通告响应消息时,如果所述Controller判断是对本域内发出的订阅请求的响应,Watcher Agent将解析所述通告响应消息得到的呈现信息发送给PresenceAgent,Presence Agent生成并发送通告响应消息至发出所述订阅请求的订阅者,否则,Proxy Server转发所述通告响应消息。
5.根据权利要求4所述的呈现服务器,其特征在于,所述Watcher Agent向所述被订阅者所在域的呈现服务器发送订阅请求时,所述订阅请求由所述订阅者所在域的呈现服务器创建生成,或者是所述呈现服务器转发来自所述订阅者的订阅请求。
6.一种基于SIP实现呈现业务的系统,其特征在于,该系统包括至少一个呈现服务器,所述呈现服务器所在域内至少包括一个用户,所述呈现服务器收到来自所述用户的呈现服务的订阅请求,请求订阅非本域内被订阅者的呈现信息,查询得到该第一呈现服务器保存有所述被订阅者的呈现信息,直接通告响应所述被订阅者的呈现信息给所述订阅者。
7.根据权利要求6所述的系统,其特征在于,如果查询所述呈现服务器未保存有所述被订阅者的呈现信息,所述呈现服务器向所述被订阅者所在域内的呈现服务器发送订阅请求,所述被订阅者所在域内的呈现服务器向所述订阅者所在域内的呈现服务器通告所述被订阅者的当前呈现信息。
8.根据权利要求7所述的系统,其特征在于,所述订阅者所在域内的呈现服务器向所述被订阅者所在域内的呈现服务器发送订阅请求,所述订阅请求是所述订阅者所在域内的呈现服务器创建生成,或者转发来自所述订阅者的订阅请求。
9.根据权利要求6至7中任意一项所述的系统,其特征在于,所述被订阅者的呈现信息改变时,则所述被订阅者所在域内的呈现服务器向所述订阅者所在域内的呈现服务器通告所述被订阅者的当前呈现信息,所述订阅者所在域内的呈现服务器通告所述呈现信息给所述订阅者。
10.一种基于SIP实现呈现业务的方法,其特征在于,该方法包括第一呈现服务器收到来自本域内第一订阅者的订阅请求,请求订阅非本域内被订阅者的呈现信息,查询到第一呈现服务器保存有所述被订阅者的呈现信息,直接通告响应所述被订阅者的呈现信息给所述订阅者。
11.根据权利要求10所述的方法,其特征在于,如果第一呈现服务器未保存有所述被订阅者的呈现信息,所述第一呈现服务器向所述被订阅者所在域内的第二呈现服务器发送订阅请求,所述第二呈现服务器向所述第一呈现服务器通告所述被订阅者的当前呈现信息,该第一呈现服务器通告所述呈现信息给所述第一订阅者。
12.根据权利要求11所述的方法,其特征在于,所述第一呈现服务器向所述被订阅者所在域内的第二呈现服务器发送订阅请求,所述订阅请求是第一呈现服务器创建生成,或者是第一呈现服务器转发来自所述第一订阅者的订阅请求。
13.根据权利要求10至12中任意一项所述的方法,其特征在于,所述被订阅者的呈现信息改变,则所述第二呈现服务器向所述第一呈现服务器通告所述被订阅者的当前呈现信息,该第一呈现服务器通告所述呈现信息给所述第一订阅者。
全文摘要
本发明公开了一种基于SIP实现呈现业务的呈现服务器、系统及方法。其核心思想是第一呈现服务器收到来自用户的呈现服务的订阅请求,请求订阅非本域内被订阅者的呈现信息,如果该第一呈现服务器保存有被订阅者的呈现信息,直接通告响应;否则,所述第一呈现服务器向所述被订阅者所在域内的第二呈现服务器发送订阅请求。第二呈现服务器收到来自第一呈现服务器的订阅请求,或者所述被订阅者的呈现信息改变,则第二呈现服务器向第一呈现服务器通告所述被订阅者的当前呈现信息,进而第一呈现服务器通告给第一订阅者。通过实现呈现服务器级的相互订阅,本发明有效避免呈现服务系统中呈现服务器间冗余的信息交互。
文档编号H04L12/28GK101043394SQ20061006083
公开日2007年9月26日 申请日期2006年5月15日 优先权日2006年5月15日
发明者管红光 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1