• 沒有找到結果。

以SIP為基礎之多定點網路電話系統

N/A
N/A
Protected

Academic year: 2021

Share "以SIP為基礎之多定點網路電話系統"

Copied!
55
0
0

加載中.... (立即查看全文)

全文

(1)國立高雄大學 電機工程學系 研究所 碩士論文. 以 SIP 為基礎之多定點網路電話系統 SIP Based VoIP System for MultiLocation Application. 研究生:蔡宗榮 撰 指導教授:吳國棟 博士.

(2) ii.

(3) 以 SIP 為基礎之多定點網路電話系統. 指導教授:吳國棟 博士 國立高雄大學電機工程系研究所. 學生:蔡宗榮 國立高雄大學電機工程學系研究所. 摘要 在 NCC(National Communication Commission)與國內電信業者的推動之下, 讓中小企業與一般家庭也能夠享受到網路電話所帶來的好處。由於許多企業為降 低生產成本與顧慮到專業分工等問題,在台灣多數企業皆採取生產部門設置於中 國大陸,而總公司與客戶服務部門設立於台灣。因此以多定點的方式建置網路電 話系統,通常為國內企業使用的主要模式之一。 然而在中小企業的應用模式中,IPPBX 的數量是相當大的,因此如何使得數 量如此大的 IPPBX 一起運作與通訊,是一般企業在應用 IPPBX 時一項重要的議 題,雖然有 IAX2 與 SIP Proxy 等方法可以管理與連接大量的 IPPBX,但是這些 方法都有其缺陷,例如設定上的手續繁雜、通訊可靠度低、擴充性不佳、後續維 護困難等缺點。根據上述的缺點,本文提出的多定點的網路電話系統,採取完全 分散式的架構,並且搭配通話路由查詢的功能,可以隨時調用群組內 IPPBX 的 路由資源,在有需求時才發出請求,不僅僅可以節省網路資源亦可達到跨越 IPPBX 通訊的需求。. 關鍵字:網路電話系統、通話路由、叢集式架構. i.

(4) SIP Based VoIP System for MultiLocation Application. Advisor: Dr. Kou-Tan Wu Institute of Electrical Engineering National University of Kaohsiung. Student: Tsung-Jung Tsai Institute of Electrical Engineering National University of Kaohsiung. ABSTRACT Owing to NCC (National Communication Commission) with under the ITSPs (Internet Telephony Service Providers) gave fresh impetus to the VoIP. Nowadays more and more people and enterprises have the benefit of VoIP. Many business companies are established in different locations. These companies require the reduction of costs and labor in order to run branch offices in lots of areas. Therefore the first scenario of enterprise’s applications is VoIP system for Multi-Location application. However there are some issues in the scenarios of enterprise’s applications. Causing the numerous of users, the number of IPPBX is very large. In this numerous IPPBX, how to let them work together and how to setup and management are a very impartment issues. Although there are some solutions to solve these issues, but there will be induced some defects. Such as the complex setup way, the insufficient for system reliability and scalability and maintains. According to these issues, we propose a VoIP system for Multi-Location application in this paper. We use it to solve the ii.

(5) problems of scalability and reliability by modify the system architecture to fully distributed. We also are using the call routing discovery functions to accomplish the communication across IPPBX. Keywords:VoIP, Call Routing, Cluster.. iii.

(6) 致謝 本論文得以順利完成,首先要感謝我的指導教授吳國棟博士與高典良博士, 在學業上,兩位博士對我循循善誘,並且指引我正確的方向與做研究的正確態度, 使我在浩瀚無垠的研究領域中有了兩盞明燈,兩位博士在這兩年之中對我的用心 栽培與耐心的指導,我會牢記在心,學生在這此向兩位老師致敬。 緊接著要感謝在這兩年之中陪伴我的學長們:李敬文、王一成、黃崑益、許 良維、卓育旗。感謝你們對我的寬容、指導與幫忙讓我可以快速的融入實驗室的 環境。也感謝我的同學:黃興文,帄時有你的陪伴與相互扶持使得我有毅力能夠 堅持到底。感謝我的學弟們:張鈞凱、吳晉亨,感謝你們兩位帄時的陪伴與情義 相挺,使我在學校中的生活處理的相當順遂。在這兩年之中,有了你們這些學長 學弟們的陪伴,使我的生活中有了陽光與溫暖。 最後我要感謝我的家人在我求學生涯中提供給我一個優良的環境,使我不需 要煩心於經濟方面的問題,能夠專心於學業中,並且順利完成學業。你們這幾年 來無怨無悔的付出,希望我以後也能夠這樣子幫助你們。對於一個六年都在異鄉 求學的遊子來說,要感謝的人實在是太多了,我的心中除了感恩還是感恩。. iv.

(7) 目錄 目錄. v. 圖目錄 vi 表目錄 vii 第一章、緒論........................................................................................................... 1 1.1 研究背景 .................................................................................................... 1 1.2 研究動機與目的 ........................................................................................ 2 1.4 論文架構 .................................................................................................... 3 第二章、文獻探討 ................................................................................................... 4 2.1 會議起始協定(Session Initiation Protocol;SIP) ....................................... 4 2.2 會議描述協定(Session Description Protocol;SDP) ................................. 11 2.3 即時傳輸協定(Real-Time Transport Protocol ; RTP) ................................ 12 2.4 Distributed Universal Number Discovery (DUNDi) ................................... 15 2.5 IAX2 運作模式與其產生之議題 .............................................................. 19 2.6 SIP Proxy 運作模式與其產生之議題 ....................................................... 20 第三章、系統架構 ................................................................................................. 22 3.1 設計考量 .................................................................................................. 22 3.2 系統架構 .................................................................................................. 23 3.3 系統運作 .................................................................................................. 24 第四章、研究結果 ................................................................................................. 36 4.1 測詴環境 .................................................................................................. 36 4.2 系統功能測詴 .......................................................................................... 37 4.3 4.4 4.5 4.6. 單一 Asterisk PBX 伺服器下通話建立時間 ............................................ 38 相同信任群組下跨越 Asterisk PBX 伺服器通話建立時間 ..................... 38 不同信任群組下跨越 Asterisk PBX 伺服器通話建立時間 ..................... 39 數據分析 .................................................................................................. 40. 第五章、結論與未來工作 ..................................................................................... 42 5.1 結論.......................................................................................................... 42 5.2 未來工作 .................................................................................................. 43 參考文獻 45. v.

(8) 圖目錄 圖 1、統一資源識別標籤的格式說明 ..................................................................... 7 圖 2、SIP 基本邏輯元件示意圖 .............................................................................. 8 圖 3、即時傳輸協定傳輸示意圖 ........................................................................... 13 圖 4、即時傳輸協定封包結構圖 ........................................................................... 13 圖 5、DUNDi 信任群組關係圖 ............................................................................. 17 圖 6、DUNDi 封包格式 ......................................................................................... 18 圖 7、使用 IAX2 連接 Asterisk PBX ..................................................................... 20 圖 8、SIP Proxy 管理 Asterisk PBX 運作模式 ...................................................... 21 圖 9、系統架構圖 .................................................................................................. 24 圖 10、Asterisk PBX 加入信任群組 ...................................................................... 25 圖 11、使用者註冊流程圖..................................................................................... 26 圖 12、Skype Gateway 架構示意圖 ....................................................................... 27 圖 13、Asterisk PBX 伺服器使用 Zaptel 驅動 Analog Telephony Card 示意圖 .... 27 圖 14、同一 Asterisk PBX 伺服器下 SIP 使用者通訊流程圖 ............................... 28 圖 15、SIP 使用者在同一 Asterisk PBX 伺服器下通訊示意圖 ............................ 29 圖 16、SIP 使用者跨越相同信任群組 Asterisk PBX 伺服器進行通訊流程圖 ..... 30 圖 17、SIP 使用者跨越相同信任群組 Asterisk PBX 伺服器進行通訊示意圖 ..... 30 圖 18、SIP 使用者跨越不同信任群組 Asterisk PBX 伺服器進行通訊流程圖 ..... 32 圖 19、SIP 使用者跨越不同信任群組 Asterisk PBX 伺服器進行通訊示意圖 ..... 32 圖 20、SIP 使用者與 skype 使用者進行通訊流程圖 ............................................ 34 圖 21、SIP 使用者跨與 PSTN 使用者進行通訊流程圖 ........................................ 35 圖 22、SIP 使用者與其它異質語音網路使用者進行通訊示意圖 ........................ 35 圖 23、測詴環境圖 ................................................................................................ 36 圖 24、相同 Asterisk PBX 伺服器下通話建立時間測詴結果 .............................. 38 圖 25、相同信任群組跨越 Asterisk PBX 伺服器下通話建立時間測詴結果 ....... 39 圖 26、不同信任群組跨越 Asterisk PBX 伺服器下通話建立時間測詴結果 ....... 40. vi.

(9) 表目錄 表 1、主要 VoIP 協定特性比較 ............................................................................... 5 表 2、會議初始協定的請求方法 ........................................................................... 10 表 3、會議初始協定回應訊息的分類 ....................................................................11 表 4、會議描述協定的欄位描述 ........................................................................... 12 表 5、常見的有效承載類型................................................................................... 14 表 6、DUNDi 名詞解釋 ......................................................................................... 15 表 7、DUNDi 的訊息 ............................................................................................ 17 表 8、DUNDi 封包內容說明 ................................................................................. 18 表 9、粉紅區塊的 Asterisk PBX 伺服器軟硬體環境 ............................................ 37 表 10、綠色區塊的 Asterisk PBX 伺服器軟硬體環境 .......................................... 37 表 11、藍色區塊的 Asterisk PBX 伺服器軟硬體環境 .......................................... 37 表 15、帄均通話建立時間比較表 ......................................................................... 40 表 16、本系統與 IAX2 與 SIP Proxy 方案比較表................................................. 43. vii.

(10) 第一章、緒論 本章節將簡介本論文的研究背景、研究動機、研究目的、研究方法與論文架 構。 1.1 研究背景 近年來,由於網際網路的頻寬的快速增加,進而帶動了網際網路多媒體服務 (Internet Multimedia Services)的快速發展,其中最為被廣泛使用的莫過於網路電 話(Voice Over Internet Protocol)的服務了。在早期,由於網路服務提供商所提供 的網路頻寬並無法達到網路電話最佳使用頻寬,因而使得網路電話服務被壓抑了 多年,許多企業以及大眾皆無法享受到網路電話所帶來的優勢。然而近年來的寬 頻網路普及與網路電話系統技術的持續發展與精進,已經能夠讓一般中小企業與 普羅大眾享受到網路電話帶來的節省通訊成本、佈線簡單、隨身碼功能以及號碼 的可攜性與一致性等優點。 目前在國內有許多企業或家庭已經開始應用 IPPBX(IP-based Private Branch eXchanges)設備與傳統電話網路介接,其中最主要的目的為透過 IPPBX 可以為使 用者打開通往網路語音網路服務的一條道路。IPPBX 亦可替使用者帶來許多傳統 交換機無法提供的服務,例如隨身碼(Follow me)、通話佇列(Call Queue)、電話 過濾(Call Filter)、通話管理(Dial Plan)、廣播群組(Paging/Intercom) 等功能。IPPBX 亦可提供下車服務、異質語音網路服務等功能,可以達到多樣性的電話節費選 擇。 由於許多企業為降低生產成本與顧慮到專業分工等問題,在台灣多數企業皆 採取生產部門設置於中國大陸,而總公司與客戶服務部門設立於台灣。因此以多 定點的方式建置網路電話系統,通常為國內企業使用的主要模式之一。以國內的 便利商店為例,在一個區域中有 10 家分店,那這 10 家分店各別配置安裝 1 台 IPPBX,分店之間彼此通訊的問題便因此產生,傳統的連接方式為 IAX2,但若 是新增設第 11 台 IPPBX 時,便會產生煩雜的設定問題。雖然也有使用 SIP Proxy. 1.

(11) 為頭端來管控所有 IPPBX 的架構,但是此架構會產生通訊可靠度之議題,此 SIP Proxy 若是不能運作,整體系統也將停擺。 1.2 研究動機與目的 根據 1.1 研究背景所述,利用網路電話技術建置於不同地區之間的通訊系統, 除了可使企業內部之間的通訊成本降低,更可以透過依附在網路電話上的多媒體 服務,例如:網路監控、多媒體視訊會議服務、網路影音串流服務等。這些多媒 體加值服務都是 PSTN(Public Switch Telephony Network)所無法享有的服務內容。 目前已經有許多的企業都開始使用 IPPBX(IP-based Private Branch eXchanges)的 設備與傳統交換機介接,並且使用多元的語音網路,例如:skype、Windows Live Call、Google Talk 等。其最大優勢在於本地端的 VoIP 設備可以透過網際網路連 線至遠端的 VoIP 設備,將本地端的 IPPBX 與其它遠地端的 IPPBX 透過網際網 路連結後,便可以達到內部用戶相互撥打費用免費與提供遠端的用戶 PSTN 線路 做下車使用以提供多樣性的節費方式作為選擇。 目前 IPPBX 之間的連結方式有 IAX2 或是使用一個 SIP Proxy 當作頭端來掌 控所有的 IPPBX。但是由於使用 IAX2 是採取設備之間互相註冊認證等方式來進 行連接,因此設定的手續較為繁雜,若是日後再添購設備時,每一台設備都將再 重新進行設定,此方式通常適用於設備數量較少的環境中。若是設備數量較多, 雖然可以使用 SIP Proxy 做為頭端,連接所有的 IPPBX,但此種架構極具風險, 只要頭端這一段的節點斷線後,將導致整體的網路電話系統癱瘓。IPPBX 通常為 嵌入式系統之設備,所以單一設備能夠同時承載的通話數量與使用人員十分有限, 因此在建置時通常一個企業會配置許多台 IPPBX,將其分配到各個部門之中,供 給各部門做為使用。然而在企業用戶中所常用到的通話經常都是跨越部門之間的 通訊,例如在台北的總公司撥打給台中的分公司。因此如何使各部門的 IPPBX 有良好的連接與方便的管理方式,便是在建置此類型網路電話系統時最重要的考 慮因素之一。. 2.

(12) 為了解決 IPPBX 之間互相溝通的問題,以及 VoIP 設備如何與企業原本舊有 的電話交換機設備做結合,本文提出一個架構來解決以下之問題:(1) 使用 IAX2 連接 IPPBX 所造成的設定複雜問題。(2) 使用 SIP Proxy 連接與管理 IPPBX 所造 成的系統風險的問題。 1.4 論文架構 本論文共分為五個章節,第一章為緒論,簡介本論文的研究背景與動機、目 的。第二章為文獻探討,詳細介紹本論文所使用到的相關規範與技術。第三章為 系統架構,第四章為研究結果,第五章為結論與未來工作。. 3.

(13) 第二章、文獻探討 本章節將探討本論文中所採用的規範協定的內容與架構,包含會議起始協定 (Session Initiation Protocol;SIP)、會談描述協定(Session Description Protocol;SDP)、 即時傳輸協定(Real-time Transport Protocol;RTP)、即時傳輸控制協定(Real-time Transport Control Protocol;RTCP)、DUNDi(Distributed Universal Number Discovery) 與兩種可用於連結 IP PBX 的系統架構,分別是使用 IAX2 與使用 SIP Proxy 做為 頭端的方式。 2.1 會議起始協定(Session Initiation Protocol;SIP) 在 VoIP (Voice over Internet Protocol)中包含有信令控制協定與媒體傳輸協定, 其中信令控制協定包含 H.323、MGCP、SIP 這幾種協定較為成熟,而目前主要 以 IETF (Internet Engineering Task Force)所制定的 SIP 之使用最為廣泛。SIP 最早 係由美國哥倫比亞大學 (Columbia University)的副教授 Henning Schulzrinne 於西 元 1996 年在 IETF 發佈的一份網路草案文件(Internet Draft),有鑑於當時 ITU-T (International Telecommunication Union - Telecommunication Standardization)所規 範的 H.323 標準的第一版本過於複雜,因此希望能夠再制定出一套簡單及容易操 作的信令控制協定。於是制定出第一版的 SIP 規範,但此版本的 SIP 規範其中制 定的語音服務功能相當簡單,對於當今我們使用的一般電話的許多服務功能,例 如保留(Call On Hold)、轉接(Call Transfer)、代接(Call Pickup)等功能並無規範定 義其可用的支援方式,因此為補強語音服務功能的定義 IETF 在 SIP 第二版即為 SIP 2.0 中導入了 RFC 2848,並在西元 2000 年頒布 RFC 2543,緊接著於西元 2001 年再訂定出 RFC 3261。 SIP 中有許多定義參考自 HTTP (Hypertext Transfer Protocol)與 SMTP (Simple Mail Transfer Protocol)等協定設計理念,例如以 HTTP 的文字編碼方式進行協定 的編碼,以及使用 URI (Uniform Resource Identifier)來進行使用者定址,並且定 義建立、修改或終止 SIP 會議所使用的請求方法。. 4.

(14) 因為如此使得 SIP 協定更容易理解與閱讀, SIP 最主要的功能為初始多媒 體會議,而協調雙方在通訊時所需要的資訊,則是藉由 SDP (Session Description Protocol)來描述會議的名稱與目的、會議存活的時間、在會議中的媒體支援能力 資訊、IP 位址及埠號與使用的頻寬等資訊。最後的多媒體訊息傳輸則是透過 RTP、 SRTP、或 RTSP 等即時串流傳輸協定。 表 1、主要 VoIP 協定特性比較 SIP. H.323. MGCP. 擬定組織. IETF. ITU-T. IETF. 管理架構. 分散式. 集中控制. 高度集中控制. 服務架構. P2P. P2P. 主從式. ISDN 及 ATM 等 設計物件. Internet. Gateway 分封交換網路 企業的. 服務商或企業的. LAN/WAN,服務. 服務商的 IP 或. Internet 網路. 商的 IP 或 Internet. Internet 網路. 設計運作環境 網路 QoS. 有. 無. N/A. 複雜度. 低. 高. 中. 擴充能力. 高. 低. 中. 延伸性. 高. 中. 低. SDP 基於文字的. SDP 基於文字的 ASN.1 二進位元. 協定欄位編碼. 語法,類似 HTTP. 語法,類似 HTTP 編碼. 標記語言. 標記語言. e.164 號碼(電話號 e.164 號碼(電話號 e.164 號碼(電話號 資源定位 碼)URI,類似. 碼), IP 位址. 5. 碼).

