IM协议介绍

转自:http://ghj19850926.blog.163.com/blog/static/185915602011102254418599/

目录


编写目的
调研方向
协议比较
融合通讯架构
多媒体融合通讯平台
互联网点击呼叫架构
方案/产品介绍
商业产品
IBM Lotus Domino Sametime
上海恒聚ICM
微软Live Communications Server(LCS)
腾讯RTX
开源方案
OpenFire
ejabberd
OpenSER
方案/产品比较
技术比较
架构比较
功能比较
扩展性比较
总结

1. 编写目的

企业呼叫中心在线渠道的需求日益增加,VoIP、IM技术和相关规范已日臻成熟,IM渠道已经成为呼叫中心核心平台不可缺少的部分。这次选择国内外商业及开源IM软件进行比较,从软件技术架构、使用语言和协议、功能、扩展性、伸缩性、和公司呼叫中心平台集成等方面做考察比较,结合公司现有平台的技术架构和技术积累考虑,为确定IM渠道技术路线提供决策支撑。

2. 调研方向
IM及融合通讯架构
IM服务器软件通信协议
商业IM服务器软件及在呼叫中心方向应用
开源IM服务器软件及在呼叫中心方向应用 IM渠道的功能

IM调研报告 - 缘分天空 - 我的博客

3. 协议比较

IM领域很多产品采用私有协议,随着互联互通的需要和GTalk采用XMPP协议,有向开放通信协议兼容的趋势,开放的通信协议有:


IETF SIMPLE(SIP for Instant Messaging and Presence Leveraging Extensions)
IETF XMPP( Extensible Messaging and Presence Protocol )
OMA IMPS(Open Mobile Alliance Instant Messaging and Presence Service)

其中SIMPLE和XMPP较为成熟和流行,被众多商业厂商和开源组织采用[[FootNote(XMPP协议簇和SIMPLE协议簇的介绍和比较引用自发表在《小型微型计算机系统》论文:《互联网即时消息(Instant Messaging, IM)的研究现状与展望》作者:张文茂1 章淼2 毕军2 覃征1)]]。

XMPP协议簇

该协议簇[13,14,15,16]是由IETF的XMPP工作组遵循RFC2779[7]中定义的需求,并结合应用领域中的Jabber应用协议制定的.该协议簇所描述的系统模型采用Client / Server模式,并通过网关与其他服务互通.其系统结构如图1所示.XMPP客户端之间通过XMPP服务器交互IM信息,并可以通过网关(Gateway)使XMPP客户端访问其他网络服务. IM调研报告 - 缘分天空 - 我的博客 图1 XMPP系统结构

XMPP协议簇采用XML语言定义协议中的命令与数据,它利用了XML通用性强、易扩展,以及机器可读的优点,方便了协议在功能上的扩展及其与其它应用的互通.另外,以文本形式的XML语言定义的命令,在一定程度上也避免了二进制病毒代码的引入.

XMPP核心协议RFC3920[13]定义了XML流(XML Stream)的概念,用来描述一次完整的IM会话并维护会话中需要的相关状态信息.在XML流中传输的XMPP消息数据被称为“节点”(Stanza).RFC3920[13]中定义了三个基本的节点(Message, Presence, Info/Query节点)来完成IMPS的基本服务,开发者可以根据实际需求,利用XML语言名空间(namespace)的特性对原有节点进行扩展或者定义新的节点.

XMPP协议簇规定在数据传输上采用TCP协议,并结合了SASL[17]身份认证协议,以及TLS[18]信道加密协议,另外还设计了端到端数据加密机制[16]作为可选的数据加密策略,为数据的可靠传输提供了保证.XMPP协议栈结构如下所示.


XMPP

SASL

TLS

TCP


XMPP协议栈

目前,XMPP协议簇已经由IETF组织制定为RFC标准.不少IM应用软件,如Google公司的Google Talk,以及Psi、Jive Messenger等开源应用,都是遵循该协议簇而设计实现的,这些应用之间具有很好的互通性.

SIMPLE协议簇

该协议簇[19,20,21,22,23]是由IETF的SIMPLE工作组制定的.它通过对SIP协议进行扩展,使其支持IMPS服务.SIMPLE的系统结构和SIP原有的体系结构基本相同,如图2所示.代理服务器(ProxyServer)在收到用户代理(User Agent)的请求后,通过注册服务器(Registar Server)查找、定位接收方,并将消息转发到接收方所在代理服务器,在这个过程中消息可能会经过多个代理服务器的转发.

