• 沒有找到結果。

National Sun Yat-sen University Institutional Repository:Item 987654321/35114

N/A
N/A
Protected

Academic year: 2021

Share "National Sun Yat-sen University Institutional Repository:Item 987654321/35114"

Copied!
7
0
0

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

全文

(1)

行政院國家科學委員會專題研究計畫 成果報告

P2P 架構下 IP 網路影音傳輸之客戶端裝置設計與實作

計畫類別: 個別型計畫 計畫編號: NSC94-2622-E-110-007-CC3 執行期間: 94 年 05 月 01 日至 95 年 04 月 30 日 執行單位: 國立中山大學資訊工程學系(所) 計畫主持人: 林俊宏 計畫參與人員: 徐紳益,林承諺,陳志欣,侯承志 報告類型: 精簡報告 處理方式: 本計畫為提升產業技術及人才培育研究計畫,不提供公開查詢

中 華 民 國 95 年 6 月 29 日

(2)

行政院國家科學委員會專題研究計畫成果報告

P2P 架構下 IP 網路影音傳輸之客戶端裝置設計與實作

計畫編號:NSC 94-2622-E-110-007-CC3

執行期限:94 年 5 月 1 日至 95 年 4 月 30 日

主持人:林俊宏 國立中山大學資訊工程學系

計畫參與人員:陳志欣、徐紳益、許育偉、侯承志、林承諺、

夏銘君、高立功 國立中山大學資訊工程學系

一、中文摘要 由於網路頻寬的成長與語音編碼的進 步,讓語音可以在 Packet-Based 的網路環 境也可以有很好的品質,所以具有價格優 勢的網路電信服務也漸漸的可以取代部分 的傳統電信服務,然而為了同時可以支援 傳統電信與網路電話的服務,必須具備能 夠將網路封包及電信資料做交換的設備, 我們在本計畫中完成設計與實作一個網路 話機設備,使用 SIP 協定來建立與處理網 路電話的通話,並且可以支援傳統電話資 料與網路電話的資料交換。 我們使用嵌入式的發展環境來實作一 個網路電話的話機,硬體發展環境主要使 用 Infineon 公司的 EASY5120 系統,利用 系統中的數位訊號處理器來處理語音編解 碼的動作,並加速語音訊號處理的速度, 軟體方面使用 Linux 作為嵌入式作業系 統,利用 GNU 下廣大的 Open Source 軟體 的支援來發展我們需要的軟體元件,我們 在實作的過程中軟硬體之間的互動與協調 佔了大部分的時間,另外也面臨ㄧ些 VoIP 應用的問題,我們試圖以建構一個語音傳 輸的系統平臺,來進一步深入了解並解決 在 VoIP 應用上的一些難題,另外,我們也 希望藉由提出一個可以實際應用的嵌入式 VoIP 系統作為驗證與測試應用系統之效 能。 關鍵詞:VoIP、SIP、網路電話 Abstract

As network bandwidth growing and voice coding enhancing, voice transmitted over the Packet-Based network environment can also have good quality compared to traditional telephone network. Therefore the IP telecommunication services having a price advantage could gradually replace the traditional telecommunications services. However in order to support the traditional telecommunications services and IP phone service, there are devices required that capable to convert analog telephony information such as voice and fax into packet data suitable for transport over IP. We therefore design and implement a IP phone equipment that can make SIP phone calls, and can support the exchange of the analog traditional telephone voice and the digital voice packets over IP.

In the hardware design point of view, we implement an IP telephone phone set device in embedded development environment using Infineon EASY5120 development kit, which uses a full-time digital signal processor to handle VoIP digital signals such as voice encoding and decoding to increase the speed of digital signal processing. In the software design point of view, we choose Linux as our embedded operation system such that there are lots of GNU open source software to feed our need to develop our own software components. We make the process of interaction and coordination between the software and hardware most of the time, and also face some VoIP application problems.

(3)

