SIMPLE 有 Simple 嗎?

今天看到一個沒見過的 spec. 叫做 SIMPLE (Session Initiation Protocol for Instant Messaging and Presence Leveraging Extensions), 名字真是隨人取的啊!那麼它真的簡單嗎?

首先來解析 IM (Instant Message),  大家可能天天都在用的 MSN, QQ, Yahoo Messenger, Skype, ICQ 都是 IM. 這個即使不懂原理也知道它是什麼.

再來是 SIP (Session Initiation Protocol), SIP 和比較早的 H.323 一樣, 都是 VoIP 最主要的信令協議 (signaling protocol). 什麼是信令呢?舉例來說, 打電話時, 連接到局端就是透過信令, 接通電話是信令, 掛斷電話也是信令. 它是一些控制訊號的組合.

SIP 的特色原來是希望簡單, 所以雖然模仿 SS7 實現了許多撥號, 發話, 振鈴,…的功能, 但是只支持點對點的通訊.

說到 SS7, 不由得又回想起 15 年前讀博士班的時候, 我們在 CTI 這門課的 team project 實作了一個電話訪問程式. 它會透過電腦 + 一張卡自動播號到竹軒 (交大女生宿舍)做電話訪問. 同學搞笑說十題裡面一定要問有沒有男朋友, 結果女生幾乎都有回答這一題, 讓大家很有成就感!

Presence 顧名思義就是 "存在". SIMPLE 不只是包括 IM, 它還管對方是否存在?例如 MSN 中, 我們可以看到對方 "離開", 也可以看到對方有視訊或是麥克風設備的存在, 這些都統包在 presence 一詞當中.

那 LE 呢?我私下認為那是用來湊數的. 不然只能叫做 SIMP 不是有點遜嗎?當然是得拼個常用的單字囉! 比方說我要開個 "退職螃蟹聯誼會", 我也會取個 REtired CRabs U and I Together 之類的嘛!

[REF]

1. SIMPLE

2. 會話發起協議

3. 即時通訊

4. SS7

SIP 小檔案

SIP 是指 Session Initiation Protocol, 規格可以從 RFC 3261 查到. 它是 application layer 的 protocol, 位在 OSI [ref 2] 的最上層, 需要建立在底層的 protocol (TCP / UDP) 才能運作.

另一方面, SIP 又只管通訊的建立, 實際上還要再搭配 RTP (Real-time Transport Protocol; RFC 1889)、RTSP(Real-Time Straming Protocol;RFC 2326 等通訊協定. [ref 1]

SIP 的功能包括下面五件事: [ref 1]

(1) User location:透過系統可以確認目前使用者的終端設備位置,以便邀請使用者加入多媒體會議或者是與使用者建立連線。可以想像類似目前手機定位功能。

(2) User availability:決定使用者是否有權限可以加入特定多媒體會議或族群。

(3) User capabilites:決定使用時的媒體型態與媒體參數。

(4) Session setup:建立呼叫端與被呼叫端之間的多媒體連線與連線參數設定功能。

(5) Session management:包含資料傳輸與結束連線、修改連線參數與服務要求等相關功能。

至於 SIP 的指令有六個: [ref 3]

SIP 標準中定義的六種方法
方法 說明
INVITE 初始化
ACK 初始化確定
BYE 要求會議終止
OPTION 功能查詢
CANCEL 取消
REGISTER 提供 location server 使用者位置

因為 user 的位置可能不固定, 所以在查詢對方位置時 (可能透過 proxy), 必須去定位伺服器 (location server) 詢問對方的 URL.

在 [ref 3] 的表 4.2 有一個超讚的 SIP 與 H.323 比較表, 由它可以得知, 雖然 SIP 只負責建立連線, 但是具有簡單, 模組化, 與網路相容, 即時等優點, 所以在 video conference 的規格競賽中, 有日漸重要的趨勢.

[ref]

1.  http://justblogger.pixnet.net/blog/post/387757

2. OSI model

      from http://www.tomax7.com/aplus/osi_model.htm

3. http://eshare.stut.edu.tw/Etd/2005_3/etd-0407109-183704-224-001.pdf (日文, 圖表是中文)