相關(guān)鏈接: 中國(guó)安全網(wǎng) 中國(guó)質(zhì)量網(wǎng) 中國(guó)論文網(wǎng) 中國(guó)資訊網(wǎng)
MEGAC0/h.248協(xié)議是 ITU和IETF第一次攜手共同制定一個(gè)雙方都認(rèn)可V0IP 協(xié)議標(biāo)準(zhǔn)。協(xié)議的制定也反映了電信網(wǎng)和Internet的融合趨勢(shì)。在提倡三網(wǎng)融合的今天H.248協(xié)議的解碼在三網(wǎng)融合中起著重要的作用。
論文關(guān)鍵詞:軟交換,h.248協(xié)議,MGC,MGW
軟交換作為下一代網(wǎng)絡(luò)的核心技術(shù)倍受業(yè)界關(guān)注。軟交換的核心思想是呼叫與承載分離、業(yè)務(wù)與控制分離,就是將傳統(tǒng)交換機(jī)的媒體流承載、呼叫控制、業(yè)務(wù)提供等功能分散到不同的網(wǎng)絡(luò)構(gòu)件中。傳統(tǒng)的網(wǎng)關(guān)既要支持媒體變換又要支持媒體控制和信令,功能過(guò)于復(fù)雜,對(duì)于IP電話系統(tǒng)的大規(guī)模部署有很大的制約。于是人們提出了網(wǎng)關(guān)分離的思想,即把原來(lái)集媒體和信令轉(zhuǎn)換功能的網(wǎng)關(guān)分離為媒體網(wǎng)關(guān)和信令網(wǎng)關(guān),兩者通過(guò)媒體網(wǎng)關(guān)控制器聯(lián)系,結(jié)構(gòu)見(jiàn)圖1。
圖1. 網(wǎng)關(guān)分離功能模型
其中MGW(Media Gateway)負(fù)責(zé)媒體格式的轉(zhuǎn)換及PSTN和IP兩側(cè)通路的連接;SGW(SignallingGateway)負(fù)責(zé)信令的底層轉(zhuǎn)換,即從TDM 電路傳送轉(zhuǎn)變?yōu)镮P網(wǎng)絡(luò)中的傳送方式,從應(yīng)用層的角度看,SGW 對(duì)于信令仍是透明的;MGC(Media Gate—way Controller),又稱SoftSwitch或Call Agent,負(fù)責(zé)根據(jù)收到的信令控制MG 的連接建立和釋放。MGC對(duì)信令消息進(jìn)行分析和處理并進(jìn)行應(yīng)用層的互通變換。不同類型的網(wǎng)關(guān)可以支持不同類型的終端。
1 H.248協(xié)議概述
1.1 連接模型
H.248協(xié)議的連接模型由關(guān)聯(lián)域(Context)和終端(Termination)組成,終端指媒體網(wǎng)關(guān)上發(fā)起或終結(jié)一個(gè)或多個(gè)媒體流的邏輯實(shí)體,關(guān)聯(lián)域用來(lái)描述終端之間的連通關(guān)系,只有存在于同一關(guān)聯(lián)域的終端之間才可通信。
1.2協(xié)議消息
H.248協(xié)議定義了8 個(gè)命令,分別為:(1)僅由MGC端發(fā)起的命令:Add為MGC指示MG 向指定的關(guān)聯(lián)域中加入終端;Subtract為MGC指示MG從關(guān)聯(lián)域中去除終端;Move為MGG指示MG把終端從一個(gè)關(guān)聯(lián)域移到另一個(gè)關(guān)聯(lián)域;Modify為MGC指示MG修改終端的屬性、事件或信號(hào)等;AuditValue為MGC請(qǐng)求MG返回終端的屬性、事件、信號(hào)和統(tǒng)計(jì)特性的當(dāng)前值;AuditCapabilities為MGC請(qǐng)求MG返回反映網(wǎng)關(guān)處理能力的終端的屬性、事件、信號(hào)和統(tǒng)計(jì)特性的所有可能值。(2)僅由MG端發(fā)起的命令有:Notify為MG向MGC報(bào)告其檢測(cè)或發(fā)生的事件。(3)MGC端和MG端都可發(fā)起的命令有:ServiceChange為MG 向MGC通知終端將要退出服務(wù)或恢復(fù)正常的服務(wù),MGC也可用此命令向MG指示相關(guān)終端退出服務(wù)或恢復(fù)正常的服務(wù)。用于對(duì)協(xié)議連接模型中的邏輯實(shí)體(關(guān)聯(lián)和終端)進(jìn)行操作和管理,命令提供了實(shí)現(xiàn)對(duì)關(guān)聯(lián)和終端進(jìn)行完全控制的機(jī)制。
1.3 事務(wù)和消息
每個(gè)事務(wù)(transaction)賦予一個(gè)事務(wù)標(biāo)識(shí),用以關(guān)聯(lián)事務(wù)請(qǐng)求和事務(wù)響應(yīng)。事務(wù)分別為事務(wù)請(qǐng)求、事務(wù)進(jìn)展和事務(wù)響應(yīng)。事務(wù)請(qǐng)求由事務(wù)發(fā)送者調(diào)用,用于發(fā)送命令;事務(wù)進(jìn)展由事務(wù)接收者調(diào)用,表示事務(wù)還在處理中;事務(wù)響應(yīng)由事務(wù)接收者調(diào)用,用于回送命令執(zhí)行結(jié)果。一個(gè)或多個(gè)事務(wù)級(jí)聯(lián)組合后形成消息(message)。消息有一個(gè)頭部,其中包含消息發(fā)送者的標(biāo)識(shí)。消息中包含的各個(gè)事務(wù)獨(dú)立處理,沒(méi)有順序規(guī)定。
1.4 協(xié)議編碼和傳輸
H.248協(xié)議消息可以采用ASN.1和文本兩種方式進(jìn)行編碼。在IP網(wǎng)絡(luò)上,傳輸層可使用TCP或UDP協(xié)議,推薦使用UDP協(xié)議傳送。由于UDP是無(wú)連接的協(xié)議,所以H.248協(xié)議采用了定時(shí)重發(fā)機(jī)制,保證了消息的正確傳送。
2. H.248協(xié)議的實(shí)現(xiàn)
2.1解碼模塊的總體設(shè)計(jì)方案
H.248協(xié)議解碼采用模塊化的設(shè)計(jì)思想整個(gè)解碼軟件分為:消息預(yù)解碼模塊、事務(wù)預(yù)解碼模塊和動(dòng)作解碼模塊。
消息預(yù)解碼:判斷消息長(zhǎng)度是否合法,如果是,執(zhí)行下一步,否則退出對(duì)消息頭解碼對(duì)事務(wù)類型及事務(wù)ID解碼,搜索事務(wù)字符串,將事務(wù)字符串分發(fā)給相應(yīng)的事務(wù)預(yù)解碼單元。
事務(wù)預(yù)解碼:對(duì)動(dòng)作的上下文ID解碼搜索動(dòng)作字符串并將動(dòng)作字符串分發(fā)給相應(yīng)的動(dòng)作解碼單元。
動(dòng)作解碼:對(duì)動(dòng)作字符串解碼,生成h.248的內(nèi)部消息。完成對(duì)h.248消息的解碼。
因此在對(duì)h.248消息解碼的過(guò)程中最主要的參數(shù)是:
Message_Id: (Domain Address/domain name/Device/name). a string of chars
Transaction_Id: 32bit int.
Transcaction_type: Enum values (Request, Reply, Pending, ResponseAck)
Context_Id:32bit. NULL=0, CHOOSE=0xfffffffe, ALL=0xffffffff
Termination_Id: a string of chars.
Command_Id:Enum values {Add, Modify, Subtract, Move, AuditValue,
AuditCap, Notify, ServiceChg)
…
2.2基本類的定義
模塊化的設(shè)計(jì)思想,H.248協(xié)議的解碼功能實(shí)現(xiàn)采用面向?qū)ο蟮某绦蛟O(shè)計(jì)方法,對(duì)外僅提供相應(yīng)的解碼接口函數(shù)。在該方案中我們主要定義以下幾個(gè)基本類:H248Mesg,H248Transaction ,H248Context ,H248Command。
class H248Mesg
{
protected:
Uint8 *pData;
Uint32 dataLen;
//Message ID
Istring msgId
Uint32 megacoVersion;
//Message Encode Type
Uint8encodeType;
//Reconstruction Info
ReconstructNode *reconNode;
//H248 transactionList.
Tlist
transactioinList;
//SU syntax error indicator
Ibool suSyntaxErrFlag;
virtual void parse(Ibool digitflag) = 0;
…
}
*pData為數(shù)據(jù)指針,dataLength是協(xié)議數(shù)據(jù)單元在內(nèi)存中的長(zhǎng)度,我們根據(jù)這兩個(gè)變量確定一個(gè)h.248協(xié)議數(shù)據(jù)在內(nèi)存中的確切位置.以及MegID,版本號(hào)等。
對(duì)于text模式我們將定義: H248TextMsg,H248TextTransaction,H248TextContext,H248TextCommand。他們之間的關(guān)系見(jiàn)圖2。
圖2 h.248類圖
3 消息解碼的應(yīng)用
通過(guò)解碼模塊的應(yīng)用可以將消息解碼的信息提供給網(wǎng)絡(luò)管理系統(tǒng),網(wǎng)絡(luò)管理系統(tǒng)可以將這些信息進(jìn)行組合形成呼叫合成如圖3所示,CDR等管理信息。
圖3 呼叫合成
4 結(jié)束語(yǔ)
本文通過(guò)對(duì)H_248協(xié)議解碼模塊的深入 分析和研究,采用面向?qū)ο蟮脑O(shè)計(jì)思想和C++編程進(jìn)行編程測(cè)試,能很好的達(dá)到解碼模塊要實(shí)現(xiàn)的預(yù)期效果,并在NGN網(wǎng)絡(luò)測(cè)試儀中得到應(yīng)用,效果良好。