一种用sip协议实现呈现和即时消息业务的系统及其方法

文档序号:7628323阅读:299来源:国知局
专利名称:一种用sip协议实现呈现和即时消息业务的系统及其方法
技术领域
本发明涉及会话发起协议SIP应用领域,特别是涉及一种用SIP协议实现呈现和即时消息等即时通信业务的系统及其方法。
背景技术
随着即时通信业务的不断发展,用户群的不断扩大,各种使用呈现(Presence,以下简称PS)和即时消息(Instant Message,以下简称IM)业务的即时通信软件也是层出不穷,其中以MSN和QQ为代表。截至2005年8月,MSN的注册用户已超过700万,而QQ的注册用户数则已突破3亿。由此可见,即时通信业务在人们的工作和日常生活中正扮演着越来越重要的角色。
所谓PS业务,指的是用户通过客户端软件登陆PS服务器后,可以从服务器上取得用户的好友列表及其好友的当前状态;所谓IM业务,指的是用户通过客户端软件登陆IM服务器后,可以通过服务器向其他在线好友发送即时消息。另外,PS和IM服务器之间通常是有紧密联系的(如IM服务器分发即时消息时,需要从PS服务器上得知哪些用户可以分发),因此,以下均简称PS/IM服务器。
通过对MSN和QQ等主流即时通信软件的分析可以发现,这些客户端软件登陆PS服务器后获取好友列表和好友状态时,采用的是超文本传输协议(Hypertext Transfer Protocol,简记为HTTP),然后客户端软件会启动一个定时器,定时给PS服务器发送请求,看看是否有好友的状态发生了变化;而这些客户端软件通过IM服务器发送即时消息和接收消息时,也是采用的HTTP协议,即接收者要定时给IM服务器发送请求,看看是否有其他好友给自己发的即时消息。因此可以发现,这些客户端软件采用HTTP协议定时到服务器上查看是否有好友状态发生变化和是否有其他好友给自己发送即时消息的方式存在一个明显的缺陷不具有实时性,好友状态的变化和发给自己的即时消息不能立即送达客户端!需要等定时器到时后,才由客户端主动给服务器发查询命令,等服务器返回查询结果后,才能知道是否有好友状态发生了变化,以及是否有好友给自己发送了即时消息。如果定时器间隔太长,则实时性更差,如果定时器间隔太短,则在客户端和服务器之间会产生过多的无用的消息包而占用大量的带宽。