IM调研报告 - 缘分天空 - 我的博客 图2 SIMPLE系统结构

SIMPLE协议簇利用了SIP协议的请求重定向功能.如图4.3中所示,若用户代理的位置发生变化(如通讯工具改变或地理位置改变等),重定向服务器(Redirect Server)将记录这一变化,并在代理服务器请求联系该用户时,通知代理服务器向联系对象所在的新位置重新发送请求.这一功能为IM通讯中移动性的支持提供了手段.

SIMPLE协议簇所支持的IM会话不同于其他以SIP协议为基础的多媒体会话,一般的多媒体会话在完成SIP信令协商后,需要借助其他协议(如RTP协议[24])在用户代理之间建立会话通道来交互实际的会话数据.而以SIMPLE协议为基础的IM交流无需建立会话通道,IM消息直接通过SIMPLE协议的Message命令为载体传输.而且每个IM消息由单独的MESSAGE命令传输,彼此独立.

目前,SIMPLE工作组还在为SIMPLE协议簇做进一步的完善工作.尽管该协议簇还有一些草案等待IETF进行审核,但目前一些主要的IM服务提供商(如微软)已经在自己的IM产品中采纳SIP/SIMPLE协议组合.而且,3GPP也采纳该协议组合作为构建下一代网络应用的基本协议.

XMPP与SIMPLE的比较

XMPP协议簇可以提供实时、可靠的异步数据传输服务,它的应用不仅仅局限于IM通讯领域,在其他一些需要提供实时性、在线性特征的应用中也同样适用.目前,XMPP协议簇已经在一些非IM领域中发挥作用.有专家预测,XMPP在未来将成为Web Services服务所依托的数据传输协议.

SIMPLE协议簇是依托在SIP协议基础上的,SIP协议并非数据传输协议,而是一种基于IP的信令控制协议.因此基于SIP的SIMPLE协议簇所要实现的目标不同于XMPP.SIMPLE的目标一方面是为了用一种统一的形式来管理各种多媒体会话;另一方面也是为了将在线**融合到多媒体会话中来.另外,SIP协议在移动通讯领域得到广泛地支持,这使得基于SIP/SIMPLE的IM应用可以和移动通讯网络实现有效的互通[26].

SIMPLE协议的补充

The Extensible Markup Language (XML) Configuration Access Protocol (XCAP) [RFC 4825] 提供在线好友状态列表和管理好友可见规则的服务,XCAP使用HTTP存取数据。 Message Session Relay Protocol (MSRP) [RFC 4975] 会话模式消息传递协议,使用类似媒体传输协议RTP的方式,由SIP信令控制消息流建立通信渠道,用SDP描述消息流。可用于语音、视频、文本交谈结合的通讯方式。

4. 融合通讯架构

在通讯领域,运营商、设备制造商、服务提供商、相关标准化组织倾向使用SIP作为基础架构。互联网服务提供商倾向于使用XMPP或私有协议作为架构基础。

4.1. 多媒体融合通讯平台

From http://www.ag-projects.com AG Projects是一家荷兰公司,为电信运营商提供NGN通讯的解决方案和服务。该公司的融合通讯平台基于OpenSER,研发和维护着MediaProxy、CDRTool等知名开源软件以及一些常用OpenSER模块,并使用这些软件搭建电信级应用平台。该公司是OpenSER的主要资助者之一。 IM调研报告 - 缘分天空 - 我的博客

其中,IM融合语音部分的架构可简化为: IM调研报告 - 缘分天空 - 我的博客


SIP Proxy Server
接收路由用户SIP信令
SIP Register Server
Media Proxy Server
MSRP Switcher Server
XCAP Presence Server
IPPBX
PSTN Gateway

IM调研报告 - 缘分天空 - 我的博客 IM调研报告 - 缘分天空 - 我的博客

4.2. 互联网点击呼叫架构

互联网应用程序有下列要求:


嵌入Web浏览器
界面美观简单易用
要求更高的安全性(服务平台安全)

基于以上几点,来自互联网的在线呼叫不宜直接连接软交换平台,可以使用下列架构由独立的SIP应用服务器控制流媒体服务器处理在线点击呼叫。 IM调研报告 - 缘分天空 - 我的博客


