摘要 利用IMS和SIP实现即时消息是一种发展方向。目前利用IMS实现即时消息有两种方法,它们各自的特点决定了它们在应用场合上各有倾向性。本文从实现机制入手,对这两种技术进行了分析比较,特别是比较了它们在消息管理、消息分发、消息存储和隐私保护实现方面的差异,从而指出它们在应用上的特点。
1、引言
即时消息是将接收到的发送者发来的信息非存储地转发给接收者的一种服务,与电子邮件的消息的不同在于即时消息是直接在接收端与发送端之间交互的。
SIP(会话启始协议)的机制非常适合实现即时消息。基于SIP的IMS(IP多媒体子系统)架构为即时消息构建了一种很好的实现环境。在IMS环境中,即时消息的实现基本上有两种方法,一种是基于IMS的Message方法,另一种是基于IMS会话机制实现的方法,它们都是在3GPP TS 22.228定义的IMS能力架构下实现的。
在IMS的Message方法机制下,接收者可以实时或准实时地接收到消息。而在基于会话的机制下,用户接收到的消息一般是准实时的,接收者和发送者之间首先必须建立会话连接(这种消息会话成为聊天室),然后才可以进行消息的传送。
OMA、3GPP、IETF 3大标准组织对移动IMS消息业务都做了定义,但各自涉及的面不同,OMA主要关注于业务需求方面,3GPP/3GPP2主要关注网络架构实现方面,而IETF关注具体实现的协议技术细节。
在2007年3月3GPP标准组提交的标准化文档TS 22.340中,对上述两种实现方法对网络的要求进行了明确的规定。
2、IMS实现即时消息的基础——SIP
SIP是由IETF提出的IP信令协议,它的主要目的是为了解决IP网中多媒体会话的信令控制。
SIP用于发起会话,它能控制有多个参与者参加的多媒体会话的建立、修改和终结,并能动态调整和修改会话属性,如会话带宽要求、传输的媒体类型(如语音、视频和数据等)、媒体的编解码格式、对组播和单播的支持等。SIP对会话承载的内容不做限制,而由SDP(会话描述协议)控制。
SIP实现使用两类原语(也称为事务):请求和应答。
请求是指从客户机发到服务器的消息。SIP核心规范定义了7种SIP请求方法:
●Invite——邀请用户加入会话;
●Bye——终止两个用户之间的会话;
●Options——用于请求向服务器查询对方能力;
●Ack——确认客户机已经收到对Invite的最终响应;
●Register——提供地址解析的映射,让服务器知道其他用户的位置;
●Info——用于在信令链路上传送应用层消息;
●Cancel——用于取消客户端发送的前一个请求。
应答是指从服务器发到客户机的应答消息。每个消息都有一个代表事务状态的状态码(100~699的整数)。下面是6类应答状态码:
●1XX:临时响应,表示请求消息正在被处理;
●2XX:成功响应,表示请求已被成功接受,如OK(200);
●3XX:重定向响应,表示需转发请求;
●4XX:客户机错误,表示请求消息中包含语法错误,
服务器无法完成客户机请求;
●5XX:服务器错误,表示由于服务器原因无法完成请求;
●6XX:全局故障,表示所有服务器均无法完成请求。
消息请求原语是SIP的一种扩展,消息内容包含在消息请求中一并发送。消息请求原语继承了SIP请求的路由特点和安全特点,消息体以多用途互联网邮件扩展(multipurpose Internet mail extension,MIME)等封装形式存在。消息请求本身并不创建SIP对话,而采用类似双向传呼的机制发送相对独立的即时消息内容。
SIP被应用到多媒体消息传送业务环境的主要原因有:
●SIP以文本形式表示消息,消息的词法和语法分析比较简单;
●SIP消息的请求过程和媒体协商过程等是一起进行的,媒体连接建立时间短;
●SIP只要对头域进行简单扩展就能很方便地支持各种补充业务或创新业务;
●SIP支持许多种地址描述和寻址,很容易与其他协议适应并协作提供业务;
●SIP含有向注册服务器注册的功能,本身就可以提供众多与消息相关的服务和实现用户定位功能,非常适合即时通信类业务能力的提供,例如XDM、在席、即时消息和PoC(一键通)等;
●SIP的动态注册机制、名字映射和重定向服务很好地支持了用户端的移动性和多方通话,适合FMC业务的提供;
●SIP控制模型为分布式服务模型,具有分布式的组播功能。
3、通过IMS实现即时消息
IMS是基于IP网络,利用SIP实现来开发消息服务能力的。SIP的首要特征是能迅速和高效地建立实时会话,因此可以提供与固网上聊天室和即时消息服务同样的客户体验。这种业务特性体现在消息可以马上发送,而且与用户的位置、在席等呈现信息可以有效地联系起来。
3.1 基于会话的实现技术
会话是有明确的起始点和结束点的。SIP控制和管理会话的原语通常是Invite、Cancel、Bye等,在SIP实现中,即时消息会话是一个由Invite开始,以Bye结束的会话。
基于会话的即时消息的实现流程如图1所示(以点到点消息为例)。
图1 基于会话消息发送流程
从图1可以看出,基于会话的即时消息实现流程首先是Invite会话建立的普通流程(这个流程和通常SIP会话建立的路程是一致的,所以这里省略了,不详细论述),从而建立一个消息会话。Invite消息中带有发送端可接收消息的最大字节数,响应消息(200 OK)将附带接收端可接收消息的最大字节数,在两端的点到点连接建立以后,消息就在会话路径上进行传送。接收端接收消息后,会给发送端发送ACK消息。
会话方式需要在建立了会话的路径上传送消息。由于即时消息携带的媒体数据量是很大的,所以如果传送路径上没有拥塞控制就很容易引起网络拥塞;另外,由于消息在已建立的对话路径中传送,消息端点和信令端点是一样的,大大限制了即时消息的使用范围。
在基于会话的消息实现中,可以方便地实现多方消息共享。这时会话可以比喻为聊天室,由MRFC/MRFP(多媒体资源功能控制器/多媒体资源功能处理器)或AS(应用服务器)控制媒体资源,并承担消息传送中介的身份。聊天室的建立可以由用户或服务提供商发起。参与聊天的人可以进入聊天室,参与讨论或离开聊天室。相对于消息传送,聊天室显得更加“永久”,并不因为某些人的离开而关闭;另外,聊天室可以进一步被划分为私有和公开聊天室。通常,参加聊天室的用户将收到其他参加者传送的所有信息,当然,用户也可以发送私有消息给聊天室里的某些人。在这种实现方式下,群发一条消息可以很方便地实现,发送者不需要一一指定接收者。
目前,对MRFC和MRFP之间的相互操作和业务流程还没有标准化。在由MRFC/MRFP建立连接的场景下,往往需要同时引入IMS AS协同工作,以实现对会话群组的各个客户的有效管理。
在基于会话的消息实现中,由于要先建立会话,消息传送有一定的延时,但由于SIP建立会话的时间很短,还是可以给用户提供良好的准实时体验。如果接收者没有加入到会话群组(聊天室)中,那么它是无法收到消息的。