• 沒有找到結果。

第三章、 系統架構

3.3 系統運作

系統的運作可以分為 Asterisk PBX 彼此之間的連結關係,包含加入、離開信 任群組,使用者向 Asterisk PBX 進行註冊的程序,系統與異質語音網路服務之間 的連結方式,以及通話的建立,通話的建立又包含了路由的找尋、信令的傳遞、

媒體串流的傳輸。

3.3.1 Asterisk PBX 加入信任群組

我們使用 DUNDi 的協定來串連所有的 Asterisk PBX 伺服器,因此所有地點 的 Asterisk PBX 伺服器必頇遵守 GPA 的規範,確保各自的路由資源不會被濫用,

藉此也保護各分點使用者的網路電話不會遭受垃圾電話的打擾。使用 DUNDi 串 接 Asterisk PBX 伺服器不需要所有的 Asterisk PBX 伺服器都加入同一群組,群組 與群組之間只需要有一個以上的連線,系統運作即可保證能正常運作。每一

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 伺服器的網路

使用者的註冊認證流程如圖 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 語音網路

(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 通話建立運作機制

通話建立的運作係依照使用者的發話端與目的端的不同與不同的異質語音

網路服務使用者的通訊分成以下三種使用型態:(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 使用者通訊流程圖

圖 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。最後兩位使用者即可開始進行媒體 串流的傳輸,開始進行通話。

圖 16、SIP 使用者跨越相同信任群組 Asterisk PBX 伺服器進行通訊流程圖

圖 17、SIP 使用者跨越相同信任群組 Asterisk PBX 伺服器進行通訊示意圖 (3) 不同信任群組下的跨越 Asterisk PBX 伺服器的 SIP 使用者通訊

DUNDi 通訊協定來達成跨越 Asterisk PBX 伺服器的需求,與(2)在相同 信任群組下的跨越 Asterisk PBX 伺服器的 SIP 使用者通訊不同的是,此 種通訊型態,使用者的 Asterisk PBX 伺服器無需與所有的 Asterisk PBX 伺服器建立信任連結。只要在其信任群組內,有一個 Asterisk PBX 伺服 任群組內的每一個 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 進行通話。

圖 18、SIP 使用者跨越不同信任群組 Asterisk PBX 伺服器進行通訊流程圖

圖 19、SIP 使用者跨越不同信任群組 Asterisk PBX 伺服器進行通訊示意圖 (4) SIP 語音網路使用者與其它異質語音網路使用者通訊

此種通訊型態係為了增加 SIP 網路電話系統的多元性,使整個網路電話 系統能夠更加完備,因此我們分別使用了 Skype Gateway 與 Analog

為 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 用戶進行通話。

圖 20、SIP 使用者與 skype 使用者進行通訊流程圖

圖 21、SIP 使用者跨與 PSTN 使用者進行通訊流程圖

圖 22、SIP 使用者與其它異質語音網路使用者進行通訊示意圖

相關文件