[原創] Megaco基本呼叫流程 - VoIP(Megaco/H.248)學習筆記系列之一

VoIP(Megaco/H.248)基本呼叫流程

 

最近總結了一下Megaco/H.248基本呼叫的流程,不含任何錯誤處理,先用文字的方法描述如下,後續會陸續推出時序圖版本,以及其他基本流程,如MG註冊,MG lock/unlock,長時間摘機不撥號,被叫用戶忙,撥號錯誤,supplemental service,如Call Waiting(呼叫等待),Call Transfer(呼叫轉接),Three Way Call(三方通話)等,盡情期待!


名詞解釋


VoIP(Voice Over IP): 網絡電話,通過IP網絡來傳輸語音信息。
Megaco/H.248: ITU-T和IETF基於軟交換的思想共同制定的媒體網關控制協議,與SIP各有千秋。

DSP: Digital Signaling Processor(數字信號處理器) - e.g. MindSpeed M82359
VCP: Virtual Control Processor(微處理器) - e.g. Zarlink Le79271
SLAC: Subscriber Line Audio Processing Circuit(用戶線音頻處理電路) - e.g. Zarlink Le79238
SLIC: Subscriber Line Interface Circuit(用戶線接口電路) - e.g. Zarlink Le79121

場景

MGC -- MG1 -- UserA
        -- MG2 -- UserB

基本呼叫流程

- 用戶A摘機(Offhook):SLIC輸出給VCP終端信號,從而引起VCP中斷。

- MG1向用戶A送撥號音(Dialtone):VCP接到SLIC終端信號後,發生中斷,執行送撥號音子程序,將存儲器(Register)中撥號音碼經U接口迴環給POTS。POTS的 CODEC(編碼解碼器)將這些撥號音PCM碼進行處理後變成模擬信號RCV輸出到SLIC的RCVN和RCVP差分輸入端,再經SLIC的PT、PR輸出給話機,使之發出撥號聲音。

- MG1檢測到用戶A的摘機,將此摘機事件通過Notify命令上報給MGC;

- MGC向MG1返回Reply;

- 用戶A撥號(Dial digits):用戶A聽到撥號音後就可進行撥號,VCP接收到第一個撥號號碼後就會停止對POTS送撥號音信號。撥號模擬信號經SLIC輸出給DTMF(雙音多頻處理器件),DTMF將其變成二進制的8421碼並等數據有效後(Dva/DVb爲高)送給VCP。

- MG1將所收集到的號碼與從MGC下載的DigitMap做匹配比較,如果合法,則將所撥號碼及匹配結果用Notify消息上報MGC;

- MGC向MG1返回Reply;

- MGC向MG1發送Add消息,在MG中創建一個context,並在context中加入用戶A的termination和RTP termination,其中RTP 的Mode設置爲ReceiveOnly,並設置語音壓縮算法(如G.711);

- MG1向MGC返回Reply消息,其中攜帶分配的RTP資源,包括IP地址、採用的語音壓縮算法(如G.711)和RTP 端口號等;

- MGC向MG2發送Add消息,在MG2中創建一個context,並在context中加入用戶B的termination 和RTP termination,其中RTP的Mode設置爲SendOnly,並設置語音壓縮算法;

- MG2向MGC返回Reply消息,其中攜帶分配的RTP資源,包括IP地址、採用的語音壓縮算法(如G.711)和RTP 端口號等;

- MGC向MG1發送Modify消息,在MG1中把用戶A的RTP Mode設置爲SendReceive;

- MG1向MGC返回Reply;

- MGC向MG2發送Modify消息,請求MG2給用戶B送振鈴音(al/ri);

- MG2的VCP控制SLIC產生鈴流信號,該鈴流信號通過SLIC的PT/PR輸出到用戶B的話機,使得話機產生振鈴(Alerting),振鈴節奏由VCP控制。

- MG2向MGC返回Reply;

- 用戶B摘機(Offhook),SLIC輸出給VCP終端信號,從而引起VCP中斷。

- MG2檢測到用戶B的摘機,將此摘機事件通過Notify命令上報給MGC;

- MGC向MG2返回Reply;

- MGC向MG2發送Modify消息,在MG2中把用戶B的RTP Mode設置爲SendReceive;

- MG2向MGC返回Reply;

------------------- 此時用戶A和用戶B的RTP通話正式建立 -------------------

RTP(Real Time Protocol)連接建立成功後,模擬語音信號通過SLAC的轉換爲數字信號,形成TDM(Time Division Multiplex)流,TDM流經過DSP的處理變爲IP包通過IP網絡進行傳輸,接收端先通過DSP將IP包轉化爲TDM流,再通過SLAC轉換爲模擬信號。

------------------- 用戶B先掛機結束通話 -------------------

- 用戶B掛機(Onhook),SLIC輸出給VCP終端信號,從而引起VCP中斷。

- MG2檢測到用戶B的掛機,將此掛機事件通過Notify命令上報給MGC;

- MGC向MG2返回Reply;

- MGC向MG2發送Subtract消息,釋放用戶B和及其RTP連接;

- MG2向MGC返回Reply,釋放資源,並向MGC上報呼叫的媒體流統計信息;

- MGC向MG1發送Modify命令,請求MG1給用戶A放忙音(cg/bt)

- MG1向用戶A放忙音(Busy Tone),VCP執行放忙音子程序,將存儲器(Register)中忙音碼經U接口迴環給POTS,POTS的CODEC(編碼解碼器)將這些忙音PCM碼進行處理後變成模擬信號RCV輸出到SLIC的RCVN和RCVP差分輸入端,再經SLIC的PT、PR輸出給話機,使之發出忙音。

- MG1向MGC返回Reply;

- 用戶A掛機(Onhook), SLIC輸出給VCP終端信號,從而引起VCP中斷。

- MG1檢測到用戶A的掛機(Onhook),將此掛機事件通過Notify命令上報給MGC;

- MGC向MG1返回Reply;

- MGC向MG1發送Subtract消息,釋放用戶A及其RTP連接;

- MG1向MGC返回Reply。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章