(15) Email 位址 配合的即時串流 RTP/RTSP/SRTP. RTP/SRTP. RTP/SRTP. 協定 以 ISO (International Standard Organization)所制定的 OSI (Open System Interconnection)模型來說,SIP 運作於第七層,應用層中。主要的目的為提供簡 易的實作設計、優良的彈性與靈活性。其中可同時設定一個或多個會議的建立、 修改與終止。相較於 H.323 與 MGCP 而言,SIP 的語法簡單易懂、靈活性高與擴 展性佳等優勢,更適合應用於當今複雜的網路架構之中。如表 2 所示,SIP 相較 於 H.323 與 MGCP 具有以下特點: (1) 文字編碼 SIP 以類似 HTTP/1.1 方式,直接採用文字方式來做為訊息內容的編碼,當 使用者收到 SIP 封包時,不需經由其他的編碼方式,即可從封包內擷取相 關資訊,有別於 H.323 的二位元編碼方式,不需要像 H.323 必頇透過解譯 才能了解訊息內容。 (2) 複雜度 SIP 標準本身主要為信令控制的機制,整體的內容簡潔且複雜度低。相較於 H.323 制定的標準裡,H.323 同時涵蓋了許多其他標準,使得整體機制變的 複雜且較沒有彈性。 (3) 資料與訊號獨立 SIP 只負責連線建立時控制訊號部份,並不負責多媒體資訊的傳輸,多媒體 資訊由 SDP 負責描述,資料傳送使用 RTP、RTCP、TCP、UDP 等通訊協 定。 (4) 擴充性、可搭配 IETF 所制定的其他規範 SIP 在擴充性只定義基本連線建立的機制,保留了許多擴充空間,可搭配 SDP 來做多媒體資料描述,也能配合 RTSP (Real Time Streaming Protocol). 6.

(16) 來完成隨選視訊的點播服務,能應用在遠距教學、數位家庭等。 2.1.1 統一資源識別標籤(Universal Resource Identifier;URI) SIP 利用類似 E-mail 形式的地址來標識用戶地址。RFC 2396 - 「Uniform Resource Identifiers(URI):Generic Syntax」中詳細規範,每一用戶透過一種等級 化的「統一資源識別標籤(Universal Resource Identifier;URI)」來識別,他透過 諸如用戶電話號碼或主機名稱等元素來構造。因為它與 E-mail 位址的相似性, SIP URLs 容易與用戶的 E-mail 位址建立關聯。SIP URL 的格式為 user@domain 的表示方式,如圖 1 所示。. 圖 1、統一資源識別標籤的格式說明. 2.1.2 基本組成元件 在 RFC 2543 中定義了 SIP 協定模型中由用戶代理和伺服器等兩類主要的實 體元件所組成。其中伺服器的部分可以再細分為三種主要的伺服器;亦即 SIP 協 定模型由四種基本的 SIP 邏輯元件所組成:分別為用戶代理(User Agent)、代理 伺服器(Proxy Server)、重定向伺服器(Redirect Server)、註冊伺服器(Registry Server),這每一個邏輯元件都各自負責特定執行的功能,並且作為客戶端的初始 請求、伺服器端的回應請求或是作為這兩者的結合。然而在 RFC 3261 中更擴展 了更多的 SIP 元件,一個 SIP 的實體設備中可包含多個 SIP 的邏輯元件的功能。 以下將逐一地介紹每一個 SIP 邏輯元件。. 7.

(17) 圖 2、SIP 基本邏輯元件示意圖 (1) 用戶代理(User Agent) 用戶代理(User Agent)又可簡稱為 UA,是 SIP 網路環境中的用戶終端設備, UA 藉由請求、回應和終止會談。UA 可以是實體的 SIP 網路電話機或是在個人 電腦中的 SIP 客戶端軟體,亦稱為 Soft Phone、軟體電話。在邏輯上 UA 具有兩 種功能角色,即為 User Agent Client 簡稱 UAC 以及 User Agent Server 簡稱 UAS 兩個角色。其中 UAC 負責建立或產生請求,而 UAS 則依照 UAC 的請求來產生 或建立應答。每個 SIP UA 都具有 UAC 與 UAS 的功能,如果這個 SIP UA 目前 是呼叫者(Caller)的角色,此時的 UA 就是執行 UAC 的功能,反之這個 SIP UA 目前如果是接聽者(Callee)的角色,此時的 UA 就是執行 UAS 的功能,因此一個 SIP UA 不會永遠都是 User Agent Client 或是 User Agent Server 的角色。 (2) 代理伺服器(Proxy Server) 在 SIP 網路環境中代理伺服器是 SIP 協議的運作中心,Proxy Server 是同時 具有伺服器端和客戶端的雙重角色的中介元件,負責代表 SIP UA 或是其他的代 理伺服器產生請求或是將收到的請求代為轉送至另一個目標 SIP 元件。當一個 8.

(18) SIP UA 發出連線請求的時候,由於這個 SIP UA 並不一定知道其所請求連線的目 標對象的位址資訊,因此便可以將此請求發送給代理伺服器,而代理伺服器具有 對用戶訂位的服務,因此便可輕易的將此請求轉而發送至正確的 SIP UA。但也 有可能這個代理伺服器不知道目標對象的位址資訊,因此代理伺服器可透過位址 伺服器來做查詢的動作或是轉發至下一級的代理伺服器代為轉送。然而經過這樣 層層傳送的路由,代理伺服器又可分成「有狀態式代理伺服器(Stateful Proxy Server)」與「無狀態式代理伺服器(Stateless Proxy Server)」兩種,有狀態式的代 理伺服器會將經過它轉發的所有呼叫資訊的記錄儲存至伺服器中,然而無狀態式 的代理伺服器則不會儲存任何經過他轉發的呼叫資訊。 (3) 重定向伺服器(Redirect Server) 在 SIP 網路環境中有個特性便是將一個用戶的邏輯位址與實際位址分開。因 此一個用戶可以定義一組不變的邏輯位址,然後將其映射到多個實際位址中。然 而重定向伺服器的功能就好像是 SIP 網路環境中的網域名稱服務(Domain Name Service),負責查詢 SIP 的目標位址。重定向伺服器可接受任何 SIP 元件的請求, 並且可以將被呼叫方的位址映射成一個或多個位址,並將其回傳給客戶端。這功 能與代理伺服器有點類似,但不同的是,重定向伺服器不會將其接受的請求轉發 給其他伺服器,因此若是重定向伺服器查詢不到位址資訊,便會回應零個位址。 (4) 位置伺服器(Location Server) 在 SIP 網路環境中,位置伺服器是用來負責儲存 SIP UA 的資訊,例如 SIP URI、 IP 位址、身分、特性等。位置伺服器將其儲存至資料庫後,提供給代理伺服器 或重定向伺服器使用。通常位置伺服器不需要具有 SIP 協定的處理能力,因此可 以將它視為一個負責儲存用戶資訊的資料庫。所以位置伺服器常常被規畫是代理 伺服器或重定向伺服器中的一部份,若是有效能上的考量也可將其分開。 (5) 註冊伺服器(Registry Server) 在 SIP 網路環境中,註冊伺服器用來接受 REGISTER 請求的伺服器,其目 的是根據用戶在請求中的 SIP URI 與 IP 位址等聯絡資訊,將其記錄下來或更新 9.

(19) 至 Location Server 中的資料庫。通常 SIP UA 開機後就必頇向註冊伺服器進行註 冊的動作,因此註冊伺服器還兼具是用者身分認證的服務。然而每次註冊都會有 固定時間的有效期間,在這段期間內使用者必頇持續做註冊以延長有效期間,若 是過期將會使得使用者無法被呼叫。 (6) 媒體閘道器(Media Gateway) 在 SIP 網路環境中,若是要與其他異質語音網路聯通時,便需要媒體閘道器。 此媒體閘道器包含了呼叫信令的處理功能、硬體介面與處理 RTP 媒體內容的編 碼與解碼的運算單元,主要的工作為將其他異質語音網路的資料進行解封裝與封 裝,有時也必頇進行語音編碼的轉換,例如:將 G.711 與 G.729a 相互轉換。 2.1.3 控制訊息 會議初始協定的元件之間的溝通主要是透過會議初始協定的訊息來達成,其 訊息又可分為請求與回應兩種類型,依據 RFC 2543 中的定義,每個訊息(Message) 包含三個要素:一是起始列(Start-Line),包含在發送訊息請求時的請求列 (Request-Line)和回送回應訊息的狀態列(Status-Line)、二是訊息表頭(Message Header)以及三是訊息主體(Message Body)。 表 2、會議初始協定的請求方法 請求方法. 說明. INVITE. 初始會議,或以 re-INVITE 修改先前初始參數. ACK. 確認 INVITE 的最終應答. BYE. 終結會議. CANCEL. 撤銷目前的會議建立程序. OPTIONS. 查詢另一方的支援能力. REGISTER. 註冊位置服務. SUBSCRIBE. 用來向遠端預訂期狀態變化的通知. NOTIFY. 發送訊息以通知預訂者. 10.

