CN1863176A - 一种在消息会话中继协议中消息的封装传输系统及方法 - Google Patents
一种在消息会话中继协议中消息的封装传输系统及方法 Download PDFInfo
- Publication number
- CN1863176A CN1863176A CN 200610058398 CN200610058398A CN1863176A CN 1863176 A CN1863176 A CN 1863176A CN 200610058398 CN200610058398 CN 200610058398 CN 200610058398 A CN200610058398 A CN 200610058398A CN 1863176 A CN1863176 A CN 1863176A
- Authority
- CN
- China
- Prior art keywords
- message
- msrp
- server
- encapsulation
- client
- 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
Landscapes
- Telephonic Communication Services (AREA)
Abstract
本发明公开了一种在消息会话中继协议中消息的封装传输系统及方法,其系统包括服务器,至少一个发送方客户端和至少一个接收方客户端;发送方客户端发送MSRP源消息,经服务器下发给接收方客户端。服务器包括解析封装消息模块和存储模块;接收方客户端还包括解析模块。其封装方法包括下列步骤:步骤A)服务器读取MSRP源消息;步骤B)解析服务器所述的源消息,得到接收方客户端的URI地址,并利用所述地址和所述源消息封装新的MSRP消息。本发明还公开一种MSRP消息的封装传输方法。其实现了MSRP SEND封装MSRP消息并传输给接收方客户端的方法,减轻了服务器的负载。
Description
技术领域
本发明涉及通信领域中的数据传输技术,尤其是涉及一种在消息会话中继协议中消息的封装传输系统及方法。
背景技术
消息会话中继协议(Message Session Relay Protocol,MSRP),是国际互联网技术标准组织(The Internet Engineering Task Force,IETF)制定的一个基于文本、面向连接的传输协议,可以用于交换任意的(包括二进制)多用途互联网邮件扩展(Multipurpose Internet Mail Exchange,MIME)内容,尤其是用于即时消息。消息会话中继协议通过初始会话协议(Session InitiatedProtocol,SIP)和会话描述协议(Session Description Protocol,SDP)来协商建立消息会话,建立方式与通过初始会话协议建立其它会话例如音频会话、视频会话完全相同。
消息会话中继协议非常适合于大消息的传输和基于会话的即时消息传输。
应用消息会话中继协议时,首先需要协商源端和目的端之间将要传输的媒体属性,这一协商过程由初始会话协议和会话描述协议信令承载并发送;然后根据协商之后的端口号和媒体属性进行媒体数据的传送,在消息会话中继协议中主要定义了SEND方法进行传输媒体数据,消息会话中继协议支持的媒体数据类型为MIME格式的任意数据,例如文本、音频、视频等等。
现有的国际互联网技术标准组织(IETF)定义的消息会话中继协议中,可以支持多种内容类型的传输,其内容类型通过Content-type字段进行定义,以便在MSRP SEND消息体正文中的数据能够被发送方和接收方正确处理,其可以支持的内容类型有:text、image、audio、video、applications、multipart、message。
在利用消息会话中继协议(MSRP)进行消息传送业务的过程中,存在这样一种必要的应用情形:某个消息自发送方客户端(Client)被发送时,如果出现了接收方不在线或者服务器当前过负荷等等的异常情况,那么该消息不能被接收方立即接收,此时服务器需要暂时存储该消息,以便下次接收方在线时或者服务器未满负荷或者其他异常情况被处理完毕后,服务器能够将此消息转发到接收方,这就是“存储转发”的过程。
为描述方便起见,称上述的发送到服务器之前的消息为消息1,服务器存储后再次转发到接收方;给接收方下发的消息为消息2。
一般地,消息1经过服务器的存储之后,需要被封装在消息2中,才能被正确地下发到接收方。
如果消息1在源端是以SIP MESSAGE来承载发送的,那么服务器以MSRP SEND来封装SIP MESSAGE的方法比较简单,国际互联网技术标准组织(IETF)的RFC(Request for Comments)标准规范中已有说明,即直接将SIP MESSAGE源消息1封装在MSRP SEND消息体中,同时MSRP SEND的消息头的content-type字段定义为message/sip。
如果消息1在源端是经MSRP SEND来承载发送的,那么服务器需要以MSRP SEND方法来封装消息1形成消息2,下发给接收方。
现有的一种方法是:首先,服务器接收到消息1之后,去除掉其中用于传输的开销的字段消息,解析出其中的有用信息,例如:消息的发送方统一的资源标识符(Uniform Resource Identifier,URI)地址、接收方URI地址、消息内容,并以一定的数据格式保存这些消息到消息存储实体中。
然后,当服务器需要转发此消息到接收方客户端时,在建立了服务器(Server)和接收方客户端的会话之后,重新用MSRP SEND进行消息的发送。
但是,这种方法存在很多的缺陷,其先要解析,然后又要封装,有2次消息的处理过程,处理过程很复杂,增加服务器的负担。
发明内容
本发明的目的在于克服上述缺陷而提供的一种在消息会话中继协议中消息的封装传输系统及方法,其实现了MSRP SEND封装MSRP消息并传输给接收方客户端的方法,减轻了服务器的负载。
为实现本发明的目的而提供的一种在消息会话中继协议中消息的封装传输系统,包括服务器,至少一个发送方客户端和至少一个接收方客户端;发送方客户端发送MSRP源消息,经服务器下发给接收方客户端。
所述服务器包括解析封装消息模块,用于将服务器收到的MSRP源消息进行解析,得到接收方客户端地址,并根据接收方客户端的地址及源消息封装新的MSRP SEND消息。
所述接收方客户端还包括解析模块,用于当接收方客户端接收到所述MSRP SEND消息时,对所述消息进行解析,并获取消息的信息。
所述的服务器还可以包括存储模块,用于存储发送方客户端与服务器交互的以消息会话中继协议承载的消息。
所述MSRP源消息可以是包括SIP INVITE消息,MSRP SEND消息。
所述MSRP源消息还可以包括SIP 200 OK消息和SIP BYE消息。
所述MSRP SEND消息可以包括消息头和消息体,所述消息体包括SIPINVITE消息部分和MSRP SEND消息部分。
所述MSRP SEND消息也可以包括消息头和消息体,所述消息体包括SIPINVITE消息部分、MSRP SEND消息部分、SIP 200 OK消息部分和SIP BYE消息部分。
为实现本发明目的而提供的一种在消息会话中继协议中封装消息的服务器,包括解析封装消息模块,用于将服务器收到的MSRP源消息进行解析,得到接收方客户端地址,并根据接收方客户端的地址及源消息封装新的MSRP SEND消息。
所述MSRP源消息可以包括SIP INVITE消息,MSRP SEND消息。
所述MSRP源消息还可以包括SIP 200 OK消息和SIP BYE消息。
所述MSRP SEND消息可以包括消息头和消息体,所述消息体包括SIPINVITE消息部分和MSRP SEND消息部分。
所述MSRP SEND消息也可以包括消息头和消息体,所述消息体包括SIPINVITE消息部分、MSRP SEND消息部分、SIP 200 OK消息部分和SIP BYE消息部分。
为实现本发明目的而提供的一种在消息会话中继协议中消息的封装方法,包括下列步骤:
步骤A)服务器读取MSRP源消息;
步骤B)解析所述的MSRP源消息,得到接收方客户端地址,并利用所述地址和所述源消息封装新的MSRP SEND消息。
所述步骤B)可以包括下列步骤:
步骤B1)服务器解析的MSRP源消息的SIP INVITE消息,获取该源消息的接收方客户端的URI地址,然后构造新的MSRP SEND消息的消息头;
步骤B2)服务器以所述MSRP源消息中的SIP INVITE消息封装新的MSRP SEND消息的SIP INVITE消息部分;
步骤B3)服务器以所述MSRP源消息中的MSRP SEND消息封装新的NSRP SEND消息中的MSRP SEND消息部分。
所述步骤B)还可以包括下列步骤:
服务器以所述MSRP源消息中的SIP 200 OK消息封装新的MSRP SEND消息中的SIP 200 OK消息部分;
服务器以所述MSRP源消息中的SIP BYE消息封装新的MSRP SEND消息中的SIP BYE消息部分。
所述消息头包括接收方地址字段,服务器地址字段,消息体类型字段和分界标志符。
所述消息头的消息体类型字段为复合体消息体。
所述封装的SIP INVITE消息部分的消息体类型为message/sip;
所述封装的MSRP SEND消息部分中消息体类型为message/msrp;
所述封装的SIP 200 OK消息部分中消息体类型为message/sip;
所述封装的SIP BYE消息部分中消息体类型为message/sip。
本发明的在消息会话中继协议中消息的封装方法,还可以包括下列步骤:
步骤Y)服务器还读取服务器接收到所述MSRP源消息的接收时间;并将所述接收时间封装到新的MSRP SEND消息的各个消息部分中。
所述步骤Y)可以包括下列步骤:
将所述接收时间封装到新的MSRP SEND消息的SIP INVITE消息部分,MSRP SEND消息部分,SIP 200 OK消息部分和SIP BYE消息部分。
为实现本发明目的而提供的一种在消息会话中继协议中消息的封装传输方法,包括下列步骤:
步骤A′)服务器和接收方客户端建立起MSRP连接;
步骤B′)服务器将利用MSRP源消息解析并得到接收方客户端地址,根据接收方客户端地址和源消息封装新的MSRP SEND消息;
步骤C′)服务器将所述MSRP SEND消息下发给接收方客户端;
步骤D′)接收方客户端解析收到的MSRP SEND消息,将消息的内容解析出来。
所述步骤D′)还可以包括下列步骤:
步骤D1′)接收方客户端确认收到下发消息,发送确认消息。
所述步骤D′)也可以包括下列步骤:
步骤D21′)接收方客户端收到MSRP消息,判断出其消息内容类型是复合消息体;
步骤D22′)接收方客户端依次读取MSRP SEND消息中的各个部分,根据MSRP SEND消息的消息体中各个部分所示的消息体类型进行解析,得到消息内容。
所述消息内容包括发送方客户端的URI地址,接收方客户端的URI地址信息,发送内容以及消息的发送时间戳。
所述步骤D22′)可以包括下列步骤:
步骤D221′)接收方客户端解析SIP INVITE消息部分,获取发送方客户端的URI地址和接收方客户端的URI地址;
步骤D222′)接收方客户端解析MSRP SEND消息部分,获取消息内容以及消息的发送时间戳。
所述步骤D22′)还可以包括下列步骤:
步骤D233′)接收方客户端还解析MSRP SEND消息的消息体中的SIP200OK消息部分和SIP BYE消息部分。
本发明的在消息会话中继协议中消息的封装传输方法,还包括下列步骤:
步骤M1′)发送方客户端和服务器协商建立MSRP会话;
步骤M2′)发送方客户端将发送MSRP SEND消息;
步骤M3′)服务器接收到所述MSRP SEND消息。
本发明的在消息会话中继协议中消息的封装传输方法,还可以包括下列步骤:
发送方客户端断开和服务器的MSRP连接。
本发明的有益效果是:本发明在消息会话中继协议中消息的封装传输系统及方法,其使得服务器处理简单,无需解析直接存储,只需要一次封装,从而减轻了服务器的负载。而对于客户端来说,在满足了能够支持MSRP协议的基础条件下,解析了一个具有普通消息体的MSRP SEND消息和解析具有复合消息体的MSRP SEND消息(即消息体中嵌套MSRP消息)的时间复杂度是基本相同的,都是解析一次。因此,这种封装消息的方法使整个会话过程简单而实用,减轻服务器的负担。
附图说明
图1为本发明MSRP消息传输过程流程图;
图2为本发明MSRP消息封装过程流程图。
具体实施方式
下面结合附图1和附图2进一步详细说明本发明的一种在消息会话中继协议中消息的封装传输系统及方法。
本实施例以消息从发送方客户端被发送时,接收方客户端不在线,或者服务器当前过负荷等异常情况,消息不能被接收方立即接收,此时服务器需要暂时存储该消息,即延迟发送消息为例,说明MSRP消息封装传输系统及方法,但本发明并不以此为限,只要应用到了本发明的MSRP协议封装技术,均应在本发明的保护范围之内。
如图1所示,在实施例中,各实体的含义如下:
ClientA表示消息的发送方客户端;
ClientB表示消息的接收方客户端;
Server表示MSRP服务器,其可以是延迟消息发送服务器,并具有其它的功能,如MSRP用于SIP/SIMPLE即时消息业务领域时该服务器就是即时消息服务器(IM Server);
Message1表示从发送方客户端ClientA发送的MSRP SEND消息,其中包含要发送的消息内容;
Message2表示服务器封装的新的MSRP SEND消息,其中包含源消息的内容。
在本发明的实施例中,传输消息需要经过公知的SIP/IP Core核心网,本发明不再详述。
(一)下面详细描述本发明的一种在消息会话中继协议中消息封装传输系统。
本发明的在消息会话中继协议中消息的封装传输系统包括服务器,至少一个发送方客户端和一个接收方客户端,其中发送方客户端发送并经服务器下发给接收方客户端MSRP消息。
在服务器中,包括存储模块和解析封装消息模块。
存储模块,用于存储发送方客户端与服务器交互的以消息会话中继协议承载的消息。
解析封装消息模块,用于将服务器收到的MSRP源消息进行解析,得到接收方客户端地址,并根据接收方客户端的地址及MSRP源消息封装新的MSRP消息。
在接收方客户端,包括解析模块。
解析模块,用于当接收到所述MSRP消息时,对所述消息进行解析,并获取所述MSRP源消息的信息。
发送方客户端ClientA和服务器Server协商以公知的方式,使用SIP消息及其携带的会话描述协议(SDP)offer/answer机制来协商建立MSRP会话,发送方客户端ClientA构造MSRP SEND消息message1,发送到接收方客户端ClientB,服务器Server接收到MSRP SEND消息message1,并且出现接收方客户端ClientB不在线、服务器Server过负荷或者其他异常情况,则服务器Server存储源消息,包括MSRP SEND消息message1和SIP INVITEI消息,还可以包括SIP 200 OK消息以及SIP BYE消息到存储模块。
当接收方客户端ClientB和服务器Server协商以公知的方式建立MSRP连接,接收方客户端ClientB再次上线或者服务器Server未满负荷或者其他异常情况不存在时,服务器Server中的解析封装模块将源消息从存储模块中读取出来,进行解析,得到接收方客户端ClientB的地址,然后封装新的MSRPSEND消息中,服务器Server下发新的MSRP SEND消息message2。
接收方客户端ClientB确认收到下发的MSRP SEND消息message2,其解析模块解析收到的MSRP SEND消息,得到消息内容。
(二)如图1所示,下面详细描述本发明的消息会话中继协议中消息传输方法过程。
步骤1:发送方客户端ClientA和服务器Server协商建立MSRP会话;
在发送方客户端和接收方客户端之间,发送SIP INVITE消息,发送方客户端ClientA和服务器Server协商以公知的方式建立MSRP会话,其可以是发送方客户端ClientA发起建立,也可以是服务器Server发起建立。会话建立后,回应SIP 200 OK消息。
步骤3-4:发送方客户端ClientA将MSRP SEND消息message1发送,其中消息体中包括发送方真正需要发送的内容;
步骤5-6:发送方客户端ClientA断开和服务器Server的MSRP连接。
发送方客户端ClientA断开和服务器Server的MSRP连接,发送SIP BYE消息;
步骤7:服务器Server接收到源消息,出现异常情况,则服务器Server存储源消息。
服务器Server接收到源消息,接收方客户端ClientB不在线、服务器Server过负荷或者出现其他异常情况,则服务器Server存储源消息到存储模块。
较佳地,服务器Server存储模块在存储源消息的同时,还需要记录并存储服务器Server接收到此源消息的时间,也即给该消息加上时间戳Date。这样以便后面转发到接收端时接收端能够得知该消息的发送时间。对于延迟消息来说,时间戳也是一个重要的消息属性。
例1,发送方客户端ClientA向接收方客户端ClientB发送消息内容:“Hi,Alice!I’m Bob!”,则存储源消息如下:
INVITE sip:imserver.com SIP/2.0 //SIP INVITE消息
To:<sip:user2@imserver.com> //目的端URI地址
From:<sip:user1@imserver.com>;tag=123 //源端URI地址
Call-ID:3413an89KU
Content-Type:application/sdp //消息体类型
c=IN IP4 user1.imserver.com //IP地址
m=message 7654 TCP/MSRP* //端口号、传输协议类型
a=accept-types:text/plain //可接受的MIME类型
a=path:msrp://user1.imserver.com:7654/jshA7we;tcp //MSRP URI,标
识一个MSRP会话
SIP/2.0 200 OK //SIP 200 OK消息
To:<sip:user2@imserver.com>;tag=012ab
From:<sip:user1@imserver.com>;tag=123
Call-ID:3413an89KU
Content-Type:application/sdp
c=IN IP4 imserver.com
m=message 12345 TCP/MSRP*
a=accept-types:text/plain
a=path:msrp://imserver.com:12345/kjhd37s2s2;tcp
MSRP dkei38sd SEND //MSRP SEND消息
To-Path:msrp://imserver.com:12345/kjhd37s2s2;tcp //接收方URI地址
From-Path:msrp://user1.imserver.com:7654/jshA7we;tcp //服务器URI地
址
Message-ID:123
Content-Type:text/plain
Hi,Alice!I′m Bob! //发送内容(消息体)
-------dkei38sd$ //传输ID
BYE sip:user1@i imserver.com SIP/2.0 //SIP BYE子消息
上述步骤5-6和7不存在必然的时序先后关系,也可以是7在前,5-6在后,但并不影响本发明。
步骤8:服务器Server和接收方客户端ClientB建立起MSRP连接。
接收方客户端ClientB和服务器Server协商以公知的方式建立MSRP连接,其可以是接收方客户端ClientB发起建立,也可以是服务器Server发起建立。
服务器和接收方客户端通过SIP INVITE、SIP 200OK建立起MSRP会话,根据消息获取的方式不同(或者是接收方客户端ClientB主动获取,或者是服务器Server主动push推送到接收方客户端ClientB),SIP INVITE可以是接收方客户端ClientB方主动发起,也可以是服务器Server端主动发起。当是接收方客户端ClientB主动发起时,SIP INVITE的源地址和接收方地址分别是接收方客户端ClientB的URI地址和服务器地址;当是服务器Server主动发起时,SIP INVITE的源地址和接收方地址分别是服务器地址和接收方clientB的URI地址。这里的SIP INVITE和SIP 200 OK消息的构造方式和现有技术完全类似,和本发明的消息封装传输技术本身无关,因此本领域的技术人员可以根据例子中的源消息的内容,构造出新的SIP INVITE和SIP 200 OK消息,因此本发明不再详述。
步骤9:当异常情况不再存在时,服务器Server将已存储的源消息进行消息封装,封装到新的MSRP SEND消息中。
当接收方客户端ClientB再次上线或者服务器Server未满负荷或者其他异常情况不存在时,服务器Server解析封装模块将源消息从存储模块中读取出来,进行解析,并封装到新的MSRP SEND消息message2中。
步骤10:服务器Server将所述的MSRP SEND消息message2下发给接收方客户端ClientB;
服务器Server将封装后的新的MSRP SEND消息message2下发到接收方客户端ClientB。
这里的转发方式可以是接收方客户端ClientB主动请求获取,也可以是服务器Server主动下发,无论哪种方式都不影响本发明的保护范围。
步骤11:接收方客户端ClientB确认收到下发的MSRP SEND消息message2,发送SIP 200 OK消息。
步骤12:接收方客户端ClientB解析收到的MSRP SEND消息,将源消息内容解析出来。
封装后的新的MSRP SEND消息被发送之后,服务器和接收方客户端还需要通过SIP BYE来结束本次MSRP会话。SIP BYE消息的构造方式和现有技术完全类似,和消息封装传输技术本身无关,因此本领域的技术人员可以根据例子中的源消息的内容,构造出新的SIP BYE消息,因此本发明不再详述。
(三)如图2所示,下面详细描述步骤9中在消息会话中继协议中封装消息的方法过程:
步骤91)服务器Server读取已存储的需要发送给接收方客户端ClientB的源消息;
服务器Server读取已存储的需要发送到接收方客户端ClientB的源消息。在优选方式下,服务器Server还需要读取该消息在服务器上的接收时间,以便接收方能够知道该消息是什么时间被发送出来的,由于消息从发送端发出到被服务器接收之间的时间间隔很短,可以认为消息在服务器上的接收时间就是该消息的发送时间,因此服务器Server读取该时间作为该消息的时间戳。
步骤92)解析服务器Server所存储的需要发送到接收方客户端ClientB的消息,得到接收方客户端的URI地址,并利用所述地址和所述消息封装新的MSRP SEND消息。
步骤921)首先服务器Server解析已经存储的MSRP会话过程中的源消息的SIP INVITE消息,以获取该源消息的接收方URI地址,然后构造新的MSRP SEND消息的消息头。
其中新的MSRP SEND的消息头中的To-path字段为接收方URI地址、From-path字段为Server的URI地址;
字段Content-Type头域的值为multipart/mixed,表示消息体类型是复合消息体;
定义字段boundary的值,表示各个子消息体之间的分界标志,例如boundary42;
如所述例1的消息,则服务器Server解析SIP INVITE消息,获取该源消息的接收方URI地址:user2@imserver.com;
然后,构造新的MSRP SEND消息的消息头中的To-path字段为接收方URI地址:user2@imserver.com,From-path字段为服务器Server的URI地址:imserver.com。
如所述例1的消息,则新MSRP SEND的消息头为:
MSRP abcd12sk SEND //封装后的MSRP SEND消息头
To-Path:msrp://user2.imserver.com:7777/iau39;tcp //目的URI地址
From-Path:msrp://imserver.com:8888/9di4ea;tcp //源URI地址
Message-ID:456
Content-Type:multipart/mixed; //消息体类型
boundary="boundary42" //分界标志
而新的MSRP SEND消息message2消息的消息体根据源消息构造,包括源消息中的SIP INVITE消息、SIP 200 OK消息、MSRP SEND消息和SIP BYE消息。
922)服务器Server以被发送时的MSRP源消息中的SIP INVITE消息,封装新的MSRP SEND消息message2的SIP INVITE消息部分,其中包含了源消息的发送方URI地址,这部分的Content-type头域的值为message/sip;
服务器Server封装的新的MSRP SEND消息message2的SIP INVITE消息部分还可以在原有的SIP INVITE消息中增加Date字段,其值为步骤91)所述的时间戳;
如所述例1的消息,封装后的SIP INVITE消息部分如下:
--boundary42
Content-Type:message/sip
INVITE sip:imserver.com SIP/2.0
To:<sip:user2@imserver.com>
From:<sip:user1@imserver.com>;tag=123
Call-ID:3413an89KU
Date:Mon,03Jan 2005 08:01:02 GMT
Content-Type:application/sdp
c=IN IP4 user1.imserver.com
m=message 7654TCP/MSRP*
a=accept-types:text/plain
a=path:msrp://user1.imserver.com:7654/jshA7we;tcp
923)服务器Server以被发送时MSRP源消息中的SIP 200 OK消息,封装新的MSRP SEND消息message2的SIP 200 OK消息部分,这部分的Content-type头域的值为message/sip;
服务器Server封装新的MSRP SEND消息message2的SIP 200 OK消息部分还可以在原有的SIP 200 OK消息中增加Date字段,其值为步骤91)所述的时间戳;
如所述例1的消息,封装后的SIP 200 OK消息部分如下:
--boundary42
Content-Type:message/sip
SIP/2.0 200 OK
To:<sip:user2@imserver.com>;tag=012ab
From:<sip:user1@imserver.com>;tag=123
Call-ID:3413an89KU
Date:Mon,03 Jan 2005 08:01:02 GMT
Content-Type:application/sdp
c=IN IP4 imserver.com
m=message 12345 TCP/MSRP*
a=accept-types:text/plain
a=path:msrp://imserver.com:12345/kjhd37s2s2;tcp
924)服务器Server以被发送时MSRP源消息中的MSRP SEND消息,封装新MSRP SEND消息message2的MSRP SEND消息部分;这部分的Content-type头域的值需要对现有技术(IETF规范)进行扩充,例如定义Content-type为“message/msrp”;
进一步地,服务器Server封装新的MSRP SEND消息message2的MSRPSEND消息部分还可以在原有的MSRP SEND消息中增加Date字段,其值为步骤91)所述的时间戳;
如所述例1的消息,封装后的MSRP SEND消息部分如下:
--boundary42
Content-Type:message/msrp
MSRP dkei38sd SEND
To-Path:msrp://imserver.com:12345/kjhd37s2s2;tcp
From-Path:msrp://user1.imserver.com:7654/jshA7we;tcp
Message-ID:123
Date:Mon,03 Jan 2005 08:01:02 GMT
Content-Type:text/plain
Hi,Alice!I′m Bob!
-------dkei38sd$
925)服务器Server以被发送时MSRP源消息中的SIP BYE消息,封装新的MSRP SEND消息的SIP BYE消息部分,这部分的Content-type头域的值为message/sip;
进一步地,服务器Server封装新的MSRP SEND消息的MSRP SEND消息部分还可以在原有的SIP BYE消息中增加Date字段,其值为步骤91所述的时间戳;
如所述例1的消息,封装后的SIP BYE消息部分如下:
--boundary42
Content-Type:message/sip
BYE sip:user1@i imserver.com SIP/2.0
Date:Mon,03 Jan 2005 08:01:02 GMT
--boundary42-
该消息被封装后发送时,封装后新的MSRP SEND消息message2如下:
MSRP abcd12sk SEND //封装后的MSRP SEND消息头
To-Path:msrp://user2.imserver.com:7777/iau39;tcp //目的URI地址
From-Path:msrp://imserver.com:8888/9di4ea;tcp //源URI地址
Message-ID:456
Content-Type:multipart/mixed; //消息体类型
boundary="boundary42" //分界标志
--boundary42 //封装后的MSRP SEND消息体
Content-Type:message/sip
INVITE sip:imserver.com SIP/2.0
To:<sip:user2@imserver.com>
From:<sip:user1@imserver.com>;tag=123
Call-ID:3413an89KU
Date:Mon,03 Jan 2005 08:01:02 GMT
Content-Type:application/sdp
c=IN IP4 user1.imserver.com
m=message 7654 TCP/MSRP* a=accept-types:text/plaina=path:msrp://user1.imserver.com:7654/jshA7we;tcp--boundary42Content-Type:message/sipSIP/2.0 200 OKTo:<sip:user2@imserver.com>;tag=012abFrom:<sip:user1@imserver.com>;tag=123Call-ID:3413an89KUDate:Mon,03 Jan 2005 08:01:02 GMTContent-Type:application/sdpc=IN IP4 imserver.comm=message 12345 TCP/MSRP*a=accept-types:text/plaina=path:msrp://imserver.com:12345/kjhd37s2s2;tcp--boundary42Content-Type:message/msrpMSRP dkei38sd SEND
To-Path:msrp://imserver.com:12345/kjhd37s2s2;tcp
From-Path:msrp://user1.imserver.com:7654/jshA7we;tcp
Message-ID:123
Date:Mon,03 Jan 2005 08:01:02 GMT
Content-Type:text/plain
Hi,Alice!I′m Bob!
-------dkei38sd$
--boundary42
Content-Type:message/sip
BYE sip:user1@i imserver.com SIP/2.0
Date:Mon,03Jan 2005 08:01:02 GMT
--boundary42-
封装后新的MSRP SEND消息message2下发给接收方客户端ClientB。
(四)下面详细描述步骤12中接收方客户端ClientB解析被封装后的MSRP SEND消息的方法:
接收方客户端ClientB根据所述封装过程反向解析MSRP SEND消息message2即可。
步骤121)接收方客户端ClientB收到MSRP SEND消息message2后,发现其内容类型是multipart/mixed,需要解析消息体内容。
步骤122)接收方客户端ClientB依次读取MSRP SEND消息体中的各个部分,根据消息体中各个部分所示的content-type进行解析,如果是message/sip,则知道是SIP消息;如果是message/msrp,在知道是MSRP消息。
步骤1221)接收方客户端ClientB首先解析SIP INVITE消息体,获取发送方客户端ClientA的URI地址和接收方客户端ClientB的URI地址;
步骤1222)接收方客户端ClientB解析MSRP SEND消息体,获取消息内容以及消息的发送时间戳;
步骤1223)进一步地,接收方客户端ClientB还解析MSRP SEND消息中的SIP 200 OK消息体和SIP BYE消息体;
步骤123)接收方客户端ClientB将发送方客户端ClientA的URI地址、接收方客户端ClientB的URI地址信息、发送内容以及消息的发送时间戳以公知的技术组合到用户界面中,呈现给用户。
具体的公知的用户界面组合技术和本发明无关,其不影响本发明的保护范围。
本发明的MSRP消息封装系统及传输方法,通过扩充现有的技术(IETF标准协议),使得MSRP协议更加完善,为延迟消息的存储转发等业务应用提供了传输层的必要技术支撑。
和现有技术相比,本发明的封装技术使得服务器处理简单,无需解析直接存储,只需要一次解析封装。而对于客户端来说,在满足了能够支持MSRP协议的基础条件下,解析一个具有普通消息体的MSRP SEND消息和解析具有复合消息体的MSRP SEND消息的时间复杂度是相同的,都是解析一次。因此,从总体上说,本发明的消息封装及传输方法更加简单,减轻了服务器的负担。
本实施例是使本领域普通技术人员理解本发明,而对本发明所进行的详细描述,但可以想到,在不脱离本发明的权利要求所涵盖的范围内还可以做出其它的变化和修改,这些变化和修改均在本发明的保护范围内。
Claims (28)
1.一种在消息会话中继协议中消息的封装传输系统,包括服务器,至少一个发送方客户端和至少一个接收方客户端;发送方客户端发送MSRP源消息,经服务器下发给接收方客户端,其特征在于:
所述服务器包括解析封装消息模块,用于将服务器收到的MSRP源消息进行解析,得到接收方客户端地址,并根据接收方客户端的地址及源消息封装新的MSRP SEND消息;
所述接收方客户端还包括解析模块,用于当接收方客户端接收到所述MSRP SEND消息时,对所述消息进行解析,并获取消息的信息。
2.根据权利要求1所述的在消息会话中继协议中消息的封装传输系统,其特征在于,所述的服务器还包括存储模块,用于存储发送方客户端与服务器交互的以消息会话中继协议承载的消息。
3.根据权利要求1或2所述的在消息会话中继协议中消息的封装传输系统,其特征在于,所述MSRP源消息包括SIP INVITE消息,MSRP SEND消息。
4.根据权利要求3所述的在消息会话中继协议中消息的封装传输系统,其特征在于,所述MSRP源消息还包括SIP 200 OK消息和SIP BYE消息。
5.根据权利要求3所述的在消息会话中继协议中消息的封装传输系统,其特征在于,所述MSRP SEND消息包括消息头和消息体,所述消息体包括SIP INVITE消息部分和MSRP SEND消息部分。
6.根据权利要求4所述的在消息会话中继协议中消息的封装传输系统,其特征在于,所述MSRP SEND消息包括消息头和消息体,所述消息体包括SIP INVITE消息部分、MSRP SEND消息部分、SIP 200 OK消息部分和SIPBYE消息部分。
7.一种在消息会话中继协议中封装消息的服务器,其特征在于,包括解析封装消息模块,用于将服务器收到的MSRP源消息进行解析,得到接收方客户端地址,并根据接收方客户端的地址及源消息封装新的MSRP SEND消息。
8.根据权利要求7所述的在消息会话中继协议中封装消息的服务器,其特征在于,所述MSRP源消息包括SIP INVITE消息,MSRP SEND消息。
9.根据权利要求8所述的在消息会话中继协议中封装消息的服务器,其特征在于,所述MSRP源消息还包括SIP 200 OK消息和SIP BYE消息。
10.根据权利要求8所述的在消息会话中继协议中封装消息的服务器,其特征在于,所述MSRP SEND消息包括消息头和消息体,所述消息体包括SIP INVITE消息部分和MSRP SEND消息部分。
11.根据权利要求9所述的在消息会话中继协议中封装消息的服务器,其特征在于,所述MSRP SEND消息包括消息头和消息体,所述消息体包括SIP INVITE消息部分、MSRP SEND消息部分、SIP 200 OK消息部分和SIPBYE消息部分。
12.一种在消息会话中继协议中消息的封装方法,其特征在于,包括下列步骤:
步骤A)服务器读取MSRP源消息;
步骤B)解析所述的MSRP源消息,得到接收方客户端地址,并利用所述地址和所述源消息封装新的MSRP SEND消息。
13.根据权利要求12所述的在消息会话中继协议中消息的封装方法,其特征在于,所述步骤B)包括下列步骤:
步骤B1)服务器解析的MSRP源消息的SIP INVITE消息,获取该源消息的接收方客户端的URI地址,然后构造新的MSRP SEND消息的消息头;
步骤B2)服务器以所述MSRP源消息中的SIP INVITE消息封装新的MSRP SEND消息的SIP INVITE消息部分;
步骤B3)服务器以所述MSRP源消息中的MSRP SEND消息封装新的NSRP SEND消息中的MSRP SEND消息部分。
14.根据权利要求13所述的在消息会话中继协议中消息的封装方法,其特征在于,所述步骤B)还包括下列步骤:
服务器以所述MSRP源消息中的SIP 200 OK消息封装新的MSRP SEND消息中的SIP 200 OK消息部分;
服务器以所述MSRP源消息中的SIP BYE消息封装新的MSRP SEND消息中的SIP BYE消息部分。
15.根据权利要求13所述的在消息会话中继协议中消息的封装方法,其特征在于,所述消息头包括接收方地址字段,服务器地址字段,消息体类型字段和分界标志符。
16.根据权利要求15所述的在消息会话中继协议中消息的封装方法,其特征在于,所述消息头的消息体类型字段为复合体消息体。
17.根据权利要求13所述的在消息会话中继协议中消息的封装方法,其特征在于,所述封装的MSRP SEND消息部分中消息体类型为message/msrp。
18.根据权利要求14所述的在消息会话中继协议中消息的封装方法,其特征在于:
所述封装的SIP INVITE消息部分的消息体类型为message/sip;
所述封装的MSRP SEND消息部分中消息体类型为message/msrp;
所述封装的SIP 200 OK消息部分中消息体类型为message/sip;
所述封装的SIPBYE消息部分中消息体类型为message/sip。
19.根据权利要求12至18任一项所述的在消息会话中继协议中消息的封装方法,其特征在于,还包括下列步骤:
步骤Y)服务器还读取服务器接收到所述MSRP源消息的接收时间;并将所述接收时间封装到新的MSRP SEND消息的各个消息部分中。
20.根据权利要求12所述的在消息会话中继协议中消息的封装方法,其特征在于,所述步骤Y)包括下列步骤:
将所述接收时间封装到新的MSRP SEND消息的SIP INVITE消息部分,MSRP SEND消息部分,SIP 200 OK消息部分和SIP BYE消息部分。
21.一种在消息会话中继协议中消息的封装传输方法,其特征在于,包括下列步骤:
步骤A′)服务器和接收方客户端建立起MSRP连接;
步骤B′)服务器将利用MSRP源消息解析并得到接收方客户端地址,根据接收方客户端地址和源消息封装新的MSRP SEND消息;
步骤C′)服务器将所述MSRP SEND消息下发给接收方客户端;
步骤D′)接收方客户端解析收到的MSRP SEND消息,将消息的内容解析出来。
22.根据权利要求21所述的在消息会话中继协议中消息的封装传输方法,其特征在于,所述步骤D′)还包括下列步骤:
步骤D1′)接收方客户端确认收到下发消息,发送确认消息。
23.根据权利要求22所述的在消息会话中继协议中消息的封装传输方法,其特征在于,所述步骤D′)包括下列步骤:
步骤D21′)接收方客户端收到MSRP消息,判断出其消息内容类型是复合消息体;
步骤D22′)接收方客户端依次读取MSRP SEND消息中的各个部分,根据MSRP SEND消息的消息体中各个部分所示的消息体类型进行解析,得到消息内容。
24.根据权利要求23所述的在消息会话中继协议中消息的封装传输方法,其特征在于,所述消息内容包括发送方客户端的URI地址,接收方客户端的URI地址信息,发送内容以及消息的发送时间戳。
25.根据权利要求23所述的在消息会话中继协议中消息的封装传输方法,其特征在于,所述步骤D22′)包括下列步骤:
步骤D221′)接收方客户端解析SIP INVITE消息部分,获取发送方客户端的URI地址和接收方客户端的URI地址;
步骤D222′)接收方客户端解析MSRP SEND消息部分,获取消息内容以及消息的发送时间戳。
26.根据权利要求25所述的在消息会话中继协议中消息的封装传输方法,其特征在于,所述步骤D22′)还包括下列步骤:
步骤D233′)接收方客户端还解析MSRP SEND消息的消息体中的SIP200 OK消息部分和SIP BYE消息部分。
27.根据权利要求21至26任一项所述的在消息会话中继协议中消息的封装传输方法,其特征在于,还包括下列步骤:
步骤M1′)发送方客户端和服务器协商建立MSRP会话;
步骤M2′)发送方客户端将发送MSRP SEND消息;
步骤M3′)服务器接收到所述MSRP SEND消息。
28.根据权利要求27所述的在消息会话中继协议中消息的封装传输方法,其特征在于,还包括下列步骤:
发送方客户端断开和服务器的MSRP连接。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200610058398XA CN100411394C (zh) | 2006-03-03 | 2006-03-03 | 一种在消息会话中继协议中消息的封装传输系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB200610058398XA CN100411394C (zh) | 2006-03-03 | 2006-03-03 | 一种在消息会话中继协议中消息的封装传输系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1863176A true CN1863176A (zh) | 2006-11-15 |
CN100411394C CN100411394C (zh) | 2008-08-13 |
Family
ID=37390506
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB200610058398XA Active CN100411394C (zh) | 2006-03-03 | 2006-03-03 | 一种在消息会话中继协议中消息的封装传输系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100411394C (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009155834A1 (zh) * | 2008-06-23 | 2009-12-30 | 华为技术有限公司 | Etws消息的广播传输系统、装置和方法 |
CN101448008B (zh) * | 2009-01-04 | 2011-12-21 | 烽火通信科技股份有限公司 | 基于msrp的端到多端的媒体交换系统及方法 |
CN103475567A (zh) * | 2013-07-31 | 2013-12-25 | 华为软件技术有限公司 | 数据传输方法、装置、设备及系统 |
CN101594660B (zh) * | 2008-05-30 | 2014-11-05 | 华为技术有限公司 | 系统消息管理的方法、装置及系统 |
CN110178354A (zh) * | 2016-12-08 | 2019-08-27 | T移动美国公司 | 消息会话中继协议/超文本传输协议文件传输 |
CN110875914A (zh) * | 2018-09-03 | 2020-03-10 | 中国移动通信有限公司研究院 | 一种基于共享会话链路传输消息的方法及装置 |
CN112243012A (zh) * | 2019-07-16 | 2021-01-19 | 中国移动通信有限公司研究院 | 一种离线消息传输方法、装置、服务器及终端 |
CN112422497A (zh) * | 2020-09-03 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 消息传递方法、装置及计算机设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0321975D0 (en) * | 2003-09-19 | 2003-10-22 | Ericsson Telefon Ab L M | Exchange protocol for combination multimedia services |
KR20050102772A (ko) * | 2004-04-22 | 2005-10-27 | 삼성전자주식회사 | 인터넷 멀티미디어 서브시스템의 세션 기반 메시징서비스를 위한 세션 설정 방법 |
KR20050103050A (ko) * | 2004-04-23 | 2005-10-27 | 삼성전자주식회사 | 아이피 멀티미디어 서브 시스템에서 중간 노드를 이용한착신 단말의 세션 형성 방법 및 그 시스템 |
KR20050116464A (ko) * | 2004-06-07 | 2005-12-13 | 삼성전자주식회사 | 인터넷 멀티미디어 서브시스템의 세션 기반 메시징서비스의 종료 방법 |
-
2006
- 2006-03-03 CN CNB200610058398XA patent/CN100411394C/zh active Active
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101594660B (zh) * | 2008-05-30 | 2014-11-05 | 华为技术有限公司 | 系统消息管理的方法、装置及系统 |
CN101557264B (zh) * | 2008-06-23 | 2011-05-04 | 华为技术有限公司 | Etws消息的广播传输系统、装置和方法 |
US8472355B2 (en) | 2008-06-23 | 2013-06-25 | Huawei Technologies Co., Ltd. | System, apparatus and methods for broadcasting and transmitting ETWS message |
WO2009155834A1 (zh) * | 2008-06-23 | 2009-12-30 | 华为技术有限公司 | Etws消息的广播传输系统、装置和方法 |
CN101448008B (zh) * | 2009-01-04 | 2011-12-21 | 烽火通信科技股份有限公司 | 基于msrp的端到多端的媒体交换系统及方法 |
CN103475567B (zh) * | 2013-07-31 | 2016-09-14 | 华为软件技术有限公司 | 数据传输方法、装置、设备及系统 |
CN103475567A (zh) * | 2013-07-31 | 2013-12-25 | 华为软件技术有限公司 | 数据传输方法、装置、设备及系统 |
CN110178354A (zh) * | 2016-12-08 | 2019-08-27 | T移动美国公司 | 消息会话中继协议/超文本传输协议文件传输 |
CN110875914A (zh) * | 2018-09-03 | 2020-03-10 | 中国移动通信有限公司研究院 | 一种基于共享会话链路传输消息的方法及装置 |
CN110875914B (zh) * | 2018-09-03 | 2022-06-07 | 中国移动通信有限公司研究院 | 一种基于共享会话链路传输消息的方法及装置 |
CN112243012A (zh) * | 2019-07-16 | 2021-01-19 | 中国移动通信有限公司研究院 | 一种离线消息传输方法、装置、服务器及终端 |
CN112422497A (zh) * | 2020-09-03 | 2021-02-26 | 上海哔哩哔哩科技有限公司 | 消息传递方法、装置及计算机设备 |
CN112422497B (zh) * | 2020-09-03 | 2023-04-18 | 上海哔哩哔哩科技有限公司 | 消息传递方法、装置及计算机设备 |
Also Published As
Publication number | Publication date |
---|---|
CN100411394C (zh) | 2008-08-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1801814A (zh) | 一种离线消息发送和接收方法 | |
CN1863176A (zh) | 一种在消息会话中继协议中消息的封装传输系统及方法 | |
CN1661990A (zh) | 协议版本转换器 | |
CN101064726A (zh) | 地址变换装置、消息处理方法及网络系统 | |
CN1859332A (zh) | 一种采用数据同步处理电子邮件的系统、装置及方法 | |
CN1905530A (zh) | 组播点播方法及系统 | |
CN101064866A (zh) | 一种短信的路由寻址方法及系统 | |
CN1846420A (zh) | 嵌入的服务质量相关信息的传送 | |
CN1859380A (zh) | 一种离线消息获取方法 | |
CN1794705A (zh) | 即时消息用户使用其它即时消息系统聊天室的方法及系统 | |
CN1816053A (zh) | 基于会话初始化协议的流媒体直播p2p网络方法 | |
CN1874328A (zh) | 实现业务互通的方法及系统 | |
CN101047630A (zh) | 实现短消息业务的系统和上发以及下发短消息的方法 | |
CN1801810A (zh) | 一种会话初始化协议消息体内容处理方法及网络 | |
CN1505429A (zh) | 移动终端设备及终端间包通信方法 | |
CN101047515A (zh) | 一种应用业务的计费关联方法及系统 | |
CN101075890A (zh) | 实现群组会话体验质量的方法及系统 | |
CN1863174A (zh) | 一种即时消息系统和消息处理方法 | |
CN101064863A (zh) | 一种ims网络下提供媒体资源服务的方法和系统 | |
CN1870639A (zh) | 初始会话协议消息编码能力的协商方法及装置 | |
CN1889586A (zh) | 一种注册/注销系统和注册/注销方法 | |
CN101064683A (zh) | 处理补充业务的方法、系统及装置 | |
CN101047655A (zh) | 一种基于ip传输的消息路由方法和系统 | |
CN1878388A (zh) | 通信网络中数据传输服务质量的确定方法 | |
CN1949752A (zh) | 一种电路交换网与ip多媒体子系统网络互通的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |