分享到:

研發圖
聯絡我們 | 訪客留言 |
論 文 專 利 著 作 項 目 ZigBee 與 Uwb動態 技術FAQ
 
               
基于SIP和CMPP的即時消息網關的設計和實現

金純[1][2] 湯芳劍[1] 趙喜[2] 葉懌[2] 楊帆[1]

重慶郵電大學[1] 重慶金甌科技發展有限責任公司[2]

摘要:文章基于SIP和CMPP協議,提出了一個即時消息網關的設計與實現方案,使IP網絡上的SIP即時消息可以與CMPP消息互通。在實現了SIP、CMPP協議的基礎之上,進一步給出了一個實現短信網關接口的簡單模型,并從網關的體系結構、典型信令流程、協議映射方面進行了分析,最后對整個方案進行了總結。
關鍵詞:SIP CMPP 即時消息網關
【中圖分類號】TN949.197 【文獻標識碼】A

Design and Implementation of Instant Messaging Gateway Basesd on SIP and CMPP
Jin chun[1][2] Tang fangjian[1] Zhao xi[2] Ye yi[2] Yang fan[1]

Chongqing University of Posts and Telecommunications[1] Chongqing JINOU Science and Technology Development Co,Ltd[2]
Abstract: This paper bases on SIP and CMPP and introduces a design and implementation of a Instant Messaging Gateway,SIP Instant Messaging and CMPP message can realize exchange through it. Further gives a realization of a simple SMG Interface Model on the basis of implementation of the SIP、CMPP protocol,analysises the gateway from the area of architecture、typical signaling process and protocol mapping,at the same time, the entire program are summarized finally.
Keywords: SIP CMPPInstant Messaging Gateway

1 引言
  短消息作為已經成熟的無線互聯增值業務,能以低廉的資費、充分的個性與秘密性等特征為商家帶來可觀的收入,而且還可以帶動一些相關業務的蓬勃發展。短消息服務技術是無線通信在20世紀末所做的一次重要飛躍,這使移動網絡不僅可以傳送音頻,也可以傳送數據,而數據傳輸是互聯網技術的根本。
  即時消息(Instant Messaging,IM)是一種實時通信的方式,通過快速在用戶之間傳遞文本或多媒體信息并及時地、有選擇地向用戶的聯系人傳遞用戶的在線信息,以實現用戶之間的通信。IM區別于其他消息的特性就是交互性,用戶可以幾乎實時地交換消息以進行會話[1]。
 

網關體系結構

                圖1 網關體系結構

CMPP已經實現了手機與移動網絡的即時短信互通,然而目前像AIM、MSN 和Yahoo等IM工具與手機的短信互通還沒有實現,本文提出的即時消息網關正是為了實現SIP和CMPP的即時短信互通。
  本文基于SIP和CMPP協議,提出了一個使IP網絡與CMPP網絡消息互通的通信網關設計方案,IP網絡上的終端使用SIP協議可以發送消息給中國移動手機用戶,反之中國移動手機用戶可以通過網關與使用SIP協議的終端建立消息互通。
2 即時消息網關的設計
  即時消息網關用于在客戶端與業務平臺之間進行協議映射和互通[2], 以實現客戶端用戶使用即時 消息業務。下面分別從網關體系結構設計和業務信令流程方面進行介紹。
2.1 網關體系結構
  業務平臺是整合了即時消息、按鍵通話 、短信以及語音等多種通信方式的業務平臺, 目的是將多種通信類業務整合于統一的用戶界面中, 方便用戶使用。業務平臺支持多種終端, 其中包括客戶端。
  網關系統在整體架構上可劃分為協議接口層、業務邏輯層、數據持久層, 包括CMPP IM接口、SIP互聯接口、CMPP會話控制模塊、協議適配模塊、數據訪問接口模塊以及數據庫[3], 如圖1所示。下面對網關的各個組成部分做一一說明。
