專利名稱:一種會(huì)話發(fā)起協(xié)議頭部的查找方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊技術(shù)領(lǐng)域,尤其涉及一種會(huì)話發(fā)起協(xié)議(SessionInitiationProtocol, SIP)頭部的查找方法及裝置。
背景技術(shù):
SIP在近幾年得到了快速發(fā)展,基于SIP協(xié)議的服務(wù)也日益增多,如可以使用SIP實(shí)現(xiàn)語音呼叫服務(wù)、遠(yuǎn)程視頻服務(wù)、監(jiān)控服務(wù)、即時(shí)通信服務(wù)等等。而在通訊系統(tǒng)中,對(duì)SIP 協(xié)議的消息需要由SIP協(xié)議棧對(duì)消息進(jìn)行編解碼。當(dāng)SIP協(xié)議棧收到SIP消息時(shí),需要分離出SIP頭部,并在已知的SIP頭部列表中查找該頭部。由于SIP頭部的種類繁多,而每條SIP消息都帶有一定數(shù)量的頭部,所以SIP頭部查找的工作量相當(dāng)大。目前通訊系統(tǒng)中一般采用的SIP頭部查找方法是將待查SIP頭部依次與每個(gè)已知SIP頭部比較,直至匹配到相同的SIP頭部,每次比較時(shí)需要比較SIP頭部字符串中的每個(gè)字符,因此花費(fèi)時(shí)間較長(zhǎng),而且效率不高。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種SIP頭部的查找方法及裝置,能夠?qū)崿F(xiàn)SIP頭部的快速查找。為達(dá)到上述目的,本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的一種會(huì)話發(fā)起協(xié)議(SIP)頭部的查找方法,所述方法包括查找與待查SIP頭部長(zhǎng)度相同的已知SIP頭部分組;將所述待查SIP頭部轉(zhuǎn)換為整型數(shù)組;將所述待查SIP頭部與已知SIP頭部分組進(jìn)行比較,當(dāng)所述已知SIP頭部分組中存在與所述待查SIP頭部轉(zhuǎn)換得到的整型數(shù)組相匹配的整型數(shù)組時(shí),返回所述相匹配的整型數(shù)組對(duì)應(yīng)的SIP頭部索引。進(jìn)一步地,所述方法還包括按照長(zhǎng)度對(duì)已知SIP頭部進(jìn)行分組,并將得到的已知SIP頭部分組中的SIP頭部字符串轉(zhuǎn)換為整型數(shù)組。其中,所述按照長(zhǎng)度對(duì)已知SIP頭部進(jìn)行分組為采用枚舉類型對(duì)已知SIP頭部按照長(zhǎng)度進(jìn)行分組,在每個(gè)分組的開始和結(jié)束位置設(shè)置開始和結(jié)束標(biāo)記。其中,所述將所述待查SIP頭部與已知SIP頭部分組進(jìn)行比較為將待查SIP頭部對(duì)應(yīng)的整型數(shù)組與所述已知SIP頭部分組的開始標(biāo)記和結(jié)束標(biāo)記之間的整型數(shù)組枚舉值依次進(jìn)行比較。進(jìn)一步地,所述查找與待查SIP頭部長(zhǎng)度相同的已知SIP頭部分組之前,所述方法還包括對(duì)接收到的SIP消息進(jìn)行分離,得到待查SIP頭部。
一種SIP頭部的查找裝置,所述裝置包括查找模塊、轉(zhuǎn)換模塊和比較模塊;其中,所述查找模塊,用于查找與待查SIP頭部長(zhǎng)度相同的已知SIP頭部分組;所述轉(zhuǎn)換模塊,用于將所述待查SIP頭部轉(zhuǎn)換為整型數(shù)組;所述比較模塊,用于將所述待查SIP頭部與已知SIP頭部分組進(jìn)行比較,當(dāng)所述已知SIP頭部分組中存在與所述待查SIP頭部轉(zhuǎn)換得到的整型數(shù)組相匹配的整型數(shù)組時(shí),返回所述相匹配的整型數(shù)組對(duì)應(yīng)的SIP頭部索引。進(jìn)一步地,所述裝置還包括分組模塊,用于按照長(zhǎng)度對(duì)已知SIP頭部進(jìn)行分組;相應(yīng)地,所述轉(zhuǎn)換模塊,還用于將得到的已知SIP頭部分組中的SIP頭部字符串轉(zhuǎn)換為整型數(shù)組。其中,所述分組模塊,具體用于采用枚舉類型對(duì)已知SIP頭部按照長(zhǎng)度進(jìn)行分組,在每個(gè)分組的開始和結(jié)束位置設(shè)置開始和結(jié)束標(biāo)記。其中,所述比較模塊,具體用于將待查SIP頭部對(duì)應(yīng)的整型數(shù)組與所述已知SIP頭部分組的開始標(biāo)記和結(jié)束標(biāo)記之間的整型數(shù)組枚舉值依次進(jìn)行比較。進(jìn)一步地,所述裝置還包括分離模塊,用于對(duì)接收到的SIP消息進(jìn)行分離,得到待查SIP頭部。本發(fā)明通過查找與待查SIP頭部長(zhǎng)度相同的已知SIP頭部分組,并將待查SIP頭部和已知SIP頭部分組的字符串轉(zhuǎn)換為整型數(shù)組后進(jìn)行比較,縮短了 SIP協(xié)議棧查找SIP頭部花費(fèi)的時(shí)間,能夠?qū)崿F(xiàn)SIP頭部的快速查找,提高了處理效率。
圖I為本發(fā)明SIP頭部的查找方法的實(shí)現(xiàn)流程示意圖;圖2為本發(fā)明SIP頭部的查找方法實(shí)施例的實(shí)現(xiàn)流程示意圖;圖3為本發(fā)明SIP頭部的查找裝置的結(jié)構(gòu)示意圖。
具體實(shí)施例方式本發(fā)明的基本思想為查找與待查SIP頭部長(zhǎng)度相同的已知SIP頭部分組;將所述待查SIP頭部轉(zhuǎn)換為整型數(shù)組;將所述待查SIP頭部與已知SIP頭部分組進(jìn)行比較,當(dāng)所述已知SIP頭部分組中存在與所述待查SIP頭部轉(zhuǎn)換得到的整型數(shù)組相匹配的整型數(shù)組時(shí),返回所述相匹配的整型數(shù)組對(duì)應(yīng)的SIP頭部索引。為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下舉實(shí)施例并參照附圖,對(duì)本發(fā)明進(jìn)一步詳細(xì)說明。圖I示出了本發(fā)明SIP頭部的查找方法的實(shí)現(xiàn)流程,如圖I所示,所述方法包括下述步驟步驟101,查找與待查SIP頭部長(zhǎng)度相同的已知SIP頭部分組;這里,在本步驟之前,所述方法還包括按照長(zhǎng)度對(duì)已知SIP頭部進(jìn)行分組,并將得到的已知SIP頭部分組中的SIP頭部字符串轉(zhuǎn)換為整型數(shù)組。其中,具體可以采用枚舉類型對(duì)已知SIP頭部按照長(zhǎng)度進(jìn)行分組,在每個(gè)分組的開始和結(jié)束位置設(shè)置開始和結(jié)束標(biāo)記。具體地,可以對(duì)已知SIP頭部進(jìn)行分組,如組I :長(zhǎng)度為2、組2 :長(zhǎng)度為3、組3 :長(zhǎng)度為4、組4 :長(zhǎng)度為3、組5……。各已知SIP頭部分組中的包含的元素不需要自身的長(zhǎng)度數(shù)、據(jù)標(biāo)識(shí),而是利用已知SIP頭部分組本身進(jìn)行長(zhǎng)度的標(biāo)識(shí)。這里,所述已知SIP頭部分組具體可以包括轉(zhuǎn)換得到的整型數(shù)組以及各整型數(shù)組分別對(duì)應(yīng)的SIP頭部索引。所述方法還包括當(dāng)接收到SIP消息時(shí),對(duì)所述SIP消息進(jìn)行分離,得到待查SIP頭部。步驟102,將所述待查SIP頭部轉(zhuǎn)換為整型數(shù)組;具體地,在比較待查SIP頭部時(shí),可以先將所述待查SIP頭部的字符串轉(zhuǎn)換成一個(gè)整型數(shù)組,這里,具體為每四個(gè)字符轉(zhuǎn)換成一個(gè)整型值,不足四個(gè)的以0補(bǔ)足。如當(dāng)待查SIP頭部為Abcdef-asxd時(shí),可以進(jìn)行如下轉(zhuǎn)換[Abed]轉(zhuǎn)換為一個(gè)整數(shù)I, [ef-as]轉(zhuǎn)換為一個(gè)整數(shù)2,[xd]通過補(bǔ)0得到[xdOO],并轉(zhuǎn)換為整數(shù)3,組成整型數(shù)組123。另外,還可以通過預(yù)先將已知SIP頭部進(jìn)行轉(zhuǎn)換,把每個(gè)SIP頭部按照上述方法轉(zhuǎn)換成整型數(shù)組,并存儲(chǔ)在表中。如此,當(dāng)有查找要求時(shí),可以直接通過該表,得到所述待查SIP頭部對(duì)應(yīng)的整型數(shù)組。步驟103,將所述待查SIP頭部與已知SIP頭部分組進(jìn)行比較,當(dāng)所述已知SIP頭部分組中存在與所述待查SIP頭部轉(zhuǎn)換得到的整型數(shù)組相匹配的整型數(shù)組時(shí),返回所述相匹配的整型數(shù)組對(duì)應(yīng)的SIP頭部索引;具體地,本步驟中,所述將所述待查SIP頭部與已知SIP頭部分組進(jìn)行比較為將待查SIP頭部對(duì)應(yīng)的整型數(shù)組與所述已知SIP頭部分組的開始標(biāo)記和結(jié)束標(biāo)記之間的整型數(shù)組枚舉值依次進(jìn)行比較。另外,當(dāng)所述已知SIP頭部分組中不存在與所述待查SIP頭部轉(zhuǎn)換得到的整型數(shù)組相匹配的整型數(shù)組時(shí),可以判定所述待查SIP頭部不能夠被識(shí)別。圖2示出了本發(fā)明SIP頭部的查找方法實(shí)施例的實(shí)現(xiàn)流程,如圖2所示,所述實(shí)施例包括下述步驟步驟201,按照長(zhǎng)度對(duì)已知SIP頭部進(jìn)行分組;具體可以采用枚舉類型對(duì)已知SIP頭部按照長(zhǎng)度進(jìn)行分組,在每個(gè)分組的開始和結(jié)束位置設(shè)置開始和結(jié)束標(biāo)記。這里,采用枚舉類型進(jìn)行分組,當(dāng)存在新增的SIP頭部時(shí),只需向該枚舉類型的對(duì)應(yīng)分組中增加一個(gè)枚舉值即可。步驟202,將得到的已知SIP頭部分組中的SIP頭部字符串轉(zhuǎn)換為整型數(shù)組;步驟203,對(duì)接收到的SIP消息進(jìn)行分離,得到待查SIP頭部;步驟204,根據(jù)待查SIP頭部長(zhǎng)度找到與自身相同長(zhǎng)度的已知SIP頭部分組;步驟205,將待查SIP頭部轉(zhuǎn)換為整型數(shù)組;步驟206,在步驟204查找的得到的已知SIP頭部分組中比較待查SIP頭部和已知SIP頭部分別對(duì)應(yīng)的整型數(shù)組;具體地,將待查SIP頭部對(duì)應(yīng)的整型數(shù)組與所述已知SIP頭部分組的開始標(biāo)記和結(jié)束標(biāo)記之間的整型數(shù)組枚舉值依次進(jìn)行比較。步驟207,判斷是否存在匹配的整型數(shù)組,若是,則執(zhí)行步驟208,否則執(zhí)行步驟209 ;步驟208,返回與所述待查SIP頭部相匹配的整型數(shù)組對(duì)應(yīng)的已知SIP頭部的SIP頭部索引;步驟209,報(bào)告所述待查SIP頭部不能被識(shí)別。
應(yīng)當(dāng)理解,上述步驟201和步驟202可以在初始化階段完成,不需要占用SIP頭部查找時(shí)間。圖3示出了本發(fā)明SIP頭部的查找裝置的結(jié)構(gòu),如圖3所示,所述裝置包括查找模塊31、轉(zhuǎn)換模塊32和比較模塊33 ;其中,所述查找模塊31,用于查找與待查SIP頭部長(zhǎng)度相同的已知SIP頭部分組;所述轉(zhuǎn)換模塊32,用于將所述待查SIP頭部轉(zhuǎn)換為整型數(shù)組;具體地,可以將所述待查SIP頭部的字符串轉(zhuǎn)換成一個(gè)整型數(shù)組,這里,具體為每四個(gè)字符轉(zhuǎn)換成一個(gè)整型值,不足四個(gè)的以0補(bǔ)足。如當(dāng)待查SIP頭部為Abcdef-asxd時(shí),可以進(jìn)行如 下轉(zhuǎn)換[Abed]轉(zhuǎn)換為一個(gè)整數(shù)1,[ef-as]轉(zhuǎn)換為一個(gè)整數(shù)2,[xd]通過補(bǔ)0得到[xdOO],并轉(zhuǎn)換為整數(shù)3,組成整型數(shù)組123。另外,還可以通過預(yù)先將已知SIP頭部進(jìn)行轉(zhuǎn)換,把每個(gè)SIP頭部按照上述方法轉(zhuǎn)換成整型數(shù)組,并存儲(chǔ)在表中。如此,當(dāng)有查找要求時(shí),可以直接通過該表,得到所述待查SIP頭部對(duì)應(yīng)的整型數(shù)組。所述比較模塊33,用于將所述待查SIP頭部與已知SIP頭部分組進(jìn)行比較,當(dāng)所述已知SIP頭部分組中存在與所述待查SIP頭部轉(zhuǎn)換得到的整型數(shù)組相匹配的整型數(shù)組時(shí),返回所述相匹配的整型數(shù)組對(duì)應(yīng)的SIP頭部索引。進(jìn)一步地,所述裝置還包括分組模塊34,用于按照長(zhǎng)度對(duì)已知SIP頭部進(jìn)行分組;具體地,可以對(duì)已知SIP頭部進(jìn)行分組,如組I :長(zhǎng)度為2、組2 :長(zhǎng)度為3、組3 :長(zhǎng)度為4、組4 :長(zhǎng)度為3、組5……。各已知SIP頭部分組中的包含的元素不需要自身的長(zhǎng)度數(shù)據(jù)標(biāo)識(shí),而是利用已知SIP頭部分組本身進(jìn)行長(zhǎng)度的標(biāo)識(shí)。這里,所述已知SIP頭部分組具體可以包括轉(zhuǎn)換得到的整型數(shù)組以及各整型數(shù)組分別對(duì)應(yīng)的SIP頭部索引。 相應(yīng)地,所述轉(zhuǎn)換模塊32,還用于將得到的已知SIP頭部分組中的SIP頭部字符串轉(zhuǎn)換為整型數(shù)組。其中,所述分組模塊34,具體用于采用枚舉類型對(duì)已知SIP頭部按照長(zhǎng)度進(jìn)行分組,在每個(gè)分組的開始和結(jié)束位置設(shè)置開始和結(jié)束標(biāo)記。其中,所述比較模塊33,具體用于將待查SIP頭部對(duì)應(yīng)的整型數(shù)組與所述已知SIP頭部分組的開始標(biāo)記和結(jié)束標(biāo)記之間的整型數(shù)組枚舉值依次進(jìn)行比較。進(jìn)一步地,所述裝置還包括分離模塊35,用于對(duì)接收到的SIP消息進(jìn)行分離,得到待查SIP頭部。以上所述,僅為本發(fā)明的較佳實(shí)施例而已,并非用于限定本發(fā)明的保護(hù)范圍。
權(quán)利要求
1.一種會(huì)話發(fā)起協(xié)議SIP頭部的查找方法,其特征在于,所述方法包括 查找與待查SIP頭部長(zhǎng)度相同的已知SIP頭部分組; 將所述待查SIP頭部轉(zhuǎn)換為整型數(shù)組; 將所述待查SIP頭部與已知SIP頭部分組進(jìn)行比較,當(dāng)所述已知SIP頭部分組中存在與所述待查SIP頭部轉(zhuǎn)換得到的整型數(shù)組相匹配的整型數(shù)組時(shí),返回所述相匹配的整型數(shù)組對(duì)應(yīng)的SIP頭部索引。
2.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述方法還包括 按照長(zhǎng)度對(duì)已知SIP頭部進(jìn)行分組,并將得到的已知SIP頭部分組中的SIP頭部字符串轉(zhuǎn)換為整型數(shù)組。
3.根據(jù)權(quán)利要求2所述的方法,其特征在于,所述按照長(zhǎng)度對(duì)已知SIP頭部進(jìn)行分組為 采用枚舉類型對(duì)已知SIP頭部按照長(zhǎng)度進(jìn)行分組,在每個(gè)分組的開始和結(jié)束位置設(shè)置開始和結(jié)束標(biāo)記。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,所述將所述待查SIP頭部與已知SIP頭部分組進(jìn)行比較為 將待查SIP頭部對(duì)應(yīng)的整型數(shù)組與所述已知SIP頭部分組的開始標(biāo)記和結(jié)束標(biāo)記之間的整型數(shù)組枚舉值依次進(jìn)行比較。
5.根據(jù)權(quán)利要求I所述的方法,其特征在于,所述查找與待查SIP頭部長(zhǎng)度相同的已知SIP頭部分組之前,所述方法還包括 對(duì)接收到的SIP消息進(jìn)行分離,得到待查SIP頭部。
6.一種SIP頭部的查找裝置,其特征在于,所述裝置包括查找模塊、轉(zhuǎn)換模塊和比較模塊;其中, 所述查找模塊,用于查找與待查SIP頭部長(zhǎng)度相同的已知SIP頭部分組; 所述轉(zhuǎn)換模塊,用于將所述待查SIP頭部轉(zhuǎn)換為整型數(shù)組; 所述比較模塊,用于將所述待查SIP頭部與已知SIP頭部分組進(jìn)行比較,當(dāng)所述已知SIP頭部分組中存在與所述待查SIP頭部轉(zhuǎn)換得到的整型數(shù)組相匹配的整型數(shù)組時(shí),返回所述相匹配的整型數(shù)組對(duì)應(yīng)的SIP頭部索引。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括分組模塊,用于按照長(zhǎng)度對(duì)已知SIP頭部進(jìn)行分組; 相應(yīng)地,所述轉(zhuǎn)換模塊,還用于將得到的已知SIP頭部分組中的SIP頭部字符串轉(zhuǎn)換為整型數(shù)組。
8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述分組模塊,具體用于采用枚舉類型對(duì)已知SIP頭部按照長(zhǎng)度進(jìn)行分組,在每個(gè)分組的開始和結(jié)束位置設(shè)置開始和結(jié)束標(biāo)記。
9.根據(jù)權(quán)利要求8所述的裝置,其特征在于,所述比較模塊,具體用于將待查SIP頭部對(duì)應(yīng)的整型數(shù)組與所述已知SIP頭部分組的開始標(biāo)記和結(jié)束標(biāo)記之間的整型數(shù)組枚舉值依次進(jìn)行比較。
10.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述裝置還包括分離模塊,用于對(duì)接收到的SIP消息進(jìn)行分離,得到待查SIP頭部。
全文摘要
本發(fā)明提供了一種會(huì)話發(fā)起協(xié)議(SIP)頭部的查找方法及裝置,所述方法包括查找與待查SIP頭部長(zhǎng)度相同的已知SIP頭部分組;將所述待查SIP頭部轉(zhuǎn)換為整型數(shù)組;將所述待查SIP頭部與已知SIP頭部分組進(jìn)行比較,當(dāng)所述已知SIP頭部分組中存在與所述待查SIP頭部轉(zhuǎn)換得到的整型數(shù)組相匹配的整型數(shù)組時(shí),返回所述相匹配的整型數(shù)組對(duì)應(yīng)的SIP頭部索引。本發(fā)明通過查找與待查SIP頭部長(zhǎng)度相同的已知SIP頭部分組,并將待查SIP頭部和已知SIP頭部分組的字符串轉(zhuǎn)換為整型數(shù)組后進(jìn)行比較,縮短了SIP協(xié)議棧查找SIP頭部花費(fèi)的時(shí)間,能夠?qū)崿F(xiàn)SIP頭部的快速查找,提高了處理效率。
文檔編號(hào)H04L29/06GK102685105SQ201210081949
公開日2012年9月19日 申請(qǐng)日期2012年3月23日 優(yōu)先權(quán)日2012年3月23日
發(fā)明者王曉斌 申請(qǐng)人:東方有線網(wǎng)絡(luò)有限公司, 中興通訊股份有限公司