We try to build a VoIP system to understand and figure out the difficult problems of VoIP problems. And we hope that this actually applicable VoIP embedded system can be used as a test and verify platform.

Keywords: VoIP, SIP, IP phone 二、概論

VoIP 指的是 Voice over IP,從字面 上解釋,是指透過 IP 網路協定來傳輸語音 訊號,而網路電話即是基於此種技術最顯 著的一項應用,傳統電信服務使用的傳輸 媒介是電話線,通話必須透過專一且獨佔 的電話線路來傳輸語音資料,而透過網路 來傳輸語音資料,資料經過分割包裝成為 封包,在經由網路傳輸出去,可以充分利 用網路的頻寬,因此使用現有的網路線路 來傳輸語音相較於傳統電信的電話線路在 成本上要低廉很多,所以網路電話的發展 一直是最近幾年很重要的議題。 近幾年由於網路寬頻的普及化、語音 編碼技術的發展下,使得網路電話的聲音 品質逐漸追上傳統電話,網路電話的軟體 如 Skype 等,使用率也迅速升高,但是還 是有很多人比較熟悉傳統電話的使用方 式,所以我們將系統設計在嵌入式系統 上,以電話機的形式呈現,讓使用者可以 在不改變使用傳統電話的習慣下,可以接 受使用網路電話的服務。 我們的目的是以嵌入式發展環境實現 一個網路電話話機與閘道器的功能,可以 適應各種網路環境,且能轉換傳統 PSTN 與 網路電話的服務,目的是讓使用者可以簡 單且方便的使用網路電話的服務,在不改 變習慣下,可以使用到網路電話低廉、方 便與完善的服務,另外基於我們的系統, 讓其他與 VoIP 相關的應用可以有個實驗與 測試的平台。 三、網路電話系統設計 對一般大眾來說,若是可以使用網路 電話低話費的優點,但是同時也可以保留 繼續使用傳統電話,使用傳統電信的服 務,讓使用者在網路電話服務尚未普及下 能一方面還保有可以使用傳統電信服務, 如此的話能方便的使用傳統電信和網路電 話的服務,對使用者來說是最為有利的方 案,使用者也會樂意使用網路電話的服 務。所以我們針對這個考量,將外線電話 的使用也納入設計考量中,同時也針對外 線電話的使用提供轉接的功能,讓網路電 話與外接電話能互相連接,大大提高使用 的靈活度。 A. 硬體架構設計 我們希望將硬體設計成 VoIP 的話機, 使用者可以接上網路線使用網路電話服 務,同時也提供內接話機和 PSTN 外線的使 用,可以在我們的網路電話機上接上一般 話機,使用一般話機使用網路電話服務, 或是接上 PSTN 電話線,使用傳統電話的電 信服務。 在話機介面方面,我們使用電話數字 鍵、功能鍵與光感測器等作為話機的介 面,除了一般標準的電話按鍵外,功能鍵 用在啟用一些自訂功能的時候,光感測器 用來偵測話筒掛卸,而透過 8052 micro controller 來負責控制存取他們的動作。 輸出/輸入介面: „ 兩個 RJ11 接頭,可連接 FXO 外線及 FXS 內線電話 „ PCM interface,連接到 RJ9 接頭,用 來連接話筒 „ 兩個 RJ45 接頭,設定成連接 LAN 與 WAN 的 port „ RS232 serial interface,用來連接 console,設計階段 debug 用

„ Serial interface COM port 2,連接 到 8052,用來控制電話按鍵與訊號

(4)

Fig. 1. 系統 IO 介面

PCM 話筒:

