專利名稱:一種h.248消息分級編解碼的實現(xiàn)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種消息編解碼的實現(xiàn)方法,具體地說,涉及通信領(lǐng)域中NGN(下一代網(wǎng)絡(luò),如WCDMA/CDMA2000/TD-SCDMA/SOFTSWITCH)系統(tǒng)中MGC(媒體網(wǎng)關(guān)控制器)和MGW(媒體網(wǎng)關(guān))上H.248消息編解碼的實現(xiàn)方法。
背景技術(shù):
H.248協(xié)議被3GPP/3GPP2等組織采用,作為NGN網(wǎng)絡(luò)承載和控制分離的協(xié)議標(biāo)準(zhǔn),主要用于MGC和MGW之間的網(wǎng)關(guān)控制以及承載建立控制。
MGC與MGW之間通過H.248通信,消息可以選擇文本方式或二進制方式進行編碼。在H.248文本編碼中,H.248消息長度通常在100到300字節(jié)之間。沒有經(jīng)過編碼的消息結(jié)構(gòu)如圖1所示,H.248的消息從外向內(nèi)嵌套依次是事務(wù)(Transaction)/動作(Action)/命令(Command),一個消息可以包含多個事務(wù),各個事務(wù)之間不必順序執(zhí)行。
事務(wù)事務(wù)由若干動作組成,事務(wù)具有完整性,同一個事務(wù)中的動作和命令要求順序執(zhí)行。
動作動作由若干命令組合而成,動作一般有具體的含義,特殊情況下,一個動作由一條命令組成。動作實際上是一組命令的集合。
命令命令是MGC和MGW實現(xiàn)交互信息的基本單位,命令中包括各種命令參數(shù)。命令的操作對象是上下文(Context),上下文以上下文標(biāo)識(Context ID)區(qū)分。上下文與呼叫對應(yīng),維護參與呼叫的終結(jié)點(Termination)狀態(tài)。
一個完整的呼叫過程,將會在MGC和MGW之間交互20~60次H.248命令,以完成對同一個上下文的呼叫控制操作,每次命令交互封裝到事務(wù)中形成H.248消息發(fā)送給對方。
H248編解碼模塊對網(wǎng)關(guān)和網(wǎng)關(guān)控制器之間的交互消息進行編解碼,即對收到的消息進行解碼,把H248標(biāo)準(zhǔn)消息翻譯成網(wǎng)關(guān)內(nèi)部實現(xiàn)的結(jié)構(gòu);對發(fā)向網(wǎng)關(guān)控制器的消息進行編碼,把網(wǎng)關(guān)內(nèi)部的結(jié)構(gòu)轉(zhuǎn)換為H248標(biāo)準(zhǔn)消息。H248消息有兩種格式二進制格式和文本格式,本發(fā)明僅支持H.248文本格式。
通用的解碼流程詳見附圖2,包括以下步驟在解碼初始化時,為了加快解碼的速度,先構(gòu)造解碼的需要識別關(guān)鍵詞的數(shù)據(jù)結(jié)構(gòu),一般是組織成快速搜索的樹型數(shù)據(jù)結(jié)構(gòu),步驟100;然后進入工作態(tài),步驟110;如果收到的H.248消息,步驟120;進行基本的合法性檢查,判斷其是否合法,如果是,執(zhí)行下一步,否則返回步驟110,步驟130;對H.248消息進行詞法分析,步驟140;對H.248消息進行語法分析,最終生成H.248內(nèi)部消息的數(shù)據(jù)結(jié)構(gòu),步驟150;最后輸出內(nèi)部消息,返回步驟110;一般來講,由于H.248文本文法比較靈活,定義了較多的關(guān)鍵詞,而且在解碼過程中,需要頻繁進行內(nèi)存操作,所以解碼所需的運算量比較大,運行時間比較長。
H.248通用的編碼過程是解碼逆過程,把H.248內(nèi)部結(jié)構(gòu)翻譯成字符串。一般H.248消息的內(nèi)部結(jié)構(gòu)都類同于H.248協(xié)議中推薦的二進制編碼結(jié)構(gòu)的組織方式,具體的編碼方式涉及到H.248的文本語法的定義,編碼所做的工作只是把H.248的內(nèi)部結(jié)構(gòu)按照H.248文本編碼的語法翻譯成字符串的形式。相對于解碼來講,所需的運算負荷比較小。
在目前常用的H.248協(xié)議處理系統(tǒng)中,H.248協(xié)議的編解碼處理模塊和協(xié)議處理模塊在同一物理模塊上處理。隨著需求的增加,網(wǎng)關(guān)需要處理的呼叫數(shù)量也不斷增加,而同時單模塊處理能力又有所限制,則必須設(shè)計一種可以平滑升級的大容量H.248協(xié)議處理系統(tǒng)。在這個處理框架下,需要多個處理模塊來協(xié)同完成H.248來完成,呼叫上下文數(shù)據(jù)區(qū)將被保存在不同的處理模塊上,無論這種多模塊的機制如何組織,都需要在不同的模塊的處理單元之間分發(fā)H.248消息。
但是僅僅簡單地增加處理模塊并不能平滑地擴展系統(tǒng)處理能力,如果整個消息的解碼運算仍由一個處理模塊完成,也不能充分利用多模塊的處理能力,影響系統(tǒng)的處理效率。此外,因為H.248的消息在沒有解碼前不知道消息對應(yīng)的處理模塊,如果接口模塊隨意的將接收的H.248消息發(fā)給某個處理模塊解碼,必然導(dǎo)致大量的解碼完的消息不屬于本板處理,由此帶來的頻繁的消息轉(zhuǎn)發(fā)會消耗大量處理器資源和內(nèi)部通信帶寬。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明要解決的技術(shù)問題是提供一種H.248消息分級編解碼的實現(xiàn)方法,能夠合理地利用多模塊的處理能力,提高編解碼處理能力,并減少模塊之間命令傳輸?shù)呢摀?dān)。
為了解決上述技術(shù)問題,本發(fā)明提供了一種H.248消息分級解碼的實現(xiàn)方法,包括消息預(yù)解碼、事務(wù)預(yù)解碼和動作解碼過程,其中,所述消息預(yù)解碼包括以下步驟(a)判斷消息長度是否合法,如果是,執(zhí)行下一步,否則退出;(b)對消息頭解碼;(c)對事務(wù)類型及事務(wù)ID解碼;(d)搜索事務(wù)字符串;(e)將事務(wù)字符串分發(fā)給相應(yīng)的事務(wù)預(yù)解碼單元;(f)判斷是否已對消息中的所有事務(wù)解碼,如果是,結(jié)束消息預(yù)解碼,否則返回步驟(c);所述事務(wù)預(yù)解碼包括以下步驟(g)對動作的上下文ID解碼;(h)搜索動作字符串;(i)將動作字符串分發(fā)給相應(yīng)的動作解碼單元;(j)判斷是否已對事務(wù)中的所有動作解碼,如果是,結(jié)束事務(wù)預(yù)解碼,否則返回步驟(g);所述動作解碼包括以下步驟(k)對動作字符串解碼,生成H.248的內(nèi)部消息。
為了進行合理的分發(fā),可以在所述步驟(c)后加上步驟判斷事務(wù)類型是否屬于事務(wù)請求,如果是,對事務(wù)第一個上下文ID或事件ID解碼后執(zhí)行步驟(d),否則直接執(zhí)行(d),在所述步驟(e)中,將非請求類事務(wù)的字符串分發(fā)到其事務(wù)ID所在的處理模塊,對請求類事務(wù),則根據(jù)事務(wù)第一個上下文ID或事件ID進行分配。
當(dāng)H.248消息支持處理H.248簽權(quán)頭時,在所述步驟(a)之后還包括步驟對簽權(quán)頭進行解碼,并判斷是否合法,如果是,執(zhí)行步驟(b),否則退出。
為了加快搜索,在所述步驟(f)之前包括以下步驟對字符串進行預(yù)處理,去除字符串中的注釋以及多余的空格和空行。
為了解決以上技術(shù)問題,本發(fā)明還提供了一種H.248消息分級編碼的實現(xiàn)方法,包括以下步驟(a)對動作內(nèi)容編碼,把H.248的內(nèi)部結(jié)構(gòu)翻譯成字符串的形式,加上其操作的上下文ID,發(fā)送到所屬事務(wù)的編碼單元;(b)將事務(wù)包含的各已編碼的動作字符串按序組合成事務(wù)字符串(包含了字符串長度信息),加上事務(wù)ID及事務(wù)類型,發(fā)送到所屬消息的編碼單元;(c)將消息包含的各已編碼的事務(wù)組合,并加上消息頭,得到H.248消息。
當(dāng)H.248消息支持處理H.248簽權(quán)頭時,在所述步驟(c)中,還對簽權(quán)數(shù)據(jù)或/及版本信息進行編碼,并加在消息頭和事務(wù)之間。
由上可知,本發(fā)明提出的分級編解碼實現(xiàn)方法,可以配合不同網(wǎng)關(guān)分布式處理策略,合理利用整個網(wǎng)關(guān)的資源,加快了整個系統(tǒng)的編解碼的處理能力。并減少模塊之間命令的傳輸負擔(dān)。
圖1是H.248的消息結(jié)構(gòu)示意圖。
圖2是H.248的通用解碼過程的流程圖。
圖3是本發(fā)明分級編解碼模塊在MGW處理系統(tǒng)中的位置示意圖。
圖4是本發(fā)明實施例分布式處理網(wǎng)關(guān)的結(jié)構(gòu)示意圖。
圖5是本發(fā)明實施例消息預(yù)解碼對象的數(shù)據(jù)結(jié)構(gòu)的示意圖。
圖6是本發(fā)明實施例消息預(yù)解碼的流程圖。
圖7是本發(fā)明實施例搜索事務(wù)字符串算法的流程圖。
圖8是本發(fā)明實施例事務(wù)預(yù)解碼對象的數(shù)據(jù)結(jié)構(gòu)的示意圖。
圖9是本發(fā)明實施例事務(wù)預(yù)解碼的流程圖。
圖10是本發(fā)明實施例編碼方法的流程圖。
具體實施例方式
圖3示出了本發(fā)明分級編解碼模塊在MGW處理系統(tǒng)中的位置,MGC將消息編碼后,經(jīng)Mc接口發(fā)送到MGW,MGW上的分級解碼模塊進行解碼,轉(zhuǎn)換為網(wǎng)關(guān)內(nèi)部的結(jié)構(gòu),然后由H.248分布處理模塊進行處理。圖中的分級編解碼模塊是一個邏輯模塊,它可以由多個分布式的編解碼單元共同組成,而在物理實體上可以獨立,也可以與接口模塊或處理模塊的實體相結(jié)合。
為了便于理解,圖4中示出了本實施例基于的分布式處理媒體網(wǎng)關(guān)的結(jié)構(gòu)示意圖,如圖所示,該分布式處理媒體網(wǎng)關(guān)由多個H.248接口板、多個H.248分布式處理模塊和H.248集中維護處理模塊構(gòu)成,各接口板、處理模塊之間通過內(nèi)部通信網(wǎng)絡(luò)通信,詳細內(nèi)容見中國專利申請(申請?zhí)?3126453.0,專利申請名稱一種大容量H.248協(xié)議分布式處理系統(tǒng)和方法)。需要說明的是,本發(fā)明方法并不局限于某種具體的系統(tǒng)結(jié)構(gòu)。
本發(fā)明實施例的解碼實現(xiàn)方法分為三個子流程,分別是對H.248消息的預(yù)解碼、對事務(wù)的預(yù)解碼及對動作的解碼。對應(yīng)于三個功能模塊,即消息預(yù)解碼模塊、事務(wù)預(yù)解碼模塊和動作解碼模塊,分別由若干個對應(yīng)的分布式解碼單元組成。
MGW或MGC接收到的H.248消息是一種分層嵌套式的數(shù)據(jù)結(jié)構(gòu)。其中,消息預(yù)解碼模塊的解碼對象是消息,其數(shù)據(jù)結(jié)構(gòu)如圖5所示,由消息頭(即發(fā)送者網(wǎng)關(guān)的地址標(biāo)記)、版本信息和事務(wù)組成,如果H.248消息支持處理H.248簽權(quán)頭,則在版本消息前加上一個簽權(quán)頭。消息由若干數(shù)據(jù)結(jié)構(gòu)相同的事務(wù)組成,圖中只示出了一個事務(wù)的數(shù)據(jù)結(jié)構(gòu)。在事務(wù)的數(shù)據(jù)結(jié)構(gòu)中,第一個子段是事務(wù)類型,分為請求事務(wù)、應(yīng)答事務(wù)及處理等待事務(wù);第二個子段是事務(wù)ID,由四個字節(jié)組成;第三個子段是事務(wù)第一個上下文對應(yīng)的ID(此處指事務(wù)包含的第一個動作針對的上下文ID);第四和第五個子段分別是事務(wù)字符串的長度及事務(wù)字符串的內(nèi)容,事務(wù)字符串中又包含有若干的動作。H.248消息中所包含的事務(wù)個數(shù)不確定,要將預(yù)解碼的結(jié)果最終組織成鏈表的形式,鏈表的每一個節(jié)點是圖5所示的數(shù)據(jù)結(jié)構(gòu)。
消息預(yù)解碼的處理流程如圖6所示,包括以下步驟判斷消息長度是否合法,如果是,執(zhí)行下一步,否則退出,步驟200;對消息字符串進行預(yù)處理(去除字符串中的注釋以及多余的空格和空行),步驟210;對消息頭和版本信息解碼,步驟220;對事務(wù)類型解碼,步驟230;對事務(wù)ID解碼,步驟240;判斷事務(wù)類型是否屬于事務(wù)請求,如果是,執(zhí)行下一步,否則直接執(zhí)行步驟270,步驟250;對事務(wù)第一個上下文ID解碼,步驟260;搜索事務(wù)字符串(包括字符串長度和內(nèi)容),即解出事務(wù)字符串的開始位置和結(jié)束位置,步驟270;將事務(wù)字符串分發(fā)給相應(yīng)的事務(wù)預(yù)解碼單元,步驟280;判斷是否已對消息中的所有事務(wù)解碼,如果是,則結(jié)束,否則返回步驟230,步驟290。
如果在上述步驟220、230、240、260中解碼失敗,就退出。
如果H.248消息支持處理H.248簽權(quán)頭的處理,則在步驟210后,還包括一個步驟對簽權(quán)頭進行解碼,并判斷是否合法消息,如果是,執(zhí)行步驟220,否則退出。
在步驟270中,根據(jù)H.248文法,事務(wù)字符串開始于字符左大括號“{”,結(jié)束于右大括號“}”,在步驟210進行字符串預(yù)處理時已經(jīng)將字符串中的注釋去掉了(可簡化搜索算法),所以這時不用考慮注釋中的左右大括號,但對于包含于字符串變量中的左右大括號還需處理,雙引號是一個字符串變量的標(biāo)記。本實施例的搜索算法就是以此為基礎(chǔ)設(shè)計的,如圖7所示,包括以下步驟(程序開始時已經(jīng)讀入了一個左大括號)設(shè)置大括號總數(shù)為1(wLBRKTNum)=1),字符串變量標(biāo)記的值為假(bIsDQUOTE=False),步驟300;讀入一個字符,步驟310;判斷該字符串是否不為空或者大括號總數(shù)不為0,如果是,執(zhí)行下一步,否則,執(zhí)行步驟400,步驟320;判斷當(dāng)前字符是否雙引號,如果是,執(zhí)行下一步,否則執(zhí)行步驟350(即不統(tǒng)計),步驟330;將字符串變量標(biāo)記的值置為其反值,步驟340;判斷字符串變量標(biāo)記是否為假,如果是,執(zhí)行下一步,否則,返回步驟310,步驟350;判斷該字符是否為左大括號,如果是,執(zhí)行下一步,否則,執(zhí)行步驟380,步驟360;將大括號總數(shù)加一,返回步驟310,步驟370;判斷該字符是否為右大括號,如果是,執(zhí)行下一步,否則,返回步驟310,步驟380;將大括號總數(shù)減一,返回步驟310(即對其它字符不處理),步驟390;判斷大括號總數(shù)是否為0,如果是,執(zhí)行步驟280,否則作出錯處理,步驟400。
本實施例中,步驟280中的分發(fā)是根據(jù)標(biāo)志性ID來進行的,如果在步驟230中解出的事務(wù)類型不是事務(wù)請求,則其事務(wù)ID是由本地分配的,將其事務(wù)字符串直接分發(fā)到原來處理模塊上的事務(wù)預(yù)解碼單元(在預(yù)解碼和消息分發(fā)點上設(shè)有事務(wù)ID和處理模塊的對照表);如果是事務(wù)請求,繼續(xù)解出其第一個上下文ID,如果該上下文標(biāo)識為新建或空,指定一個分布式處理模塊的事務(wù)預(yù)解碼單元處理,如果該上下文標(biāo)識符合某個分布式處理模塊的上下文區(qū)間范圍,則發(fā)給該分布式處理模塊上的事務(wù)預(yù)解碼單元處理。
在分發(fā)事務(wù)字符串時,如果是在本模塊處理,只需記錄事務(wù)在H.248的開始和結(jié)束標(biāo)記即可,若在其它模塊處理,則需進行拷貝操作(本實施例屬于后一種情況)。
事務(wù)字符串的數(shù)據(jù)結(jié)構(gòu)由多個數(shù)據(jù)結(jié)構(gòu)相同的動作組成,圖8中示出了一個動作的數(shù)據(jù)結(jié)構(gòu),由上下文ID、動作字符串的長度及動作字符串的內(nèi)容組成,其中上下文ID稱為該動作所對應(yīng)的標(biāo)記性ID。一個事務(wù)中所包含的動作個數(shù)不確定,故最終將事務(wù)預(yù)解碼的結(jié)果也組成鏈表的方式。
在接收到分發(fā)的事務(wù)字符串及事務(wù)類型后,事務(wù)預(yù)解碼單元對其進行預(yù)解碼的處理流程如圖9所示,包括以下步驟對上下文ID解碼,步驟500;搜索動作字符串(包括字符串長度和內(nèi)容),即解出動作字符串的開始位置和結(jié)束位置,步驟510;將動作字符串分發(fā)給相應(yīng)的動作解碼單元,步驟520;判斷是否已對事務(wù)中的所有動作解碼,如果是,則結(jié)束,否則返回步驟500,步驟530。
其中步驟510的搜索算法與消息預(yù)解碼中的搜索算法相同,只是搜索的內(nèi)容是事務(wù)的某一個動作字符串。步驟520中分發(fā)根據(jù)該動作的上下文ID所在的上下文區(qū)間進行,或指定。
分級解碼的第三個子流程是對動作字符串的解碼,動作解碼單元按照H.248文法,采用通用的解碼算法進行處理,即采用通用的詞法分析,采用標(biāo)準(zhǔn)的H.248文本語法對接收的動作字符串進行分析,生成H.248的內(nèi)部消息(詳見圖2),從而完成整個解碼過程。
與解碼相對應(yīng),本實施例的編碼是由動作編碼模塊、事務(wù)編碼模塊和消息編碼模塊構(gòu)成,各模塊分別由對應(yīng)的分布式的若干編碼單元組成。編碼的流程如圖10所示,包括以下步驟對動作內(nèi)容編碼,把H.248的內(nèi)部結(jié)構(gòu)翻譯成字符串的形式,加上其操作的上下文ID,發(fā)送到所屬事務(wù)的編碼單元,步驟600;將事務(wù)包含的各已編碼的動作字符串按序組合成事務(wù)字符串,加上事務(wù)第一個上下文ID(即事務(wù)中第一個動作的上下文ID)、事務(wù)ID及事務(wù)類型,發(fā)送到所屬消息的編碼單元,步驟610;將消息包含的各已編碼的事務(wù)字符串組合,并加上版本信息和消息頭,得到H.248消息,步驟620。
上述的動作、事務(wù)或消息編碼單元可能在同一處理模塊上,也可以在不同的處理模塊上。在步驟620中若需要簽權(quán),對簽權(quán)數(shù)據(jù)進行編碼,并加在版本信息上。
在本實施例中,消息預(yù)解碼單元獨立于系統(tǒng)中的分布式處理模塊,可以作為一個預(yù)解碼板或者與各接口板合而為一。而事務(wù)預(yù)解碼單元和動作解碼單元則分布在各分布式處理模塊上。這樣可以通過消息預(yù)解碼的標(biāo)志性ID對各事務(wù)進行合理地分發(fā),譬如通過對事務(wù)類型和事務(wù)ID的判斷,可以將應(yīng)答類的事務(wù)分發(fā)到其原處理模塊上,減少處理模塊之間的轉(zhuǎn)發(fā)操作,或者可通過事務(wù)第一個上下文ID所屬區(qū)間來分發(fā),達到負荷均衡的效果。
本發(fā)明并不局限于某種分發(fā)原則,相應(yīng)的,編碼或解碼的具體過程也可能有所不同,例如,在分發(fā)請求類事務(wù)時,也可以根據(jù)事務(wù)ID直接按就近原則,或負荷均衡原則進行,相應(yīng)的,在編碼的數(shù)據(jù)結(jié)構(gòu)中不必加入事務(wù)第一個上下文ID,消息預(yù)解碼時也不必繼續(xù)解到事務(wù)第一個上下文ID了;此外,根據(jù)上下文ID的分發(fā)也并不局限于區(qū)間判斷,還可以采用輪發(fā),就近等策略。
本發(fā)明所基于的分布式處理系統(tǒng)和各編解碼單元的分布也不局限于上述實施例,例如,由于預(yù)解碼的運算比較簡單,也可以將各預(yù)解碼單元集中在一個處理模塊上處理。而上述的各種編解碼單元,作為邏輯單元可以應(yīng)用于任何結(jié)構(gòu)的分布式處理MGW中。
本發(fā)明實施例在事務(wù)和動作字符串中包括字符串長度字節(jié),是一種冗余的設(shè)計,是為了提高系統(tǒng)間傳遞消息的可靠性,當(dāng)然也可以不使用。數(shù)據(jù)結(jié)構(gòu)中的版本信息也非必須,相應(yīng)的編解碼處理也可省略。
實施例中雖然是由MGW為例,但本發(fā)明的分級編解碼方法也同樣適用于分布式處理MGC中。其編解碼的方法和消息的數(shù)據(jù)結(jié)構(gòu)都是基本相同的,只是MGC在進行分布式處理的預(yù)解碼時,需要解出請求事件ID,因為這個ID是MGC發(fā)出的,MGC上的多模塊系統(tǒng)可以在事件ID中包含模塊信息。因此,對于MGC發(fā)出的編碼消息和MGW到MGC的應(yīng)答消息的編碼結(jié)構(gòu)中,還應(yīng)當(dāng)有事件ID,可加入在事務(wù)ID之后,相應(yīng)的在MGC上的消息預(yù)解碼的流程中,可以將對事務(wù)第一個上下文ID解碼的步驟改成對事件ID的解碼,如請求檢測事件ID,并依據(jù)該ID在分配表中找到對應(yīng)的處理模塊分發(fā)。當(dāng)然,MGC也可以采用其它方式進行多模塊處理,本發(fā)明對此并不做限制。
綜上所述,本發(fā)明的分級編解碼的實現(xiàn)方法使得在各H.248處理模塊之間傳送消息時,無需將整個H.248消息傳送,避免在另一個處理模塊上重復(fù)對這個消息進行解碼??梢耘浜喜煌W(wǎng)關(guān)分布式處理策略,合理利用整個網(wǎng)關(guān)的資源,加快整個系統(tǒng)的編解碼的處理能力。并減少模塊之間命令傳輸?shù)呢摀?dān)。
在本發(fā)明基本精神上對上述實施例所做的各種變換,都應(yīng)在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種H.248消息分級解碼的實現(xiàn)方法,包括消息預(yù)解碼、事務(wù)預(yù)解碼和動作解碼過程,其中,所述消息預(yù)解碼包括以下步驟(a)判斷消息長度是否合法,如果是,執(zhí)行下一步,否則退出;(b)對消息頭解碼;(c)對事務(wù)類型及事務(wù)ID解碼;(d)搜索事務(wù)字符串;(e)將事務(wù)字符串分發(fā)給相應(yīng)的事務(wù)預(yù)解碼單元;(f)判斷是否已對消息中的所有事務(wù)解碼,如果是,結(jié)束消息預(yù)解碼,否則返回步驟(c);所述事務(wù)預(yù)解碼包括以下步驟(g)對動作的上下文ID解碼;(h)搜索動作字符串;(i)將動作字符串分發(fā)給相應(yīng)的動作解碼單元;(j)判斷是否已對事務(wù)中的所有動作解碼,如果是,結(jié)束事務(wù)預(yù)解碼,否則返回步驟(g);所述動作解碼包括以下步驟(k)對動作字符串解碼,生成H.248的內(nèi)部消息。
2.如權(quán)利要求1所述的分級解碼的實現(xiàn)方法,其特征在于,在所述步驟(c)后還包括步驟判斷事務(wù)類型是否屬于事務(wù)請求,如果是,對事務(wù)第一個上下文ID或事件ID解碼后執(zhí)行步驟(d),否則直接執(zhí)行(d),在所述步驟(e)中,將非請求類事務(wù)的字符串分發(fā)到其事務(wù)ID所在的處理模塊,對請求類事務(wù),則根據(jù)事務(wù)第一個上下文ID或事件ID進行分配。
3.如權(quán)利要求1所述的分級解碼的實現(xiàn)方法,其特征在于,所述步驟(a)之后還包括步驟對簽權(quán)頭進行解碼,并判斷是否合法,如果是,執(zhí)行步驟(b),否則退出。
4.如權(quán)利要求1所述的分級解碼的實現(xiàn)方法,其特征在于,在所述步驟(b)中還對版本消息解碼。
5.如權(quán)利要求1所述的分級解碼的實現(xiàn)方法,其特征在于,在所述步驟(f)之前還包括步驟對字符串進行預(yù)處理,去除字符串中的注釋以及多余的空格和空行。
6.如權(quán)利要求5所述的分級解碼的實現(xiàn)方法,其特征在于,所述步驟(d)及(h)中,是通過識別事務(wù)字符串或動作字符串的起始左大括號和結(jié)束右大括號,來確定事務(wù)字符串的起始和結(jié)束位置的。
7.一種H.248消息分級編碼的實現(xiàn)方法,包括以下步驟(a)對動作內(nèi)容編碼,把H.248的內(nèi)部結(jié)構(gòu)翻譯成字符串的形式,加上其操作的上下文ID,發(fā)送到所屬事務(wù)的編碼單元;(b)將事務(wù)包含的各已編碼的動作字符串按序組合成事務(wù)字符串(包含了字符串長度信息),加上事務(wù)ID及事務(wù)類型,發(fā)送到所屬消息的編碼單元;(c)將消息包含的各已編碼的事務(wù)組合,并加上消息頭,得到H.248消息。
8.如權(quán)利要求7所述的分級編碼的實現(xiàn)方法,其特征在于,在所述步驟(b)中,還加上了事務(wù)第一個上下文ID或事件ID。
9.如權(quán)利要求7所述的分級編碼的實現(xiàn)方法,其特征在于,在所述步驟(c)中,還對簽權(quán)數(shù)據(jù)或/及版本信息進行編碼,并加在消息頭和事務(wù)之間。
全文摘要
本發(fā)明公開了一種H.248文本消息分級編解碼的方法。在承載與控制分離的網(wǎng)絡(luò)中實現(xiàn)一個大容量可平滑擴容的網(wǎng)關(guān)時,需要合理地在不同的處理器上分擔(dān)H.248文本消息編解碼的運算負荷,本發(fā)明針對H.248消息的特點,將H.248消息的編解碼分成不同的級別,消息預(yù)解碼,事務(wù)預(yù)解碼和動作解碼。采用本發(fā)明所述方法,可以配合不同網(wǎng)關(guān)分布式處理策略,合理利用整個網(wǎng)關(guān)的資源,加快了整個系統(tǒng)的編解碼的處理能力。
文檔編號H04L12/66GK1545280SQ200310113479
公開日2004年11月10日 申請日期2003年11月12日 優(yōu)先權(quán)日2003年11月12日
發(fā)明者寧冬子, 周自春, 秦長鵬 申請人:中興通訊股份有限公司