CN103812762A - 一种发送即时消息的方法和系统 - Google Patents
一种发送即时消息的方法和系统 Download PDFInfo
- Publication number
- CN103812762A CN103812762A CN201310616829.XA CN201310616829A CN103812762A CN 103812762 A CN103812762 A CN 103812762A CN 201310616829 A CN201310616829 A CN 201310616829A CN 103812762 A CN103812762 A CN 103812762A
- Authority
- CN
- China
- Prior art keywords
- session
- message
- session refreshing
- refreshing
- request message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Communication Control (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本发明实施例提供了一种发送即时消息的方法和系统,以解决在主被叫终端不支持会话刷新功能的情况下,即时消息发送失败的问题。其中方法包括:在检测到会话建立后,建立传输控制协议TCP链接,并启动预先设置的会话刷新定时器;在所述会话刷新定时器超时后,判定主叫终端通过消息会话中继协议MSRP在所述TCP链接上向被叫终端发送的即时消息是否发送完成;若所述即时消息发送未完成,则分别向所述主叫终端和所述被叫终端发送会话刷新请求消息;依据所述会话刷新请求消息判定会话刷新成功,允许继续通过MSRP在所述TCP链接上发送所述即时消息。本发明实施例中可以保证即时消息的成功发送。
Description
技术领域
本发明实施例涉及通信技术领域,特别是涉及一种发送即时消息的方法和系统。
背景技术
即时消息(Instant Messaging,IM),是指发送者发送后被立即传递给接收者的消息,是一种接近于实时传送的消息类业务。即时消息业务可以分为三种模式:一种是Page-mode模式,消息直接以SIP(Session InitiationProtocol,会话发起协议)的消息(Message)方法发送;一种是LargeMessage-mode模式,在该模式下,消息大小超过1300字节,通过MSRP(Message Session Relay Protocol,消息会话中继协议)进行消息的传送;另外一种是Session-mode模式(会话模式),该模式下也是通过MSRP进行消息的传送。
其中,通过MSRP进行传送的即时消息模式,在传送消息之前首先要建立一个会话,并建立TCP(Transmission Control Protocol,传输控制协议)链接,然后在该TCP链接上发送即时消息。目前,通过MSRP传送即时消息的方法主要包括以下两种:
1、主被叫终端支持会话刷新功能
该种情况下,在检测到会话建立后,建立TCP链接,通过MSRP在该TCP链接上发送即时消息,并依据主被叫双方协商的会话刷新结果自动执行会话刷新过程,最终完成即时消息的发送。
2、主被叫终端不支持会话刷新功能
该种情况下,在检测到会话建立后,建立TCP链接,通过MSRP在该TCP链接上发送即时消息。由于主被叫双方不支持会话刷新功能,因此在会话建立后可以启动设置的会话刷新定时器,在会话刷新定时器超时后网络侧设备主动释放所述会话占用的会话资源。
但是,在主被叫终端不支持会话刷新功能的情况下,当会话刷新定时器的定时周期较短时,如果会话刷新定时器超时后,即时消息仍未发送完成,而此时网络侧设备已经释放会话占用的会话资源,则将导致该即时消息发送失败,因此即时消息发送的成功率较低。
发明内容
本发明实施例提供一种发送即时消息的方法和系统,以解决在主被叫终端不支持会话刷新功能的情况下,即时消息发送失败的问题。
为了解决上述问题,本发明公开了一种发送即时消息的方法,其特征在于,包括:
在检测到会话建立后,建立传输控制协议TCP链接,并启动预先设置的会话刷新定时器;
在所述会话刷新定时器超时后,判定主叫终端通过消息会话中继协议MSRP在所述TCP链接上向被叫终端发送的即时消息是否发送完成;
若所述即时消息发送未完成,则分别向所述主叫终端和所述被叫终端发送会话刷新请求消息;
依据所述会话刷新请求消息判定会话刷新成功,允许继续通过MSRP在所述TCP链接上发送所述即时消息。
可选地,所述会话刷新请求消息为更新UPDATE消息或邀请INVITE消息。
可选地,所述依据所述会话刷新请求消息判定会话刷新成功的步骤包括:
如果分别接收到所述主叫终端和所述被叫终端返回的、针对所述会话刷新请求消息的确认响应消息,则判定会话刷新成功。
可选地,所述方法还包括:
依据所述会话刷新请求消息判定会话刷新失败,根据预设的释放策略释放自身占用的资源和/或所述会话占用的会话资源。
可选地,所述依据所述会话刷新请求消息判定会话刷新失败的步骤包括:
若接收到所述主叫终端或主叫侧中间网元,和/或,所述被叫终端或被叫侧中间网元返回的、针对所述会话刷新请求消息的错误响应消息,则判定会话刷新失败。
可选地,在依据所述会话刷新请求消息判定会话刷新成功,允许继续通过MSRP在所述TCP链接上向被叫终端发送所述即时消息之后,还包括:
重新启动所述会话刷新定时器。
可选地,所述方法还包括:
若所述即时消息发送已完成,则根据预设的释放策略释放自身占用的资源和/或所述会话占用的会话资源。
根据本发明的另一方面,提供了一种发送即时消息的系统,其特征在于,包括:
建立启动模块,用于在检测到会话建立后,建立传输控制协议TCP链接,并启动预先设置的会话刷新定时器;
判定完成模块,用于在所述会话刷新定时器超时后,判定主叫终端通过消息会话中继协议MSRP在所述TCP链接上向被叫终端发送的即时消息是否发送完成;
消息发送模块,用于在所述判定完成模块判定所述即时消息发送未完成时,分别向所述主叫终端和所述被叫终端发送会话刷新请求消息;
判定成功模块,用于依据所述会话刷新请求消息判定会话刷新成功,允许继续通过MSRP在所述TCP链接上发送所述即时消息。
可选地,所述会话刷新请求消息为更新UPDATE消息或邀请INVITE消息。
可选地,所述判定成功模块,具体用于在分别接收到所述主叫终端和所述被叫终端返回的、针对所述会话刷新请求消息的确认响应消息时,判定会话刷新成功。
可选地,所述系统还包括:
判定失败模块,用于依据所述会话刷新请求消息判定会话刷新失败,根据预设的释放策略释放自身占用的资源和/或所述会话占用的会话资源。
可选地,所述判定失败模块,具体用于在接收到所述主叫终端或主叫侧中间网元,和/或,所述被叫终端或被叫侧中间网元返回的、针对所述会话刷新请求消息的错误响应消息,则判定会话刷新失败。
可选地,所述系统还包括:
定时重启模块,用于在所述判定成功模块依据所述会话刷新请求消息判定会话刷新成功,允许继续通过MSRP在所述TCP链接上向被叫终端发送所述即时消息之后,重新启动所述会话刷新定时器。
可选地,所述系统还包括:
资源释放模块,用于在所述判定完成模块判定所述即时消息发送已完成时,根据预设的释放策略释放自身占用的资源和/或所述会话占用的会话资源。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例中,首先在检测到会话建立后,建立TCP链接,并启动预先设置的会话刷新定时器;然后在所述会话刷新定时器超时后,判定主叫终端通过MSRP在所述TCP链接上向被叫终端发送的即时消息是否发送完成;若所述即时消息发送未完成,则分别向所述主叫终端和所述被叫终端发送会话刷新请求消息;最后依据所述会话刷新请求消息判定会话刷新成功,允许继续通过MSRP在所述TCP链接上发送所述即时消息。本发明实施例中由于在会话刷新定时器超时后,并不会直接释放会话资源,而是判断即时消息是否发送完成,如果即时消息发送未完成,则发送会话刷新请求执行会话刷新过程,在会话刷新成功后将继续发送所述即时消息,因此可以保证即时消息的成功发送。
附图说明
图1是现有技术中主被叫终端支持会话刷新功能时发送即时消息的流程示意图;
图2是现有技术中主被叫终端不支持会话刷新功能时发送即时消息的流程示意图;
图3是本发明实施例一的一种发送即时消息的方法的流程图;
图4是本发明实施例二的一种发送即时消息的方法的流程图;
图5是本发明实施例二的会话刷新成功时的流程示意图;
图6是本发明实施例二的会话刷新成功时的流程示意图;
图7是本发明实施例三的一种发送即时消息的系统的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
IMS(IP Multimedia Subsystem,IP多媒体子系统)是一种全新的多媒体业务形式,它能够满足现在的终端客户更新颖、更多样化多媒体业务的需求。即时消息是IMS中的一种消息形式,是指发送者发送后被立即传递给接收者的消息,是一种接近于实时传送的消息类业务。即时消息业务可以分为三种模式:Page-mode模式、Large Message-mode模式和Session-mode模式,其中,Large Message-mode模式和Session-mode模式的即时消息在发送时是通过MSRP进行消息的传送。
通过MSRP进行传送的即时消息模式,在传送消息之前首先要建立一个会话,并建立TCP链接,然后在该TCP链接上发送即时消息。目前,通过MSRP传送即时消息的方法主要包括以下两种:
一、主被叫终端支持会话刷新功能
该种情况下,在检测到会话建立后,建立TCP链接,通过MSRP在该TCP链接上发送即时消息,并依据主被叫双方协商的会话刷新结果自动执行会话刷新过程,最终完成即时消息的发送。
如图1所示,为主被叫终端支持会话刷新功能时发送即时消息的流程示意图。该流程中涉及到的设备包括主叫终端UE-A(User Equipment,用户设备)、主叫侧的中间网元IMS-CORE-A和主叫侧的AS-A(Application Server,应用服务器),以及被叫侧的中间网元IMS-CORE-B、被叫侧的AS-B和被叫终端UE-B。该流程具体描述如下:
1、UE-A发送INVITE消息到IMS-CORE-A,INVITE消息携带MSRP协商参数(MSRP协商参数包括UE-A的IP地址和端口号等)、携带UE-A支持会话刷新头域;
2、根据用户业务(即即时消息业务)触发,IMS-CORE-A将INVITE请求消息发送至UE-A对应的AS-A;
3、AS-A完成用户业务处理,将INVITE消息(携带了包括AS-A的IP地址和端口号等的MSRP协商参数)重新发送至IMS-CORE-A;
4、IMS-CORE-A将INVITE消息发送至UE-B对应的IMS-CORE-B;
5、根据用户业务(即即时消息业务)触发,IMS-CORE-B将INVITE消息发送至UE-B对应的AS-B;
6、AS-B完成用户业务处理,将INVITE消息(携带了包括AS-B的IP地址和端口号等的MSRP协商参数)重新发送至IMS-CORE-B;
7、IMS-CORE-B将INVITE消息发送至UE-B;
8、UE-B接收INVITE消息(即时消息协商请求),发送200OK响应消息至IMS-CORE-B,200OK响应消息携带协商完成的MSRP协商参数(MSRP协商参数包括UE-B的IP地址和端口号等),携带UE-B支持会话刷新头域;
9、IMS-CORE-B将200OK响应消息发送至UE-B对应的AS-B;
10、此时,AS-B检测到会话已建立,根据200OK响应消息中携带的MSRP协商参数,建立AS-B与UE-B之间的TCP链接;
11、AS-B向IMS-CORE-B发送ACK确认消息;
12、IMS-CORE-B将ACK确认消息发送至UE-B;
13、AS-B完成用户业务处理,将200OK响应消息(携带了包括AS-B的IP地址和端口号等的MSRP协商参数)重新发送至IMS-CORE-B;
14、IMS-CORE-B将200OK响应消息发送至UE-A对应的IMS-CORE-A;
15、IMS-CORE-A将200OK响应消息发送至UE-A对应的AS-A;
16、通过200OK响应消息中携带的MSRP协商参数,建立AS-A与AS-B之间的TCP链接;
17、AS-A发送ACK确认消息到IMS-CORE-A;
18、IMS-CORE-A将ACK确认消息发送至IMS-CORE-B;
19、IMS-CORE-B将ACK确认消息发送至AS-B;
20、AS-A将被叫的200OK响应消息(携带了包括AS-A的IP地址和端口号等的MSRP协商参数)发送至IMS-CORE-A;
21、IMS-CORE-A将200OK响应消息发送至UE-A;
22、根据200OK响应消息中携带的MSRP协商参数,建立UE-A与AS-A之间的TCP链接;
23、UE-A发送ACK确认消息到IMS-CORE-A;
24、IMS-CORE-A将ACK确认消息发送至AS-A;
25、UE-A在UE-A与AS-A之间的TCP链接上通过MSRP发送即时消息至AS-A;
26、AS-A在AS-A与AS-B之间的TCP链接上通过MSRP发送即时消息至AS-B;
27、AS-B在AS-B与UE-B之间的TCP链接上通过MSRP发送即时消息至UE-B;
28、UE-B回复针对MSRP的200OK响应消息到A S-B;
29、AS-B将200OK响应消息透传至AS-A;
30、AS-A将200OK响应消息发送至UE-A;
在通话过程中,主被叫终端根据会话刷新协商结果,自动对会话进行刷新。
31、当即时消息发送完成后,UE-A发送BYE消息至IMS-CORE-A;
32-37、BYE消息经过原SIP会话建立路径发送至UE-B;
38-44、UE-B经过原SIP会话建立路径返回针对BYE消息的200OK响应消息至UE-A,会话结束。
二、主被叫终端不支持会话刷新功能
该种情况下,在检测到会话建立后,建立TCP链接,通过MSRP在该TCP链接上发送即时消息。由于主被叫双方不支持会话刷新功能,因此在会话建立后可以启动设置的会话刷新定时器,在会话刷新定时器超时后网络侧设备主动释放所述会话占用的会话资源。
如图2所示,为主被叫终端不支持会话刷新功能时发送即时消息的流程示意图。该流程中涉及到的设备与上述图1所示的流程中的设备相同。该流程具体描述如下:
1-30、UE-A与UE-B完成媒体协商,建立会话,并建立TCP链接,在该TCP链接上通过MSRP发送即时消息的过程。并且在会话建立后会启动会话刷新定时器,例如在过程9时检测到会话建立,可以在执行过程10的时候启动会话刷新定时器。对于具体的过程参照上述针对图1中的描述即可,在此不再详细论述。
本流程中主被叫双方均不支持会话刷新功能,可以预先设置释放策略,例如会话刷新定时器超时后,由中间网元AS-A(其他中间网元也可以释放)释放会话资源。
31-32、AS-A在会话刷新定时器超时后,向IMS-CORE-A发送BYE消息,IMS-CORE-A将BYE消息发送至UE-A,释放主叫侧会话资源;
33-34、UE-A针对所述BYE消息的200OK响应消息至IMS-CORE-A,IMS-CORE-A将200OK响应消息发送至AS-A;
35-39、AS-A经过IMS-CORE-A、IMS-CORE-B、AS-B向UE-B发送BYE消息,释放被叫侧会话资源;
40-44、UE-B经过AS-B、IMS-CORE-B、IMS-CORE-A向AS-A返回200OK响应消息。
但是,在主被叫终端不支持会话刷新功能的情况下,当会话刷新定时器的定时周期较短时,如果会话刷新定时器超时后,即时消息仍未发送完成,而此时网络侧设备已经释放会话占用的会话资源,则将导致该即时消息发送失败。
本发明即针对上述问题,提出了一种在主被叫终端不支持会话刷新功能的情况下,发送即时消息的方法和系统,通过中间网元监测即时消息的发送情况,并向主被叫两侧发起会话刷新,从而保证即时消息的成功发送。
下面,通过以下各个实施例进行详细描述,本发明适用于LargeMessage-mode模式和Session-mode模式的即时消息的发送。即时消息功能可以包括文字消息聊天、文件传输、语音通信、视频通信等。需要说明的是,以下各实施例以AS监测即时消息的发送情况,并向主被叫两侧发起会话刷新为例进行说明,但是本发明实施例并不限定于AS这一种中间网元,其他可以支持会话和媒体的中间网元均是可行的。
实施例一:
参照图3,示出了本发明实施例一的一种发送即时消息的方法的流程图,该方法具体可以包括以下步骤:
步骤301,在检测到会话建立后,建立TCP链接,并启动预先设置的会话刷新定时器。
Large Message-mode模式和Session-mode模式的即时消息通过MSRP在TCP链接上进行消息的发送。通过MSRP进行消息的传输是基于SIP会话协商建立成功后的基础上的,通过在SIP会话协商请求和响应中携带用于建立TCP链接的SDP(Session Description Protocol,会话描述协议)参数,在检测到会话建立后,建立TCP链接,中间网元AS将参与TCP的建链以及MSRP的传输。TCP链接建立后,主叫终端即可通过MSRP在所述TCP链接上向被叫终端发送的即时消息。对于建立TCP链接的具体过程,参照前述针对图1中的1-30的描述即可,本发明实施例在此不再详细论述。
由于本发明实施例是针对主被叫终端均不支持会话刷新功能的情况执行的,因此还可以预先设置会话刷新定时器,以确定是否需要判断即时消息的发送情况。在检测到会话建立后AS可以启动预先设置的会话刷新定时器开始定时,例如,可以在前述图1所示的流程中执行10过程时启动会话刷新定时器。
步骤302,在所述会话刷新定时器超时后,判定主叫终端通过MSRP在所述TCP链接上向被叫终端发送的即时消息是否发送完成。
本发明实施例中当AS检测到会话刷新定时器超时后,并不会直接释放主被叫两侧的会话资源,而是判定主叫终端通过MSRP在所述TCP链接上向被叫终端发送的即时消息是否发送完成。AS可以支持会话层面和媒体层面的消息,此处可以通过判断会话层面是否仍然挂有媒体层面的消息判断所述即时消息是否发送完成,若是,则发送未完成;若否,则发送已完成。
步骤303,若所述即时消息发送未完成,则分别向所述主叫终端和所述被叫终端发送会话刷新请求消息。
如果所述即时消息发送未完成,则AS可以分别向所述主叫终端和所述被叫终端发送会话刷新请求消息,以执行会话刷新过程;如果所述即时消息发送已完成,则可以根据预设的释放策略释放自身占用的资源和/或所述会话占用的会话资源。
步骤304,依据所述会话刷新请求消息判定会话刷新成功,允许继续通过MSRP在所述TCP链接上发送所述即时消息。
AS可以依据所述会话刷新请求消息判断会话刷新是否成功。如果AS依据所述会话刷新请求消息判定会话刷新成功,则说明会话可以继续进行,因此可以允许继续通过MSRP在所述TCP链接上发送所述即时消息;如果依据所述会话刷新请求消息判定会话刷新失败,则说明会话中的某些设备出现了故障,会话不能继续进行,因此AS可以根据预设的释放策略释放自身占用的资源和/或所述会话占用的会话资源。
本发明实施例中由于在会话刷新定时器超时后,并不会直接释放会话资源,而是判断即时消息是否发送完成,如果即时消息发送未完成,则发送会话刷新请求执行会话刷新过程,在会话刷新成功后将继续发送所述即时消息,因此可以保证即时消息的成功发送。
实施例二:
参照图4,示出了本发明实施例二的一种发送即时消息的方法的流程图,该方法具体可以包括以下步骤:
步骤401,在检测到会话建立后,建立TCP链接,并启动预先设置的会话刷新定时器。
参照前述图1,在过程9时检测到会话建立,此时即可执行过程10建立TCP链接,并可以在执行10过程时启动预先设置的会话刷新定时器,TCP链接建立后,主叫终端即可通过MSRP在所述TCP链接上向被叫终端发送的即时消息。对于建立TCP链接的具体过程,参照前述针对图1中的1-30的描述即可,本发明实施例在此不再详细论述。
在发送即时消息时,如果会话双方终端不支持会话刷新,为保证即时消息的成功发送,中间网元(例如AS)可以设定会话刷新定时器,该会话刷新定时器的作用是保护中间网元不会因缺少会话刷新,而直接将会话资源释放,从而导致大消息发送失败。
根据RFC4028中规定,中间网元的会话刷新的最小时长为90s,因此在本发明实施例的一种具体实现中,可以将该会话刷新定时器的周期设置为90s。但是,本发明实施例对会话刷新定时器的具体周期并不加以限制,例如还可以根据网络中各中间网元的会话刷新时长的最小值进行设定。
步骤402,在所述会话刷新定时器超时后,判定主叫终端通过MSRP在所述TCP链接上向被叫终端发送的即时消息是否发送完成。
若发送已完成,则执行步骤402;若发送未完成,则执行步骤403。
本发明实施例中,AS可以通过判断会话层面是否仍然挂有媒体层面的消息来判断所述即时消息是否发送完成。若是,则发送未完成;若否,则发送已完成。对于具体的判断过程,本发明实施例在此不再详细论述。
步骤403,分别向所述主叫终端和所述被叫终端发送会话刷新请求消息。
如果判断出所述即时消息发送未完成,则说明还需要继续发送所述即时消息,因此可以通过会话刷新保证会话继续进行,从而继续通过MSRP在所述TCP链接上发送所述即时消息。
要执行会话刷新过程,首先可以分别向所述主叫终端和所述被叫终端发送会话刷新请求消息。在本发明的一种优选实施例中,可以根据RFC3261协议中的消息类型设置会话刷新请求消息,所述会话刷新请求消息可以为UPDATE(更新)消息或INVITE(邀请)消息。
步骤404,依据所述会话刷新请求消息判定会话刷新是否成功。
如果判定所述会话刷新成功,则执行步骤405;如果判定所述会话刷新失败,则执行步骤407。
在本发明的一种优选实施例中,依据所述会话刷新请求消息判定会话刷新成功的步骤可以包括:如果分别接收到所述主叫终端和所述被叫终端返回的、针对所述会话刷新请求消息的确认响应消息(例如200OK响应消息),则判定会话刷新成功。
依据所述会话刷新请求消息判定会话刷新失败的步骤包括:若接收到所述主叫终端或主叫侧中间网元,或,所述被叫终端或被叫侧中间网元返回的、针对所述会话刷新请求消息的错误响应消息(例如481错误响应消息),则定会话刷新失败;或者接收到所述主叫终端或主叫侧中间网元,和,所述被叫终端或被叫侧中间网元返回的、针对所述会话刷新请求消息的错误响应消息(例如481错误响应消息),则定会话刷新失败。
其中,在终端和中间网元发生故障时,均会针对所述会话刷新请求消息返回错误响应消息。主叫侧中间网元可以为主叫终端对应的P-CSCF(Proxy-Call Session Control Function,代理呼叫会话控制功能实体)、I-CSCF(Interrogating-Call Session Control Function,查询呼叫会话控制功能实体)和S-CSCF(Serving-Call Session Control Function,服务呼叫会话控制功能实体)等等;被叫侧中间网元可以为被叫终端对应的P-CSCF、I-CSCF和S-CSCF等等。
步骤405,允许继续通过MSRP在所述TCP链接上发送所述即时消息。
在依据所述会话刷新请求消息判定会话刷新成功后,说明会话可以继续进行,此时即可允许继续通过MSRP在所述TCP链接上发送所述即时消息,对于发送过程在此不再详细论述。
步骤406,重新启动所述会话刷新定时器。
在依据所述会话刷新请求消息判定会话刷新成功,允许继续通过MSRP在所述TCP链接上向被叫终端发送所述即时消息之后,说明开始了一个新的会话,此时即可重新启动所述会话刷新定时器开始定时,在所述定时器超时后,即可重复执行上述步骤402-步骤406。
步骤407,根据预设的释放策略释放自身占用的资源和/或所述会话占用的会话资源。
如果在步骤402中判断出所述即时消息发送已完成,则说明此时可以结束会话;同样的,如果在步骤404中依所述会话刷新请求消息判定会话刷新失败,则说明此时会话不能继续执行,可以结束会话。因此,在上述两种情况下,均可以根据预设的释放策略释放自身占用的资源和/或所述会话占用的会话资源。
例如,如果所述释放策略为仅释放自身占用的资源,则在上述两种情况下释放自身占用的资源;如果所述释放策略为仅释放所述会话占用的会话资源,则在上述两种情况下释放会话占用的会话资源(此处所述的会话占用的会话资源可以指主叫侧会话或被叫侧会话占用的会话资源,也可以指主叫侧会话和被叫侧会话占用的会话资源);如果所述既释放策略为释放自身占用的资源,也释放所述会话占用的会话资源,则在上述两种情况下释放自身占用的资源和所述会话占用的会话资源。
当然本发明实施例中也可以针对上述两种不同的情况设置不同的释放策略,例如当判断出所述即时消息发送已完成时,所述释放策略可以为仅释放自身占用的资源;当依所述会话刷新请求消息判定会话刷新失败时,所述释放策略可以为仅释放所述会话占用的会话资源,等等。本发明实施例对此并不加以限制。
下面,通过以下两个具体的实例对本发明实施例的发送即时消息的方法进行介绍。
以下两个实例中涉及到的设备包括主叫终端UE-A、主叫侧的中间网元IMS-CORE-A(可以包括主叫侧对应的P-CSCF、I-CSCF和S-CSCF等等)和主叫侧的AS-A,以及被叫侧的中间网元IMS-CORE-B(可以包括被叫侧对应的P-CSCF、I-CSCF和S-CSCF等等)、被叫侧的AS-B和被叫终端UE-B。并且,以AS-B执行即时消息发送是否完成的判断、会话刷新请求消息的发送等过程,会话刷新请求消息以UPDATE消息为例。
参照图5,示出了本发明实施例二的会话刷新成功时的流程示意图,该流程具体描述如下:
1-30、UE-A与UE-B完成媒体协商,建立会话,并建立TCP链接,在该TCP链接上通过MSRP发送即时消息的过程。并且在会话建立后会启动会话刷新定时器,例如AS-B在过程9时检测到会话建立,可以在执行过程10的时候启动会话刷新定时器。对于具体的过程参照上述针对图1中的描述即可,在此不再详细论述。
本流程中主被叫双方均不支持会话刷新功能,当AS-B的会话刷新定时器超时后,可以判断所述即时消息(即图5中的MSRP消息)是否发送完成,假设在此实施例中判断出即时消息(MSRP消息)仍在发送。
31-35、AS-B经过IMS-CORE-B、AS-A、IMS-CORE-A向UE-A发送会话刷新请求消息(UPEATE消息),该消息中可以携带在媒体协商过程中协商好的SDP信息,例如会话名称、媒体类型、AS-B的IP地址和端口号等;
36-40、UE-A经过IMS-CORE-A、AS-A、IMS-CORE-B向AS-B回复针对UPDATE消息的确认响应消息(200OK响应消息);
41-42、AS-B经过IMS-CORE-B向UE-B发送会话刷新请求消息(UPEATE消息),该消息中可以携带在媒体协商过程中协商好的SDP信息,例如会话名称、媒体类型、AS-B的IP地址和端口号等;
43-44、UE-B经过IMS-CORE-B向AS-B回复针对UPDATE消息的确认响应消息(200OK响应消息)。
此时会话刷新过程成功完成,因此可以允许继续通过MSRP在所述TCP链接上发送所述即时消息,直至所述即时消息发送成功完成。
参照图6,示出了本发明实施例二的会话刷新成功时的流程示意图,该流程具体描述如下:
1-30、UE-A与UE-B完成媒体协商,建立会话,并建立TCP链接,在该TCP链接上通过MSRP发送即时消息的过程。并且在会话建立后会启动会话刷新定时器,例如AS-B在过程9时检测到会话建立,可以在执行过程10的时候启动会话刷新定时器。对于具体的过程参照上述针对图1中的描述即可,在此不再详细论述。
本流程中主被叫双方均不支持会话刷新功能,当AS-B的会话刷新定时器超时后,可以判断所述即时消息(即图5中的MSRP)是否发送完成,假设在此实施例中判断出即时消息仍在发送。
31、AS-B要向UE-A发送会话刷新请求消息,首先向IMS-CORE-B发送会话刷新请求消息(UPEATE消息),该消息中可以携带在媒体协商过程中协商好的SDP信息,例如会话名称、媒体类型、AS-B的IP地址和端口号等;
32、此时IMS-CORE-B发生故障,不能将UPEATE消息转发给IMS-CORE-A,并且回复针对UPEATE消息的错误响应消息(例如481错误响应消息)至AS-B。
AS-B接收到IMS-CORE-B回复的错误响应消息,即可根据预先设置的释放策略释放自身的占用的资源或所述会话占用的会话资源,或者,释放自身的占用的资源和所述会话占用的会话资源。
当然,如果IMS-CORE-B没有发生故障,而是其他的中间网元或终端(例如IMS-CORE-A、AS-A、UE-A、UE-B等)发生故障,AS-B接收到这些发生故障的设备回复的错误响应消息,也可以根据预先设置的释放策略释放自身的占用的资源或所述会话占用的会话资源,或者,释放自身的占用的资源和所述会话占用的会话资源。本发明实施例在此不再详细论述。
本发明实施例中可以利用中间网元(该网元参与TCP链接的建立以及即时消息的传输)监测即时消息的发送情况,来完成在即时消息发送过程中,当主被叫终端不支持会话刷新功能的情形下,由中间网元完成会话刷新功能,从而保证即时消息正常传输的过程。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
实施例三:
参照图7,示出了本发明实施例三的一种发送即时消息的系统的结构框图,该装置具体可以包括以下模块:
建立启动模块701,用于在检测到会话建立后,建立传输控制协议TCP链接,并启动预先设置的会话刷新定时器;
判定完成模块702,用于在所述会话刷新定时器超时后,判定主叫终端通过消息会话中继协议MSRP在所述TCP链接上向被叫终端发送的即时消息是否发送完成;
消息发送模块703,用于在所述判定完成模块判定所述即时消息发送未完成时,分别向所述主叫终端和所述被叫终端发送会话刷新请求消息;
在本发明的一种优选实施例中,所述会话刷新请求消息可以为更新UPDATE消息或邀请INVITE消息。
判定成功模块704,用于依据所述会话刷新请求消息判定会话刷新成功,允许继续通过MSRP在所述TCP链接上发送所述即时消息。
在本发明的一种优选实施例中,所述判定成功模块,具体可以用于在分别接收到所述主叫终端和所述被叫终端返回的、针对所述会话刷新请求消息的确认响应消息时,判定会话刷新成功。
本发明实施例中发送即时消息的系统还可以包括以下模块:
判定失败模块,用于依据所述会话刷新请求消息判定会话刷新失败,根据预设的释放策略释放自身占用的资源和/或所述会话占用的会话资源;
所述判定失败模块,具体可以用于在接收到所述主叫终端或主叫侧中间网元,和/或,所述被叫终端或被叫侧中间网元返回的、针对所述会话刷新请求消息的错误响应消息,则判定会话刷新失败。
定时重启模块,用于在所述判定成功模块依据所述会话刷新请求消息判定会话刷新成功,允许继续通过MSRP在所述TCP链接上向被叫终端发送所述即时消息之后,重新启动所述会话刷新定时器;
资源释放模块,用于在所述判定完成模块判定所述即时消息发送已完成时,根据预设的释放策略释放自身占用的资源和/或所述会话占用的会话资源。
本发明实施例中,首先在检测到会话建立后,建立TCP链接,并启动预先设置的会话刷新定时器;然后在所述会话刷新定时器超时后,判定主叫终端通过MSRP在所述TCP链接上向被叫终端发送的即时消息是否发送完成;若所述即时消息发送未完成,则分别向所述主叫终端和所述被叫终端发送会话刷新请求消息;最后依据所述会话刷新请求消息判定会话刷新成功,允许继续通过MSRP在所述TCP链接上发送所述即时消息。本发明实施例中由于在会话刷新定时器超时后,并不会直接释放会话资源,而是判断即时消息是否发送完成,如果即时消息发送未完成,则发送会话刷新请求执行会话刷新过程,在会话刷新成功后将继续发送所述即时消息,因此可以保证即时消息的成功发送。
对于系统实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本发明实施例可以在由计算机执行的计算机可执行指令的一般上下文中描述,例如程序模块。一般地,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等等。也可以在分布式计算环境中实践本发明,在这些分布式计算环境中,由通过通信网络而被连接的远程处理设备来执行任务。在分布式计算环境中,程序模块可以位于包括存储设备在内的本地和远程计算机存储介质中。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上对本发明所提供的一种发送即时消息的方法和系统,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
Claims (14)
1.一种发送即时消息的方法,其特征在于,包括:
在检测到会话建立后,建立传输控制协议TCP链接,并启动预先设置的会话刷新定时器;
在所述会话刷新定时器超时后,判定主叫终端通过消息会话中继协议MSRP在所述TCP链接上向被叫终端发送的即时消息是否发送完成;
若所述即时消息发送未完成,则分别向所述主叫终端和所述被叫终端发送会话刷新请求消息;
依据所述会话刷新请求消息判定会话刷新成功,允许继续通过MSRP在所述TCP链接上发送所述即时消息。
2.根据权利要求1所述的方法,其特征在于,所述会话刷新请求消息为更新UPDATE消息或邀请INVITE消息。
3.根据权利要求1所述的方法,其特征在于,所述依据所述会话刷新请求消息判定会话刷新成功的步骤包括:
如果分别接收到所述主叫终端和所述被叫终端返回的、针对所述会话刷新请求消息的确认响应消息,则判定会话刷新成功。
4.根据权利要求1所述的方法,其特征在于,还包括:
依据所述会话刷新请求消息判定会话刷新失败,根据预设的释放策略释放自身占用的资源和/或所述会话占用的会话资源。
5.根据权利要求4所述的方法,其特征在于,所述依据所述会话刷新请求消息判定会话刷新失败的步骤包括:
若接收到所述主叫终端或主叫侧中间网元,和/或,所述被叫终端或被叫侧中间网元返回的、针对所述会话刷新请求消息的错误响应消息,则判定会话刷新失败。
6.根据权利要求1所述的方法,其特征在于,在依据所述会话刷新请求消息判定会话刷新成功,允许继续通过MSRP在所述TCP链接上向被叫终端发送所述即时消息之后,还包括:
重新启动所述会话刷新定时器。
7.根据权利要求1所述的方法,其特征在于,还包括:
若所述即时消息发送已完成,则根据预设的释放策略释放自身占用的资源和/或所述会话占用的会话资源。
8.一种发送即时消息的系统,其特征在于,包括:
建立启动模块,用于在检测到会话建立后,建立传输控制协议TCP链接,并启动预先设置的会话刷新定时器;
判定完成模块,用于在所述会话刷新定时器超时后,判定主叫终端通过消息会话中继协议MSRP在所述TCP链接上向被叫终端发送的即时消息是否发送完成;
消息发送模块,用于在所述判定完成模块判定所述即时消息发送未完成时,分别向所述主叫终端和所述被叫终端发送会话刷新请求消息;
判定成功模块,用于依据所述会话刷新请求消息判定会话刷新成功,允许继续通过MSRP在所述TCP链接上发送所述即时消息。
9.根据权利要求8所述的系统,其特征在于,所述会话刷新请求消息为更新UPDATE消息或邀请INVITE消息。
10.根据权利要求8所述的系统,其特征在于,所述判定成功模块,具体用于在分别接收到所述主叫终端和所述被叫终端返回的、针对所述会话刷新请求消息的确认响应消息时,判定会话刷新成功。
11.根据权利要求8所述的系统,其特征在于,还包括:
判定失败模块,用于依据所述会话刷新请求消息判定会话刷新失败,根据预设的释放策略释放自身占用的资源和/或所述会话占用的会话资源。
12.根据权利要求11所述的系统,其特征在于,所述判定失败模块,具体用于在接收到所述主叫终端或主叫侧中间网元,和/或,所述被叫终端或被叫侧中间网元返回的、针对所述会话刷新请求消息的错误响应消息,则判定会话刷新失败。
13.根据权利要求8所述的系统,其特征在于,还包括:
定时重启模块,用于在所述判定成功模块依据所述会话刷新请求消息判定会话刷新成功,允许继续通过MSRP在所述TCP链接上向被叫终端发送所述即时消息之后,重新启动所述会话刷新定时器。
14.根据权利要求8所述的系统,其特征在于,还包括:
资源释放模块,用于在所述判定完成模块判定所述即时消息发送已完成时,根据预设的释放策略释放自身占用的资源和/或所述会话占用的会话资源。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310616829.XA CN103812762B (zh) | 2013-11-27 | 2013-11-27 | 一种发送即时消息的方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310616829.XA CN103812762B (zh) | 2013-11-27 | 2013-11-27 | 一种发送即时消息的方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103812762A true CN103812762A (zh) | 2014-05-21 |
CN103812762B CN103812762B (zh) | 2017-12-01 |
Family
ID=50708991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310616829.XA Active CN103812762B (zh) | 2013-11-27 | 2013-11-27 | 一种发送即时消息的方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103812762B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106713373A (zh) * | 2015-07-13 | 2017-05-24 | 中兴通讯股份有限公司 | 文件的发送方法及装置 |
CN110768816A (zh) * | 2018-07-27 | 2020-02-07 | 成都鼎桥通信技术有限公司 | 多媒体业务异常保护方法和装置 |
CN114158096A (zh) * | 2020-09-08 | 2022-03-08 | 华为技术有限公司 | 建立会话的方法、终端及通信系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070078935A1 (en) * | 2005-09-30 | 2007-04-05 | Nokia Corporation | Retrieval of offline instant messages |
CN101026801A (zh) * | 2007-03-14 | 2007-08-29 | 中兴通讯股份有限公司 | 通过移动终端进行文件传输的方法 |
CN101137104A (zh) * | 2006-08-28 | 2008-03-05 | 华为技术有限公司 | 一种实现资源释放的方法和系统 |
CN101199185A (zh) * | 2005-04-14 | 2008-06-11 | 惠普开发有限公司 | 用于无线网络的多媒体传送 |
CN101997850A (zh) * | 2009-08-12 | 2011-03-30 | 中兴通讯股份有限公司 | 用于ip多媒体子系统的呼叫管理方法及装置 |
CN103368923A (zh) * | 2012-04-09 | 2013-10-23 | 中兴通讯股份有限公司 | 消息传输处理方法及装置 |
-
2013
- 2013-11-27 CN CN201310616829.XA patent/CN103812762B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101199185A (zh) * | 2005-04-14 | 2008-06-11 | 惠普开发有限公司 | 用于无线网络的多媒体传送 |
US20070078935A1 (en) * | 2005-09-30 | 2007-04-05 | Nokia Corporation | Retrieval of offline instant messages |
CN101137104A (zh) * | 2006-08-28 | 2008-03-05 | 华为技术有限公司 | 一种实现资源释放的方法和系统 |
CN101026801A (zh) * | 2007-03-14 | 2007-08-29 | 中兴通讯股份有限公司 | 通过移动终端进行文件传输的方法 |
CN101997850A (zh) * | 2009-08-12 | 2011-03-30 | 中兴通讯股份有限公司 | 用于ip多媒体子系统的呼叫管理方法及装置 |
CN103368923A (zh) * | 2012-04-09 | 2013-10-23 | 中兴通讯股份有限公司 | 消息传输处理方法及装置 |
Non-Patent Citations (1)
Title |
---|
李美华: "《基于IMS的即时消息服务器》", 《中国优秀硕士学位论文全文数据库 信息科技辑》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106713373A (zh) * | 2015-07-13 | 2017-05-24 | 中兴通讯股份有限公司 | 文件的发送方法及装置 |
CN110768816A (zh) * | 2018-07-27 | 2020-02-07 | 成都鼎桥通信技术有限公司 | 多媒体业务异常保护方法和装置 |
CN110768816B (zh) * | 2018-07-27 | 2022-04-15 | 成都鼎桥通信技术有限公司 | 多媒体业务异常保护方法和装置 |
CN114158096A (zh) * | 2020-09-08 | 2022-03-08 | 华为技术有限公司 | 建立会话的方法、终端及通信系统 |
Also Published As
Publication number | Publication date |
---|---|
CN103812762B (zh) | 2017-12-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102075545B (zh) | 一种客户端注册指示方法、注册方法及其设备 | |
CN101217407B (zh) | 一种代理呼叫会话控制功能故障的处理方法 | |
CN103685286A (zh) | 一种释放会话资源的方法和装置 | |
US20120214480A1 (en) | System and method for subscribing for internet protocol multimedia subsystems (ims) services registration status | |
US7843809B2 (en) | Preserving stable calls during failover | |
US20080086566A1 (en) | Refreshing a session initiation protocol (SIP) session | |
CN101997850B (zh) | 用于ip多媒体子系统的呼叫管理方法及装置 | |
CN104468506A (zh) | 会话状态检测方法及装置 | |
JP2009296138A (ja) | 通信システム | |
US7821989B2 (en) | Call management method, call management system and message processing server system | |
US20180027028A1 (en) | Terminal and Terminal Call Soft Switching Method | |
CN108243162A (zh) | 一种sip注册的方法及装置 | |
CN103812762A (zh) | 一种发送即时消息的方法和系统 | |
US8843601B1 (en) | Systems and methods for VOIP communication completion to a mobile device | |
CN102111899B (zh) | 会话保活方法及装置 | |
CN105515936A (zh) | 消息通信的方法、服务器和系统 | |
CN102487341B (zh) | 会话检测方法、装置及会话初始协议服务器 | |
CN106549901A (zh) | 一种业务触发方法和装置 | |
CN102348291A (zh) | 基于对话关联标识的会话建立方法及系统 | |
JP4883487B2 (ja) | 中継装置、ネットワークシステム及び中継処理プログラム | |
CN102075876A (zh) | 固定电话漏电提醒的方法及系统 | |
CN101771771B (zh) | 一种实现sip终端在线检测的方法 | |
EP3633900B1 (en) | Method and device for transmitting voice signaling | |
CN102571710B (zh) | 信息订阅方法及系统 | |
JP5120677B2 (ja) | 中継装置、ネットワークシステム及び中継処理プログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |