Session_Initiation_Protocol

**對話啟動協定**（Session Initiation Protocol，縮寫 **SIP**）是一個由 IETF MMUSIC 工作群組開發的協定，作為標準被提議用於建立，修改和終止包括影片，語音，即時通訊，線上遊戲和虛擬實境等多種多媒體元素在內的互動式使用者對談。2000 年 11 月，SIP 被正式批准成為 3GPP 訊號協定之一，並成為 IMS 體系結構的一個永久單元。SIP 與 H.323 一樣，是用於 VoIP 最主要的信令協定之一。

## 協定設計

SIP 最早由 Henning Schulzrinne 和 Mark Handley 於 1996 年所設計. SIP 的設計目標之一是提供類似公用交換電話網（PSTN）中呼叫處理功能的擴充集。在這個擴充集中，實現類似日常電話的操作：撥號，振鈴，回鈴音或者忙音，只是實現方式和術語有所不同。

SIP 也實現了許多七號信令系統（SS7）中更進階的呼叫處理功能，儘管這兩個協定相差很遠。**SS7 是一個高度集中處理的協定**，其特點表現為高複雜度的中心網路結構和無智慧型的啞終端（傳統的電話機）。**SIP 則是一個對等協定**，所以它只需要一個相對簡單的（因此也高度可延伸的）核心網路，而將處理工作下放給連接在網路邊緣的智慧型端點（裝有硬體或軟體的終端裝置）。SIP 的許多功能在端點中實現，這與傳統的 SS7 將其在網路核心裝置實現的作法大異其趣。

儘管有許多其它的 VoIP 訊號協定存在，SIP 的特點在於它的支持者植根於 IP 團體而不是電信產業。SIP 最初由 IETF 標準化和管理，而 H.323VoIP 協定則從傳統上與 ITU 有著更多的聯絡。儘管如此，這兩個組織對兩個協定在某些方面都相互認可。

SIP 與許多其它的協定協同工作，僅僅涉及通訊對談的信令部分（control message）。SIP 報文內容傳送對談描述協定（SDP），SDP 協定描述了對談所使用串流媒體細節，如：使用哪個 IP 埠，採用哪種編解碼器等等。SIP 的一個典型用途是：SIP「對談」傳輸一些簡單的經過封包的即時傳輸協定流。RTP 本身才是語音或影片的載體。

第一個被提議的標準版本（SIP 2.0）在 RFC 2543 中定義。在 RFC 3261 中對這個協定有更深入的解釋，儘管目前許多裝置仍然是參考以前的過渡版本而實現的。注意現在的版本還是 2.0。

SIP 同 HTTP 相似並採用了後者的一些設計原則：SIP 報文是人類可讀的，並且也是採取請求 - 應答的流程。SIP 的倡導者宣稱它比 H.323 簡單。但是，有些人則保留地認為儘管 SIP 的原始目標很簡單，現在它已經演變得跟 H.323 一樣複雜了。SIP 借用了許多 HTTP 狀態碼，如常見的 '404 not found'。SIP 的發起者說：曾經在網路上出現的急速革新和應用發展的歷史將同樣發生在電話產業上。SIP 和 H.323 對語音通訊毫無限制，能夠傳輸從語音到影片的任何通訊對談，甚至未來還沒有設想的應用。

## SIP 網路單元

### 使用者代理（User Agent）

SIP 使用者代理是一個 SIP 邏輯網路端點，用於建立、傳送、接收 SIP 訊息並管理一個 SIP 對談。SIP 使用者代理又可分為使用者代理客戶端 UAC（User Agent Client）和使用者代理伺服器端 UAS（User Agent Server）。UAC 建立並行送 SIP 請求，UAS 接收處理 SIP 請求，傳送 SIP 回應。

### 代理伺服器（Proxy）