(20) (1) 回應訊息 在會議初始協定的回應訊息中,其表示方式使用狀態碼來區別,此狀態碼的 區間為 100 至 699 的數字,又依照其處理訊息進度的層級不同又可 區分為臨時 回應(1xx)與最終回應(2xx - 6xx)這兩種。 A.. 臨時回應(1xx):為伺服器用來回應目前暫時處理的進度,不會造成訊息狀. 態的改變,會談不會因此而結束。 B.. 最終回應(2xx - 6xx):當會談初始協定的設備接收到此回應時,則代表該會. 談到此結束。 表 3、會議初始協定回應訊息的分類 狀態碼. 說明. 1xx(Informational). 告知發出要求的一方,請求已收到正在處理。. 2xx(Success). 代表接收成功,並且接收請求。. 3xx(Redirection). 代表重新導向、轉傳. 4xx(Client Error). 代表用戶端的錯誤. 5xx(Server Error). 代表伺服器端的錯誤 代表整體網路環境的錯誤. 6xx(Global Failure) (忙碌、拒絕通話). 2.2 會議描述協定(Session Description Protocol;SDP) 由於會議起始協定的訊息中並沒有攜帶任何通訊方式的細部資訊,因此 IETF 的 MMUSIC 工作小組制定了會議描述協定讓通訊的雙方可以藉由會談描述 協定的訊息知道建立交談時所需要的細部資訊,並且依照此訊息進行協商。會談 描述協定的訊息中包含了 IP 位址、通訊埠號碼(Port Number)以及語音資料要用 何種協定來進行傳輸等訊息。由此可知會談描述協定位於 OSI 七層中的第六層、 表達層(Presentation Layer),用來解釋會談建立訊息的內容格式。 11.

(21) 會談描述協定採用文字模式,主要係由許多的文本行所組成,而其格式為< 類型>=<值>,而根據 RFC 3264 (An Offer/Answer Model with the Session Description Protocol)中所定義的模型,會談描述協定的詳細內容包含以下幾種: (1) 會談的名稱與目的。 (2) 會談存活時間。 (3) 包含在會談中的媒體能力資訊,包括:媒體類型(Video、Audio,etc)、傳輸 協定(UDP、RTP、IP,etc)、媒體格式(H.264、MP4,etc)等。 (4) 對方的多播(Multi-Casting)或單播(Uni-Casting)位址與埠號。 (5) 己方為接收媒體所需的資訊(address,port,format 等)。 (6) 使用的頻寬、安全等資訊 (7) 可信賴的接洽信息(Contact information) 表 4、會議描述協定的欄位描述 參數. 意義. 格式說明. v. Protocol Version Number. SDP 的版本,目前皆使用 0. o. Owner/Creator and Session Identifier. 描述連線的來源端訊息. s. Session Name. 呼叫端用來描述會談名稱,通常由 UAS/UAC 設定提供 c. Connection Information. 定義本地端的連線參數. b. Bandwidth Information. 描述頻寬狀況. m. Media Information. 描述媒體通道建立的訊息. a. Media Attributes. 描述媒體編碼型式和相關支援能 力參數. 2.3 即時傳輸協定(Real-Time Transport Protocol ; RTP) 即時傳輸協定定義了在網路上傳輸影像或語音時的封包格式,由 IETF 的. 12.

(22) Audio-Video Transport Working Group 所發展,並於 2003 年頒布並制定為 RFC 3550。. 圖 3、即時傳輸協定傳輸示意圖 即時傳輸協定是為了處理具有即時特性的資料而訂定的一個屬於應用層的 點對點(End-to-End)傳輸通訊協定,用來支援在單目標廣播和多目標廣播網路服 務中傳輸即時資料。主要包括兩大部分:RTP 與 RTCP(RTP Control Protocol),而 即時資料傳輸則由 RTCP 協定來監視與控制。即時傳輸協定的標題由四個資訊欄 位和其他欄位所組成,包含:有效承載類型(Payload type)、順序號(Sequence Number)、時間戳記(Timestamp)與同步源識別字(Synchronization Source Identifier) 等欄位,其封包格式結構如圖 4 所示。. 圖 4、即時傳輸協定封包結構圖 13.

(23) (1) 有效承載類型 在即時傳輸協定的資訊封包中的有效承載方式欄位長度為 7 位元,因此即時 傳輸協定可支援 128 種不同的有效承載類型。這個欄位用來指示聲音或影像使用 的編碼類型,而且由發送端決定,前提是接收端也同樣具有解碼的處理能力。表 5 中為常用的有效承載類型。 表 5、常見的有效承載類型 PT Channels. Encoding Name. Audio/Video (A/V). Clock Rate (Hz). 0. PCMU. A. 8000. 3. GSM. A. 8000. 8. PCMA. A. 8000. 18. G.729. A. 8000. 34. H263. V. 90000. (2) 順序號 順序號欄位的長度為 16 個位元,每次發送一個資訊封包順序號就加 1,讓 接收端可以用它來檢查資訊封包是否有丟失並且按照順序號來處理資訊封包。 (3) 時間戳記 時間戳記欄位的長度為 32 個位元,它反映傳輸資資訊封包的第一個位元組 的取樣時間,接收端可以利用時間戳記來去除由網路傳輸所引起的封包抖動效應, 並且在接收端為撥放提供同步功能。 (4) 同步源識別字 同步源識別字欄位為 32 個位元,它用來標識資訊串流的起源,在傳輸中的 每一個資訊串流都會有一個同步源識別字。其內容是一個隨機分配的號碼。 即時傳輸協定由兩個緊密鏈結部分組成:除了藉由即時傳輸協定來傳輸具有即時 屬性的資料外,即時傳輸控制協定並在即時傳輸的過程中,隨時監控服務品質,. 14.

(24) 並傳送正在進行的會話參與者的相關資訊。. 2.4 Distributed Universal Number Discovery (DUNDi) DUNDi 由 Digium 公司的創立者 Mark Spencer 所提出,它是一種網路電話 系統自動找尋通話路由的協定。DUNDi 經由點對點(peer to peer)與信任系統(trust system)的機制將電話號碼轉譯成網路電話中可用的聯絡資源。然而 DUNDi 與 ENUM 不同的是 DUNDi 不需要透過集中式的管理授權系統也無階級的分類,不 會因為一個節點不能正常運作,因而使得整體的系統都無法運作。DUNDi 是完 全性的分散式系統,強調每一個點都是對等的,如此一來系統可以經由整個企業 內部分享撥號規則。為了確保路由的準確性,DUNDi 定義了在每個點之間的質 詢,使其成為信任群組。DUNDi 找尋路由完成後,通話建立的工作就交給 SIP 或 IAX 等其他的信令協定,進行後續的工作。DUNDi 使用 UDP 的方式與埠號 4520 來進行信令的傳送與接收。表 6 為 DUNDi 協定內所定義的名詞解釋。. 表 6、DUNDi 名詞解釋 名稱. 說明. node. 施行 DUNDi 的系統. peer. 經由 DUNDi 交換訊息的動作. context. 由號碼所組成的邏輯集合 一組由六個位元組所組成的 node 辨識. entity identifier (EID) 碼,通常是 MAC 位址 transaction time to live (TTL). 完整的訊息交換 由數字來辨別訊息經過的 node 數量 由數字來辨別兩個 node 之間的連結關. weight 係. 15.

(25) 在傳統的應用模式中,企業通常會有一群的伺服器分別用來服務各個在地理 位置上不同的地點做電話路由找尋的服務,藉此來分攤 ENUM 伺服器的資源與 負載,當用戶要求路由資源尋找服務時,無論此號碼是否存在或是可用伺服器依 然會直接經過許多閘道器去向 ENUM 的資源中心進行查詢。然而在 DUNDi 的 應用模式中,使用分散的節點取代集中的路由資源中心並且與 Asterisk PBX 中的 extension 有著相同的 context 概念,藉著 context 的方式可以限制使用者存取特定 的通話資源。在 DUNDi 中每個節點都使用具有獨立性的 6 位元組的辨識碼(EID), 通常是利用乙太網路裝置上面的 MAC 位址。這些節點加入一個信任系統中,在 這系統中每個節點之間彼此都有著信任關係,當使用戶要求路由資源尋找服務時, 會先發送至與其有信任關係的節點,這些節點會一直將此需求延著信任連結關係 發送下去,直至找尋到路由資源為止,然而每當傳送到一個節點 TTL 的數量就 會增加 1 個數量,因此我們可以特別地規畫系統架構與設計 TTL 數量,以免造 成不必要的信令傳遞。找尋道路由資源後,依照著相同路徑回傳給發出請求的用 戶,並且將其路由資源以快取的方式儲存,以供給下一次此用戶再次使用時,可 以更加快速地使用。然而此路由資源是有時效性的儲存方式,因為此筆路由資源 是否會因為遠端的用戶離線或是更換網路位址,而必頇再進行一次更新。然而節 點與節點之間的連接關係我們可以透過 weight 這個數值得知,直接連接關係越 大的 weight 數值越低,最低的數值為 0。 要建置一套可以讓使用者直接撥打 E.164 電話號碼的網路電話系統,首先要 面臨的問題是如何確保路由資料的正確性、避免網路電話的濫用以及垃圾網路電 話。為了解決上述的問題,ENUM 所使用的建立一個實體元件來監看這些路由 資訊與另一個實體元件負責認證管理的任務。然而在 DUNDi 中,並沒有實體元 件負責路由資料的正確性與認證管理取而代之的是一個文本,稱為 GPA(General Peering Agreement),所有執行 DUNDi 的系統必頇施行 GPA 以及遵行 GPA 的規 範,以避免通話路由資源遭到濫用。DUNDi 使用 RSA 與 AES 來提供加密與認 16.