发明内容
本发明所要解决的技术问题在于提供一种用会话发起协议SIP(SessionInitiation Protocol,简记为SIP)实现呈现和即时消息业务的系统及其方法,用于克服现有技术中存在的使用HTTP协议所带来的实时性差和带宽资源浪费严重的问题。
为了实现上述目的,本发明提供了一种用SIP协议实现呈现和即时消息业务的系统,包括客户端、PS/IM服务器,其特征在于,还包括设置于所述客户端上的客户端SIP协议栈模块、设置于所述PS/IM服务器上的服务器SIP协议栈模块;其中所述客户端SIP协议栈模块用于通过所述SIP协议中定义的INFO方法发送消息给所述服务器SIP协议栈模块,及通过所述SIP协议中定义的200 OK方法回应所述服务器SIP协议栈模块发来的消息;所述服务器SIP协议栈模块用于通过所述SIP协议中定义的INFO方法发送消息给所述客户端SIP协议栈模块,及通过所述SIP协议中定义的200 OK方法回应所述客户端SIP协议栈模块发来的消息。
为了实现上述目的,本发明提供了一种基于上述系统的用SIP协议实现呈现和即时消息业务的方法,其特征在于,所述客户端SIP协议栈模块通过所述SIP协议中定义的INFO方法发送一消息给所述服务器SIP协议栈模块,所述服务器SIP协议栈模块通过所述SIP协议中定义的200 OK方法回应所述消息;所述服务器SIP协议栈模块通过所述SIP协议中定义的INFO方法发送一消息给所述客户端SIP协议栈模块,所述客户端SIP协议栈模块通过所述SIP协议中定义的200 OK方法回应所述消息。
所述的用SIP协议实现呈现和即时消息业务的方法,其中,在所述客户端SIP协议栈模块与所述服务器SIP协议栈模块之间相互收发消息之前,还包括所述客户端SIP协议栈模块在所述服务器SIP协议栈模块上进行注册的步骤。
所述的用SIP协议实现呈现和即时消息业务的方法,其中,若所述客户端SIP协议栈模块在所述服务器SIP协议栈模块上注册成功后,还包括所述客户端通过所述客户端SIP协议栈模块向所述PS/IM服务器发送一登陆请求信息的步骤。
所述的用SIP协议实现呈现和即时消息业务的方法,其中,还包括所述PS/IM服务器接收该登陆请求信息后向所述客户端SIP协议栈模块回应200OK的步骤。
所述的用SIP协议实现呈现和即时消息业务的方法,其中,还包括所述PS/IM服务器通过向所述客户端发送一认证结果同意所述客户端登陆的步骤。
所述的用SIP协议实现呈现和即时消息业务的方法,其中,若所述客户端SIP协议栈模块未在一定时间内收到所述服务器SIP协议栈模块返回的200 OK时,将重新发送该信息,直到所述服务器SIP协议栈模块回应200 OK或发送一定次数后取消发送。
所述的用SIP协议实现呈现和即时消息业务的方法,其中,若所述服务器SIP协议栈模块未在一定时间内收到所述客户端SIP协议栈模块返回的200 OK时,将重新发送该信息,直到所述客户端SIP协议栈模块回应200 OK或发送一定次数后取消发送。
所述的用SIP协议实现呈现和即时消息业务的方法,其中,当所述客户端欲向一接收客户端发送一即时消息时,还包括所述客户端SIP协议栈模块将该即时消息发给所述PS/IM服务器,所述PS/IM服务器又通过所述服务器SIP协议栈模块将该即时消息发至所述接收客户端的步骤。
所述的用SIP协议实现呈现和即时消息业务的方法,其中,当所述客户端欲下线时,还包括所述客户端SIP协议栈模块将下线消息和离线状态发给所述PS/IM服务器,所述PS/IM服务器确认该下线消息并通过所述服务器SIP协议栈模块返回确认消息至所述客户端的步骤。
本发明的有益效果在于本发明提供了一种真正实时地进行PS和IM业务并节约网络带宽资源的方法和系统,解决了现有技术中存在的使用HTTP协议所带来的实时差和带宽资源浪费严重的问题;与现有技术相比,采用本发明所述方法能达到真正实时地进行PS和IM业务的目的,同时节约了网络带宽资源。
因此,本发明将在客户端与PS/IM服务器之间使用SIP协议,解决了目前使用HTTP协议所带来的实时性差和带宽资源浪费严重的问题。
以下结合附图和具体实施例对本发明进行详细描述,但不作为对本发明的限定。