SIP 代理伺服器（PROXY）在網路上位於 SIP UAC 和 UAS 之間，用於幫助 UAC 和 UAS 間的訊息路由。PROXY 也可以執行路由策略控制（比如，檢查 SIP 訊息的合法性，確認訊息是否被路由允許）。PROXY 在轉發 SIP 訊息時，可能根據需要修改 SIP 訊息的某些部分。

### 註冊伺服器（Register）

SIP 註冊伺服器用於接收 SIP 註冊請求，並儲存傳送註冊請求的 UA 的位置資訊。

## SIP 網路部件

擁有傳統的電話機外表，觸感和形狀的硬體，但使用 SIP 和 RTP 通訊的終端和裝置，已經有多家廠商可以供貨。這些產品中有些可以通過電子配號（ENUM）來把現存的電話號碼翻譯成使用 DNS 的 SIP 位址，所以即使你的服務商運營的網路還只是為傳統電話號碼服務的 PSTN（並且對你收費），你也可以通過這些電話網路呼叫其它的 SIP 使用者。

現在，軟體 SIP 終端已經非常常見。微軟公司的 Windows Messenger 使用了 SIP。2003 年 6 月，蘋果電腦宣布並向公眾發布了測試版的 iChat AV，一個新版的相容 AOL Instant Messenger 並支援通過 SIP 進行音影片聊天的客戶端。

SIP 要想成為實用的服務同樣需要代理和註冊網路部件。儘管兩個 SIP 終端可以不藉由任何 SIP 基礎設施的支援來進行通訊（這也是為什麼 SIP 被稱為對等的協定），但是這種方式是不適於實際的公共服務。現在已經有了很多公司提供軟交換系統（如 Nortel，Sonus 等許多公司）。其他的一些以 Ubiquity Software 和 Dynamicsoft 為首的公司已經實現了一些基於被提議的標準，建立在 JavaJAIN 規範上的產品。

來自 RFC：

　
: "SIP 使用**代理伺服器（Proxy server）** 的部件來協助轉發信令報文到目標使用者目前網路位置，提供使用者認證和授權服務，實現服務提供商的呼叫路由策略，和提供給使用者各種附加功能。"

　
: "SIP 同樣提供了註冊功能以允許使用者上傳他們目前的聯網位置供代理伺服器使用。"

　
: " 因為註冊動作在 SIP 協定中扮演重要的角色，掌控使用者註冊資訊的 [使用者代理伺服器] 有一個特殊的名字**註冊伺服器（registrar）** 。"

　
: "有一個重要的概念，那就是各種 SIP 伺服器之間的區別是邏輯上的，而不是物理上的。"

## 即時訊息（IM）和 Presence

一個基於 SIP 標準針對及時資訊的擴充，被稱為 SIMPLE 已經被提議並正在開發中。SIMPLE 可以傳遞 Presence 資訊：被叫使用者是否有意願加入對話？使用終端是否有能力加入對話？。Presence 資訊的角色如同 MSN Messenger 和 AIM、等 IM 客戶端中已普遍實現的好友狀態功能。

已經有人在努力把基於 SIP 的 VoIP 和 Jabber 使用的 XMPPpresence 規範整合在一起。最著名的是將 XMPP 擴充到整合語音的 Google Talk，它計劃整合 SIP。Gizmo 工程，曾經實現了 SIP，現在已經在他們的客戶端和服務中加入了 XMPP。

## 商業應用

用於搭載媒體流的即時傳輸協定（RTP）並不能簡單的穿越 NAT 路由器。大部分 SIP 客戶端可以通過 STUN 的協助穿越完全圓錐形和埠限制圓錐形 NAT 但對於對稱的（symmetric）NAT 還是有問題。
一些較新的帶 ALG 功能的路由器，現在可以辨識 SIP 通訊並讓其通過。RTP 代理伺服器，一種在上世紀九十年代普遍使用的類似於 HTTP 代理伺服器的專用於 SIP 的線速處理器，可以啟用 CALEA 並穿越老式的無法辨識 SIP 的 NAT 裝置。

