1 / 30

實驗 一 : RTP

實驗 一 : RTP. 實驗目的 了解如何利用 RTP 在網路上傳送語音封包 加深對 RTP 、 RTCP 封包的基本格式的認識 實作部分. IP Network. SIP Signaling. RTP Media Stream. 利用 cclRTP( 工研院技轉 ) ,處理 RTP 的傳送與接收,以及聲音的輸出入。. 介紹 cclRTP( 工研院電通所技轉,僅附 object code). 處理 RTP 的傳送與接收 (cclRtp.h cclRtp.c rtp.h rtp.c) 處理聲音的輸出入 (WavInOut.h WavInOut.c)

karma
Download Presentation

實驗 一 : RTP

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 實驗 一 : RTP • 實驗目的 • 了解如何利用RTP在網路上傳送語音封包 • 加深對RTP、RTCP封包的基本格式的認識 • 實作部分 IP Network SIP Signaling RTP Media Stream 利用cclRTP(工研院技轉),處理RTP的傳送與接收,以及聲音的輸出入。

  2. 介紹cclRTP(工研院電通所技轉,僅附object code) • 處理RTP的傳送與接收(cclRtp.h cclRtp.c rtp.h rtp.c) • 處理聲音的輸出入(WavInOut.h WavInOut.c) • 將RTP與聲音的輸出入結合,並建立到對方的RTP連線(SimRTPDlg.h SimRTPDlg.c)

  3. 實驗流程 (1/3) • 硬體需求:音效卡、喇叭、麥克風、區域網路、網路卡、IP • CSimRTPDlg::CSimRTPDlg中加入cclRTPStartup(2) • 做RTP的一些物件初始化 • 設定最大channel數為2 • RTPOpenPort()開啟RTP port

  4. 實驗流程 (2/3) • void CSimRTPDlg::OnOK()中把WavIO關閉 • 加入RTPPeerConnect(ConnectIP,ConnectPort)將RTP連線到對方電腦 • IP為ConnectIP • port為ConnectPort(這裡內定為9000) • 開啟聲音的IO,即可以開始傳送RTP

  5. 實驗流程 (3/3) • 程式執行後如下: 兩台按連線可通話 輸入對方IP 連線後變掛斷 按Exit離開

  6. 程式流程 • 先執行 CSimRTPDlg::CSimRTPDlg • 初始化cclRTP與WavIOObj • 開啟RTP port。 • 按下“連線”按鍵後,程式會呼叫OnOK function • 先關閉WavIO • 再呼叫RTP連線,並指定target ip與port。 • 指定好target ip與port之後 • 程式會先把buffer清掉 • 再開啟WavIO,並開始錄放聲音

  7. 實驗二 : SIP User Mobility • 實驗目的 • 藉由Location Server和Redirect Server的設計,深入瞭解SIP的運作及訊息格式。 • 實作部分 (1)實作一個 Location Server 來接收 SIP REGISTER ,而且 要將 REGISTER 中 Contact header 裡的URI記錄下來 。

  8. (2)實作一個 Redirect Server 來接收 SIP INVITE Requests , 並且對INVITE Request 送出 SIP 302 Moved Temporarily Response,其中要把剛剛紀錄下來的 URI 放在 Contact header中。

  9. Sample [1/5] • CCL SIP User Agent (1)Preference (喜好設定)

  10. Sample [2/5] 勾掉(因為不用Proxy) 填入Registar的IP,Port

  11. Sample [3/5] 填入自己的名字 填入想要聽的Port

  12. Sample [4/5] Jay@ntu.edu.tw REGISTER To:Jay@hinet.net Contact:Jay@ntu.edu.tw 200 OK

  13. Sample [5/5] Jay@ntu.edu.tw Flora@nctu.edu.tw (1)SIP:Jay@hinet.net (2)SIP:Jay@ntu.edu.tw (3)SIP:Jay@ntu.edu.tw SIP:Jay@hinet.net

  14. 程式實做部分 • Location Server, Redirect Server可用各種程式語言實做,包括Java Socket, WinSock, Perl, Berkely Socket … • 程式架構如下 : 將Location Information 放置於檔案或資料庫中 接收註冊訊息, 並且進行Parse 接收INVITE訊息, 並且進行Parse 傳回302 Move Temporarily 的 SIP Message

  15. 實驗三 : MGCP • 實驗目的 • 使同學瞭解MGCP模擬程式和基本通話流程,熟悉MGCP的命令與訊息,並了解Call Agent程式的運作,並學會開發新的通話服務。 • 實驗原理 修改 CA 以開發新服務 SS7 CA SG MGCP TGW RGW CO PSTN RTP

  16. 實驗流程 (1/4) 加入RGW 加入CA 選擇是否語音支援

  17. 實驗流程 (2/4) 初始化CA 編輯更改 初始化RGW 初始化Endpoint

  18. 實驗流程 (3/4) 完成模擬環境建構

  19. 實驗流程 (4/4) CA會偵測其管轄區域內的電話 RGW其管轄區域內的電話 會自動向CA進行註冊 電話顯示狀態

  20. CA設定 (1/3) 模擬程式選擇的port 模擬程式所在之IP

  21. CA設定 (2/3) • 此為接收RGW訊息的位置 為CA所在的電腦IP CA所在的port

  22. CA設定 (3/3) RGW所屬IP RGW所屬port CA所管理的電話端資料 電話端id

  23. RGW設定(無Voice Support) 接收RGW訊息的位置 接收CA訊息的位置 可供使用者選擇訊息需透過哪一個位置(通常都設和RGW相同的Domain Name和不相衝的port) 顯示出此RGW下電話端點ID(endpointID)的範圍

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

  25. 電話鍵盤按鍵意義 此視窗顯示所傳送的指令 其意義為: 電話endpointID +指令 此為拿起電話(hd指令) 此為掛上電話(hu指令) 此為傳送指令按鍵 此為電話鍵盤(符號數字指令)

  26. 通話服務的開發(1/4) • 實驗步驟二: 開發新服務 (話中插撥、隨身碼、熱線…) 決定開發的新服 務的通話流程 畫出 message flow 修改CA的finite state machine

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

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

  29. 通話服務的開發(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的部分檔案。

  30. 範例 隨身碼(Follow-me Service)

More Related