(1)CMPP IM接口模塊通過CMPP協議與手機客戶端進行消息交互。CMPP接口分為數據通道及通信初始化請求通道, 數據通道用于客戶端與服務器之間傳輸消息, 通信初始化請求通道用于服務器通知客戶端啟動一個消息傳輸過程[3]。
(2)SIP互聯接口模塊負責與業務平臺進行消息交互[3], 使用SIP協議, 并根據業務特點進行部分擴展。
(3)CMPP會話控制模塊負責控制會話, 包括配合業務平臺完成客戶端的注冊及認證分別與客戶端和業務平臺建立會話, 并維護兩個會話之間的綁定關系, 包括心跳監控及超時處理;調用協議適配模塊將客戶端業務請求轉換為SIP請求, 并通過接口層轉發至業務平臺;調用協議適配模塊將SIP應答轉換為手機客戶端業務應答, 并通過接口層轉發至手機客戶端。
(4)協議適配模塊負責CMPP接口協議與SIP協議之間的雙向適配。
(5)數據訪問接口模塊采用數據庫連接池及關系對象映射技術, 負責和數據庫建立連接以及進行各項數據庫的操作[3]。
(6)數據庫主要用于保存CMPP系統配置參數、運行日志、用戶業務操作日志及系統管理維護數據, 而用戶有關數據由業務平臺統一管理。
2.2 典型信令流程
  "發送即時消息"是即時消息系統中最核心的功能, 下面以它為例介紹網關中的信令交互流程。
圖2為SIP客戶端向手機客戶端發送即時消息的流程[4]。在SIP協議的定義中, 如果對方用戶在線, 則發送即時消息之前需要通過INVITE請求建立連接;而CMPP協議中客戶端接收消息直接通過"Submit"消息, 所以由網關處理業務平臺發過來的INVITE請求即可[5]。這樣, 當手機客戶端退出系統時, 同樣需要由網關代替用戶向業務平臺主動發送BYE, 用來終結此用戶尚未結束的會話。
  為簡化流程并使其更具典型性, 這里假設手機和SIP客戶端都已經成功登錄, 且雙方之間能夠互發消息(即沒有被對方列入黑名單);在結束時, 假定手機客戶端先退出系統。
詳細流程說明如下:
(1)--(2)SIP客戶端發送INVITE, 邀請手機客戶端參與會話;
(3)--(4)網關回送200 OK, 標識邀請的手機客戶端接收邀請;
(5)--(6)SIP客戶端返回對INVITE的最終確認ACK;

發送即時消息信令流程

 

 

 

 

 

 

 

 

 

 

 

               圖2 發送即時消息信令流程

(7)SIP客戶端通過MESSAGE請求發送即時消息給手機客戶端;
(8)業務平臺將MESSAGE請求轉發給網關;
(9)--(10)網關回送200 OK;
(11)網關進行協議轉換后, 通過CMPP中的"Submit"將消息發送給手機客戶端;
(12)客戶端回送相應的"Submit_Resp"消息, 確認接收消息;
(13)手機客戶端通過"Terminate" 消息請求退出登錄;
(14)網關回送Status消息;
(15)--(16)網關在向測試環境注銷此手機用戶之前,先發送BYE請求結束剛才的會話;
(17)--(18)SIP客戶端為BYE請求回送200 OK。
(19)網關發送REGISTER請求給業務平臺,注銷此手機用戶;
(20)業務平臺回送200 OK。
從上述流程可以看出, 網關不僅要對CMPP和SIP之間的消息進行轉換映射, 對于SIP中存在但CMPP無法支持的消息, 網關還要在收到消息后自動回送相關應答, 以匹配SIP中的消息模式。
手機客戶端給SIP客戶端發送即時消息的業務流程相對簡單, 網關無需利用INVITE建立會話和維持會話,這里不再累述。
3 CMPP與SIP協議間映射的關鍵問題
  CMPP協議與SIP協議的映射包括:消息類型映射, 用戶標識的映射, 消息模式映射, 以及事務標識映射等。在映射過程中必須注意到, 不是所有CMPP協議的消息都能一一對應到SIP協議的消息。下面給出對上述幾個關鍵問題的分析。
3.1消息類型映射
  CMPP協議中用信息單元"Message-Type"來標識消息類型, SIP協議用請求行的方法名來標識消息類型;如果方法名為"SUBSCRIBE"或"NOTIFY",還需要通過消息頭域"EVENT"來進一步區別標識。表1描述了CMPP協議與SIP協議在消息類型上的映射。

 

CMPP

SIP

登錄
發送即時消息
退出登錄

Connect
SendMessageRequest
Terminate

REGISTER(expires>0)
INVITE ?MESSAGE
REGISTER(expires=0)

表1 CMPP 與SIP之間的消息類型映射