正如它的發明者所預見的，SIP 的對等特性無法使用一些網路本身提供的服務。例如，網路不能很容易的支援合法的呼叫偵聽（在美國由法律控制的竊聽，CALEA）。緊急呼叫（在美國呼叫 E911）難以路由。因為 IP 終端本身具有行動性，網路並沒有任何定位的能力，要確定正確的公共服務應答點 PSAP 很困難。然而，當商業 SIP 服務商們正準備放棄時，一些實用的解決方案卻在進行試驗。由 3GPP 和 3GPP2 等公司開發的標準定義了基本 SIP 模型的一些應用，這些應用推動了商業化並支援了網路中心的能力，如 CALEA。

Vonage 和 SIPphone 等公司是消費 SIP 的先鋒，他們擁有一個快速增長的使用者基礎。一些較大的公司，如 AT&T 和 Level (3) 也不甘示弱。傳統的電信工業（包括朗訊科技和北電網路）現在都在集中開發基於 SIP 架構模型和擴充的系統，如 3GPP 的 IP 多媒體子系統（IMS）。

一些 VoIP 電話公司，如 BroadVoice，允許使用者使用它們自己的 SIP 裝置，包括相容 SIP 的電話機，AsteriskPBX，或者軟電話。新的消費 SIP 裝置市場正在繼續膨脹。

開源團隊開始提供越來越多的建立終端，代理和註冊伺服器所需的技術，既讓這些技術走進了人們的日常生活，又加速了其向全球推廣。SIPfoundry（頁面存檔備份，存於網際網路檔案館）已經開發了多種 SIP 協定疊，客戶端應用程式和 SDK，還有一整套可以與市場上大部分由廠商銷售的 IP PBX 實現相競爭的 IP PBX 解決方案。

## 軟體

* SIP 通訊方案：
  * 3Com SIP PBX - 基於 SIP 的企業級 IP 電話應用套件（頁面存檔備份，存於網際網路檔案館）
  * Asterisk 開源 SIP/IAX PBX（頁面存檔備份，存於網際網路檔案館）
  * Brekeke OnDO PBX（頁面存檔備份，存於網際網路檔案館）
  * Microsoft Office Live Communications Server
  * pbxnsip PBX（頁面存檔備份，存於網際網路檔案館）
  * Rostrvm Switchless - 使用 SIP 的呼叫中心架構（頁面存檔備份，存於網際網路檔案館）
  * sipX - 開源的 SIP PBX（頁面存檔備份，存於網際網路檔案館）（帶商業支援 Pingtel（頁面存檔備份，存於網際網路檔案館）.）
  * FreeSWITCH 開源軟交換解決方案
* SIP 伺服器：
  * Micromethod SIPMethod Platform
  * Ubiquity SIP 應用伺服器
  * 3Com VCX IP 電話模組：背靠背使用者代理 SIP PBX（頁面存檔備份，存於網際網路檔案館）
  * BEA WebLogic SIP 伺服器（頁面存檔備份，存於網際網路檔案館）
  * Brekeke OnDO SIP 伺服器（頁面存檔備份，存於網際網路檔案館），適用於 Windows，Linux，和 Mac OS X。用於個人和教育用途免費。
  * Cisco SIP 代理伺服器（頁面存檔備份，存於網際網路檔案館）
  * Nortel SIP 多媒體通訊伺服器 5200
  * IPTel.org 免費軟體 SIP Express Router 路由器 [1]
  * Pingtel Call Manager（基於 SIP Foundry 開源）
  * FreeSWITCH 開源軟交換平台（頁面存檔備份，存於網際網路檔案館）
