實驗三 : MGCP

22
1 N TU C SIE VoIP Lab N TU C SIE VoIP Lab 實實實 : MGCP 實實實實 實實實實實 MGCP 實實實實實實實實實實實 實實 MGCP 實實實實實實 實實實 Call Agent 實實實實實 實實實實實實實實實實實實 ,。 實實實實 CA TGW RGW SS7 PSTN CO SG RTP MGCP 修修 CA 修修修修修修

description

實驗三 : MGCP . 實驗目的 使同學瞭解 MGCP 模擬程式和基本通話流程,熟悉 MGCP 的命令與訊息,並了解 Call Agent 程式的運作,並學會開發新的通話服務。 實驗原理. 修改 CA 以開發新服務. SS7. CA. SG. MGCP. TGW. RGW. CO. PSTN. RTP. 執行 MGCP simulation Program. 將網頁上 voip_v1.zip 的資料夾解壓縮後存於電腦中,直接點選 VoIP.exe 即可使用。資料夾中其他檔案均為所需,不得任意刪減,否則將可能無法正確執行。 - PowerPoint PPT Presentation

Transcript of 實驗三 : MGCP

Page 1: 實驗三  : MGCP

1

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

實驗三 : MGCP 實驗目的

使同學瞭解 MGCP 模擬程式和基本通話流程,熟悉 MGCP 的命令與訊息,並了解 Call Agent 程式的運作,並學會開發新的通話服務。 實驗原理

CA

TGW RGW

SS7

PSTN CO

SG

RTP

MGCP

修改 CA 以開發新服務

Page 2: 實驗三  : MGCP

2

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

執行 MGCP simulation Program

將網頁上 voip_v1.zip 的資料夾解壓縮後存於電腦中,直接點選 VoIP.exe 即可使用。資料夾中其他檔案均為所需,不得任意刪減,否則將可能無法正確執行。 voip_v1 所放置的路徑不得有空白,否則模擬程式將無法正確執行 (ex: 不的放於 My document ,桌面 .. )

Page 3: 實驗三  : MGCP

3

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

實驗流程 (1/4)

加入 CA加入 RGW

選擇是否語音支援

Page 4: 實驗三  : MGCP

4

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

實驗流程 (2/4)

初始化 CA

初始化 Endpoint初始化 RGW

編輯更改

Page 5: 實驗三  : MGCP

5

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

實驗流程 (3/4)

完成模擬環境建構

Page 6: 實驗三  : MGCP

6

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

實驗流程 (4/4)

CA 會偵測其管轄區域內的電話 RGW 其管轄區域內的電話會自動向 CA 進行註冊 電話顯示狀態

Page 7: 實驗三  : MGCP

7

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

CA 設定 (1/3)

模擬程式所在之 IP

模擬程式選擇的 port

Page 8: 實驗三  : MGCP

8

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

CA 設定 (2/3)

此為接收 RGW 訊息的位置

為 CA 所在的電腦 IP

CA 所在的 port

Page 9: 實驗三  : MGCP

9

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

CA 設定 (3/3)

CA 所管理的電話端資料 電話端 id

RGW 所屬IP

RGW 所屬 port

Page 10: 實驗三  : MGCP

10

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

RGW 設定 ( 無 Voice Support)

接收 RGW 訊息的位置接收 CA 訊息的位置

可供使用者選擇訊息需透過哪一個位置 ( 通常都設和 RGW 相同的 Domain Name 和不相衝的 port) 顯示出此 RGW 下電話端點

ID(endpointID) 的範圍

Page 11: 實驗三  : MGCP

11

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

RGW 設定 ( 有 Voice Support)

接收 RGW 訊息的位置接收 CA 訊息的位置

可供使用者選擇訊息需透過哪一個位置 ( 通常都設和 RGW 相同的 Domain Name 和不相衝的 port) 選擇此 RGW 所管的電話端點資料存放位置

Page 12: 實驗三  : MGCP

