摘要 利用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建立会话的时间很短,还是可以给用户提供良好的准实时体验。如果接收者没有加入到会话群组(聊天室)中,那么它是无法收到消息的。
3.2 基于Message方法的实现技术
IMS的Message方法是SIP针对消息传送的扩展,克服了会话机制中消息端点和信令端点一致带来的带宽不足的问题,该方法采用了一种类似动态路由的方式,突破了基于会话方式的限制,实现起来更为简单有效。
基于Message方法的即时消息实现如图2所示(以点到点消息为例)。
图2 基于Message方法的消息发送流程
从图2可以看出,基于Message方法的即时消息实现流程不需要建立会话的过程,消息直接在Message请求中携带。接收端接收消息后,同样会给发送端发送ACK消息。消息请求会携带消息大小限制和消息有效期限等信息。如果消息大小超过了限制,消息将被拒绝,发送端也会得到通知。
基于Message传送机制的实现不需要用户首先加入到会话中,也不需要其他的准备工作,消息双方随时可以接收和发送消息。一般来说,发送者在发送消息前会设法通过接收者的在席信息了解接收者是否可达,如果接收者并不在线,发送的消息则可能被丢弃或者延时送达。在消息的传送过程中接收端网络将根据设定的消息过滤规则对消息进行过滤,例如,如果接收者设定了不接收来自该发送者的任何消息,则该消息也是无法到达接收者的。
3.3 两种实现技术的比较
(1)消息内容
在基于会话的实现技术和基于Message方法的实现技术中,传送的消息均可以是多种媒体类型,多媒体消息采用MIME编码。在基于会话的实现方式下,建立会话连接时需要预先定义媒体形式。
(2)消息管理
在基于会话的实现方式下,连接的建立有明确的发起者,可以预先定义管理员,控制消息的存取、发送和呈现特性。
(3)消息分发
在基于会话的实现方式下,连接是事先建立的,消息将沿着指定的线路传送。基于Message方法的实现方式类似一种动态路由方式,虽然消息也直接发送到接收者,但消息路径可以灵活改变,同时还可以设置暂时存储在接收端网络里。
(4)消息存储
在基于会话的实现方式下,消息存储分为公共存储和个人存储,用户可对个人存储环境下的消息进行转发、提取、删除、查看等操作,但对公共存储的消息只能查看和提取,不能删除。在基于Message机制的实现方式下,只有公共存储方式,用户可以对消息进行转发、提取、删除、查看等操作。
(5)用户隐私保护
在两种实现方式下,消息接收者均可以查看对方的公共标识,如果发送者不想公开自己的公共标识,则可以设置隐藏。在基于会话的实现方式下输入提示(如“正在输入”)是一种附加功能,但发送者还可以使用匿名发送和接收消息,这时用户也可以隐藏自己的输入提示。
(6)其他
从其他方面来看,两种实现方式的要求和功能基本是一致的。如终端要求支持SIP客户端,支持一定的颜色、文本大小的显示能力,支持多媒体消息,支持常见的内容编码模式,具备一定的媒体存储能力,支持安全、保密机制。服务提供商可以根据业务策略和用户要求定义过滤规则,用户可以对消息处理规则做定义和修改,如对方不在线时的处理,消息的最大尺寸,是否接收特定消息和消息的优先级等。在基于Message方法的实现方式下,终端还需要支持SIP的Message方法扩展。
目前互联网上提供的即时消息业务普遍基于私有协议,互联互通很困难,而且没有考虑到无线环境和为运营商提供良好的运营支撑环境,例如计费环境等。采用IMS SIP实现后采用基于会话和基于Message方法的消息业务可以很方便地进行互联互通。以后即时消息的标准化工作将致力于IMS消息和现有非IMS消息互通方面的研究,并将加强对业务支撑环境建设方面要求的阐述。对运营商来说,以后将可以实现在聊天室的入口处推送广告,并对进入聊天室的聊天者收取“门票”。另外,即时消息的安全性和QoS等问题,也是下一步研究关注的热点。
综上所述,基于会话实现的优势是:
●用户可以不断加入、离开聊天室;
●可以通过消息发送列表群发消息:
●可以邀请别人进入聊天室或进行聊天室的其他相关操作;
●可以有效地利用IMS的组管理特性;
●对方的动作可以有所提示(如“正在输入”);
●扩展性强:可以将简单的即时消息和其他由SIP发起的会话相联系,提供增值服务。
基于Message方法实现的优势是:
●不需要预先建立会话;
●可以与在席服务很好地结合;
●可以实现更快捷的消息传送。
4、结语
从上面的分析可以看出,利用SIP实现即时消息的传送充分利用了IMS的业务能力,也符合网络向融合方向发展,也符合网络架构控制和承载分离的发展方向。基于消息机制的实现直接利用SIP的Message方法,实现较为简单直接,适合点到点即时消息的传送;基于会话实现较为复杂,但功能较为强大,容易扩展和与SIP实现的其他服务相结合,开发多种增值服务,适合多方的、附带多种并发业务的即时消息的传送。由于用户的需求往往是动态和多方面的,所以两种实现方式的有效结合更为大家所看好,如采用Message方法来完成发送消息给某个人,采用会话实现来扩展对话,建立聊天群组等。