* SIP 客戶端：
  * ekiga（頁面存檔備份，存於網際網路檔案館）: Ekiga 是全功能的 SIP 和 H.323 相容的 VoIP、IP 電話和影片會議應用程式，它允許您與遠端使用者通過使用 SIP 和 H.323 硬體或軟體進行音訊及影片通話。
  * GNOME Meeting: H323 和 SIP 客戶端（目前版本 1.3-opal）for GNU/Linux。
  * Gizmo Project: SIPphone.com 提供，適用於 Mac OS X，Windows 和 Linux。
  * sipXphone - 一個適用於 Windows 和 Linux 的 SIP 客戶端（頁面存檔備份，存於網際網路檔案館）
  * PhoneGaim SIP 免費軟體，基於 Gaim。
  * X-Lite 一個流行的 Windows 和 Linux 軟電話，可以完全免費使用。
  * eyeBeam 與 X-Lite 出自於同一家公司，功能更為強大，需要付費使用。
  * KCall 一個使用 Qt 庫的 Linux 軟電話。
  * KPhone 一個使用 Qt 庫的 Linux 軟電話。
  * Linphone 一個使用 GTK 庫的 Linux 軟電話。
  * Pingtel SIP soft phone（單使用者版，企業版和用於嵌入式的 OEM 版。OEM 版嵌入到 Earthlink Vling 服務中。）
  * SJPhone（頁面存檔備份，存於網際網路檔案館）一個免費的 SIP 客戶端，可以執行在 Mac OS X，Windows，PocketPC 和 Linux 上。
  * Jajah 一個免費的 Softphone，執行在 Windows 上，Mac OS X 和 Linux 版本稍後推出。
  * OpenWengo 一個開源的 SIP 客戶端，執行在 Windows 和 Linux 上。Mac OS X 和 PocketPC 版本稍後推出。
  * SFLPhone 一個開源的 SIP 客戶端。
  * ZAP 一個開源的，基於 XUL 的 SIP 客戶端。
* SIP 測試工具：
  * SFTF（頁面存檔備份，存於網際網路檔案館）: SIP 論壇使用者代理測試框架（開源；由 SIP 論壇編寫）。
  * SIPp（頁面存檔備份，存於網際網路檔案館）: 一個開源的 SIP 測試工具（用於功能和效能測試）。
  * Sipsak: sipsak 是一個命令列工具，它能夠傳送簡單的請求到 SIP 伺服器（開源）。
  * 頻寬 VoIP 測試：Bandwidth.com 提供了一個可以測試網路上 SIP 埠的工具。
* SIP 協定疊：
  * ReSIProcate（頁面存檔備份，存於網際網路檔案館）: 開源 SIP 協定疊。
  * OPAL（頁面存檔備份，存於網際網路檔案館）: 開源的 sip 協定疊，同時支援 H323 和 sip
  * VOCAL（頁面存檔備份，存於網際網路檔案館）開源 SIP 協定疊
  * osip（頁面存檔備份，存於網際網路檔案館）開源 SIP 協定疊
  * sipx （頁面存檔備份，存於網際網路檔案館）開源 SIP 協定疊
  * Sofia-SIP（頁面存檔備份，存於網際網路檔案館）一個小巧開源的 SIP 協定疊（RFC3261），支援 WIN32 平台

6 種 SIP 協定疊各有千秋，OPAL 有發展潛力，VOCAL 比較完善，sipX 相容性好，ReSIProcate 比較穩定，oSIP 小巧而快速，Sofia-SIP 簡短、組件化到位。

## 參見

* Earthlink SIPshare
* Media Gateway Control Protocol（MGCP）
* IP 多媒體子系統

## 外部連結

* SIP 資訊（頁面存檔備份，存於網際網路檔案館）
* ONsip.org –致力於基於 SIP 的 VoIP 解決方案的開源團體。
* Henning Schulzrinne 合著者的 SIP 標準協定疊的頁面。（頁面存檔備份，存於網際網路檔案館）
* SIP 論壇（頁面存檔備份，存於網際網路檔案館）
* 3NG
* Packetizer 的 SIP 資訊站點（頁面存檔備份，存於網際網路檔案館）
* 匯思通訊 SIP 論壇（中文簡體版）[_永久失效連結_]（頁面存檔備份，存於網際網路檔案館）