12

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

電話鍵盤按鍵意義

此為拿起電話 (hd 指令 )

此為掛上電話 (hu 指令 )

此為電話鍵盤 ( 符號數字指令 )

此視窗顯示所傳送的指令其意義為:電話 endpointID + 指令

此為傳送指令按鍵

Page 13: 實驗三  : MGCP

13

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

通話服務的開發 (1/4)

實驗步驟二 : 開發新服務 ( 話中插撥、隨身碼、熱線… )

決定開發的新服務的通話流程

畫出 message flow

修改 CA 的finite state machine

Page 14: 實驗三  : MGCP

14

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

開發環境 程式是以 C 語言所撰寫,開發者需備有 Microsoft

Visual Studio C++ ,或其他可編譯 C 語言的軟體。將casim.zip 檔案解壓縮後存於電腦硬碟任一資料夾中,開啟通話代理人程式開發專案 CASim.dsw 檔案,選擇CASim.cpp 後則可進行新服務的開發。

目前測試的結果用 Visual Studio .NET 2003 會有問題,所以最好使用 Visual C++ 6.0.

Page 15: 實驗三  : MGCP

15

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

通話服務的開發 (2/4) MGCP 正常的通話訊息流程 :

Page 16: 實驗三  : MGCP

16

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

通話服務的開發 (3/4) 基本通話有限狀態機 (由通話訊息流程決定)

Page 17: 實驗三  : MGCP

17

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

通話服務的開發 (4/4) 通話代理人 Call Agent 程式運作

(A),(B) 構成 call agent simulator, (B) 中 mgcLoop 會接收來自 (C)RGW 的 MGCP Msg, 然後再由 (A) 應用層根據訊息,目前的通話狀態,還有caller 及 callee 的元件狀態,呼叫對應的執行程式,然後回應 Ack 給對應的 MGCP 程序並決定 caller,callee 的下一狀態。我們主要更改的部分為(A) 應用層,即 CASim.cpp 的部分檔案。

Page 18: 實驗三  : MGCP

18

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

範例 隨身碼 (Follow-me Service)

Page 19: 實驗三  : MGCP

19

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

執行方法 將 CASimd.exe 複製到 Voip_v1 所在的資料夾中,然後在 simulator 上就可看到所發展的成果。

Note: CASimd.exe 是透過 socket 和 simulator 的interface 做 communication. 所以 simulator 上的 ip address 一定要填正確。

How to Debug:CA 在每個動作完成都會 log 至 file, programmer也可將debug message output 至 file.

Page 20: 實驗三  : MGCP

20

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

程式說明 1

msgToUI.c : 負責讓 CA 和 UI 能夠傳遞message ,這部份是已做好的不用管它。 msgToUI.h :

finite state machine 的 statetype :這部份就是programmer 需要新增的地方。

EndpoindData :對於每個 user(telephone) 所需紀錄的資料。 trace.h, trace.c: 用來 debug 用,可用 PRINT印到營幕並寫到檔案 tool.h, tool.c: 完全用不到

Page 21: 實驗三  : MGCP

21

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

程式說明 2

CASim.h: StateType: stateType 的字串,當加入一個新的

state時也需把此字串加入 CASim.c:

整個 CA 的主程式,此次作業最主要要修改的就是processCallFlow()這個函數,根據不同的 state 收到不同的 events 要做不同的事。

Page 22: 實驗三  : MGCP

22

NTU CSIEVoIP Lab

NTU CSIEVoIP Lab

作業要求與繳交方式 評分方式:

程式部份: 80% 報告: 20% 創新性及完整性: 20%

繳交方式 mailto : [email protected] 信件標題 : 學號 _姓名 附件

source code file 報告

內容必須說明你所開發的新服務為何, finite state machine, message flow …等 繳交期限

2004/06/01 PM6:00 Demo時間 :2004/06/02 AM10:00~PM5:00 ,如有不行者請另外跟我約時間。