一种即时消息过滤方法

文档序号:85308阅读:404来源:国知局
专利名称:一种即时消息过滤方法
技术领域
本发明涉及网络通信领域,特别是涉及一种即时消息聊天室系统中消息过滤方法。其可以在移动通信网络、Internet网络上进行即时消息业务,移动网络包括现有的2G、2.5G,以及3G、多媒体子域等等。
背景技术
聊天是人们在使用现代通信和上网过程中的主要活动之一,聊天的主要工具已经从初期的聊天室、论坛变为以MSN、OICQ(又称QQ)为代表的即时通讯。大部分人只要上网就会开着自己的即时聊天软件MSN或QQ。据统计,迄今为止,全球约有一亿多人使用即时通讯软件在网上交流。即时消息业务无疑已经成为新世纪时尚的通信业务。
开放移动联盟(Open Mobile Alliance,OMA)国际标准组织对于移动即时消息做了标准制定,在当前的标准规范版本中有两类即时消息系统。第一类是基于无线乡村协议(Wireless Village,WV)的即时消息系统,其基于超文本传送协议/无线访问协议/短消息系统(Hyper Text Transport Protocol/Wireless Access Protocol/Short Message System,HTTP/WAP/SMS)承载的协议,可以支持2.5G/3G网络,第二类是基于初始会话协议/即时消息传递和在线状态利用扩展(Session Initiated Protocol/SIP Instant Message and PresenceLeveraging Extensions,SIP/SIPLE)协议的即时消息系统,其基于SIP/SIMPLE承载的协议,支持基于IP多媒体子系统(IP Multimedia Subsystem,IMS)的IP网络。
但是,即时消息服务在给用户提供低成本高效率的便捷传输的同时,也产生了很多负面的影响,最大的问题是垃圾即时消息,这些垃圾即时消息如低级趣味和商业目的的即时消息使用户不厌其烦,甚至出现利用即时消息进行反动宣传,违反社会公德和国家法律的行为。如何将垃圾即时消息或者反动的即时消息过滤掉已经成为业界需要解决的一个问题。
例如用户A在聊天室系统中聊天,但在该聊天室中总是有用户B向其发送骚扰信息,这样,用户A就得想方法不在此聊天室中接收来自于该骚扰用户B的聊天消息,则用户A可以设置过滤掉用户B的消息,这样他将不会看到来自B的聊天消息,也即实现“消息过滤”。
现有的基于无线乡村协议的即时消息和存在业务(Instant Messaging andPresence Service,IMPS)系统,SIP/SIMPLE即时消息(IM)标准中,有block技术,其中blocklist技术可以使用户在服务器中设置并管理自己的阻塞列表(类似黑名单的意思),服务器控制该列表中的用户不能和该用户进行即时消息交互。
但是这种设置技术一般是用户所做的一种业务设置,相对“静态”,和是否加入聊天室系统无关,其无法在用户加入聊天室后进行设置,用户在聊天过程中无法随时屏蔽自己不喜欢的聊天用户;同时,其设置的范围很窄,只能针对用户、消息大小、消息类型等预先设置而进行屏蔽。
经专利检索,移动即时消息领域中没有发现相关的技术。现有互联网领域中公开了一些消息过滤技术。例如美国专利申请20040019645,但是,该发明主要由客户端应用程序来执行即时消息过滤操作,承载协议为简单对象访问协议(SOAP),而且,该技术的应用场景也不是针对聊天室的即时应用,在聊天时临时设置。