3.2用戶標識映射
  SIP協議中使用用戶標識主要有三處:From頭域、To頭域和消息體中[4]。網關在完成用戶地址的映射時, 根據SIP協議的要求, From頭域中只要填寫User-ID, 而To頭域和消息體中的用戶地址還需要把Schema轉換為"SIP" 。同時,SIP中的用戶標識可帶有一個標識用戶所屬域的p參數, 它的值為用戶所在的邏輯區域的ID, 這個值對于客戶端是透明的, 網關只需要根據業務平臺返回的值加上p參數即可。
3.3消息模式映射
  從圖2中可以看到, CMPP協議和SIP協議在消息模式上無法一一對應。所以網關要消除模式上差異并維護相關資源。比如, 由于CMPP協議中沒有SIP的"Dialog"的概念, 這樣在進行映射時, 網關需要為每個客戶端用戶維護Dialog相關資源, 在CMPP客戶端用戶退出系統時, 網關還需要顯式釋放資源并向業務平臺發送消息以結束此用戶相關的會話。而對于CMPP協議中無法匹配的SIP消息, 網關直接回送業務平臺200 OK。這樣分別符合CMPP協議和SIP協議中的消息模式。
3.4事務標識映射
  一個事務通常包括一個請求(Request)消息和一個響應(Response)消息。CONNECTION是CMPP協議中的事務標識,由事務的發起實體分配, 而事務的響應實體在響應消息中返回相應的標識。在SIP中, 標識一個事務要通過Call-ID頭域和Cseq頭域來共同完成。CMPP的所有請求消息對應到SIP中的請求消息可以分為會話(Dialog)內消息和非會話內消息。對于非會話內消息, 比如SIP中的MESSAGE、INFO等消息產生的事務, 只需通過Call-ID的不同來標識;而對于會話內消息, 比如INVITE、SUBSCRIBE消息, 在一個會話內的所有消息共享一個Call-ID,這時所有請求消息中的Cseq頭域的序列號依次從"1"開始遞增, 用以區分同一個會話內的不同請求消息。而在一個事務中, 應答消息和請求消息的Call-ID和Cseq取值相同。
4 方案總結
  本方案實現了CMPP協議與SIP協議間的轉換?傮w來說, 協議的轉換保留了即時消息中最重要的功能, 盡量消除協議差異, 并充分考慮到流程的簡化和運行效率,在擴展性方面, SIP協議具有很大的優點,本方案中各模塊之間的松耦合設計很好地支持了協議的擴展, 通過適當修改"協議適配模塊"和"互聯接口模塊",可以實現網關的升級。
  但是, 由于兩個協議本身的差別, 部分功能也會有所損失, 例如CMPP中支持"發送狀態報告"用來顯示消息接收方的消息接收情況, 但SIP沒有相關消息可以支持, 這種差別無法通過優化網關設計來避免。
5 結束語
  本文闡述了即時消息的特點,結合CMPP協議和SIP協議, 提出了即時消息網關的體系結構以及信令流程, 并對協議映射中的關鍵問題進行了分析。當前, 即時消息業務的迅速發展引起了各運營商的廣泛關注, 可與此同時相關協議并不統一且互通工作進展緩慢。CMPP與SIP協議的互通給增值業務的發展帶來一定的動力,本文提出的即時消息網關為實現CMPP與SIP協議的映射轉換具有重要的現實意義。

參考文獻
[1] M.Day,et al,A Model for Presence and Instant Messaging,RFC2778,IETF,Feb,2002.
[2]夏寅賁,張大偉.短消息網關系統結構設計分析[J].電信科學,2002.
[3]中國移動通信集團公司綜合即時通信接口規范-基本信令消息V2.0,2006.
[4]Gonzalo Camarillo著,白建軍等譯.SIP揭密[M].北京:人民郵電出版社,2003.
[5]中華人民共和國信息產業部.YD/T 1291-2003.點對點短消息網間互通協議要求.2003.

作者簡介:
金純:(1966- ) 男,籍貫重慶,美國伊利諾伊大學計算機專業博士,重慶郵電大學教授,碩士研究生導師,研究方向:通信網。
湯芳劍:(1985- )男,籍貫江西,重慶郵電大學通信與信息系統專業碩士研究生,研究方向個人通信。

 
 
上一頁:IEEE802.11P:車載環境下的無線局域網
下一頁:基于SIP和TVPP的短信網關的研究和實現
试玩赚钱体现用电话吗 pk10高手全天计 规律三中三独平公式 湖南幸运赛车电视走势图 三连肖中2肖赔多少 闲来长沙麻将下载链接 股票每天开盘时间 网上赚钱平台大全 大众麻将四人麻将免费下载 广州发展股票行情 互联网能赚钱的项目