專利名稱:一種接入網(wǎng)關(guān)設(shè)備的收號(hào)方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種收號(hào)的方法,特別涉及一種接入網(wǎng)關(guān)設(shè)備的收號(hào)方法。
背景技術(shù):
收號(hào)的過(guò)程就是號(hào)碼匹配的過(guò)程,是VoIP(Voice Over IP)技術(shù)中非常重要的一個(gè)環(huán)節(jié)。在傳統(tǒng)的窄帶交換網(wǎng)絡(luò)中,收號(hào)是由窄帶交換機(jī)完成的。在傳統(tǒng)窄帶網(wǎng)絡(luò)向下一代網(wǎng)絡(luò)(NGN)過(guò)渡后,軟交換不再負(fù)責(zé)收號(hào),改為由接入網(wǎng)關(guān)來(lái)完成收號(hào)動(dòng)作。NGN是基于分組的網(wǎng)絡(luò),能夠提供電信業(yè)務(wù);利用多種寬帶能力和QoS保證的傳送技術(shù);其業(yè)務(wù)相關(guān)功能與其傳送技術(shù)相獨(dú)立。NGN使用戶可以自由接入到不同的業(yè)務(wù)提供商;NGN支持通用移動(dòng)性。
軟交換與網(wǎng)關(guān)設(shè)備通過(guò)H248/MGCP協(xié)議通訊,軟交換為了控制網(wǎng)關(guān)收號(hào)會(huì)給網(wǎng)關(guān)下發(fā)號(hào)碼匹配(Digit Matching,以下簡(jiǎn)稱DM)表,再由網(wǎng)關(guān)根據(jù)DM表來(lái)收號(hào)。
傳統(tǒng)的收號(hào)過(guò)程是這樣的DM表以數(shù)組形式儲(chǔ)存,假如用戶新?lián)芤粋€(gè)號(hào)碼,用戶每撥一個(gè)數(shù)字,系統(tǒng)就把用戶已撥的全部號(hào)碼(比如1370)作為一個(gè)完整的輸入,去逐個(gè)匹配所有的二級(jí)DM表,每次匹配的結(jié)果都保存下來(lái),直到所有二級(jí)DM都匹配一遍后,再?gòu)娜科ヅ浣Y(jié)果里找出匹配度最高的匹配結(jié)果上報(bào),這種收號(hào)方法雖然算法簡(jiǎn)單,但是匹配效率非常低。尤其隨著NGN網(wǎng)絡(luò)的擴(kuò)大,網(wǎng)關(guān)設(shè)備容量的不斷增加,號(hào)碼匹配表變得更加復(fù)雜和冗長(zhǎng)(甚至出現(xiàn)了4K長(zhǎng)度的號(hào)碼匹配表),傳統(tǒng)的號(hào)碼存儲(chǔ)和匹配方法效率太低。
名詞解釋,以號(hào)碼匹配表(114|168|588[2-5]xxx|FxxEx.F)為例
DM號(hào)碼匹配表,詳細(xì)信息可查閱H.248/MGCP協(xié)議。
一級(jí)DM指一個(gè)完整的號(hào)碼匹配表(DM),如(114|168|588[2-5]xxx|FxxEx.F);二級(jí)DM指在一級(jí)DM里由豎線分割的每一個(gè)子匹配表,如′FxxEx.F′;常量二級(jí)DM指全部由常量組成的二級(jí)DM,如’114’;非常量二級(jí)DM非常量二級(jí)DM是指包含′.″x″[]′適配符的二級(jí)DM,如’588xxxx”;三級(jí)DM指二級(jí)DM里的每一位,如′x′/′1′/′.′/′[2-5]′;UM完全匹配不需要繼續(xù)收號(hào);FM完全匹配但可以繼續(xù)收號(hào);PM部分匹配,即只匹配前面部分;NULL不匹配;發(fā)明內(nèi)容針對(duì)現(xiàn)有技術(shù)中存在的缺陷和不足,本發(fā)明的目的是提出一種接入網(wǎng)關(guān)設(shè)備的收號(hào)方法,能夠提高接入網(wǎng)關(guān)設(shè)備的收號(hào)效率。
為了達(dá)到上述目的,本發(fā)明提出一種接入網(wǎng)關(guān)設(shè)備的收號(hào)方法,包括步驟1、將號(hào)碼匹配表中的常量二級(jí)DM和非常量二級(jí)DM分別采用多叉樹(shù)形式存儲(chǔ),以形成一常量多叉樹(shù)和一非常量多叉樹(shù);步驟2、用戶撥號(hào)時(shí)每撥一位號(hào)碼,則將該號(hào)碼在上述常量多叉樹(shù)和非常量多叉樹(shù)中進(jìn)行匹配;步驟3、如果匹配結(jié)果為無(wú)匹配數(shù)據(jù)或完全匹配且不需要繼續(xù)收號(hào)時(shí),上報(bào)匹配結(jié)果,步驟結(jié)束;如果匹配結(jié)果為部分匹配或完全匹配且需要繼續(xù)收號(hào)時(shí),保存匹配結(jié)果,返回步驟2。
其中,上述步驟1具體為步驟11、將號(hào)碼匹配表中的所有一級(jí)DM沿中間的豎線分割為多個(gè)二級(jí)DM;
步驟12、將所有的常量二級(jí)DM存儲(chǔ)為一常量多叉樹(shù);步驟13、將所有的非常量二級(jí)DM存儲(chǔ)為一非常量多叉樹(shù)。
其中,上述步驟12中,當(dāng)一個(gè)常量二級(jí)DM包含另一個(gè)常量二級(jí)DM的全部數(shù)字時(shí),則被包含的常量二級(jí)DM不單獨(dú)存儲(chǔ)。
其中,上述步驟13中,預(yù)定義三級(jí)DM優(yōu)先級(jí),將優(yōu)先級(jí)高的三級(jí)DM存儲(chǔ)在非常量多叉樹(shù)的左側(cè)。
其中,步驟2具體為步驟21、在常量多叉樹(shù)中,對(duì)用戶輸入的號(hào)碼進(jìn)行匹配,如果有匹配的節(jié)點(diǎn)則進(jìn)入步驟3,否則進(jìn)入步驟22;步驟22、遍歷非常量多叉樹(shù),對(duì)用戶輸入的號(hào)碼進(jìn)行匹配,如果有匹配的則進(jìn)入步驟3,否則上報(bào)匹配結(jié)果,步驟結(jié)束。
其中,上述步驟21具體為將用戶輸入的號(hào)碼,使用哈希表搜索常量多叉樹(shù),如果有匹配的節(jié)點(diǎn)則進(jìn)入步驟3,否則進(jìn)入步驟22。
其中,上述步驟22具體為使用左序遍歷方法,遍歷非常量多叉樹(shù),對(duì)該非常量多叉樹(shù)的每一節(jié)點(diǎn)內(nèi)的掩碼與當(dāng)前用戶輸入的一位號(hào)碼進(jìn)行與操作,如果與操作結(jié)果為0則繼續(xù)遍歷,如果與操作結(jié)果為非0則進(jìn)入步驟3。
本發(fā)明提出了一種接入網(wǎng)關(guān)設(shè)備的收號(hào)方法。對(duì)現(xiàn)有技術(shù)中DM表都采用數(shù)組形式存儲(chǔ),導(dǎo)致現(xiàn)有的收號(hào)方法中用戶每輸入一個(gè)號(hào)碼,都要將用戶已輸入的所有號(hào)碼作為輸入在DM表中進(jìn)行遍歷,這種收號(hào)方法非常低效。本發(fā)明提出了一種接入網(wǎng)關(guān)設(shè)備的收號(hào)方法,將DM表采用多叉樹(shù)形式存儲(chǔ),即將常量DM存儲(chǔ)為一常量多叉樹(shù),將非常量DM存儲(chǔ)為一非常量多叉樹(shù)。當(dāng)用戶每輸入一位號(hào)碼,就將該號(hào)碼在多叉樹(shù)中進(jìn)行匹配,并將匹配結(jié)果保存,當(dāng)用戶再輸入一位號(hào)碼時(shí),直接將該位號(hào)碼在上次保存結(jié)果中繼續(xù)進(jìn)行匹配,極大的提高了收號(hào)的效率。
下面結(jié)合附圖,對(duì)本發(fā)明的具體實(shí)施方式
作進(jìn)一步的詳細(xì)說(shuō)明。對(duì)于所屬技術(shù)領(lǐng)域的技術(shù)人員而言,從對(duì)本發(fā)明的詳細(xì)說(shuō)明中,本發(fā)明的上述和其他目的、特征和優(yōu)點(diǎn)將顯而易見(jiàn)。
圖1為本發(fā)明優(yōu)選實(shí)施例中常量多叉樹(shù)的結(jié)構(gòu)示意圖;圖2為本發(fā)明優(yōu)選實(shí)施例中非常量多叉樹(shù)的結(jié)構(gòu)示意圖;圖3為本發(fā)明優(yōu)選實(shí)施例流程圖。
具體實(shí)施例方式
下面結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步說(shuō)明。
本發(fā)明優(yōu)選實(shí)施例流程如圖3所示,包括A、將號(hào)碼匹配表以多叉樹(shù)形形式存儲(chǔ),即將號(hào)碼匹配表中的所有一級(jí)DM沿中間的豎線分割為多個(gè)二級(jí)DM,并將這些二級(jí)DM分為常量二級(jí)DM和非常量二級(jí)DM,將所有的常量二級(jí)DM存儲(chǔ)為一常量多叉樹(shù),其結(jié)構(gòu)如圖1所示;將所有的非常量二級(jí)DM存儲(chǔ)為一非常量多叉樹(shù),其結(jié)構(gòu)如圖2所示。在建立非常量多叉樹(shù)時(shí),每次分叉都要考慮不同分支的優(yōu)先級(jí),根據(jù)分叉處三級(jí)DM的不同優(yōu)先級(jí)來(lái)區(qū)別不同分支的優(yōu)先級(jí)。以高優(yōu)先級(jí)三級(jí)DM開(kāi)頭的分支是高優(yōu)先級(jí)分支,放在左分支,以低優(yōu)先級(jí)三級(jí)DM開(kāi)頭的分支是低優(yōu)先級(jí)分支,放在右分支。預(yù)定義的三級(jí)DM優(yōu)先級(jí)為常量三級(jí)DM>指定范圍區(qū)間的三級(jí)DM>’x’對(duì)應(yīng)的三級(jí)DM>’.’對(duì)應(yīng)的三級(jí)DMB、用戶輸入一位號(hào)碼時(shí),首先將搜索常量多叉樹(shù),再搜索非常量多叉樹(shù)。
C、如果當(dāng)前匹配結(jié)果是UM/NULL,不需要保存匹配現(xiàn)場(chǎng),因?yàn)槭仗?hào)過(guò)程已經(jīng)結(jié)束;如果匹配結(jié)果是FM/PM,則需要保存當(dāng)前匹配現(xiàn)場(chǎng),因?yàn)樾枰却罄m(xù)位,返回步驟2,等待用戶輸入下一位號(hào)碼。
當(dāng)用戶斷點(diǎn)保存時(shí)應(yīng)該保存最先匹配為FM/UM的那個(gè)樹(shù)的節(jié)點(diǎn)信息,而不是最后一次匹配為FM/UM的節(jié)點(diǎn)。
由于用戶撥號(hào)的動(dòng)作是有時(shí)間間隔的,導(dǎo)致不可能等待用戶撥完全部號(hào)碼再匹配,而需要每撥一位都需要進(jìn)行匹配操作一次。在當(dāng)前匹配結(jié)束后應(yīng)該保存現(xiàn)場(chǎng),這樣后續(xù)匹配可以在上次匹配的基礎(chǔ)上繼續(xù)。也就是說(shuō)遍歷樹(shù)的操作應(yīng)該是連續(xù)的,而不是每次都從根節(jié)點(diǎn)開(kāi)始。因?yàn)榉浅A刻?hào)碼分析子的相互包含關(guān)系,我們的匹配是基于樹(shù)的遍歷的,所以斷點(diǎn)保存就是保存樹(shù)上某個(gè)節(jié)點(diǎn)的位置,這樣下一位號(hào)碼的匹配就可以在這個(gè)節(jié)點(diǎn)基礎(chǔ)上進(jìn)行。
其中,在步驟A中,如果當(dāng)一個(gè)常量二級(jí)DM包含另一個(gè)常量二級(jí)DM的全部數(shù)字時(shí),則被包含的常量二級(jí)DM不單獨(dú)存儲(chǔ)。比如[114|1145678],其中‘114’這個(gè)被包含的二級(jí)DM沒(méi)有必要單獨(dú)存儲(chǔ),只需要在存儲(chǔ)′1145678′這個(gè)二級(jí)DM時(shí)將′4′對(duì)應(yīng)的三級(jí)DM的匹配結(jié)果設(shè)置為FM,這樣可以節(jié)省存儲(chǔ)空間。
其中,上述的步驟B可以具體為步驟B1、對(duì)于常量多叉樹(shù)可以采用哈希(HASH)表進(jìn)行查找,用戶每撥一個(gè)號(hào)碼,只需進(jìn)行一次HASH查找,如果查找結(jié)果為UM或FM,立即上報(bào)查找結(jié)果,進(jìn)入步驟C;如果查找結(jié)果為PM或者NULL,則需要繼續(xù)非常量多叉樹(shù),進(jìn)入步驟A2;步驟B2、采用左序遍歷方法,遍歷非常量多叉樹(shù)的每一節(jié)點(diǎn),并用節(jié)點(diǎn)內(nèi)的掩碼與當(dāng)前號(hào)碼進(jìn)行“與”操作,如果“與”操作的結(jié)果為0則表示不匹配,匹配結(jié)果為PM/NULL,需要繼續(xù)遍歷;如果結(jié)果非0則表示匹配,匹配結(jié)果為UM/FM,可以立即上報(bào)并進(jìn)入步驟C。
其中,步驟B1中的HASH表可以以“二級(jí)DM在一級(jí)DM里的INDEX值+三級(jí)DM在二級(jí)DM里的INDEX值+當(dāng)前撥的號(hào)碼”作為輸入來(lái)查找。
本發(fā)明采用了多叉樹(shù)形式存儲(chǔ)號(hào)碼匹配表,用戶每撥一位號(hào)碼就進(jìn)行一次匹配,并且將匹配結(jié)果保存,用戶再撥一位時(shí),則只需從上一次保存的結(jié)果處繼續(xù)進(jìn)行匹配,而不需要將用戶每一次的輸入都作為完整數(shù)組進(jìn)行查找,極大的提高了收號(hào)的效率。
同時(shí),由于預(yù)先定義了優(yōu)先級(jí),可以提高號(hào)碼匹配的效率。
當(dāng)然,本發(fā)明還可有其他實(shí)施例,在不背離本發(fā)明精神及其實(shí)質(zhì)的情況下,所屬技術(shù)領(lǐng)域的技術(shù)人員當(dāng)可根據(jù)本發(fā)明作出各種相應(yīng)的改變和變形,但這些相應(yīng)的改變和變形都應(yīng)屬于本發(fā)明的權(quán)利要求的保護(hù)范圍。
權(quán)利要求
1.一種接入網(wǎng)關(guān)設(shè)備的收號(hào)方法,包括步驟1、將號(hào)碼匹配表中的常量二級(jí)DM和非常量二級(jí)DM分別采用多叉樹(shù)形式存儲(chǔ),以形成一常量多叉樹(shù)和一非常量多叉樹(shù);步驟2、用戶撥號(hào)時(shí)每撥一位號(hào)碼,則將該號(hào)碼在上述常量多叉樹(shù)和非常量多叉樹(shù)中進(jìn)行匹配;步驟3、如果匹配結(jié)果為無(wú)匹配數(shù)據(jù)或完全匹配且不需要繼續(xù)收號(hào)時(shí),上報(bào)匹配結(jié)果,步驟結(jié)束;如果匹配結(jié)果為部分匹配或完全匹配且需要繼續(xù)收號(hào)時(shí),保存匹配結(jié)果,返回步驟2。
2.根據(jù)權(quán)利要求1所述的一種接入網(wǎng)關(guān)設(shè)備的收號(hào)方法,其特征在于,上述步驟1具體為步驟11、將號(hào)碼匹配表中的所有一級(jí)DM沿中間的豎線分割為多個(gè)二級(jí)DM;步驟12、將所有的常量二級(jí)DM存儲(chǔ)為一常量多叉樹(shù);步驟13、將所有的非常量二級(jí)DM存儲(chǔ)為一非常量多義樹(shù)。
3.根據(jù)權(quán)利要求2所述的一種接入網(wǎng)關(guān)設(shè)備的收號(hào)方法,其特征在于,上述步驟12中,當(dāng)一個(gè)常量二級(jí)DM包含另一個(gè)常量二級(jí)DM的全部數(shù)字時(shí),則被包含的常量二級(jí)DM不單獨(dú)存儲(chǔ)。
4.根據(jù)權(quán)利要求2或3所述的一種接入網(wǎng)關(guān)設(shè)備的收號(hào)方法,其特征在于,上述步驟13中,預(yù)定義三級(jí)DM優(yōu)先級(jí),將優(yōu)先級(jí)高的三級(jí)DM存儲(chǔ)在非常量多叉樹(shù)的左側(cè)。
5.根據(jù)權(quán)利要求1所述的一種接入網(wǎng)關(guān)設(shè)備的收號(hào)方法,其特征在于,上述步驟2具體為步驟21、在常量多叉樹(shù)中,對(duì)用戶輸入的號(hào)碼進(jìn)行匹配,如果有匹配的節(jié)點(diǎn)則進(jìn)入步驟3,否則進(jìn)入步驟22;步驟22、遍歷非常量多叉樹(shù),對(duì)用戶輸入的號(hào)碼進(jìn)行匹配,如果有匹配的則進(jìn)入步驟3,否則上報(bào)匹配結(jié)果,步驟結(jié)束。
6.根據(jù)權(quán)利要求5所述的一種接入網(wǎng)關(guān)設(shè)備的收號(hào)方法,其特征在于,上述步驟21具體為將用戶輸入的號(hào)碼,使用哈希表搜索常量多叉樹(shù),如果有匹配的節(jié)點(diǎn)則進(jìn)入步驟3,否則進(jìn)入步驟22。
7.根據(jù)權(quán)利要求5或6所述的一種接入網(wǎng)關(guān)設(shè)備的收號(hào)方法,其特征在于,上述步驟22具體為使用左序遍歷方法,遍歷非常量多叉樹(shù),對(duì)該非常量多叉樹(shù)的每一節(jié)點(diǎn)內(nèi)的掩碼與當(dāng)前用戶輸入的一位號(hào)碼進(jìn)行與操作,如果與操作結(jié)果為0則繼續(xù)遍歷,如果與操作結(jié)果為非0則進(jìn)入步驟3。
全文摘要
本發(fā)明提出一種接入網(wǎng)關(guān)設(shè)備的收號(hào)方法,針對(duì)現(xiàn)有技術(shù)中收號(hào)效率過(guò)低的問(wèn)題而發(fā)明,包括1.將號(hào)碼匹配表中的常量和非常量分別采用多叉樹(shù)形式存儲(chǔ);2.用戶撥號(hào)時(shí)每撥一位號(hào)碼,則將該號(hào)碼在上述常量多叉樹(shù)和非常量多叉樹(shù)中進(jìn)行匹配;3.如果匹配結(jié)果為無(wú)匹配數(shù)據(jù)或完全匹配且不需要繼續(xù)收號(hào)時(shí),上報(bào)匹配結(jié)果,步驟結(jié)束;如果匹配結(jié)果為部分匹配或完全匹配且需要繼續(xù)收號(hào)時(shí),保存匹配結(jié)果,返回步驟2。本發(fā)明通過(guò)采用樹(shù)形存儲(chǔ)和斷點(diǎn)保存,能夠極大提高收號(hào)的效率。
文檔編號(hào)G06F17/30GK101039287SQ20071008678
公開(kāi)日2007年9月19日 申請(qǐng)日期2007年3月15日 優(yōu)先權(quán)日2007年3月15日
發(fā)明者孫小偉, 梅森, 王俊剛 申請(qǐng)人:中興通訊股份有限公司