(26) 證資訊的功能,每一個 node 分別具有私鑰(Private Key)以及公鑰(Public Key),以 確保 node 之間的安全性問題。 舉例來說,系統之間的信任關係如圖 5 中所示,當 A 要找尋一組電話號碼 1234,首先 A 會自我檢查 1234 這組電話號碼是否存在自己的電話路由表或記憶 快取中,假設 1234 並不存在 A 中,隨即 A 將會詢問與他有信任連結關係的 B 與 C。若是 B 或 C 的電話路由表或記憶快取中有這組電話號碼,那麼 B 或 C 將 會回傳給 A。若是 B 與 C 都沒有路由記錄,那 B 會再將 A 的要求傳送給 D,詢 問 D 是否有該路由資訊,若 D 具有此路由資料,則會回傳給 B,B 會先將此份 資訊儲存在自己的快取之中,並回傳給 A。當 A 收到路由資訊後,便會使用 SIP 或 IAX 來進行通話建立的動作。. 圖 5、DUNDi 信任群組關係圖 表 7 中為 DUNDi 使用的請求與回應的訊息名稱及其說明。 表 7、DUNDi 的訊息 名稱. 說明. REGREQ. 註冊請求訊息. REGREPONSE. 回應 REGREQ. 17.

(27) DPDISCOVER. 找尋電話號碼的請求訊息. DPREPONSE. 回應 DPDISCOVER. EIDQUERY. 詢問 EID 的請求訊息. EIDREPONSE. 回應 EIDQUERY. 圖 6、DUNDi 封包格式 DUNDi 的封包格式如圖 13 所示,其內容說明如表 8 所示。 表 8、DUNDi 封包內容說明 名稱. 說明. Source Transaction. 本地端的辨別資訊. Destination Transaction. 目的端的辨別資訊. ISeqno. 下一個預期接受的序號. OSeqno. 傳送的序號 最後傳送代碼,1 代表此為最後傳送的. F. 封包 回應代碼,0 代表此封包為要求命令、. R. 1 代表此封包為回應命令 CmdResp. 要求命令內容或回應內容. CmdFlags. 命令的特定指標 DUNDi 的資訊元素,例如 EID、位址、. Information Elements. 電話號碼等資訊. 18.

(28) 2.5 IAX2 運作模式與其產生之議題 2.5.1 IAX2 簡介 IAX2(Inter-Asterisk eXchange Version 2)係由 Digium 公司所提出的一個協定, 主要常用於以 Asterisk 為基礎的 IPPBX 之間的通訊。隨著 Asterisk 越來越普及, 現金大多數的 IPPBX 皆是以 Asterisk 為基礎,因此 IAX2 亦受到重視,所以 IETF 於 2009 年將其列為一個標準協定,RFC 5456。 IAX2 如同 SIP 一樣,IAX2 也是一個信令傳送的協定,但是與 SIP 不同的是, SIP 中信令和 RTP 是用不同的埠號傳送,如 Asterisk 中預設信令是用 5060 的埠 號,而 RTP 用 10000 到 30000 這個區段的埠號,而 IAX2 信令與 RTP 皆是用埠 號 4569 來傳送。而 IAX2 也擁有可以 Trunk 多個會談於一個資料流的能力,這 個對於當同時間有多個通道傳送資料至一個裝置時有驚人的頻寬效益。 IAX2 協定謹慎的設計用於位於防火牆或 NAT 後面的裝置,因為 IAX2 使用 單一的埠號來交換信令和 RTP 多媒體資料串流,如此一來防火牆只需要開啟最 少的埠號便可以提供服務。對於安全性有重大的幫助。 2.5.2 使用 IAX2 串接 Asterisk PBX 所產生之議題 目前大多數的 IPPBX 產品中的軟體部分皆是使用 Asterisk PBX 軟體,然而 IAX2 為其量身訂作相互通訊的協定,因此 IAX2 自然而然也成為 IPPBX 的連接 方式之一。但是使用 IAX2 連接 IPPBX 時,所需要的設定是每台 IPPBX 個別進 行設定。如圖 7 中所示,位於 A、B、C、D 四個地點的 IPPBX 彼此之間要進行 連接時,必頇要兩兩互相做設定,對於 A 地點的 IPPBX 而言,必頇要個別對 B、 C、D 三個地點的 IPPBX 做設定,反之亦然。因此若依此例有四台 IPPBX 要互 相連接時,所必頇設定的次數為 12 次,若是數量龐大,所需設定的次數更是無 法想像,然而若日後增設新的設備時必頇再做更多次的設定,設定的手續只會越 來越繁雜。. 19.

(29) 圖 7、使用 IAX2 連接 Asterisk PBX 2.6 SIP Proxy 運作模式與其產生之議題 2.6.1 SIP Proxy 運作模式 另一種連結 IPPBX 的方式即為使用 SIP Proxy 作為頭端來管理 IPPBX,SIP Proxy 的運作模式如圖 8 所示,SIP Proxy 在此僅提供一開始的信令交換服務,隨 後的 RTP 媒體串流並不在其負責的範疇中。透過 SIP Proxy 每台 Asterisk PBX 所 對外的窗口只有一個,當 Asterisk PBX 在本地端找不到使用者或使用者所撥的號 碼不是屬於本地端的號碼時,Asterisk PBX 會將該請求轉送至 SIP Proxy,由 SIP Proxy 代為尋找目的地位址。在完成信令交換後,由兩台 Asterisk PBX 以點對點 的方式進行 RTP 媒體串流交換。. 20.

(30) 圖 8、SIP Proxy 管理 Asterisk PBX 運作模式 2.6.2 使用 SIP Proxy 運作模式所產生之議題 在使用 SIP Proxy 作為頭端管理 Asterisk PBX 時,所有的 Asterisk PBX 都將連結 至 SIP Proxy,此外所有 Asterisk PBX 之間通話的信令傳遞,皆頇由 SIP Proxy 來 負責傳遞。此種架構作為網路電話的通訊架構,將會在系統可靠度出現疑慮,原 因係出於此系統架構是否能運作將由單一定點做決定,也就是 SIP Proxy 的伺服 器做決定。如果 SIP Proxy 出現當機或是無法正常運作時,此系統將會因此而停 擺,因此 SIP Proxy 將成為此系統是否能正常運作的隱憂。. 21.

(31) 第三章、系統架構 本文中所設計的系統架構為解決 IPPBX 彼此之間溝通協調之問題,用完全 分散式的架構,每台 IPPBX 的位階都相同,並且自組形成叢集式的群組。在此 架構中我們使用 SIP 為主要通訊協定,DUNDi 在此為輔助 SIP,幫助尋找所需要 的通話路由,用以解決(1)使用 IAX2 連結 IPPBX 所產生的擴充性與設定繁瑣之 問題 (2)使用 SIP Proxy 為頭端連結管理各個 IPPBX 所造成的通訊瓶頸與風險之 問題。. 3.1 設計考量 本文中設計的環境架構主要來自於使用 SIP Proxy 為頭端對 IPPBX 進行控管 的架構,經過我們研究與測詴後發現此架構具有通訊的風險問題。基於此因素我 們使用完全分散式的架構,將通訊瓶頸的不安定因子去除後,使得整體的網路電 話系統更加穩定,我們提出以下幾點系統設計考量。 (1) 標準化 規格的標準化是系統設計的重點之一,因為只有標準化的系統才能與其他支 援特定通訊協定的系統互相通訊,使得整體系統有未來發展,亦使得系統更 容易受到市場接納與採用。 (2) 互通性 所設計的系統必頇可以與其他使用 SIP 協定的語音網路系統,進行溝通協調 的能力,以便將來系統可能與其他語音網路系統進行整合。然而除了使用 SIP 協定的語音網路服務外,本系統亦頇搭配其他閘道服務,以便達到其他異質 語音網路服務的系統進行通訊的能力。 (3) 安全性 安全性一直是網路的一大隱憂,因此網路電話系統也是有著安全性的疑慮, 使用者的聯絡資源是否會被有心人士竊取或濫用,造成網路垃圾電話的氾濫, 22.

(32) 造成使用者的不便。因此系統中必頇有確保通話資源不會被濫用的情形發 生。. 3.2 系統架構 此系統架構主要的通訊主軸為 SIP 協定,再搭配 DUNDi 為其尋找網路電話 路由,以解決 IPPBX 之間互相溝通的問題。並且可以再與其他異質語音網路服 務進行通訊,加強整體系統的完備性。如圖 9 中所示,此系統包含了 SIP Server、 IP Phone、Skype Gateway 與 Analog Telephony Card 卡四者所組成。 (1) SIP Server 我們使用 Asterisk Open Source 的軟體建置而成,Asterisk 為一套軟體交換機 系統,也就是一般俗稱的 IPPBX。它提供了基礎的 SIP 網路元件與媒體串流 的功能。其具備的 SIP 網路元件分別為 Proxy Server、Register Server、Location Server、User Agent。 (2) IP Phone IP Phone 可以為一般支援 SIP 功能的實體電話或是安裝於個人電腦中的軟體 電話,主要作為讓使用者進行通訊的介面。 (3) Analog Telephony Card 主要用途為將 SIP 環境與 PSTN 服務進行整合,使得 SIP 用戶可以使用此介 面進行下車的服務,達到節省電話費用的目的。此外 PSTN 的使用者也可以 透過此介面撥打電話,進入此系統與此系統的用戶進行通話。 (4) Skype Gateway 主要用途為將 SIP 環境與 skype 服務進行整合,使得 SIP 用戶可以使用此閘 道與 skype 使用者進行通訊,此外 skype 用戶亦即可以使用此閘道器進入系 統,撥打給此系統的用戶。. 23.