VINETIC 提 供 了 一 個 serial PCM interface 用 來 傳 輸 A-LAW 、 μ-LAW 或 ADPCM-compressed 的語音資料,透過這個 介面可以將語音資料經由 VINETIC 輸入做 其他語音編碼再輸出到網路,或是將已編 碼的網路語音資料透過 VINETIC 解碼在由 PCM interface 輸出。 另 外 我 們 選 擇 使 用 一 個 D/A 、 A/D Codec 晶 片 (Winbond W681310

Single-Channel Voiceband Codec) 將 digital data 轉換成 analog data 給話筒 耳機,或是將話筒麥克風的 analog data 轉 換 成 digital data 傳 送 到 PCM interface 去。 8052 電話介面設計: 我們使用 8052 microcontroller 來控 制電話介面:鍵盤按鈕與話機掛卸訊號, 8052 則透過一個 com port 來和 ADM5120 溝通。 Fig. 2. 電話介面硬體架構 B. 軟體架構設計 對於 IP Phone 的系統來說,軟體部分 大致上要包含以下幾個主要的子系統,才 能構成一個完整的系統: User Interface – 使用者的介面, 舉凡電話按鍵銀幕皆屬之。

Digital Signaling Processing – 數 位訊號的處理,包含 encoder,decoder 等。

Telephony Signaling Gateway – 負 責處理使用者間通話的溝通。

Network Interface Protocols – 網 路協定的 stack,只要由 OS 負責

Network Management Agent – 網路 服務,如 web service 提供網頁介面的設 定。

System Services – 其他支援系統的 服務,如 flash memory manager

作業系統方面,我們使用 Linux 作為 Embedded OS,使用 2.4.20 的 kernel,而 通常使用 linux 的好處有下列幾點: 1. 通常非商業版本的嵌入式 Linux 元件 可以免費的從網路上下載 2. 使用者可以取得 linux 核心的完整原 始碼 3. 支援多種類的 CPU,包括 x86,ARM, MIPS,PowerPC 等等 4. 穩定性佳 5. Linux 核心採用模組化的設計 6. Linux 核心具有一個標準的程式設計 介面 7. 眾多的免費開發工具 A. User Interface 使用者介面子系統在於提供軟體元件 讓使用者和 IP 電話溝通的介面,我們的系 統是網路電話的話機,所以在外觀上,是 跟話機相似,在輸入方面有話筒的麥克

(5)

風、電話按鍵與功能鍵,在輸出方面,有 LED 顯示銀幕、揚聲器負責鈴聲,話筒的耳 機。 這些輸出入的使用者介面都需要軟體 的驅動與對事件的反應,我們在設計上以 8052 微處理器來負責處理這些輸出入設備 的硬體訊號,而透過 serial 的介面讓驅動 的軟體與這些硬體訊號作底層的控制,而 應用程式在透過驅動的軟體來和硬體溝 通。

B. Telephony Signaling Gateway

Telephony Signaling Gateway 指的是負 責通話的建立、控制、取得資訊、終止等 等的控制程式,傳統電話透過電信局來管 理電話號碼,並且負責處理每個通話的建 立與終止,終端話機的狀態和資料都是透 過電話線來傳遞,而網路電話則是使用網 路封包來傳遞資訊,但是網路電話同樣的 也需要有像傳統電信局一樣的角色來管理 號碼與負責通話的建立與終止,所以說, 在 IP 網路中,要讓使用 IP Phone 的使用 者可以互相找到彼此並且可以建立通話, 這中間需要藉由一些國際電信組織所制定 的標準協定來達成,像是現今主流的協定 H.323 與 SIP。

C. Digital Signal Processing