客户端使用Flax(Flash)
Flax客户端连接流媒体服务器交互媒体流
SIP应用服务器建立到IPPBX的会话,为流媒体服务提供媒体流

5. 方案/产品介绍

5.1. 商业产品

5.1.1. IBM Lotus Domino Sametime

基于Lotus Domino Server,内部通信协议为私有协议,可以通过Sametime Gateway组件与SIP服务器、XMPP服务器互通,也可实现与GTalk、MSN互通。

支持所有IM渠道功能。

CS软件客户端以及嵌入Web页面的Java Applet客户端。

提供Java 及 JavaScripts SDK开发包。

网站:http://www.ibm.com/developerworks/cn/lotus/sametime8-new/

产品介绍

企业实时消息传递 (IM)、Web 会议、VoIP、视频聊天等

IBM? Lotus? Sametime? Standard 软件是来自 IBM、屡获殊荣、市场领先的统一协作与通信平台(UC??),提供集成化企业 IM、VoIP、视频聊天、Web 会议和音频整合选项,结合了业务运营中所必需的安全特性。

Lotus Sametime Standard 软件是购买了 Lotus Sametime 软件老版本的客户的升级/购买路径。

适合各种规模组织的企业 IM 和 Web 会议软件

Lotus Sametime 软件能帮助组织更有效地通信、降低差旅成本和负担、缩短响应时间并改善客户服务。

此外,Lotus Sametime 软件还为关注公共 IM 网络使用管理不善引起的安全性和遵从性风险的组织提供了解决方案。

Lotus Sametime Standard 软件能帮助各种规模的企业:


通过清晰、高质量的通信来解决问题。
实时访问全球团队。
与任何人员进行快速通信(在策略控制和法规允许的情况下)。
建立与全球同事之间的关系。
与其他人员协作,就好像他们就在您的身边。
提供分布于整个组织范围内的专业经验和知识。
在一个富安全的系统中提供所有这一切,以帮助实现风险的最小化并促进法规遵从性。

Lotus Sametime 已经由二十余家企业投入使用,用户数量超过 100,000 名,涵盖财富杂志全球 50 强中的 29 家、全球 15 大银行中的 12 家、全球 10 大制药企业中的 8 家、全球盈利前 5大企业中的 4 家。

业务就绪的功能

Lotus Sametime Standard 软件支持各种服务器操作系统(包括 Linux),并为众多客户端提供了支持(包括 Windows、Apple Macintosh 和许多受支持的移动设备)。

Lotus Sametime Standard 软件的功能包括:


企业 IM 和到场感知
富文本、时间戳、拼写检查和表情
多方聊天
内置 VoIP 和点对点视频
与电子邮件和桌面生产力应用程序的集成,如 Microsoft Office、Microsoft Outlook 和 IBM Lotus Notes
可选的文件传输
整合的聊天历史记录
位置感知
带有输入提示和搜索功能的联系人列表
联系人名片
与受支持的公共 IM 网络之间可控制的互操作性
Web 会议。
与受支持的音频、视频和电话系统的集成

IBM Lotus Sametime Enterprise Meeting Server 为高可靠性的 Web 会议提供了集群和故障转移功能,而且它还支持 Lotus Sametime Standard 部署。

5.1.2. 上海恒聚ICM

提供在线呼叫中心平台ICC,类似C5,为网站客户提供文本、语音交谈、网页流量统计等,其语音通话采用PSTN回呼方式实现。

ICM是其可定制化集成开发的版本,可与呼叫中心平台CTI整合,实现统一智能路由,文本交谈、护航浏览、Web回呼、远程协助等功能。

CS+BS客户端,定制开发。

开发包,提供定制开发。

网站:http://www.5107.cn

产品介绍

ICM是上海恒聚网络有限公司推出的WebCallcenter产品,具有在线的IB和OB服务,同时可以监控用户的行为,对不同的会员进行差异化服务。ICM系统提供无插件的文本、语音、视频、短信、电话回拨等方式的WEB交互。ICM和CTI整合后,可以进行统一的路由分配,用户界面的集成,从而提升整个Contact Center的服务效率和质量。

恒聚ICM基于多媒体互动中心平台,用户可以直接通过Web,无需安装任何插件直接与联通电子渠道中心建立文本、语音、视频、电话回拨、短信交互。