(33) 圖 9、系統架構圖. 3.3 系統運作 系統的運作可以分為 Asterisk PBX 彼此之間的連結關係,包含加入、離開信 任群組,使用者向 Asterisk PBX 進行註冊的程序,系統與異質語音網路服務之間 的連結方式,以及通話的建立,通話的建立又包含了路由的找尋、信令的傳遞、 媒體串流的傳輸。 3.3.1 Asterisk PBX 加入信任群組 我們使用 DUNDi 的協定來串連所有的 Asterisk PBX 伺服器,因此所有地點 的 Asterisk PBX 伺服器必頇遵守 GPA 的規範,確保各自的路由資源不會被濫用, 藉此也保護各分點使用者的網路電話不會遭受垃圾電話的打擾。使用 DUNDi 串 接 Asterisk PBX 伺服器不需要所有的 Asterisk PBX 伺服器都加入同一群組,群組 與群組之間只需要有一個以上的連線,系統運作即可保證能正常運作。每一 24.

(34) Asterisk PBX 伺服器都必頇有自己的身份認證碼(Entity ID),作為在信任群組內 的身份辨識。除了 Entity ID 之外,要加入信任群組必頇還需要金鑰,自己需發 佈自己的公開金鑰給其他 Asterisk PBX 伺服器,自己則保留一把私鑰,最後於 Asterisk PBX 伺服器的設定內輸入欲連結的 Entity ID、IP 位址與對方的公開金 鑰。 其加入信任群組流程如圖 10 所示,欲加入的 Asterisk PBX 伺服器向對方發 送出 REGREQ 訊息,無論是否被接收或不接受接收方都回覆以 REGRESPONSE 訊息,然而若是成功加入後,每一次加入都會有一段保存期限,若是超過此時限 必頇在重新加入一次,以確保所有的 Asterisk PBX 伺服器皆是存活的。. 圖 10、Asterisk PBX 加入信任群組 3.3.2 使用者註冊運作機制 本機的路由資源之所以可以提供給信任群組內的 Asterisk PBX 伺服器查詢, 乃是基於使用者在進行通話之前,需先向 Asterisk PBX 伺服器進行註冊的程序。 註冊除了可以將使用者的路由資源記錄於 Asterisk PBX 伺服器中的 Location Server 之外,還可以進行對使用者的認證程序,以免 Asterisk PBX 伺服器的網路 資源被非法的使用者所濫用。 25.

(35) 使用者的註冊認證流程如圖 11 所示,使用者在建立通話之前必頇先向 Asterisk PBX 伺服器發送 REGISTER 訊息,此訊息通常夾帶有使用者的認證資訊 例如使用的 SIP 格式、自身的網路位址、認證的訊息等,這些夾帶的訊息即為 SDP 中所制定的格式,隨後 Asterisk PBX 伺服器將對此認證資訊進行認證程序, 若是合法的使用者,Asterisk PBX 伺服器將會先回以 100 Trying 的訊息,來向使 用者表示其所傳送的訊息已經在處理當中,避免使用者重複傳送而造成資源的浪 費。當 Asterisk PBX 伺服器處理完成後,若是通過認證將會回以 200 OK 的訊息, 但若是認證失敗則會回應 401 Unauthorized 的訊息。在此例中,User Agent A 是 為註冊成功的使用者,User Agent B 為註冊失敗的使用者。. 圖 11、使用者註冊流程圖 3.3.3 異質語音網路運作機制 我們利用一個 Asterisk PBX 伺服器做為窗口與異質語音網路通訊,異質語音 網路服務有兩部分,分別是 PSTN 與 skype。在 Asterisk PBX 伺服器中安裝 Analog Telephony Card 介面卡,與傳統電話網路 PSTN 連接,並且利用 Skype Gateway 與此 Asterisk PBX 伺服器做連結,以提供 SIP 語音網路使用者與 skype 語音網路 使用者通訊。 26.

(36) (1) 以 Skype Gateway 與 Skype 語音網路連結 Skype Gateway 運作模式如圖 12 所示,此 Skype Gateway 內包含 SIP User Agent、skype Client 以及將兩種不同的語音網路服務作轉譯服務的核心 程式,然而其中的 SIP User Agent 為此 Skype Gateway 對 SIP 語音網路的 窗口,skype Client 為 Skype Gateway 對 skype 語音網路的窗口,因此無 論是從哪一種語音網路所進入此 Skype Gateway 皆由轉譯程式,負責轉 換其格式後,藉由窗口傳送至目的端。. 圖 12、Skype Gateway 架構示意圖 (2) 以 Analog Telephony Card 與 PSTN 傳統語音網路連結 於 Asterisk PBX 伺服器中安裝 PCI 介面的 Analog Telephony Card,再安 裝此 Analog Telephony Card 的驅動程式 Zaptel 後,即可在 Asterisk PBX 伺服器中使用 Analog Telephony Card 中的 FXO 介面與 PSTN 傳統語音 網路連結,詳細的示意圖如圖 13 所示。. 圖 13、Asterisk PBX 伺服器使用 Zaptel 驅動 Analog Telephony Card 示意圖 3.3.4 通話建立運作機制 通話建立的運作係依照使用者的發話端與目的端的不同與不同的異質語音. 27.

(37) 網路服務使用者的通訊分成以下三種使用型態:(1)在同一 Asterisk PBX 伺服器 下 SIP 使用者通訊、(2)相同信任群組下的跨越 Asterisk PBX 伺服器的 SIP 使用者 通訊、(3)不同信任群組下的跨越 Asterisk PBX 伺服器的 SIP 使用者通訊與(4)SIP 語音網路使用者與其它異質語音網路使用者通訊。 (1) 在同一 Asterisk PBX 伺服器下 SIP 使用者通訊 此種型態的通訊方式是為最基本的 SIP 通訊建立的方式,通訊流程圖如 圖 14 所示,使用者 A 欲與使用者 B 進行通話,因此他向所屬的 Asterisk PBX 伺服器傳送 SIP 邀請信令後,轉送給使用者 B,當使用者 B 接受通 話邀請後,回覆 SIP 確認信令給 Asterisk PBX 伺服器,Asterisk PBX 伺 服器將該信令轉送給 SIP User A。最後兩位使用者即可開始進行媒體串 流的傳輸,開始進行通話。. 圖 14、同一 Asterisk PBX 伺服器下 SIP 使用者通訊流程圖. 28.

(38) 圖 15、SIP 使用者在同一 Asterisk PBX 伺服器下通訊示意圖 (2) 相同信任群組下的跨越 Asterisk PBX 伺服器的 SIP 使用者通訊 此種型態的通訊方式為本文中所訴求的方式之一,我們使用 SIP 與 DUNDi 協定來達成跨越 Asterisk PBX 伺服器通訊的需求。通訊流程圖如 圖 16 所示,使用者 A 欲與使用者 D 進行通話,然而使用者 D 和使用者 A 並不在相同的 Asterisk PBX 伺服器中註冊,但使用者 A 依然按照一般 的撥號方式,輸入使用者 D 的電話號碼,當位於 A 地點的 Asterisk PBX 伺服器收到此要求時,發現在本地端的撥號規則中查無此號碼,因此 A 地點的 Asterisk PBX 伺服器自動啟動 DUNDi 功能,向其信任群組內的 Asterisk PBX 伺服器發送查詢號碼的要求,此例中為向 C 地點與 D 地點 的 Asterisk PBX 伺服器發出請求,接收到查詢號碼要求的 Asterisk PBX 伺服器則會立即查詢當地的撥號規則,若是接受查詢的 Asterisk PBX 伺 服器在本地端查無所需的撥號規則,則會將此要求轉送給其信任群組的 Asterisk PBX 伺服器進行追查。然而若符合要求所需則立即將路由資訊 回傳給發出請求的 Asterisk PBX 伺服器,此 Asterisk PBX 伺服器接收到 路由資訊後,就會將使用者 A 的邀請訊息傳給使用者 D,當使用者 D 接 受通話邀請後,回覆 SIP 確認信令給 Asterisk PBX 伺服器,Asterisk PBX 伺服器將該信令轉送給 SIP User A。最後兩位使用者即可開始進行媒體 串流的傳輸,開始進行通話。. 29.

(39) 圖 16、SIP 使用者跨越相同信任群組 Asterisk PBX 伺服器進行通訊流程圖. 圖 17、SIP 使用者跨越相同信任群組 Asterisk PBX 伺服器進行通訊示意圖 (3) 不同信任群組下的跨越 Asterisk PBX 伺服器的 SIP 使用者通訊 此種型態的通訊方式亦為本文所訴求的方式之一,依然是使用 SIP 與 30.