在數位通訊的議題上,最重要的就是 數位訊號的處理,為了能讓資料量龐大的 聲音訊號能夠在網路上做即時的傳遞,首 先需要的是聲音的壓縮與解壓縮,另外像 是回音的消除、靜音的偵測等等,都是在 VoIP 上很重要的訊號處理,在軟體上我們 使用 driver 來和硬體的 DSP 處理器做溝 通,把數位訊號的處理讓硬體做一方面可 以加速訊號的處理,一方面也讓我們可以 專心在系統的建構上。 D. Network Management 網路服務的內容主要在支援 VoIP 系統 的功能,讓系統能因應不同的使用者提供 最適合的環境,也讓使用者能針對不同的 需求來設定自己的系統,我們提供以下服 務: DHCP、PPPoE、Static IP:讓使用者可 以針對不同的網路環境來選擇適合的網路 設定。 Web Server:使用者可以透過網頁的介 面來設定系統。 NAT&Gateway:讓使用者把我們的系統做為 一個 ip 分享器,即使只有一個 IP 的上網 環境,也能讓使用者同時使用網路電話與 其他上網設備。 E. SIPUA 運作流程 SIPUA 為網路電話的核心程式,等於 是我們的網路電話的 agent,它負責的部份 包含三大項: 1. 處理 SIP 的訊息 2. 控制 VINETIC 3. 和使用者介面溝通

ㄧ方面 SIPUA 扮演 sip 的 user agent, 和網路上其他的 sip user agent 透過 sip 協定來溝通,而透過控制 VINETIC 晶片(系 統的 DSP),可以在通話建立後去處理語音 資 料 的 編 解 碼 , 或 是 透 過 analog-line-module 來控制 analog 介面 的 FXO 及 FXS,和使用者介面的溝通則是透 過 KEYPAD 來達成。

(6)

Fig.3 SIPUA 流程圖

SIPUA 一開始會初始化 VINETIC 晶 片,透過一開始的初始化程序也設定好晶 片,讓晶片能正常運作,接著建立和 KEYPAD 溝通的 FIFO,我們透過 FIFO 這個 IPC 機制 讓 SIPUA 與 KEYPAD 來互傳溝通訊息,而透 過我們自己定義的訊息格式,我們就可以 藉由 FIFO 來傳遞任何的資訊讓 KEYPAD 與 SIPUA 溝通,接下來讀取設定檔,設定檔的 內容包含網路環境設定、SIP 相關設定:使 用者名稱、密碼、音量、Codec 的選擇、 Forwarding 的設定等,然後根據 SIP 使用 者的設定向 SIP proxy server 註冊。

在 SIPUA 的前置作業完成後,會啟動 四個 Thread 分別負責不同的工作,Sip Event Thread 負責處理 SIP 的 event,像 是 INVITE、ACK、ANSWERED 等,每個 event 分別對應到收到的不同的 SIP message,而 Sip Event Thread , 則 必 須 根 據 不 同 的 event 來做出反應,例如收到 Invite,則 紀 錄 call information , 然 後 通 知 KEYPAD , 讓 電 話 鈴 聲 響 起 來 。 Sip Registration Thread 負責維持 SIP Proxy 的註冊,因為 SIP user agent 在向 Proxy Server 註冊的時候會有一個註冊有效的時 間,而在時間終結的時候需要更新註冊的

狀態,Sip Registration Thread 即是負責 保證註冊的有效性,另外由於 KEYPAD 裡有 維護一個 SIPUA alive 的 watchdog,用來 確保 SIPUA 程式在可作用的狀態下,所以 SIPUA 必須在每 3 秒向 KEYPAD 更新這個 alive counter,否則 KEYPAD 會重新把 SIPUA 執行起來,確保系統的可用性,而如 此做的原因是由於嵌入式系統所要求的高 穩定性,在系統開機後可能面對的是長久 的工作時間,必須確保系統都能正常運 作,而不是讓使用者在遇到問題之後再去 重新啟動機器,另外 Sip Registration Thread 會檢查註冊後 Proxy Server 回應註 冊的成功或失敗,並回報給 KEYPAD,反應 在使用者介面上,閃燈表示失敗,不閃燈 表示註冊正常。UI Event Thread 負責處理 使 用 者 介 面 的 events , 像 是 拿 話 筒 (off-hook)、掛話筒(on-hook)、撥號 等,FXO 則是連接 PSTN 電話線,所以透過 這個介面可以讓網路電話和 PSTN 互通,ALM Event Thread 可以偵測到 PSTN 的 RING 訊 號,有來電的時候則通知 KEYPAD 響鈴。 四、SIP 協定

