本 研 究 主 要 是 開 發 一 個 建 置 在 Java[1] 平 台 上 的 會 議 起 始 協 定
(Session Initiation Protocol, SIP)[2]網路軟體電話服務。我們採用 jSIP[3]
所架構的應用程式界面(Application Program Interface, API)來開發使用 者代理人(User Agent, UA)應用程式。該網路電話可以被成功地整合到 國家電信計劃的平台上。
1.1. 研究背景與動機
在視訊會議技術還未成熟以前,一般人只能透過公共交換電話網路
(Public Switched Telephone Network, PSTN)來進行彼此的聲音交換,一 直到視訊會議技術的興起後,使得人與人之間的溝通不僅可以透過 PSTN,也能透過Internet來達成。傳統的視訊會議應用程式在進行影音傳 輸 前 , 是 採 用 由 國 際 電 信 聯 盟 的 電 信 標 準 化 部 門 ( International Telecommunication Union-Telecommunication Standardization Sector, ITU-T)所提出的H.323[4]訊務(Signaling)協定。H.323是用於規劃網路 上有關於多媒體會議的電腦、設備及服務的標準,透過協商(Negotiation)
各個客戶端傳輸能力的方式,藉以讓各個用戶端採用一致的影音傳輸模 式。由於H.323是最早用來處理多媒體會議的協定,因此大多數的多媒體
應用程式仍然是採用H.323來進行訊務的處理,但是礙於H.323的運作方 式,造成H.323在使用上有一些問題存在,如採用H.323的用戶端在進行 訊務以及視訊會議的資料傳輸互動時,必須透過伺服器來進行協調處 理,因此不僅會造成在H.323的平台上會有使用人數的限制,也會因為使 用者在地理位置分佈距離長短的不同而產生問題。H.323也不支援多點傳 送(Multicast),如果要進行多點會議,就必須要另外架設支援多點傳送 的伺服器。H.323是一個非常嚴謹的的訊務協定,因此該協定在設計上十 分嚴謹而缺乏彈性,不易進行功能擴充以及修改,一般的企業如果要踏 入這個領域,就必須要先瞭解有關於該協定的大量相關文件才能再進行 研究開發。
相較之下,由網際網路工程任務小組(Internet Engineering Task Force, IETF)的多媒體訊務控制工作小組(Multiparty Multimedia SessIon Control Working Group, MMUSIC WG)所提出的SIP訊務協定,在功能的規劃上 就較為簡易,使得企業跨足到該領域的門檻相對變低。SIP是一個應用層
(Application Layer)控制的訊務協定,基本的功能即為用來建立、修改、
終止通話連線。這些通話的項目包含了網際網路上的多媒體會議、網路 電話呼叫(Call)等相關內容。使用者可以透過單點、多點或是兩者的結 合來進行會議。使用者在使用SIP進行訊務時,可以透過IP進行直接點對 點的訊務交換或是透過SIP相關的伺服器來進行訊務處理。當訊務的協商
完成而轉為處理即時的影音傳輸時,便採用點對點的方式來處理雙方的 影音資料交換,這樣的作法使得SIP不會造成伺服器額外的負擔。SIP的 設計是與傳輸層獨立,因此在功能修改以及提供額延伸的能力上會較 H.323有彈性。
雖然目前已經有非常多的SIP softphone或hardphone被開發出來,但是 大多都是由C/C++語言所設計,如果要在不同的作業平台上使用,還要考 慮到移植性的問題。因此,本研究就在移植性最佳的Java平台上開發一個 SIP的電話服務應用程式,簡稱為SIPUA,利用Java的跨平台能力,使該 應用程式於開發完成後也能在各個平台上執行。
1.2. 研究目的
在早期,有關於多媒體即時影音的訊務處理都是採用H.323來進行,
雖然協定較為複雜,但仍為大多數人所採用。因為過於嚴謹的設計,間 接的造成功能擴充、修改困難度增加等問題。此外,也因為H.323運作上 比較複雜,要將H.323應用在PSTN的電話服務,其中要考慮到的層面非 常廣。有鑒於此,本研究根據IETF所提出的SIP來作為多媒體即時影音的 訊務處理協定,來開發一套具有平台移植性的SIP電話服務應用程式,該 應用程式包含SIP中的UA網路元件基本功能。基於以上的需求,我們使 用Java來進行程式開發。另外因為考慮到SIP底層有關於訊息處理的各項
步驟是非常煩雜的,所以在開發程式期間就採用了jSIP API,透過已經定 義好的類別與方法,來減少程式設計的複雜性。未來預期能夠提供一些 參考依據給欲跨足至該領域的開發或是研究人員。
1.3. 研究步驟
本研究之研究步驟如圖1-1所示,首先透過蒐集SIP以及SDP(Session Description Protocol)相關規格書,藉以瞭解協定的運作模式,待資料整 理完成並觀念釐清後,即開始進行系統開發。系統開發時,是利用jSIP 所提供的元件來逐步增加系統的各項功能。由於jSIP並不是一個發展成熟 的API,因此每當系統的部份功能完成後,會立即進行系統測試並且將執 行時所遭遇的問題記錄下來,之後再針對問題加以解析以找出合適的解 決辨法,藉由此種開發方式,以建置一個能正確執行SIP訊務的電話服務 應用程式。
資料整理
SIP相關規格書蒐集 SDP相關規格書蒐集
系統開發與測試
研究報告與建議 問題記錄與解決方法
圖 1-1 研究步驟
1.4. 論文架構
在本論文架構的安排上,首先會在第2章介紹關於SIP及SDP等協定在 規格述敍中需要注意到的相關內容。第3章介紹SIPUA的開發環境,尤其 是在處理訊務的jSIP套件,在這個章節會有較詳盡的說明。第4章介紹開 發SIPUA的模組架構,並一一地對各個模組的功能及運作進行解說。在 第5章中,會對SIPUA在各項狀況下,進行其訊務交換的時間記錄,以及 SIPUA與其它UA在進行訊務處理的時間比較。第6章為本論文的結論。