图1为本发明客户端与PS/IM服务器组网图;图2为本发明SIP协议的INFO方法和200 OK方法交互流程图;图3为本发明SIP协议实现PS和IM业务详细流程图。
具体实施例方式
下面结合附图,对技术方案的实施作进一步的详细描述。
请参阅图1所示,为本发明客户端与PS/IM服务器组网图。在该图中,客户端20上必须运行有SIP协议栈,PS/IM服务器10上也必须运行有SIP协议栈;因此,该组网结构包括以下模块PS/IM服务器10上的SIP协议栈模块101,客户端20上的SIP协议栈模块201。
结合图1所示,本发明提出的用SIP协议实现PS和IM业务的方法包括以下步骤(1),当SIP协议栈模块201所在客户端20在进行PS和IM业务的过程中需要给SIP协议栈模块101所在PS/IM服务器10发送信息时,SIP协议栈模块201将利用SIP协议中定义的INFO方法,将消息发送给SIP协议栈模块101,SIP协议栈模块101在收到SIP协议栈模块201发来的消息后,将立即给SIP协议栈模块201回应SIP协议中定义的200 OK方法,表示收到;(2),当SIP协议栈模块101所在PS/IM服务器10在进行PS和IM业务的过程中需要给SIP协议栈模块201所在客户端20发送信息时,SIP协议栈模块101将利用SIP协议中定义的INFO方法,将消息发送给SIP协议栈模块201,SIP协议栈模块201在收到SIP协议栈模块101发来的消息后,将立即给SIP协议栈模块101回应SIP协议中定义的200 OK方法,表示收到;(3),进一步,如果信息发送方没有在一定时间内收到信息接收方返回的200 OK时,将重新发送信息,直到对方回应200 OK或发送一定次数后取消发送。
请参阅图2所示,为本发明SIP协议的INFO方法和200 OK方法交互流程图。该流程图包括如下步骤步骤210、当PS/IM服务器10有消息(如好友列表,好友状态变化消息,或一客户端发给另一客户端的即时消息)需要发给客户端20时,只需将消息放到MESSAGE中,利用SIP协议中定义的INFO方法就可以发给客户端20了;步骤220、当客户端20收到PS/IM服务器10发来的消息时,将立即回应SIP协议中定义的200 OK消息,表示已收到;步骤230、当客户端20有消息(如登陆请求,好友列表请求,添加、删除或修改好友请求,以及给某好友发送即时消息请求等等)发给PS/IM服务器10时,只需将消息放到MESSAGE中,利用SIP协议中定义的INFO方法就可以发给PS/IM服务器10了;步骤240、当PS/IM服务器10收到客户端20发来的消息时,将立即回应SIP协议中定义的200 OK消息,表示已收到。
请参阅图3所示,为本发明用SIP协议实现PS和IM业务详细流程图。在图3中,用SIP协议实现PS和IM业务详细流程图包括如下步骤第1步骤,要想实现客户端20的SIP协议栈模块201与PS/IM服务器10的SIP协议栈模块101之间互相收发MESSAGE,客户端20的SIP协议栈模块201要首先到PS/IM服务器10的SIP协议栈模块101上注册Register;第2步骤,若注册成功,则PS/IM服务器10的SIP协议栈模块101会给客户端20的SIP协议栈模块201回200 OK;第3步骤,当Register成功后,客户端20将使用SIP协议栈模块201给PS/IM服务器10发送登陆请求MESSAGE;第4步骤,若PS/IM服务器10的SIP协议栈模块101收到此MESSAGE,将给客户端20的SIP协议栈模块201回200 OK;与上述MESSAGE<-->200 OK方式相同,当PS/IM服务器10同意客户端20登陆,则通过第5、6步骤将认证结果发给客户端20;此时,客户端20就可以继续使用第3、4步骤,将各种信息(如请求各个配置信息,请求好友列表,请求好友状态等等)发给PS/IM服务器10。
同样地,此时PS/IM服务器10也可以继续使用第5、6步骤,将各种信息(如客户端20用户的个人配置信息,客户端20用户的好友列表,客户端20用户的好友状态等等)发给客户端20了。
当某客户端20(或本客户端)的状态发生变化时,将使用第3、4步骤或第7、8步骤将新的状态发给PS/IM服务器10;然后PS/IM服务器10将继续使用第5、6步骤或第9、10步骤,将此用户的新状态广播给将此用户添加为好友的用户。其中,第7、8步骤与第9、10步骤的内容与上述MESSAGE<-->200 OK方式的内容相同。
类似地,当某客户端需要给另一客户端发送即时消息时,也需要使用第3、4步骤或第7、8步骤发送给PS/IM服务器10,然后由PS/IM服务器10通过第5、6步骤或第9、10步骤发送给接收客户端20。
当客户端20需要下线时,可以继续使用第3、4步骤,将下线消息和离线状态发给PS/IM服务器10;当PS/IM服务器10确认了客户端20下线消息后,将确认消息通过第5、6步骤发给客户端20;此时客户端20就可以使用第11、12步骤,在SIP协议层进行注销了。其中,第11、12步骤为REGISTER<-->200 OK方式,该步骤为SIP协议应用基本步骤。
与现有技术相比,采用本发明所述方法达到了真正实时地进行PS和IM业务的目的,并节约了网络带宽资源。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员当可根据本发明作出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
权利要求
1.一种用SIP协议实现呈现和即时消息业务的系统,包括客户端、PS/IM服务器,其特征在于,还包括设置于所述客户端上的客户端SIP协议栈模块、设置于所述PS/IM服务器上的服务器SIP协议栈模块;其中所述客户端SIP协议栈模块用于通过所述SIP协议中定义的INFO方法发送消息给所述服务器SIP协议栈模块,及通过所述SIP协议中定义的200 OK方法回应所述服务器SIP协议栈模块发来的消息;所述服务器SIP协议栈模块用于通过所述SIP协议中定义的INFO方法发送消息给所述客户端SIP协议栈模块,及通过所述SIP协议中定义的200 OK方法回应所述客户端SIP协议栈模块发来的消息。
2.一种基于权利要求1所述系统的用SIP协议实现呈现和即时消息业务的方法,其特征在于,所述客户端SIP协议栈模块通过所述SIP协议中定义的INFO方法发送一消息给所述服务器SIP协议栈模块,所述服务器SIP协议栈模块通过所述SIP协议中定义的200 OK方法回应所述消息;所述服务器SIP协议栈模块通过所述SIP协议中定义的INFO方法发送一消息给所述客户端SIP协议栈模块,所述客户端SIP协议栈模块通过所述SIP协议中定义的200 OK方法回应所述消息。
3.根据权利要求2所述的用SIP协议实现呈现和即时消息业务的方法,其特征在于,在所述客户端SIP协议栈模块与所述服务器SIP协议栈模块之间相互收发消息之前,还包括所述客户端SIP协议栈模块在所述服务器SIP协议栈模块上进行注册的步骤。
4.根据权利要求3所述的用SIP协议实现呈现和即时消息业务的方法,其特征在于,若所述客户端SIP协议栈模块在所述服务器SIP协议栈模块上注册成功后,还包括所述客户端通过所述客户端SIP协议栈模块向所述PS/IM服务器发送一登陆请求信息的步骤。
5.根据权利要求4所述的用SIP协议实现呈现和即时消息业务的方法,其特征在于,还包括所述PS/IM服务器接收该登陆请求信息后向所述客户端SIP协议栈模块回应200 OK的步骤。
6.根据权利要求4或5所述的用SIP协议实现呈现和即时消息业务的方法,其特征在于,还包括所述PS/IM服务器通过向所述客户端发送一认证结果同意所述客户端登陆的步骤。
7.根据权利要求2、3、4或5所述的用SIP协议实现呈现和即时消息业务的方法,其特征在于,若所述客户端SIP协议栈模块未在一定时间内收到所述服务器SIP协议栈模块返回的200 OK时,将重新发送该信息,直到所述服务器SIP协议栈模块回应200 OK或发送一定次数后取消发送。
8.根据权利要求2、3、4或5所述的用SIP协议实现呈现和即时消息业务的方法,其特征在于,若所述服务器SIP协议栈模块未在一定时间内收到所述客户端SIP协议栈模块返回的200 OK时,将重新发送该信息,直到所述客户端SIP协议栈模块回应200 OK或发送一定次数后取消发送。
9.根据权利要求2所述的用SIP协议实现呈现和即时消息业务的方法,其特征在于,当所述客户端欲向一接收客户端发送一即时消息时,还包括所述客户端SIP协议栈模块将该即时消息发给所述PS/IM服务器,所述PS/IM服务器又通过所述服务器SIP协议栈模块将该即时消息发至所述接收客户端的步骤。
10.根据权利要求2所述的用SIP协议实现呈现和即时消息业务的方法,其特征在于,当所述客户端欲下线时,还包括所述客户端SIP协议栈模块将下线消息和离线状态发给所述PS/IM服务器,所述PS/IM服务器确认该下线消息并通过所述服务器SIP协议栈模块返回确认消息至所述客户端的步骤。
全文摘要
本发明公开了一种用SIP协议实现呈现和即时消息业务的系统及其方法,其中,该方法包括客户端SIP协议栈模块通过SIP协议中定义的INFO方法发送一消息给服务器SIP协议栈模块,服务器SIP协议栈模块通过SIP协议中定义的200 OK方法回应消息;服务器SIP协议栈模块通过SIP协议中定义的INFO方法发送一消息给客户端SIP协议栈模块,客户端SIP协议栈模块通过SIP协议中定义的200 OK方法回应消息。本发明有效解决了现有技术中存在的使用HTTP协议所带来的实时性差和带宽资源浪费严重的问题;与现有技术相比,采用本发明所述方法能达到真正实时地进行PS和IM业务的目的,同时节约了网络带宽资源。
文档编号H04L12/58GK1984129SQ20051012647
公开日2007年6月20日 申请日期2005年12月13日 优先权日2005年12月13日
发明者张继栋, 曹义林, 陆剑峰, 蒋宇智, 钟名奇 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1