(40) DUNDi 通訊協定來達成跨越 Asterisk PBX 伺服器的需求,與(2)在相同 信任群組下的跨越 Asterisk PBX 伺服器的 SIP 使用者通訊不同的是,此 種通訊型態,使用者的 Asterisk PBX 伺服器無需與所有的 Asterisk PBX 伺服器建立信任連結。只要在其信任群組內,有一個 Asterisk PBX 伺服 器與欲通訊的 Asterisk PBX 伺服器有信任連結關係即可。其通訊方式如 圖 18 所示,處於 A 地點 Asterisk PBX 伺服器底下的使用者 A,要和處 於 E 地點 Asterisk PBX 伺服器底下的使用者 E 進行通訊,然而 A 地點的 Asterisk PBX 伺服器與 E 地點的 Asterisk PBX 伺服器兩者之間並無任何 連結關係,但是有一個 C 地點的 Asterisk PBX 伺服器,此伺服器的信任 群組內既有 A 地點的 Asterisk PBX 伺服器,也有 E 地點的 Asterisk PBX 伺服器,因此當 A 使用者撥出 E 使用者的電話號碼時,A 地點的 Asterisk PBX 則會先查詢本地的撥號規則是否有此電話號碼,查無此號碼時,則 會啟動 DUNDi 查詢功能,將查詢 E 使用者的電話號碼需求傳送給其信 任群組內的每一個 Asterisk PBX 伺服器,此時在其信任群組內的 Asterisk PBX 伺服器也就是 C 地點的 Asterisk PBX 伺服器,在其本地端也查詢不 到 E 使用者的撥號規則,則會再將此 DUNDi 查詢需求,轉送給其信任 群組內的所有 Asterisk PBX 伺服器,恰好 E 地點的 Asterisk PBX 伺服器 在 C 地點的 Asterisk PBX 伺服器中,因此 E 地點的 Asterisk PBX 伺服器 接受此 DUNDi 查詢要求後,便將 E 使用者的路由資訊回傳給 C 地點的 Asterisk PBX 伺服器,C 地點的 Asterisk PBX 伺服器接收到此回應後, 便立即將此路由資訊再進一步的回傳給一開始的 DUNDi 的查詢者,也 就是 A 地點的 Asterisk PBX 伺服器,接著 A 地點的 Asterisk PBX 伺服器 便可以使用此路由資訊直接將使用者 A 的請求轉送給使用者 E,邀請使 用者 E 與使用者 A 進行通話。. 31.

(41) 圖 18、SIP 使用者跨越不同信任群組 Asterisk PBX 伺服器進行通訊流程圖. 圖 19、SIP 使用者跨越不同信任群組 Asterisk PBX 伺服器進行通訊示意圖 (4) SIP 語音網路使用者與其它異質語音網路使用者通訊 此種通訊型態係為了增加 SIP 網路電話系統的多元性,使整個網路電話 系統能夠更加完備,因此我們分別使用了 Skype Gateway 與 Analog Telephony Card 做為 SIP 語音網路與異質語音網路的接口,Skype Gateway 32.

(42) 為 SIP 語音網路與 skype 語音網路的訊息與媒體交換介面,Analog Telephony Card 為 SIP 語音網路與 PSTN 傳統電話網路的訊息與媒體交換 的介面。SIP 使用者與 skype 使用者通訊的流程圖,如圖 20 所示,SIP 使用者如一般使用方式撥號,此號碼為一組在 Skype Gateway 中的號碼 與 skype 帳號對映表,當 Asterisk PBX 伺服器收到 SIP 使用者的請求後 便將此訊息傳至 Skype Gateway 中進行號碼與 skype 帳號的解析,解析 後 Skype Gateway 便進行對該 skype 帳號的通話邀請之動作,當該 skype 使用者答應通話邀請後,Skype Gateway 便會將該訊息轉換成 SIP 的格式 通知 SIP 使用者,隨後 Skype Gateway 將負責 skype 語音格式與 SIP 語音 格式的相互轉換與傳送的動作,藉此達到 SIP 使用者與 skype 使用者雙 方進行通訊的需求。SIP 使用者與 PSTN 用戶通訊的流程圖,如圖 21 所 示,SIP 使用者進行撥號的動作,當 Asterisk PBX 接收到此訊息,進行 號碼的辨別後,了解該使用者欲與 PSTN 用戶進行通訊時,便會啟動安 裝於 Asterisk PBX 伺服器中的 Analog Telephony Card 的 FXO(Foreign eXchange Office)介面,並且使用該 FXO 介面與傳統的 PSTN 用戶進行撥 號的動作,當 PSTN 用戶接受此通話後,則 SIP 使用者將可以與 PSTN 用戶進行通話。. 33.

(43) 圖 20、SIP 使用者與 skype 使用者進行通訊流程圖. 34.

(44) 圖 21、SIP 使用者跨與 PSTN 使用者進行通訊流程圖. 圖 22、SIP 使用者與其它異質語音網路使用者進行通訊示意圖. 35.

(45) 第四章、研究結果 4.1 測詴環境 依照系統功能可將測詴項目分為以下五種,系統功能測詴、Asterisk PBX 伺 服器同時通話數、單一 Asterisk PBX 伺服器下通話建立時間、相同信任群組下跨 越 Asterisk PBX 伺服器通話時間與不同信任群組下跨越 Asterisk PBX 伺服器通話 建立時間。根據我們要測詴的項目,我們建置的測詴環境如圖 23 所示,分別有 三台 Asterisk PBX 伺服器,其信任狀態如圖 23 中所示,只有綠色區塊的 Asterisk PBX 伺服器分別對另外兩台 Asterisk PBX 伺服器有信任連結,藍色區塊的 Asterisk PBX 伺服器與粉紅色區塊的 Asterisk PBX 伺服器並無直接連結關係。在 IP PHONE 方面,粉紅色區塊的 Asterisk PBX 伺服器底下分別有 101 與 102 的分 機,綠色區塊的 Asterisk PBX 伺服器底下分別有 201 與 202 分機,藍色區塊的 Asterisk PBX 伺服器底下分別有 301 與 302 分機。. 圖 23、測詴環境圖. 36.

(46) 表 9、粉紅區塊的 Asterisk PBX 伺服器軟硬體環境 CPU. Intel Pentium 4 3.20 GHz. RAM OS SIP IPPBX IP Address. 1 GB CentOS 5.4 – Kernel 2.6.18 Asterisk 1.4.19.2 140.127.205.145. 表 10、綠色區塊的 Asterisk PBX 伺服器軟硬體環境 CPU. AMD Athlon 64 X2 4800+ 2.5GHz. RAM OS SIP IPPBX. 2 GB CentOS 5.5 – Kernel 2.6.18 Asterisk 1.4.19.2. IP Address. 140.127.205.143. 表 11、藍色區塊的 Asterisk PBX 伺服器軟硬體環境 CPU. Intel ATOM 330 1.6GHz. RAM OS. 1 GB CentOS 5.5 – Kernel 2.6.18. SIP IPPBX IP Address. Asterisk 1.4.19.2 140.127.205.139. 4.2 系統功能測詴 此測詴項目主要為測詴系統的功能是否能夠正常運作,系統功能分為下列三 項:(1)單一 Asterisk PBX 伺服器下的通訊功能、(2)相同信任群組的條件下跨越 Asterisk PBX 伺服器的通訊功能、(3)不同信任群組的條件下跨越 Asterisk PBX 伺 服器的通訊功能。 4.2.1 測詴結果 (1) 單一 Asterisk PBX 伺服器下的通訊功能,測詴通過。 (2) 相同信任群組的條件下跨越 Asterisk PBX 伺服器的通訊功能,測詴通 過。 (3) 不同信任群組的條件下跨越 Asterisk PBX 伺服器的通訊功能,測詴通 過。 37.

(47) 4.3 單一 Asterisk PBX 伺服器下通話建立時間 此測詴項目為測詴在同一台 Asterisk PBX 伺服器底下的使用者,讓他們互相 撥打並且記錄其通話的建立時間。目的在於測詴出最基礎的 SIP 通話建立所需的 時間,再與跨越 Asterisk PBX 伺服器的兩項測詴項目作為比較。如此一來,我們 便可得知使用此架構來進行跨越 Asterisk PBX 伺服器建立通話時,其通話建立時 間是否會與最基礎的 SIP 通話建立時間相差甚大。 4.3.1 測詴結果 測詴結果如圖 24 所示,測詴結果來自於 100 筆的相同 Asterisk PBX 伺服器 下的通話,使用網路工具擷取其封包,並且分析其信令往返的記錄。. 圖 24、相同 Asterisk PBX 伺服器下通話建立時間測詴結果 4.4 相同信任群組下跨越 Asterisk PBX 伺服器通話建立時間 此項目為測詴在相同信任群組的條件下,使用者跨越 Asterisk PBX 伺服器的 通話建立時間。 4.4.1 測詴結果 測詴結果如圖 25 所示,測詴結果來自於 100 筆的相同信任群組的 Asterisk PBX 伺服器,使用者跨越 Asterisk PBX 伺服器的通話,使用網路工具擷取其封. 38.

(48) 包,並且分析其信令往返的記錄。. 圖 25、相同信任群組跨越 Asterisk PBX 伺服器下通話建立時間測詴結果 4.5 不同信任群組下跨越 Asterisk PBX 伺服器通話建立時間 此項目為測詴在不同信任群組的條件下,使用者跨越 Asterisk PBX 伺服器的 通話建立時間。 4.5.1 測詴結果 測詴結果如圖 26 所示,測詴結果來自於 100 筆的不同信任群組的 Asterisk PBX 伺服器,使用者跨越 Asterisk PBX 伺服器的通話,使用網路工具擷取其封 包,並且分析其信令往返的記錄。. 39.