发明内容本发明的目的在于提供一种即时消息过滤方法,其基于SIMPLE移动即时消息(IM),采用初始会话协议(SIP)协议,针对聊天室即时应用,聊天时临时设置,使用户可以随时过滤不需要的信息。
为实现本发明目的而提供的一种即时消息过滤方法,包括下列步骤步骤A)在即时消息聊天室系统建立并激活的聊天室中,客户端向服务器发送即时消息过滤条件消息;步骤B)服务器接收到客户端发来的即时消息过滤条件消息后,解析该消息,并进行有效性校验;步骤C)如果校验通过,则服务器保存即时消息过滤条件,并根据该即时消息过滤条件过滤后续的即时消息;否则返回客户端错误码响应,结束;
步骤D)当客户端退出即时消息聊天室系统,或者该聊天室关闭时,服务器消除客户端所设置的消息过滤条件;步骤E客户端设置并发送过滤条件成功后,再次发送新的过滤条件设置消息,服务器直接覆盖以前的过滤条件,保存为新的过滤条件;步骤F客户端发送清除过滤条件消息,服务器收到消息后清除以往保存的该用户端的消息过滤条件。
所述步骤C包括下列步骤步骤C1)当有后续的即时消息发送所述的聊天室时,服务器读取即时消息过滤条件;步骤C2)服务器根据即时消息过滤条件判断是否需要分发该后续的即时消息给客户端。
本发明的即时消息过滤方法,所述的服务器可以为聊天室控制IM服务器,所述步骤A可以包括下列步骤A1)客户端在使用所述聊天室发送即时消息过程中,发送消息过滤条件消息,该过滤条件消息首先发送给归属IM服务器;A2)客户端归属IM服务器转发该过滤条件消息到聊天室控制IM服务器;A3)聊天室控制IM服务器收到该过滤条件消息后,回响应给归属IM服务器,表示已经收到;A4)归属IM服务器转发此响应给客户端,表示已经收到。
所述步骤A也可以是包括下列步骤步骤A1′)客户端在使用所述聊天室发送即时消息过程中,发送消息过滤条件,该过滤条件消息发送给聊天室控制IM服务器;步骤A2′)聊天室控制IM服务器收到该过滤条件消息后,回响应给客户端,表示已经收到。
本发明的即时消息过滤方法,所述服务器还可以为归属IM服务器,所述步骤A包括下列步骤A1″)客户端在使用所述聊天室发送即时消息过程中,发送消息过滤条件消息,该过滤条件消息发送给归属IM服务器;A2″)归属IM服务器收到过滤条件消息后,发送响应消息给客户端,表示收到此消息。
当所述服务器为归属IM服务器时,所述步骤C包括下列步骤归属IM服务器将消息过滤条件保存到本地服务器,或者通过XCAP标准协议接口将消息过滤条件保存到IM XDMS。
所述发送消息过滤条件是通过MSRP SEND发送消息;或者是通过SIPMESSAGE发送消息;或者通过SIP PUBLISH发送消息。
的即时消息过滤方法,其特征在于,还包括下列步骤本发明的即时消息过滤方法,还可以包括下列步骤步骤E客户端设置并发送过滤条件成功后,再次发送新的过滤条件设置消息,服务器直接覆盖以前的过滤条件,保存为新的过滤条件。
步骤F客户端发送清除过滤条件消息,服务器收到消息后清除以往保存的该用户端的消息过滤条件。
所述过滤条件为接收客户端来源,或者发送客户端来源,或者客户端消息大小,或者消息格式,或者消息内容,或者消息类型。
所述聊天室系统为SIP/SIMPLE即时消息系统。
本发明的有益效果是本发明能够支持SIP/SIMPLE即时消息(IM)用户加入聊天室后,能够实现对聊天室中的某些消息进行过滤的功能,对于提出过滤请求的客户端来说实现了消息过滤,对于被过滤的消息的消息发送者来说是透明的,因此增强了聊天室系统中即时消息的功能,使用户得到更好的体验。
图1为本发明的即时消息过滤方法流程图;图2为实施例一中用户在聊天过程中的消息过滤流程图;图3为实施例二中用户在聊天过程中的消息过滤流程图;图4为实施例三中用户在聊天过程中的消息过滤流程图;图5为实施例四中用户在聊天过程中的消息过滤流程图;图6为实施例五中用户在聊天过程中的消息过滤流程图;图7为实施例六中用户在聊天过程中的消息过滤流程图。
具体实施方式下面结合附图1~7进一步详细说明本发明的即时消息过滤方法。
本发明是在移动通信网络、Internet网络上开展的聊天室系统中的即时消息业务,其中移动网络包括现有的2G、2.5G、3G以及多媒体子系统(IMS)等移动通信网络。更具体地说,本发明是基于SIP/SIMPLE的聊天室系统中的即时消息(IM)业务系统,采用初始会话协议(SIP),针对聊天室系统的即时消息应用,进行聊天时的临时设置。
其中,本具体实施方式
中各实施例以SIP/IP核心(Core)而进行描述,其中SIP/IP核心(Core)是属于3GPP和3GPP2定义多媒体子系统(IMS)的核心网部分,如呼叫会话控制功能(Call Session Control Function,CSCF)或者IP网络。
在以下各个实施例中,控制即时消息功能的服务器(Controling IMFunction)ServerX上已经根据多媒体子系统(IMS)的呼叫会话控制功能(CSCF)或者IP网络按照公知标准SIP协议建立并激活一个聊天室系统的中聊天室;多个客户端ClientA、ClientB、ClientC已经加入聊天室建立即时消息会话。
客户端ClientA、ClientB、ClientC和聊天室控制IM服务器ServerX建立的即时消息会话通道为按公知的消息会话中继协议(Message Seesion RelayProtocol,MSRP)建立的聊天消息传输通道,其可能有两种可选的聊天通道建立方式方式一客户端(Client)和其归属的参与方IM服务器(Participating IMServer)建立直接的MSRP通道(Channel),客户端归属的参与方IM服务器(Participating IM Server)和聊天室控制IM服务器(Controlling IM Server,也叫聊天室服务器或者控制IM服务器)建立直接的MSRP通道(Channel),如实施例一中图2所示。
方式二,客户端(Client)和聊天室控制IM服务器建立直接的MSRP通道(Channel),不经过其归属的参与方IM服务器(Participating IM Server),如实施例二中图3所示。
在建立聊天室的过程中,可以按照公知的技术建立起聊天室,聊天室中的客户端和聊天室控制IM服务器既可以在同一个归属网络,也可以不在同一个归属网络,也可以有其它的组网方式。
本发明的各个实施例中的即时消息过滤条件可以是在聊天过程中临时设置,随着聊天结束而结束;当然,也可以允许用户在聊天之前预先设置消息过滤准则,且该准则可以对所有的聊天室适用,包括消息过滤准则的存储、聊天室控制IM服务器获取消息过滤准则的流程、用于获取的可选承载协议等方面。
在各实施例中,各实体的含义如下ClientA表示已经加入SIMPLE即时消息(IM)聊天室系统的用户A所在的客户端;ClientB表示已经加入SIMPLE即时消息(IM)聊天室系统的用户B所在的客户端;ClientC表示已经加入SIMPLE即时消息(IM)聊天室系统的用户C所在的客户端;ServerX表示聊天室系统所在的SIMPLE即时消息(IM)服务器,此时ServerX为控制即时消息功能服务器(Controlling IM Function Server),即聊天室控制IM服务器,也叫聊天室服务器或者控制IM服务器;ServerA表示ClientA所归属的SIMPLE即时消息(IM)服务器,由于ServerX为聊天室所在聊天室控制IM服务器,此时ServerA是多方即时消息功能服务器(Participating IM Function Sever),即ClientA的归属参与方IM服务器,也叫ClientA归属服务器;ServerB表示ClientB、ClientC所归属的SIMPLE即时消息(IM)服务器,同样,由于ServerX为聊天室所在聊天室控制IM服务器,此时ServerB是多方即时消息功能服务器(Participating IM Function Server),即ClientB和ClientC的归属参与方IM服务器,也叫ClientB、ClientC归属服务器;SIP/IP COREA、SIP/IP COREB分别表示ClientA、ClientB、ClientC所在的初始会话协议(SIP)核心网络。
实施例一本实施例在已经建立的聊天室中有客户端ClientA、ClientB、ClientC,建立一个过滤条件为过滤所有来自客户端ClientB的消息。
在本实施例中,消息复用现有的消息会话中继协议(MSRP)消息传输通道;同时,客户端(Client)消息经由归属参与方IM服务器(Participating IMServer)ServerA再到聊天室控制IM服务器ServerX(Controlling IM ServerServerX)如图1、2所示,本实施例中的即时消息过滤方法包括下列步骤11)用户A客户端ClientA在聊天过程中,可以临时设置消息过滤条件屏蔽所有来自用户B客户端ClientB的消息,并发送到聊天室控制IM服务器。
111)ClientA在聊天过程中,若希望实现某些消息的过滤,则通过MSRPSEND发送消息过滤条件,该过滤条件消息首先发送给归属的参与方IM服务器ServerA,在该MSRP SEND消息的消息头中包含Content-type,例如Content-Type为application/vnd.im.msrp+xml。MSRP SEND消息的消息体中定义XML格式内容来承载消息过滤准则信息。
MSRP SEND消息包括消息头和消息体两部分消息头的主要域就是content-type,其他的同现有技术相同,例如to-path、from-path、messageID等等,例如MSRP dkei38sd SENDTo-Path:msrp://user2.imserver.com:7777/iau39;tcpFrom-Path:msrp://imserver.com:8888/9di4ea;tcpMessage-ID:123Content-Type:application/vnd.im.msrp+xml消息体部分主要来承载具体的消息发送内容,本文指的是过滤准则。所述XML格式(Schema)可以定义承载消息过滤准则信息,例如<?xml version=″1.0″encoding=″UTF-8″?>
<xs:schematargetNamespace=″urn:oma:params:xml:ns:im:chatmessage-filter″xmlns:xs=″http://www.w3.org/2001/XMLSchema″xmlns=″urn:oma:params:xml:ns:im:chatmessage-filter″elementFormDefault=″qualified″attributeFormDefault=″unqualified″>
<xs:element name=″chatmessage-filter″>
<xs:complexType>
<xs:sequence>
<xs:element name=″msgfilter-type″minOccurs=″1″>
<xs:simpleType>
<xs:restriction base=″xs:string″>
<xs:enumeration value=″request″/>
<xs:enumeration value=″response″/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name=″msgfilter″minOccurs=″1″maxOccurs=″unbounded″>
<xs:complexType>
<xs:sequence>
<xs:element name=″filtered-user″type=″xs:string″minOccurs=″1″/>
<xs:element name=″filtered-duration″type=″xs:positiveInteger″minOccurs=″0″/>
……</xs:sequence>
<xs:attribute name=″id″type=″xs:string″use=″required″/>
</xs:complexType>
</xs:element>
<xs:sequence>
<xs:complexType>
<xs:element>
112)ClientA归属的参与方IM服务器ServerA转发此MSRP SEND请求到ServerX。
转发是现有的SIP技术,只是将MSRP SEND消息的消息头中作一些转换。
113)ServerX收到MSRP SEND请求后,回MSRP 200 OK响应给ServerA,表示已经收到;114)ServerA转发此200 OK响应给ClientA,表示已经收到。
12)聊天室控制IM服务器ServerX接收到过滤条件消息后,进行有效性校验。
ServerX解析MSRP SEND中的消息内容,校验其有效性,例如是否过滤条件是否超长、过滤条件中的值定义是否有效;接收方解析MSRP SEND的内容,只要定义了XML格式,发送方和接收方就都能够按照相同的意义识别。
13)若校验通过,则聊天室控制IM服务器保存这些消息过滤准则;否则返回client端错误码响应,结束。
131)如果校验不通过,则返回客户端ClientA错误响应;否则继续。
132)ServerX保存ClientA发送过来的消息过滤条件到本地,消息过滤条件为屏蔽所有来自用户B的消息;较佳地,消息过滤条件保存到本地数据库。
进一步地,ClientA首次设置并发送过滤条件成功后,也可以再次发送新的过滤条件设置消息,考虑到聊天室控制IM服务器的效率问题,较佳地,SererX直接覆盖以前的过滤条件,保存为新的过滤条件,这样服务器处理简单,负载轻,效率更高。
另外,ClientA也可以选择清除过滤条件,例如可以是设置过滤条件为空的方式,也可以是在MSRP SEND的XML消息体中定义清除过滤条件的操作,这时ServerX清除以往保存的该用户端的消息过滤条件记录。
消除过滤条件的操作如前述的XML格式(Schema),具体应用时可以将其中的所有字段取值初始化即可表示清除过滤条件。
14)当有后续的ClientB的聊天消息发送聊天室控制IM服务器时,聊天室控制IM服务器读取本地保存的所有的消息过滤准则;141)ClientB发送MSRP SEND到其归属的参与方IM服务器ServerB,MSRP SEND消息体中为用户B发出的聊天消息例如,ClientB发送聊天消息,其处理过程为MSRP d93kswow SENDTo-Path:msrp://user2.imserver.com:1111/iau39;tcpFrom-Path:msrp://imserver.com:2222/9di4ea;tcpMessage-ID:12339sdqwerContent-Type:text/plainHello!142)ClientB归属的参与方IM服务器ServerB转发此MSRP SEND消息请求到ServerX;143)ServerX收到上述的MSRP SEND消息请求后,回MSRP 200 OK响应给ServerB,表示已经收到;144)ServerB转发此200 OK响应给ClientB,表示已经收到;
145)ServerX需要读取本地保存的消息过滤条件;15)聊天室控制IM服务器读取的消息过滤条件来过滤处理ClientB聊天消息,判断是否需要分发给聊天室中的当前所有用户。
151)ServerX读取本地保存的消息过滤条件后,判断是否需要分发来自用户B的聊天消息到各个已加入聊天室的用户。在本例中,ServerX判断出不需要分发给用户A,可以分发给用户C。
152)ServerX转发来自ClientB的MSRP SEND消息到ClientC归属的ServerB,MSRP SEND消息体中为用户B发出的聊天消息;153)ServerB转发MSRP SEND请求给ClientC;154)ClientC收到上述的MSRP SEND请求后,回MSRP 200 OK响应给ServerB,表示已经收到;155)ServerB转发此MSRP 200 OK响应给ServerX,表示已经收到;156~9)由于ServerX判断不需要分发用户B的消息到用户A,因此步骤156-159都将被忽略,即ServerX不再执行分发消息到用户A。
16)当ClientA退出聊天室或者聊天室系统关闭该聊天室后,聊天室控制IM服务器ServerX消除ClientA的所有过滤条件。
进一步地,本实施例中的过滤条件只对本次聊天适用,当用户客户端ClientA退出聊天室或者聊天室关闭之后,聊天室控制IM服务器ServerX清除消息过滤条件。
实施例二本实施例在已经建立的聊天室中有客户端ClientA、ClientB、ClientC,建立一个过滤条件为过滤所有来自客户端ClientB的消息。
在本实施例中,消息复用现有的消息会话中继协议(MSRP)消息传输通道;同时,客户端(Client)消息直接和聊天室控制IM服务器之间具有直接的消息会话中继协议(MSRP)消息传输通道。
如图3所示,ClientA和聊天室控制IM服务器ServerX已经建立了直接的MSRP聊天消息传输通道,而不经过ClientA归属的参与方IM服务器ServerA(Participating IM ServerA)。
如图1、3所示,本实施例中的即时消息过滤方法包括下列步骤
21)用户A客户端ClientA在聊天过程中,可以临时设置消息过滤条件屏蔽所有来自用户B客户端ClientB的消息,并发送到聊天室控制IM服务器。
211)ClientA在聊天过程中,若希望实现某些消息的过滤,则通过MSRPSEND发送消息过滤条件,在该MSRP SEND消息的消息头中包含Content-type,例如Content-Type为application/vnd.im.msrp+xml。MSRP SEND消息的消息体中定义XML格式内容来承载消息过滤准则信息。
本实施例中的发送消息过滤条件与实施例一基本相同,唯一不同的是MSRP SEND中的to-path和from-path有所区别,而这是在聊天时建立MSRP数据通道时已经具备的现有技术。
212)ServerX收到MSRP SEND请求后,回MSRP 200 OK响应给ClientA,表示已经收到;22)聊天室控制IM服务器ServerX接收到过滤条件消息后,进行有效性校验。
ServerX解析MSRP SEND中的消息内容,校验其有效性,例如是否过滤条件是否超长、过滤条件中的值定义是否有效;23)若校验通过,则聊天室控制IM服务器保存这些消息过滤准则;否则返回Client端错误码响应,结束。
231)如果校验不通过,则返回客户端ClientA错误响应;否则继续。
232)ServerX保存ClientA发送过来的消息过滤条件到本地,消息过滤条件为屏蔽所有来自用户B的消息;24)当有后续的ClientB的聊天消息发送聊天室控制IM服务器时,聊天室控制IM服务器读取本地保存的所有的消息过滤准则;241)ClientB发送MSRP SEND到ServerX,MSRP SEND消息体中为用户B发出的聊天消息;242)ServerX收到上述的MSRP SEND消息请求后,回MSRP 200 OK响应给ClientB,表示已经收到;243)ServerX需要读取本地保存的消息过滤条件。
25)聊天室控制IM服务器ServerX读取的消息过滤条件来过滤处理ClientB聊天消息,判断是否需要分发给聊天室中的当前所有用户。
251)ServerX读取本地保存的消息过滤条件后,判断是否需要分发来自用户B的聊天消息到各个已加入聊天室的用户。在本实施例中,ServerX判断出不需要分发给用户A,可以分发给用户C。
252)ServerX发送MSRP SEND消息到ClientC,MSRP SEND消息体中为用户B发出的聊天消息;253)ClientC收到上述的MSRP SEND请求后,回MSRP 200 OK响应给ServerX,表示已经收到;254~6)由于ServerX判断不需要分发用户B的消息到用户A,因此步骤254-6都将被忽略,ServerX不被执行。
26)当ClientA退出聊天室或者聊天室系统关闭该聊天室后,聊天室控制IM服务器ServerX消除ClientA的所有过滤条件。
实施例三本实施例在已经建立的聊天室中有客户端ClientA、ClientB、ClientC,建立一个过滤条件为屏蔽自己所有的消息,不再发送给用户B的客户端ClientB。
在本实施例中,消息复用现有的消息会话中继协议(MSRP)消息传输通道;同时,客户端(Client)消息经由归属参与方IM服务器(Participating IMServer)ServerA再到聊天室控制IM服务器ServerX(Controlling IM ServerServerX)如图1、4所示,本实施例中用户A的客户端ClientA设置过滤条件为屏蔽所有自己发出的聊天消息,不再发送给用户B的客户端ClientB,也就是用户B看不到用户A的聊天消息。
客户端ClientA设置该过滤条件的过程与实施例一相同。
下面说明用户A开始发送聊天消息,ServerX执行消息过滤的过程31)当有后续的ClientB的聊天消息发送聊天室控制IM服务器时,聊天室控制IM服务器读取本地保存的所有的消息过滤准则;311)ClientA发送MSRP SEND到其归属的ServerA,MSRP SEND消息体中为用户A发出的聊天消息;312)ServerA转发此MSRP SEND请求到ServerX;313)ServerX收到上述的MSRP SEND请求后,回MSRP 200 OK响应给ServerA,表示已经收到;314)ServerA转发此200 OK响应给ClientA,表示已经收到;32)聊天室控制IM服务器读取的消息过滤条件来过滤处理ClientA聊天消息,判断是否需要分发给聊天室中的当前所有用户。
321)ServerX需要读取本地保存的消息过滤准则,判断是否需要分发来自用户A的聊天消息到各个已加入聊天室的用户。在本例中,ServerX判断出不需要分发给用户B,可以分发给用户C。
322)ServerX转发MSRP SEND到ClientC归属的ServerB,MSRP SEND消息体中为用户B发出的聊天消息;323)ServerB转发步骤322所述的MSRP SEND请求给ClientC;324)ClientC收到上述的MSRP SEND请求后,回MSRP 200 OK响应给ServerB,表示已经收到;325)ServerB转发此MSRP 200 OK响应给ServerX,表示已经收到;326-329)由于ServerX判断不需要分发用户A的消息到用户B,因此步骤326-329都将被忽略,不被执行。
33)当ClientA退出聊天室或者聊天室系统关闭该聊天室后,聊天室控制IM服务器ServerX消除ClientA的所有过滤条件。
实施例四本实施例在已经建立的聊天室中有客户端ClientA、ClientB、ClientC,建立一个与实施例二相同过滤条件过滤所有来自客户端ClientB的消息。
在本实施例中,使用SIP MESSAGE作为承载消息。
如图1、5所示,本实施例中的即时消息过滤方法包括下列步骤41)用户A客户端ClientA在聊天过程中,可以临时设置消息过滤条件屏蔽所有来自用户B客户端ClientB的消息,并发送到聊天室控制IM服务器。
411)ClientA在聊天过程中,若希望实现某些消息的过滤,则通过SIPMESSAGE发送消息过滤条件,首先发送到SIP/IP Core。SIP MESSAGE消息的消息头中,Request-URI包含聊天室控制IM服务器的URI地址,Accept-Contact头中包含feature-tag特征码,例如′+g.oma.im.filter.′,就是本SIP MESSAGE消息类型的一个唯一标识,表示是IM业务的消息过滤条件的一个消息。SIP MESSAGE消息的消息体中携带了消息过滤准则的内容。
Content-type域包含了内容类型,例如application/conference-filter+xml;MESSAGE sip:confl@imserverl.com SIP/2.0Max-Forwards:70From:sip:userA@SIMPLE.com;tag=49583To:sip:confl@imserverl.comCall-ID:d432fa84b4c76e66710CSeq:1 MESSAGEAccept-Contact:′+g.oma.im.filter.′Content-Type:application/conference-filter+xmlSIP MESSAGE消息的消息体中以XML格式携带了消息过滤准则的内容其与上述MSRP SEND类似。
412)SIP/IP CoreA转发此SIP MESSAGE到ClientA归属的IM服务器ServerA;413)ServerA根据SIP MESSAGE中的目的地址发现不是本服务器,是另一个SIP域的地址,则转发此SIP MESSAGE给SIP/IP CoreA;414)SIP/IP CoreA发现不是本SIP域是SIP/IP CoreB域的,则转发此SIPMESSAGE消息给SIP/IP CoreB;415)SIP/IP CoreB判断是给ServerX的消息,则转发此SIP MESSAGE消息给ServerX;416)ServerX收到SIP MESSAGE后,给SIP/IP CoreB回复SIP 200 OK,表示收到此消息;417)SIP/IP CoreB将此200 OK响应消息转发给SIP/IP CoreA;418)SIP/IP CoreA将此200 OK响应消息转发给ServerA处理;419)ServerA发现是需要给ClientA回复的响应,则将此200 OK响应消息转发给SIP/IP CoreA;4110)SIP/IP CoreA将此200 OK响应消息转发给ClientA;42)聊天室控制IM服务器ServerX接收到过滤条件消息后,进行有效性校验。
ServerX解析SIP MESSAGE消息内容,校验其有效性,例如是否过滤条件是否超长、过滤条件中的值定义是否有效;43)若校验通过,则聊天室控制IM服务器ServerX保存这些消息过滤准则;否则返回Client端错误码响应,结束。
431)如果校验不通过,则返回客户端ClientA错误响应;否则继续。
432)ServerX保存ClientA发送过来的消息过滤条件到本地,消息过滤条件为屏蔽所有来自用户B的消息;后续的步骤与实施例三的步骤31~33相同,本实施例中不再详细描述。
实施例五本实施例在已经建立的聊天室中有客户端ClientA、ClientB、ClientC,建立一个过滤条件过滤所有自己的消息被发送给用户B。
在本实施例中,使用SIP PUBLISH作为承载消息。
如图1、6所示,本实施例中的即时消息过滤方法包括下列步骤51)用户A客户端ClientA在聊天过程中,可以临时设置消息过滤条件过滤所有用户A客户端ClientA所有消息被发送给用户B客户端ClientB,即过滤条件为用户A客户端ClientA发送的消息,只发送给用户B客户端ClientB,并将过滤条件发送到聊天室控制IM服务器。
511)ClientA在聊天过程中,若希望实现某些消息的过滤,则通过SIPPUBLISH发送消息过滤条件,首先发送到SIP/IP CoreA。SIP PUBLISH消息的消息头中,Request-URI为ClientA的URI地址;Accept-Contact头中包含feature-tag特征码,例如′+g.oma.im.filter.′,就是本SIP PUBLISH消息类型的一个唯一标识,表示是IM业务的消息过滤条件的一个消息。SIP PUBLISH的目的地址为聊天室控制IM服务器地址;Content-type定义为过滤规则类型,例如application/chat-filter-settings+xml。
SIP PUBLISH的XML MIME消息体中携带了消息过滤准则的内容,其定义方式与实施例一中的所述MSRP SEND类似。
512)SIP/IP CoreA转发此SIP PUBLISH到ClientA归属的IM服务器ServerA;513)ServerA根据SIP PUBLISH中的目的地址发现不是本服务器,是另一个SIP域的地址,则转发此SIP PUBLISH给SIP/IP CoreA;514)SIP/IP CoreA发现不是本SIP域,而是SIP/IP CoreB域的,则转发此SIP PUBLISH消息给SIP/IP CoreB;515)SIP/IP CoreB判断是给ServerX的消息,则转发此SIPPUBLISH消息给ServerX;516)ServerX收到SIP PUBLISH后,给SIP/IP CoreB回复SIP 200 OK,表示收到此消息;517)SIP/IP CoreB将此200 OK响应消息转发给SIP/IP CoreA;518)SIP/IP CoreA将此200 OK响应消息转发给ServerA处理;519)ServerA发现是需要给ClientA回复的响应,则将此200 OK响应消息转发给SIP/IP CoreA;5110)SIP/IP CoreA将此200 OK响应消息转发给ClientA;后续的步骤与实施例五的步骤42后续的步骤相同,本实施例中不再详细描述。
实施例六在本实施例中,消息过滤条件不是由聊天室控制IM服务器ServerX来执行消息过滤功能,而是由各个聊天用户所归属的参与IM服务器来分别执行消息过滤功能。消息过滤条件是屏蔽所有来自用户B客户端ClientB的消息在这种情况下,客户端ClientA、ClientB、ClientC和聊天室控制IM服务器ServerX以方式一按公知的消息会话中继协议(MSRP)建立聊天消息传输通道,即客户端和其归属IM服务器建立直接的MSRP通道,客户端归属IM服务器和聊天室控制IM服务器ServerX发建立直接的MSRP通道。
对方式二,即客户端和聊天室控制IM服务器建立直接的MSRP通道,不经过其归属的参与方IM服务器的情况,本实施例并不适用。
在本实施例中,使用SIP PUBLISH作为承载消息。
如图1、7所示,本实施例中的即时消息过滤方法包括下列步骤61)用户A客户端ClientA在聊天过程中,可以临时设置消息过滤条件屏蔽所有来自用户B客户端ClientB的消息,并将过滤条件发送到客户端ClientA归属的即时消息服务器ServerA。
611)同实施例五中的步骤511)一样,ClientA在聊天过程中若希望实现某些消息的过滤,则通过SIP PUBLISH来发送消息过滤条件,只是PUBLISH的目的地址为客户端ClientA归属的IM服务器ServerA的地址。
612)同实施例五中的步骤512)一样,SIP/IP CoreA转发此SIP PUBLISH到ClientA归属的IM服务器ServerA;613)ServerA收到SIP PUBLISH后,需要给ClientA回复的响应,则发送200 OK响应消息给SIP/IP CoreA,表示收到此消息。
62)归属IM服务器ServerA收到过滤条件消息后,进行有效性校验。
ServerA解析SIP PUBLISH中的消息内容,校验其有效性,例如是否过程条件超长、过滤条件中的值定义是否有效;63)若校验不通过,则返回ClientA错误码响应,然后结束;否则归属IM服务器ServerA保存这些消息过滤条件,继续下面的步骤;631)如果校验不通过,则返回客户端ClientA错误响应,然后结束;否则继续;632)归属IM服务器ServerA保存ClientA发送过来的消息过滤条件到本地服务器,或者通过XCAP标准协议接口将消息过滤规则存储到ClientA所属的IM XDMS,消息过滤条件为屏蔽所有来自用户B客户端ClientB的消息。
归属服务器ServerA在通过有效性校验后,既可以将消息过滤条件保存到本地服务器ServerA,也可以通过会议策略修改访问控制协议(XMLConfiguration Access Protocol,XCAP)标准协议接口将消息过滤规则存储到ClientA所属的IM XDMS。
IM XDMS是XCAP标准规范中定义的一个存储实体,用于存储和即时消息业务相关的数据,其以XML格式存在。
64)当有后续的聊天消息发送给用户A客户端ClientA时,归属IM服务器ServerA读取本地保存的所有的消息过滤准则;641)用户B的客户端ClientB发送MSRP SEND消息到其归属IM服务器ServerB,MSRP SEND消息体中为用户B发出的聊天消息;
642)ClientB归属的IM服务器转发此MSRP SEND消息到聊天室控制IM服务器ServerX;643)ServerX收到所述的MSRP SEND消息后,回MSRP 200 OK响应给ServerB,表示已经收到;644)ServerB转发此200 OK响应给ClientB,表示已经收到;645)ServerX分发此聊天消息到聊天室中的所有用户,包括用户A,在ServerX分发到用户A的客户端ClientA之前,首先分发到ClientA的归属IM服务器ServerA;ServerX转发来自ClientB的MSRP SEND消息到ClientA归属IM服务器ServerA,MSRP SEND消息体中包括用户B发出的聊天消息。
ServerX还可以分发该消息到其它用户,其与本发明无关,因此不再赘述。
其中,在本实施例中,ServerX本身不判断消息过滤规则,即本身不进行消息过滤,仍然按正常情况下一样分发聊天消息到各用户。但本领域技术人员可以理解,ServerX也可以进行采用本地消息过滤条件,对消息进行过滤后再下发给ServerA。
646)ServerA收到所述MSRP SEND消息后,回MSRP 200 OK消息给ServerX,表示已收到;ServerA收到消息后,从所述MSRP SEND消息中可以获取此聊天消息发自哪个用户,属于哪个聊天室。
65)归属IM服务器ServerA读取本地保存的消息过滤条件,判断是否需要将该聊天消息转发给其归属的且处于当前聊天室中的用户客户端;ServerA读取消息过滤条件,根据此消息目的地址判断是否需要将该聊天消息转发给ServerA归属的且处天当前聊天室中的用户客户端,在本实施例中,ClientA是ServerA归属的客户端,且处于当前聊天室中,根据步骤63)所保存的消息过滤条件,判断不需要分发该消息给用户A客户端ClientA,因为用户A已经设置了需要过滤用户B的消息。
ServerA读取消息过滤条件,如果是保存在本地服务器时,则从本地服务器读取; 如果是保存在IM XDMS上,则通过XCAP标准协议接口从IMXDMS中读取消息过滤条件。
ServerA读取消息过滤条件,并进行判断是现有公知技术,本发明中不再赘述。
66)由于ServerA判断不需要转发用户B的消息到用户A的客户端ClientA,因此后面的步骤66~67不再执行,即不再转发MSRP SEND消息到ClientA,并由ClientA执行收到消息响应。
在本实施例中,消息过滤条件是使用SIP PUBLISH作为承载消息,也可以使用SIP MESSAGE、MSRP SEND等其他消息来承载消息过滤条件,其方法与本发明实施例四、三类似,本发明不再重复描述。
进一步地,过滤准则只对本次聊天适用,当用户退出聊天室或者聊天室关闭后,归属的IM服务器消息过滤条件,其根据过滤规则的存储地不同,如果是保存在本地服务器上,则归属服务器用内部协议清除本地存储的过滤条件;如果是保存在IM XDMS上,则用标准的XCAP协议接口清除IM XDMS上的过滤条件;或者是,不管其保存在本地还是IM XDMS上,都不清除消息过滤条件记录,但是标识其为“无效”,说明对下一次重新启动时聊天室无效。
本实施例中由归属IM服务器来分摊过滤即时消息的任务,其能够有效减轻聊天室控制IM服务器的负担,使聊天室控制IM服务器的运行资源能够得到更好的应用,加快即时消息在聊天室控制IM服务器中的处理。
本发明的消息过滤方法,消息过滤条件范围更大,可以按接收者用户、按消息大小、按消息内容格式(例如JPEG、txt等)、按消息内容类型(例如文本、音频、视频等);从用户实际使用需求来看,“用户在聊天过程中临时设置消息过滤准则”相对于“用户在聊天之前预设置消息过滤准则”来说,更简单实用,用户在聊天过程中可以随时屏蔽掉自己不喜欢的聊天用户,而这样的聊天用户往往是在聊天之前无法预先得知的。
本发明的各个实施例只是为了使本领域普通技术人员理解本发明,而对本发明所进行的详细描述,但可以想到,在不脱离本发明的权利要求
所涵盖的范围内还可以做出其它的变化和修改,这些变化和修改均在本发明的保护范围内。
权利要求
1.一种即时消息过滤方法,其特征在于,包括下列步骤步骤A)在即时消息聊天室系统建立并激活的聊天室中,客户端向服务器发送即时消息过滤条件消息;步骤B)服务器接收到客户端发来的即时消息过滤条件消息后,解析该消息,并进行有效性校验;步骤C)如果校验通过,则服务器保存即时消息过滤条件,并根据该即时消息过滤条件过滤后续的即时消息;否则返回客户端错误码响应,结束。
2.根据权利要求
1所述的即时消息过滤方法,其特征在于,还包括下列步骤步骤D)当客户端退出即时消息聊天室系统,或者该聊天室关闭时,服务器消除客户端所设置的消息过滤条件。
3.根据权利要求
1所述的即时消息过滤方法,其特征在于,所述步骤C包括下列步骤步骤C1)当有后续的即时消息发送所述的聊天室时,服务器读取即时消息过滤条件;步骤C2)服务器根据即时消息过滤条件判断是否需要分发该后续的即时消息给客户端。
4.根据权利要求
1所述的即时消息过滤方法,其特征在于,所述服务器为聊天室控制IM服务器,所述步骤A包括下列步骤A1)客户端在使用所述聊天室发送即时消息过程中,发送消息过滤条件消息,该过滤条件消息首先发送给归属IM服务器;A2)客户端归属IM服务器转发该过滤条件消息到聊天室控制IM服务器;A3)聊天室控制IM服务器收到该过滤条件消息后,回响应给归属IM服务器,表示已经收到;A4)归属IM服务器转发此响应给客户端,表示已经收到。
5.根据权利要求
1所述的即时消息过滤方法,其特征在于,所述服务器为聊天室控制IM服务器,所述步骤A包括下列步骤步骤A1′)客户端在使用所述聊天室发送即时消息过程中,发送消息过滤条件,该过滤条件消息发送给聊天室控制IM服务器;步骤A2′)聊天室控制IM服务器收到该过滤条件消息后,回响应给客户端,表示已经收到。
6.根据权利要求
1所述的即时消息过滤方法,其特征在于,所述服务器为归属IM服务器,所述步骤A包括下列步骤A1″)客户端在使用所述聊天室发送即时消息过程中,发送消息过滤条件消息,该过滤条件消息发送给归属IM服务器;A2″)归属IM服务器收到过滤条件消息后,发送响应消息给客户端,表示收到此消息。
7.根据权利要求
6所述的即时消息过滤方法,其特征在于,所述步骤C包括下列步骤归属IM服务器将消息过滤条件保存到本地服务器,或者通过XCAP标准协议接口将消息过滤条件保存到IM XDMS。
8.根据权利要求
4~7任一项所述的即时消息过滤方法,其特征在于,所述发送消息过滤条件是通过MSRP SEND发送消息;或者是通过SIPMESSAGE发送消息;或者通过SIP PUBLISH发送消息。
9.根据权利要求
8所述的即时消息过滤方法,其特征在于,还包括下列步骤步骤E客户端设置并发送过滤条件成功后,再次发送新的过滤条件设置消息,服务器直接覆盖以前的过滤条件,保存为新的过滤条件。
10.根据权利要求
9所述的即时消息过滤方法,其特征在于,还包括下列步骤步骤F客户端发送清除过滤条件消息,服务器收到消息后清除以往保存的该用户端的消息过滤条件。
11.根据权利要求
1或2所述的即时消息过滤方法,其特征在于,所述过滤条件为接收客户端来源,或者发送客户端来源,或者客户端消息大小,或者消息格式,或者消息内容,或者消息类型。
12.根据权利要求
1或2所述的即时消息过滤方法,其特征在于,所述聊天室系统为SIP/SIMPLE即时消息系统。
专利摘要
一种即时消息过滤方法,在即时消息聊天室系统建立并激活的聊天室中,客户端向服务器发送即时消息过滤条件消息;服务器接收到客户端发来的即时消息过滤条件消息后,解析该消息,并进行有效性校验;如果校验通过,则服务器保存即时消息过滤条件,并根据该即时消息过滤条件过滤后续的即时消息;否则返回客户端错误码响应,结束。其针对聊天室即时应用,聊天时临时设置,使用户可以随时过滤不需要的信息。
文档编号H04L29/06GK1997009SQ200610080280
公开日2007年7月11日 申请日期2006年5月12日
发明者王珏, 牟伦建 申请人:华为技术有限公司导出引文BiBTeX, EndNote, RefMan
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1