恒聚ICM通过与呼叫中心、CRM进行无缝整合,方便查询用户的历史接触记录、浏览的网页等信息,进行智能主动营销服务。同时恒聚ICM与电子流系统进行整合,实现闭环的业务处理流程。

恒聚ICM系统统计报表实现对在线座席工作KPI考核,为顺丰速运管理层提供战略数据分析。

5.1.3. 微软Live Communications Server(LCS)

网站:http://www.microsoft.com/china/office/livecomm/prodinfo/faq.mspx

5.1.4. 腾讯RTX

RTX腾讯通基于QQ技术,采用私有协议,可以与QQ互联互通。

提供CS软件客户端。

可以实现全IM渠道功能。

提供SDK可进行插件形式的扩展开发。

网站:http://rtx.tencent.com/rtx

产品介绍
即时沟通交流:方便、快捷地即时消息发送与接收,提供不同颜色字体的文字,提供个性化展示。
状态展示:提供查看联系人在线状态信息,可以方便、清晰地了解联系人的在线状态。
组织架构:可清晰看到由树型目录表达的多层次企业组织架构,是实时更新的电子通讯录。
联系人分组:支持常用联系人分组, 把最频繁的联系人划入同一分组中管理。
通讯录:提供公司外的联系人资料管理,可以进行分组,发短信,拨打电话。
快速搜索栏:提供快捷搜索条,可以悬浮到桌面任何地方,提供帐号、拼音、中文姓名的模糊查找。
消息通知:提供广播消息和系统消息,通知用户关键信息。
历史消息查看器:对所有消息的历史记录进行查看、查找、归类。
扩展功能
用户管理器
企业IT管理员通过用户管理器进行组织架构的管理、客户端用户的管理、以及通过用户管理器的权限中心对企业员工进行权限分配和管理。
短信发送
支持移动、联通手机短信双向收发,提供短信发送历史保存和查询。支持短信群发,可以向部门、小组成员群发短信。
六人语音聊天
最多支持六人同时进行语音聊天,在空间条件限制的情况下也能进行实时沟通,并且不用支付任何通话费用。在六人语音聊天室,还能够进行最多80人的文本消息聊天。
高清晰视频
高清晰的视频图像,640*480的大分辨率显示,让视频通话身临其境,更支持全屏显示,满足视频会议的特殊要求。
远程登录

远程登录是由腾讯公司基于RTX平台提供的中转服务,员工不在办公室的时候可以通过远程登录功能让RTX客户端登录到公司内网部署的RTX服务器上,很方便的满足员工在出差、家庭等环境下的办公支持”。


办公集成
利用智能标签与主流办公软件集成。例如,在任何出现RTX帐号的办公平台或文档上轻松发起即时沟通,方便了企业员工的使用。
USB Phone

用手持设备通过RTX拨打电话,更加接近传统拨打电话的习惯。http://rtx.tencent.com/rtx/index.shtml话音质量清晰,并且不用支付任何费用。


自动升级
只要在服务器进行设置,则客户端用户可以进行相应的文件更新,自动得以升级,降低了管理成本。
关注联系人状态
通过关注联系人状态功能,用户可以设置关注某联系人,在该联系人的在线状态发生变化时可以得到通知。

5.2. 开源方案

5.2.1. OpenFire

采用XMPP协议的IM Server,使用Java语言开发,支持插件架构扩展服务器功能,通过Asterisk IM插件可支持语音、视频渠道,使用IM Gateway插件可以与MSN、GTalk等公共IM平台互联互通。

提供Java CS软件客户端Spark,提供Flex(Flash)客户端开发包。

使用Connection Manager组件提高性能(单机支持30万并发用户),不支持集群。

网站:http://www.igniterealtime.org/projects/openfire

产品介绍

5.2.2. ejabberd

Ejabberd采用XMPP协议,使用Erlang语言开发(Erlang语言是Ericsson研发的面向大规模并发的编程语言)目前是可扩展性最好的一种Jabber/XMPP服务器,支持分布多个服务器,并且具有容错处理,单台服务器失效不影响整个cluster运作。

网站:http://www.ejabberd.im/

5.2.3. OpenSER

OpenSER是高性能的SIP Server,可用做下列SIP服务器:


SIP proxy server
SIP registrar server
SIP location server
SIP application server
SIP dispatcher server

新版本的OpenSER支持SIMPLE协议和XMPP协议。

OpenSER提供模块化接口扩展业务功能(增值业务),非常灵活。

按客户端能力可实现语音、视频、文本渠道功能,可以与Asterisk或其它IPPBX、媒体服务器、Radius服务器整合,支持多种关系数据库和LDAP服务器,支持Perl、Java多种扩展方式。

兼容SIP客户端程序,如eyebeam、zoiper等。

网站:http://www.openser.org

产品介绍

Some of the features that OpenSER brings:


robust and performant SIP (RFC3261) Registrar server, Location server, Proxy server and Redirect server
small footprint - the binary file is small size, functionality can be stripped/added via modules

plug&play module interface - ability to add new extensions, without touching the core, therefore assuring a great stability of core components


stateless and transactional statefull SIP Proxy processing
support for UDP/TCP/TLS transport layers
IPv4 and IPv6
support for SRV and NAPTR DNS
SRV DNS failover
IP Blacklists
multi-homed (mhomed) and multi-domain support
scripting language for configurations file. With a syntax similar to sripting languages, the configuration offers a powerful and flexible way to deploy custom SIP

services.


management interface via FIFO file and unix sockets
pseudo-variables to access and manage parts of the SIP messages and attributes specific to users and server
authentication, authorization and accounting (AAA) via database (MySQL, Postgress, text files), RADIUS and DIAMETER
digest and IP authentication
CPL - Call Processing Language (RFC3880)
SNMP - interface to Simple Network Management Protocol
XMLRPC -management interface via XMLRPC
NAT traversal support for SIP and RTP traffic
ENUM support
PERL Programming Interface - embed your extensions written in Perl
Java SIP Servlet Application Interface - write Java SIP Servlets to extent your VoIP services and integrate with web services
load balancing with failover
least cost routing
support for replication - REGISTER offer new functions for replicating client information (real source and received socket).
logging capabilities - can log custom messages including any header or pseudo-variable and parts of SIP message structure.
modular architecture - plug-and-play module interface to extend the server's functionality
gateway to sms or xmpp
multiple database backends - MySQL, PostgreSQL, flat files and other database types which have unixodbc drivers
straightforward interconnection with PSTN gateways
impressive extension repository - over 70 modules are included in OpenSER repository

Scalability:


OpenSER can run on embedded systems, with limitted resources - the performances can be up to hundreds of call setups per second
used a load balancer in stateless mode, OpenSER can handle over 5000 call setups per second
on systems with 4GB memory, OpenSER can serve a population over 300 000 online subscribers
system can easily scale by adding more OpenSER servers
OpenSER can be used in geographic distributed VoIP platforms
straightforward failover and redundancy

6. 方案/产品比较

6.1. 技术比较 SIMPLE與XMPP比較

SIMPLE

XMPP

工作组织

SIP/SIMPLE (IETF)

Jabber/XMPP (IETF)

技术基础

Signaling

Data transport

信息交换方法

点对点 (P2P)或(C/S)

主从式架构 (C/S)

信息格式

及时信息可使用自定义文字格式;在线状态属性(presence)使用XML格式

XML

支持媒体

可支持其它媒体类型,如语音、视频

使用XML Stream技术进行文档交换,可与其它应用和系统整合

厂商

Microsoft, IBM, Sun, 3GPP

HP, Intel, Sony, Hitachi, Oracle


小结

SIP/SIMPLE和XMPP都是IETF制定的规范。SIP是一种通信信令控制协议,SIP/SIMPLE设计目标是将会话的两端连接起来,会话两端可以是任何媒体(文本和数据也作为一种媒体看待),系统架构中使用SIP Register Server和Presence Server表示用户状态,用SIP协议的Subscribe/Notify/Publish方法订阅和呈现用户状态、传递信息,SIP是3Gpp通信协议,可以和NGN直接衔接;XMPP设计目标是异步数据传输,使用TCP传输XML格式的协议体,架构上XMPP服务器作为Register Server、Presence Server、Message Server,XMPP有多种开源服务器,可以与MSN、GTalk等公共IM平台互联互通。

6.2. 架构比较

TODO::

6.3. 功能比较

TODO::

6.4. 扩展性比较

TODO::

7. 总结

TODO::


  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值