(49) 圖 26、不同信任群組跨越 Asterisk PBX 伺服器下通話建立時間測詴結果 4.6 數據分析 表 12、帄均通話建立時間比較表 跨越相同信任群. 跨越不同信任群. 組 Asterisk PBX. 組 Asterisk PBX. 伺服器. 伺服器. 307.25 ms. 434.38 ms. 相同 Asterisk PBX 伺服器. 帄均通話建立時間. 220.56 ms. 由表 12 我們可以得知 SIP 通話建立的帄均時間,隨著通話的模式不同,而 有所改變。通話建立時間除了受到網路上其他封包的干擾與碰撞之外,最主要的 差異在於跨越 Asterisk PBX 伺服器通訊時,我們使用 DUNDi 的通話路由找尋功 能,所造成通話建立時間從基礎的 220.56 ms 提升至跨越相同信任群組的 Asterisk PBX 伺服器時的 307.25 ms,與跨越不同信任群組的 Asterisk PBX 伺服器時的 434.38 ms,這些改變是可以預期的,因為通話路由的找尋是需要一些時間的。 然而從圖 25 與圖 26 中,我們可以看到通話建立時間的曲線呈現鋸齒狀的上 下來回抖動,這些抖動主要是來自於,當每一次 Asterisk PBX 伺服器使用 DUNDi 的通話路由找尋功能時,會將可用的通話路由資源儲存於本地端的資料庫中,以 供給下一次的通話使用,但此筆儲存於資料庫的通話路由資源是有時效性的,因. 40.

(50) 為使用者也許會離線或是改變網路位址,因此 Asterisk PBX 伺服器會將超過時效 的通話路由資源刪除,而造成了圖 25 與 26 中的曲線呈現鋸齒狀的情況。. 41.

(51) 第五章、結論與未來工作 5.1 結論 VoIP 在國內電信法令的推動之下已經受到許多中小企業與個人家庭用戶的 熱烈應用,因此 VoIP 週邊設備例如 IPPBX 也大量的受到應用,然而隨著各種不 同的用戶,將 VoIP 設備應用於各自不同的網路架構中,相對的各種不同的需求 也會因運而生,中小企業通常都會面臨一個常見的問題,就是當 IPPBX 數量變 多的時候,如何串連 IPPBX 使其能夠相互通訊並且一起運作。雖然已經有其他 的解決方法,但是這些方法中都有其缺點,並且其系統架構都是固定的,較無彈 性。 本文提出以 DUNDi 的路由發現方式,在有路由需求的時候,才向信任群組 中的 IPPBX 提出請求,並且路由發現的請求不侷限於單一信任群組內,可以使 彼此無信任連結的 IPPBX 互相調用對方的路由資源,並且採取完全分散式的系 統架構,使得整體的通訊可靠度提高。相較於 IAX2 與 SIP Proxy 的系統架構, 我們的系統架構有著以下的優勢: (1) 系統可靠度 由於採取分散式系統架構,將每個 IPPBX 皆視為一個相對等的節點,因 此在通訊的流程中,不會有必頇經由單一路徑的問題,因此亦增加了通 訊路徑的多樣性,通訊可靠度也隨之提升。 (2) 分類群組性 在此系統架構之下,我們可以將相同性質的 IPPBX 規劃為同一信任群組 內,並且以號碼來劃分,使其電話號碼具有群組性質的代表性,群組之 間建立一個以上的路徑,使群組之間的通訊更加順暢。 (3) 網路架構彈性化 由於採取分散式的網路架構,因此網路拓墣(Network Topology)可以較彈 性的去規劃,例如可以使用網狀、星狀、環狀以及樹狀,並且可以相互 42.

(52) 搭配使用。依據各種不同的網路環境來建置最符合需求及效率的網路架 構。 表 13、本系統與 IAX2 與 SIP Proxy 方案比較表 IAX2. SIP Proxy. DUNDi. VoIP 設備數量. N. N+1. N. 系統擴充性. 低. 中. 高. 系統可靠度. 中. 低. 中. 網路拓樸. 網狀. 樹狀. 網狀、樹狀、星 狀、環狀. 通話建立模式. 主從式. 主從式/點對點. 主從式. 通訊協定. IAX2. SIP. SIP/IAX2. 設定複雜度. 高. 低. 中. 5.2 未來工作 本文中探討以 SIP 網路協定下的網路電話系統為主,並且整合其他異質語音 網路服務,來使得整體語音網路系統更加完備,然而在未來方面希望將朝向下列 說明方面繼續深入探討。 (1) 整合 IPv6 網路 由於 IPv4 的網路定址問題,使得目前的 IPv4 網路位址日漸短缺,雖然 使用 NAT(Network Address Translation)可以減緩目前 IPv4 網路位址短缺 的問題,但 NAT 為一個雙面刃,雖然解決了網路位址短缺的問題,但是 伴之而來的是造成網路通訊傳輸原有的便利性被破壞,使得在網路通訊 上的諸多不方便。因此若整合 IPv6 網路,將可以使得現有的 IPv4 網路 的問題迎刃而解,並且也使得整體系統具有未來發展性。 (2) 整合網路多媒體服務. 43.

(53) 目前已有許多的網路多媒體服務,例如網路視訊會議、網路電視等服務。 若能將更多的多媒體服務整合進系統,將可以達到更多元的應用,吸引 更多企業與家庭用戶來使用。 (3) 加強安全性 網際網路的安全性一直是大家關心的議題,因此我們在網際網路上傳輸 的信令與多媒體串流的安全性也是一大隱憂。然而本文中雖已有防堵通 話路由資源被濫用與防堵垃圾網路電話騷擾的機制,但若是能使用 TLS (Transport Layer Security)與 SRTP (Security Real-time Transport Protocol) 特別針對信令與多媒體串流的防護,將可以使得網路電話系統的安全性 更加完善,也可以讓使用者更加放心的使用網路電話系統。. 44.

(54) 參考文獻 [1]. J. Rosenberg, H. Schulzrinne, G. Camarillo, A. R. Johnston, J. Peterson, R. Sparks, M. Handley, and E. Schooler, “SIP: Session Initiation Protocol,” RFC 3261, IETF, June 2002.. [2] M. Spencer, B. Capouch, E. Guy, F. Miller, K. Shumard, "Inter-Asterisk eXchange Version 2", IETF RFC 5456, February 2009. [3] M. Handley, V. Jacobson, "SDP: Session Description Protocol", IETF RFC 2327, April 1998. [4] H. Schulzrinne, et.al., "RTP: A Transport Protocol for Real-Time Applications", IETF RFC 3550, July 2003. [5] Jim Van Meggelen, Jared Smith, Leif Madsen, "Asterisk, The Future of Telephony", O’Reilly, August 2005. [6] M. Spencer, “Distributed Universal Number Discovery (DUNDi)”,draft-mspencer-dundi-01, Digium Inc., October 13, 2004. [7] André Wangler, “Call Route Discovery with Asterisk / DUNDi”, Eidgenössische Technische Hochschule Department D-ITET, September 5, 2007. [8] ITU-T Standard, “H.323: Packet-based Multimedia Communications System”, February 1998. [9] Jim Van Meggelen, Jared Smith, and Leif Madsen, “Asterisk The Future of Telephony”, O’REILLY, August 31, 2005. [10] Viktor Matic, Ivan Franicevic, Darko Sekalec, ”Parallel SIP Proxy Servers using direct routing approach,” in Software in Telecommunications and Computer Networks, 2006. SoftCOM 2006. [11] Jenq-Shiou Leu, Hui-Ching Hsieh, Yen-Chiu Chen and Yuan-Po Chi, “Design and Implementation of a Low Cost DNS-based Load Balancing Solution for the 45.

(55) SIP-based VoIP Service”, 2008 IEEE Asia-Pacific Services Computing Conference [12] Yun-Jung Cheng, KuoChen Wang, Rong-Hong Jan, Chien Chen, Chia-Yuan Huang, “Efficient Failover and Load Balancing for Dependable SIP Proxy Servers”, IEEE Symposium on Computers and Communications 2008, ISCC 2008. [13] Jin Zhou, Jie Li, Yin Ben Xia, Bin Cai, Chun Ying, ”SIP network discovery by using SIP message probing”, Network Operations and Management Symposium 2008,NOMS 2008 IEEE. [14] Kambourakis G., Geneiatakis D., Gritzalis S., Dagiuklas T., Lambrinoudakis C., “Security and privacy issues towards ENUM protocol”, ISSPIT 2005, Page(s) 478 - 483, 2005. [15] Asterisk The Open Source Telephony Project, http://www.asterisk.org [16] Digium The Asterisk Company, http://www.digium.com/en/ [17] SipToSis, “SIP to Skype Gateway Bridge Proxy Adapter Converter Interconnect, http://www.mhspot.com/sts/siptosis.html. 46.

(56)

參考文獻

相關文件

最後特別提出說明,本研究用戶端作業系統為 Win 2000 Professional,伺服 器端作業系統為 Windows 2000 Server 並啟動 Active Directory

4.手機充電後,立刻拔掉充電器插頭,只要全球 行動電話 使用者做到 省下的能源 相當 10%行動電話

之意,此指依照命令動作的意義。所謂伺服 系統,就是依照指示命令動作所構成的控制

  SOA 記錄裏,記載著關於該 域名權責區域的一些主 要網域名稱伺服器 ( primary DNS server) 和其它 相關的次要名稱伺服器 ( secondary DNS server)

並存入百事可樂企業內部網站的 伺服 並存入百事可樂企業內部網站的 IBM RS/6000 伺服 器資料庫。然後,主管與分析師可以使用上型電腦

• SIPv6 Analyzer provides several functions (e.g., SIP Viewer and RTP Spy) for the users who attempt to debug the SIP VoIP network or the SIP devices. • SIPv6 Analyzer can

根據研究背景與動機的說明,本研究主要是探討 Facebook

IP 電信得以擺脫傳統電信的束縛,其中有兩項重要的電信技術,一是能 提供整合語音與數據服務之 SIP(Session Initiation Protocol)標準,另一項則是 提供電話號碼與 IP