1. 程式人生 > >IM方案技術調研報告

IM方案技術調研報告

1. 編寫目的

企業呼叫中心線上渠道的需求日益增加,VoIP、IM技術和相關規範已日臻成熟,IM渠道已經成為呼叫中心核心平臺不可缺少的部分。這次選擇國內外商業及開源IM軟體進行比較,從軟體技術架構、使用語言和協議、功能、擴充套件性、伸縮性、和公司呼叫中心平臺整合等方面做考察比較,結合公司現有平臺的技術架構和技術積累考慮,為確定IM渠道技術路線提供決策支撐。

2. 調研方向
  1. IM及融合通訊架構
  2. IM伺服器軟體通訊協議
  3. 商業IM伺服器軟體及在呼叫中心方向應用
  4. 開源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客戶端訪問其他網路服務.  圖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)查詢、定位接收方,並將訊息轉發到接收方所在代理伺服器,在這個過程中訊息可能會經過多個代理伺服器的轉發.

 圖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融合語音部分的架構可簡化為: 

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

 

4.2. 網際網路點選呼叫架構

網際網路應用程式有下列要求:

  • 嵌入Web瀏覽器
  • 介面美觀簡單易用
  • 要求更高的安全性(服務平臺安全)

基於以上幾點,來自網際網路的線上呼叫不宜直接連線軟交換平臺,可以使用下列架構由獨立的SIP應用伺服器控制流媒體伺服器處理線上點選呼叫。 

  • 客戶端使用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客戶端。

產品介紹

企業實時訊息傳遞 (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客戶端,定製開發。

開發包,提供定製開發。

產品介紹

ICM是上海恆聚網路有限公司推出的WebCallcenter產品,具有線上的IB和OB服務,同時可以監控使用者的行為,對不同的會員進行差異化服務。ICM系統提供無外掛的文字、語音、視訊、簡訊、電話回撥等方式的WEB互動。ICM和CTI整合後,可以進行統一的路由分配,使用者介面的整合,從而提升整個Contact Center的服務效率和質量。

恆聚ICM基於多媒體互動中心平臺,使用者可以直接通過Web,無需安裝任何外掛直接與聯通電子渠道中心建立文字、語音、視訊、電話回撥、簡訊互動。

恆聚ICM通過與呼叫中心、CRM進行無縫整合,方便查詢使用者的歷史接觸記錄、瀏覽的網頁等資訊,進行智慧主動營銷服務。同時恆聚ICM與電子流系統進行整合,實現閉環的業務處理流程。

恆聚ICM系統統計報表實現對線上座席工作KPI考核,為順豐速運管理層提供戰略資料分析。

5.1.3. 微軟Live Communications Server(LCS) 5.1.4. 騰訊RTX

RTX騰訊通基於QQ技術,採用私有協議,可以與QQ互聯互通。

提供CS軟體客戶端。

可以實現全IM渠道功能。

提供SDK可進行外掛形式的擴充套件開發。

產品介紹 即時溝通交流:方便、快捷地即時訊息傳送與接收,提供不同顏色字型的文字,提供個性化展示。 狀態展示:提供檢視聯絡人線上狀態資訊,可以方便、清晰地瞭解聯絡人的線上狀態。 組織架構:可清晰看到由樹型目錄表達的多層次企業組織架構,是實時更新的電子通訊錄。 聯絡人分組:支援常用聯絡人分組, 把最頻繁的聯絡人劃入同一分組中管理。 通訊錄:提供公司外的聯絡人資料管理,可以進行分組,發簡訊,撥打電話。 快速搜尋欄:提供快捷搜尋條,可以懸浮到桌面任何地方,提供帳號、拼音、中文姓名的模糊查詢。 訊息通知:提供廣播訊息和系統訊息,通知使用者關鍵資訊。 歷史訊息檢視器:對所有訊息的歷史記錄進行檢視、查詢、歸類。
  • 擴充套件功能
使用者管理器
  • 企業IT管理員通過使用者管理器進行組織架構的管理、客戶端使用者的管理、以及通過使用者管理器的許可權中心對企業員工進行許可權分配和管理。
簡訊傳送
  • 支援移動、聯通手機簡訊雙向收發,提供簡訊傳送歷史儲存和查詢。支援簡訊群發,可以向部門、小組成員群發簡訊。
六人語音聊天
  • 最多支援六人同時進行語音聊天,在空間條件限制的情況下也能進行實時溝通,並且不用支付任何通話費用。在六人語音聊天室,還能夠進行最多80人的文字訊息聊天。
高清晰視訊
  • 高清晰的視訊影象,640*480的大解析度顯示,讓視訊通話身臨其境,更支援全屏顯示,滿足視訊會議的特殊要求。
遠端登入

遠端登入是由騰訊公司基於RTX平臺提供的中轉服務,員工不在辦公室的時候可以通過遠端登入功能讓RTX客戶端登入到公司內網部署的RTX伺服器上,很方便的滿足員工在出差、家庭等環境下的辦公支援”。

  • 辦公整合
    • 利用智慧標籤與主流辦公軟體整合。例如,在任何出現RTX帳號的辦公平臺或文件上輕鬆發起即時溝通,方便了企業員工的使用。
  • 自動升級
    • 只要在伺服器進行設定,則客戶端使用者可以進行相應的檔案更新,自動得以升級,降低了管理成本。
  • 關注聯絡人狀態
    • 通過關注聯絡人狀態功能,使用者可以設定關注某聯絡人,在該聯絡人的線上狀態發生變化時可以得到通知。
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萬併發使用者),不支援叢集。

產品介紹 5.2.2. ejabberd

Ejabberd採用XMPP協議,使用Erlang語言開發(Erlang語言是Ericsson研發的面向大規模併發的程式語言)目前是可擴充套件性最好的一種Jabber/XMPP伺服器,支援分佈多個伺服器,並且具有容錯處理,單臺伺服器失效不影響整個cluster運作。

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等。

產品介紹

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::