Session Initial Protocol 簡稱為 SIP,是 網際網路工程工作小組(IETF)發展出作為 H.323 的替代方案,為 VoIP 特別設計的一 個 更 新 、 更 簡 單 的 協 定 , 是 一 應 用 層 (application level) 的控制協定,用以 産生、修改及終止單方或多方的多媒體會 談 (multimedia session) ,而它的好處 在 於 它 是 以 其 它 常 用 的 互 聯 網 協 定 (Internet protocol) 為基礎,如 HTTP 及 SMTP,用戶端先向伺服器傳送要求,然後 由伺服器經處理後傳送回覆到用戶端。 由於 SIP 是一主從式(server/client) 的傳輸架構,因此都是由客服端(client) 發出要求(Request),再由伺服端(Server) 接受請求(Request)且發出回應(Reply), 整個 SIP 是由四個元件構成的,SIP 用戶代 理(SIP User Agent),SIP 代理伺服器(SIP

Proxy) , SIP 註 冊 伺 服 器 (SIP

Registration),和重新定向伺服器(SIP Redirect Server)。

(7)

SIP 的通訊運作流程就如圖所示,首先 由 Caller(呼叫方)發出 Invite 請求, Proxy Server 收到後轉送到 Callee(被呼 叫方),接著 Callee 發出 180 Ring 的請求 和 200 OK 的回應,同樣由 Proxy Server 收到後轉送到 Caller,Caller 收到後回傳 一 個 ACK , 雙 方 通 話 就 此 開 始 , 藉 由 Internet 傳送 RTP 的語音封包,結速通話 時,由先掛斷方送出 BYE 的訊息,對方回 應 200 OK,通話就此結束。 Fig.4. SIP 通訊運作流程 五、結論 我們希望以建構一個 VoIP 的系統,一 個實際可應用的嵌入式 VoIP 系統來了解與 解決 VoIP 應用的一些難題,且可以作為驗 證與測試 VoIP 效能的平台。 經過測試與實作,我們發展的 VoIP 系 統,在語音品質與提供的 VoIP 服務都有很 好的表現,另外可以最為之後其他 VoIP 應 用的基石,提供更佳的功能與服務。 六、參考文獻

[1] W.E. Witowsky “IP Telephone Design and Implementation Issues”

[2] Infineon technology, "EASY5120 2-Channel VoIP Router Reference Package Hardware Description" Mar. 2005.

[3] RFC 3261 – SIP: Session Initiation Protocol

[4] Infeneon technology Corp.,

http://www.infineon.com/.

[5] “VINETIC®-2CPE Preliminary Data Sheet , Rev 1.0, May 2004”

數據

Fig. 1.  系統 IO 介面

參考文獻

相關文件

A1: 資訊系統的操作對於我們來說友善程度沒有那麼高,雖然它每年持 續的在改進啦,其實大家都知道 TIMS 非常的難用,從以前就通道說 TIMS

SPCE061A 的開發是通過線上調試器 PROBE 實現的。它既

建模時,若我們沒有實際的物理定律、法則可以應用,我們 可以構造一個經驗模型 (empirical model) ,由所有收集到

(A)因為用 Terminal Services 可以不用安裝 ERP 的程式在 Client 端上可以減少 MIS 維護系 統的時間(B)沒有防毒軟體 (C)建置防火牆的系統 (D) APP-Server 與 DB

 為了更進一步的提升與改善本校資訊管理系 的服務品質,我們以統計量化的方式,建立

利用 determinant 我 們可以判斷一個 square matrix 是否為 invertible, 也可幫助我們找到一個 invertible matrix 的 inverse, 甚至將聯立方成組的解寫下.

1.學生體驗Start on tap、一個角色同 時可觸發多於一 個程序及經歷運 用解決問題六步 驟編寫及測試程 序.

在生活中體證禪、領悟禪的真諦,這是「禪與生活一體」的第