專利名稱::用于處理會(huì)話啟動(dòng)協(xié)議消息的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明一般地涉及數(shù)據(jù)通信領(lǐng)域,具體地說,涉及用于處理SIP(M啟動(dòng)協(xié)議)消息的方法和系統(tǒng),更進(jìn)一步地說,涉及將SIP消息二進(jìn)制化以減輕SIP服務(wù)器的負(fù)載(下文中簡稱為減栽)和便于對SIP消息進(jìn)4亍選擇性處理的方法和系統(tǒng)。
背景技術(shù):
:作為一種基礎(chǔ)的會(huì)話控制協(xié)議,SIP漸漸成為下一代電信網(wǎng)絡(luò)(NGN)和IT協(xié)作解決方案中的新興工作流。SIP是一種基于文本的消息協(xié)i義,它獨(dú)立于底層網(wǎng)絡(luò)傳輸協(xié)議而運(yùn)行,在多個(gè)用戶之間建立會(huì)話而不管所傳輸?shù)臄?shù)據(jù)是文本數(shù)據(jù)還是音頻數(shù)據(jù)、視頻數(shù)據(jù)。不過,在SIP協(xié)議棧中,諸如權(quán)標(biāo)(Token)解析和安全性處理等計(jì)算密集型操作將占據(jù)大量CPU周期。由于基于SIP的應(yīng)用漸漸流行,因此這些操作會(huì)成為SIP服務(wù)器(諸如代理服務(wù)器或應(yīng)用服務(wù)器)的潛在的性能瓶頸。為此,提出了一種如圖l所示的SIP減栽引擎(SOE)體系結(jié)構(gòu)。如圖1所示,由前端IIO解析SIP消息,對其進(jìn)行二進(jìn)制化處理,生成一種"SIP減載引擎(SOE)消息",下文中筒稱為SOE消息。采用這種減載技術(shù)的目的就是為了將計(jì)算密集型操作從服務(wù)器端減載到某些特定設(shè)備,例如前端(frontend)。具體而言,前端將解析SIP消息中的權(quán)標(biāo),并把基于文本的消息轉(zhuǎn)換為二進(jìn)制SOE消息,并接著由服務(wù)器端解析SOE消息。術(shù)語"權(quán)標(biāo)"被定義為將通過接口提供給上層邏輯的一個(gè)不可分解的部分,其是用分隔符(例如分號(hào)、空格)分隔開的字符串。這樣,在服務(wù)器端可以節(jié)約更多的CPU周期用于上層應(yīng)用,以《更提高整體性能。SIP協(xié)議使終端用戶能夠經(jīng)由消息彼此通信。消息的基本形式可以是從客戶端發(fā)送到服務(wù)器的請求,或者是從服務(wù)器到客戶端的應(yīng)答。消息包括起始行(start-line)、一個(gè)或多個(gè)頭部字段(headerfield)、指示頭部字段結(jié)尾的空行、以及可選的消息體(message-body)。SIP消息的通用結(jié)構(gòu)如下所示generic-message二start-linemessageheaderfield1messageheaderfield2CRLFmessage-body[optional]start-line=Request"Line/Status-Line1.SIP請求消息通過將請求行(Request-Line)作為起始行,可以識(shí)別出請求。請求行的格式如下所示Request-Line=MethodSPRequest-URISPSIP-VersionCRLF方法(Method)是關(guān)聯(lián)于終端用戶之間的會(huì)話的動(dòng)作。方法的示例包括在RTC3261規(guī)范中定義的REGISTER、INVITE、OPTIONS、ACK、CANCEL、BYE;以及在其它獨(dú)立的RFC規(guī)范中定義的其它方法。Request-URI是SIP消息的接受者,SIP-Version當(dāng)前是SIP/2.0并將被包括在所有消息中。CRLF終止請求行。2.SIP響應(yīng)消息通過將狀態(tài)行(Status-Line)作為起始行,可以識(shí)別出響應(yīng)。狀態(tài)行的格式如下所示Status-Line=SIP-VersionSPStatus-codeSPReason-PhraseCRLF狀態(tài)代碼(Status-code)表示由于請求而采取的動(dòng)作的結(jié)果。請求的結(jié)果被分類如下a)100-199:請求已接收,正在處理。b)200-299:請求已被接收、理解和接受。c)300-399:需要進(jìn)一步動(dòng)作來完成對請求的處理。d)400-499:在服務(wù)器不能處理請求??赡芤?yàn)椴涣嫉恼Z法。e)500-599:服務(wù)器無法處理請求。請求可能不合法。f)600-699:全局失效。請求不能被任何服務(wù)器處理。Reason-Phrase是類似于英語的狀態(tài)代碼的等同語。例如對于狀態(tài)碼200,Reason-Phrase是"OK"。請求/響應(yīng)消息可以具有多個(gè)消息頭部。所述的SIP頭部字段構(gòu)成了SIP消息的一部分。每個(gè)頭部傳達(dá)對于目的地的某種信息。SIP消息頭部的格式如下所示field-name:[field-value]注意,字段值(field-value)可以擴(kuò)展為多行。頭部字段的類型可以被認(rèn)為是基于由該頭部所執(zhí)行的功能。在RFC3261規(guī)范中定義了44種頭部。主要的頭部類型包括但不限于1.始發(fā)者字段From、To2.路由字段Via3.認(rèn)證Proxy誦Authenticate。由此可見,SIP消息具有以下三個(gè)特征a)大量可變長度的權(quán)標(biāo)值;b)逐行結(jié)構(gòu);以及c)每行中多個(gè)權(quán)標(biāo)。因此,如何對SIP消息進(jìn)行二進(jìn)制化處理是實(shí)現(xiàn)減栽技術(shù)的關(guān)鍵。作為現(xiàn)有方案之一,ASN.l可被用于以<類型,長度,值〉(TLV)的方式來調(diào)節(jié)權(quán)標(biāo)信息。但是,這種TLV方案不是高效的,因?yàn)镾IP消息中的大多數(shù)值都是可變長度的串,則解析器將必須遍歷整個(gè)消息來獲得所需信息。另一現(xiàn)有方案是為每個(gè)權(quán)標(biāo)分配固定位置。但是該方案也存在多種缺陷。第一,影響存儲(chǔ)效率,因?yàn)椴煌L度的權(quán)標(biāo)之間會(huì)出現(xiàn)存儲(chǔ)空間浪費(fèi)。第二,進(jìn)行消息處理時(shí)必須跳過這些空白的存儲(chǔ)空間,這同樣影響了處理效率。第三,未給"可選的"權(quán)標(biāo)留出足夠空間。因此,需要一種能夠?qū)IP消息進(jìn)行高效二進(jìn)制轉(zhuǎn)換的方案。
發(fā)明內(nèi)容為了解決上述問題而提出了本發(fā)明。根據(jù)本發(fā)明的一個(gè)方面,提出了一種會(huì)話啟動(dòng)協(xié)議消息處理方法,包括以下步驟由前端接收會(huì)話啟動(dòng)協(xié)議消息;由前端解析所述會(huì)活啟動(dòng)協(xié)議消息,將所述務(wù)活啟動(dòng)協(xié)議消息中的權(quán)標(biāo)類型以及權(quán)標(biāo)內(nèi)容分別成組,并在所述權(quán)標(biāo)類型以及權(quán)標(biāo)內(nèi)容之間建立相應(yīng)的鏈接,所述會(huì)活啟動(dòng)協(xié)議消息在解析后被轉(zhuǎn)換為具有以下三部分的M啟動(dòng)協(xié)議減栽引擎消息M啟動(dòng)協(xié)議減栽引擎頭部分,用于存儲(chǔ)消息級(jí)信息;權(quán)標(biāo)類型部分用于存儲(chǔ)權(quán)標(biāo)的類型信息,其中可包括多個(gè)固定長度的條目;權(quán)標(biāo)內(nèi)容部分用于存儲(chǔ)權(quán)標(biāo)內(nèi)容,其中可包括多個(gè)可變長度的條目;以及在服務(wù)器端對經(jīng)轉(zhuǎn)換的會(huì)話啟動(dòng)協(xié)議減栽引擎消息進(jìn)行處理。根據(jù)本發(fā)明的另一方面,提出了一種^t啟動(dòng)協(xié)議消息處理系統(tǒng),包括前端,其包括消息解析器;服務(wù)器,其包括消息處理裝置;其中,由所述前端接收會(huì)話啟動(dòng)協(xié)議消息;由所述消息解析器解析所述會(huì)話啟動(dòng)協(xié)議消息,將所述^"啟動(dòng)協(xié)議消息中的權(quán)標(biāo)類型以及權(quán)標(biāo)內(nèi)容分別成組,并在所i^U示類型以及權(quán)標(biāo)內(nèi)容之間建立相應(yīng)的鏈接,所述會(huì)話啟動(dòng)協(xié)議消息在解析后被轉(zhuǎn)換為具有以下三部分的M啟動(dòng)協(xié)議減栽引擎消息^啟動(dòng)協(xié)議減載引擎頭部分,用于存儲(chǔ)消息級(jí)信息;權(quán)標(biāo)類型部分用于存儲(chǔ)權(quán)標(biāo)的類型信息,其中可包括多個(gè)固定長度的條目;權(quán)標(biāo)內(nèi)容部分用于存儲(chǔ)權(quán)標(biāo)內(nèi)容,其中可包括多個(gè)可變長度的條目;以及由所述消息處理裝置對經(jīng)轉(zhuǎn)換的會(huì)話啟動(dòng)協(xié)議減載引擎消息進(jìn)行處理。本發(fā)明所提出的用于將SIP消息二進(jìn)制化用以減栽和選擇性處理的方法和系統(tǒng),高效快速地將基于文本的SIP消息轉(zhuǎn)換為基于二進(jìn)制的SOE消息,從而大大降低了服務(wù)器的工作負(fù)荷,并同時(shí)顧及了存儲(chǔ)效率。在附帶的權(quán)利要求中闡明了被認(rèn)為是本發(fā)明新穎特性的特征。然而,通過參考以下結(jié)合附圖的闡述性實(shí)施例的詳細(xì)描述,將最好地理解本發(fā)明本身以及其優(yōu)選使用模式、另外的目標(biāo)和優(yōu)點(diǎn),在附圖中圖l示出了SOE體系結(jié)構(gòu)的示意圖;圖2示出了才艮據(jù)本發(fā)明優(yōu)選實(shí)施例的SOE消息的整體結(jié)構(gòu)的示意圖;圖3示出根據(jù)本發(fā)明優(yōu)選實(shí)施例的SOE消息的數(shù)據(jù)結(jié)構(gòu);圖4示出了根據(jù)本發(fā)明實(shí)施例的用于對SIP消息進(jìn)行二進(jìn)制化處理的方法的流程圖;圖5A示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的SOE頭部分的示意圖;圖5B示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的權(quán)標(biāo)類型部分的示意圖;圖5C示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的權(quán)標(biāo)內(nèi)容部分中對固定長度值的編碼的示意圖;圖5D示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的權(quán)標(biāo)內(nèi)容部分中對可變長度值的編碼的示意圖;圖6示出了在服務(wù)器端對消息進(jìn)行選擇性處理的方法的流程圖;圖7示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例以不同粒度和不同時(shí)序處理SIP消息的結(jié)構(gòu)示意圖;以及圖8示出了才艮據(jù)本發(fā)明優(yōu)選實(shí)施例的用于處理SIP消息的系統(tǒng)的示意圖。具體實(shí)施例方式為了能夠?qū)IP消息進(jìn)行高效二進(jìn)制轉(zhuǎn)換,本發(fā)明提出了一種新的SOE消息結(jié)構(gòu)。如圖2所示,才艮據(jù)本發(fā)明優(yōu)選實(shí)施例的SOE消息的整體結(jié)構(gòu)包括三個(gè)部分SOE頭部分210:用于存儲(chǔ)SOE消息級(jí)信息。權(quán)標(biāo)類型條目部分220:用于存儲(chǔ)權(quán)標(biāo)類型信息,其中可包括多個(gè)固定長度(對準(zhǔn))條目。權(quán)標(biāo)內(nèi)容條目部分230:用于存儲(chǔ)權(quán)標(biāo)的值,其中可包括多個(gè)可變長度的條目。圖3示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例的SOE消息的數(shù)據(jù)結(jié)構(gòu)。參見圖3,在本發(fā)明中,將SIP消息中包含的權(quán)標(biāo)轉(zhuǎn)換為特定格式的權(quán)標(biāo)類型條目310和權(quán)標(biāo)內(nèi)容條目320,并對二者分別成組。所述類型條目310用TYPE—A.TYPE—B的形式來指示權(quán)標(biāo)的類型,其中,TYPE一A部分區(qū)分該權(quán)標(biāo)所在的頭部,而TYPE一B部分區(qū)別該權(quán)標(biāo)的詳細(xì)的類型信息。這種類型指示適合于SIP消息的格式和語義的特性,其各自具有固定長度。在類型條目310中,所有權(quán)標(biāo)的類型條目被分組在一起,以允許快速信息檢索。類型條目310中還包括VALUE—01^PTR字段,其中包含有指向與該類型條目字段對應(yīng)的內(nèi)容條目中的特定值所在位置的指針,或者如果該特定值小于為該字段定義的字段長度,則將該值直接存儲(chǔ)在VALUE—OR_PTR字段中。所述內(nèi)容條目320與所述類型條目310分開存儲(chǔ)。所有權(quán)標(biāo)的內(nèi)容條目被分組在一起。并通過類型條目中的VALUE—OR—PTR字段進(jìn)行索引。于是,每個(gè)權(quán)標(biāo)的完整信息可被獨(dú)立地訪問。從以上可以看出,在根據(jù)本發(fā)明優(yōu)選實(shí)施例的SOE消息結(jié)構(gòu)中,由于將所有權(quán)標(biāo)的類型條目分組在一起,以多個(gè)固定長度(對準(zhǔn))的條目來存儲(chǔ),并且在類型條目和內(nèi)容條目之間通過VALUEJ)R—PTR進(jìn)行索引,所以可以快速地檢索某一特定權(quán)標(biāo)的信息。于是,根據(jù)據(jù)本發(fā)明優(yōu)選實(shí)施例的SOE消息結(jié)構(gòu)不但減輕了SIP服務(wù)器的負(fù)載,提高了SIP服務(wù)器的處理效率,同時(shí)還便于SIP服務(wù)器根據(jù)具體的應(yīng)用來選擇性處理SIP消息中特定權(quán)標(biāo)的信息。基于上述SOE消息的結(jié)構(gòu),本發(fā)明首先結(jié)合優(yōu)選實(shí)施例而提出了一種用于將SIP消息二進(jìn)制化的方法。其中,前端將充分利用其消息處理能力對SIP消息中的每個(gè)權(quán)標(biāo)進(jìn)行解析,并將它們編碼到SOE消息中。根據(jù)本發(fā)明的方法執(zhí)行的二進(jìn)制化轉(zhuǎn)換具有以下特征:-在轉(zhuǎn)換過程中不會(huì)丟失任何信息;基于無狀態(tài)標(biāo)準(zhǔn)對每個(gè)消息執(zhí)行轉(zhuǎn)換,即,當(dāng)消息通過前端時(shí),前端無需維護(hù)用于消息轉(zhuǎn)換的任何狀態(tài);在服務(wù)器端無需進(jìn)行串解析;.考慮了SOE消息的空間存儲(chǔ)效率?,F(xiàn)在參見圖4,圖4是描述了根據(jù)本發(fā)明實(shí)施例的用于對SIP消息進(jìn)行二進(jìn)制化處理的方法的流程圖。注意,在描述本發(fā)明的方法的過程中,也將結(jié)合圖5A-圖5D詳細(xì)介紹上述SOE消息的三個(gè)部分的細(xì)節(jié)。在圖4中,該方法首先開始于步驟400,并隨之進(jìn)行到步驟405,由前端接收SIP消息。接著在步驟415,重置權(quán)標(biāo)計(jì)數(shù),即,把權(quán)標(biāo)計(jì)數(shù)置為零。并接著在步驟420,對SIP消息中的每一權(quán)標(biāo)進(jìn)行解析。在步驟425,確定是否正在解析SIP消息中新的一行。如果是,則在步驟430獲得該行的類型,并進(jìn)行到步驟435。如果否,則直接進(jìn)行到步驟435。在步驟435,獲得權(quán)標(biāo)的類型。接著在步驟440,將權(quán)標(biāo)的類型附在權(quán)標(biāo)條目部分220的類型字段部分,如圖5B所示。圖5B是示出了權(quán)標(biāo)類型條目部分220的示意圖。在權(quán)標(biāo)類型條目部分220中,每4個(gè)字節(jié)將包含對一個(gè)權(quán)標(biāo)以及一個(gè)值或到一個(gè)值的指針的編碼。為了處理效率而將每個(gè)條目限于4字節(jié)的范圍內(nèi)。為了消息空間的效率,每個(gè)條目可直接放置在前一條目的后邊。在任一情形中,通過指針和值的長度均可精確確定出所需要的值。所有的權(quán)標(biāo)將以TYPE_A.TYPEJB的格式被編碼,其表示為Method.Field或Header.Field形式的權(quán)標(biāo)。即,權(quán)標(biāo)條目部分220包括三個(gè)字段TYPE—A、TYPE_B和VALUE_OR—PTR。在以下的表l中介紹了權(quán)標(biāo)類型條目部分220的各個(gè)字段的描述。<table>tableseeoriginaldocumentpage12</column></row><table>表l權(quán)標(biāo)類型條目部分的字段描述繼續(xù)本發(fā)明方法的過程,在完成步驟440之后,在步驟445,獲得權(quán)標(biāo)的值。在步驟450,確定該權(quán)標(biāo)值是否具有可變長度。如果否,則該權(quán)標(biāo)值具有固定長度,并在步驟460將該權(quán)標(biāo)值附在所述權(quán)標(biāo)內(nèi)容部分230的值部分。注意,如果該權(quán)標(biāo)值小于2字節(jié),則它被直接附在上i^5L標(biāo)條目部分220的VALUE—OR一PTR字段。如果該權(quán)標(biāo)值大于2字節(jié),則它被附在如圖5C所示的權(quán)標(biāo)內(nèi)容條目部分230中。圖5C是示出了權(quán)標(biāo)內(nèi)容條目部分230中對固定長度值的編碼的示意圖。權(quán)標(biāo)內(nèi)容條目部分230被用于存儲(chǔ)根據(jù)上面定義的TYPE一A和TYPE_B所確定的值。參見圖5C,如果由TYPE—A和TYPE一B所確定的值的長度是固定的,并且該長度超過2字節(jié),則將該固定長度值直接放在該部分中,并由相應(yīng)的權(quán)標(biāo)類型條目部分中的指針?biāo)敢?。如果在步驟450的確定為是,則該權(quán)標(biāo)值具有可變長度,并在步驟455將該權(quán)標(biāo)值連同其長度一起附在如圖5D所示的權(quán)標(biāo)內(nèi)容條目部分230中。圖5D是示出了權(quán)標(biāo)內(nèi)容條目部分230中對可變長度值的編碼的示意圖。參見圖5D,如果字段和已知參數(shù)的值在長度上是可變的,則用圖5D所示的格式來存儲(chǔ)該值,其中該值出現(xiàn)在它的長度字段(VALUE—LENGTH)之后。在以下的表2中介紹了權(quán)標(biāo)內(nèi)容條目部分230中對可變長度值的字段描述。字段名字段寬度字段定義VALUE—LENGTH2字節(jié)從該值開始到結(jié)束的字節(jié)長度,不包括該字段本身的2字節(jié)。VALUE可變,由VALUE—LENGTH所指定通常為串。表2權(quán)標(biāo)內(nèi)容條目部分中對可變長度值的字段描述注意,對于通用參數(shù),由于它具有一對代碼,一個(gè)用于參數(shù)名、一個(gè)用于參數(shù)值,因此每個(gè)代碼仍可適合于圖5D所示的格式。還要注意,由于SIP標(biāo)準(zhǔn)的M仍在進(jìn)行,因此可以定義新的方法或新的頭部。在向其分配新代碼且相應(yīng)的處理邏輯準(zhǔn)備好之前,所述新的方法或新的頭部將作為未知方法或未知頭部來進(jìn)行編碼。對于未知方法,將在TYPE一A中分配一個(gè)代碼,而其值將是由指針?biāo)赶虻拇?,其中指示出該方法。請求行的其余部分按照與已知方法相同的方式進(jìn)行解析和編碼。對于未知頭部,必須保持該頭部名稱和其余部分。因此,未知頭部將具有經(jīng)分配的兩個(gè)代碼,與通用參數(shù)相同。繼續(xù)本發(fā)明方法的過程,在完成步驟455或460之后,進(jìn)行到步驟465,在權(quán)標(biāo)類型條目部分220和權(quán)標(biāo)內(nèi)容條目部分230之間建立指針。接著在步驟470,權(quán)標(biāo)計(jì)數(shù)遞增l。在步驟475確定該消息是否結(jié)束。如果否,返回步驟420繼續(xù)解析該消息。如果是,則進(jìn)行到步驟480,構(gòu)建如圖5A所示的具有權(quán)標(biāo)計(jì)數(shù)的SOE頭部。圖5A是示出了SOE頭部分210的示意圖。SOE頭部分210是對于所有SOE消息來說的通用部分。如圖5A所示,SOE頭部分210包括SOE_ID、SOE_Version、Message—Length、Entry—Number和Reserved,在以下的表3中介紹了SOE頭部分210中的字段描述。<table>tableseeoriginaldocumentpage14</column></row><table>表3SOE頭部部分的字段描述在完成步驟480之后,本發(fā)明方法的過程結(jié)束于步驟485。以上基于才艮據(jù)發(fā)明優(yōu)選實(shí)施例的SOE消息的結(jié)構(gòu),介紹了一種用于對SIP消息進(jìn)行二進(jìn)制化處理的方法。在本文的最后給出了一個(gè)SOE消息參考編碼及SIP-SOE消息轉(zhuǎn)換示例。在經(jīng)過前端對SIP消息進(jìn)行二進(jìn)制化處理,生成了SOE消息。如前所述,在根據(jù)發(fā)明優(yōu)選實(shí)施例的SOE消息中,由于將所有權(quán)標(biāo)的類型條目分組在一起,以多個(gè)固定長度(對準(zhǔn))的條目來存儲(chǔ),并且在類型條目和內(nèi)容條目之間通過VALUE—OR—PTR進(jìn)行索引,所以可以快速地檢索某一特定權(quán)標(biāo)的信息。于是,根據(jù)據(jù)本發(fā)明優(yōu)選實(shí)施例的SOE消息結(jié)構(gòu)還便于SIP服務(wù)器根據(jù)具體的應(yīng)用來選擇性處理SIP消息中特定權(quán)標(biāo)的信息。圖6示出了在SIP服務(wù)器端對消息進(jìn)行選擇性處理的方法的流程圖。在圖6中,該方法首先開始于步驟600,并隨之進(jìn)行到步驟605,由月良務(wù)器接收消息。接著在步驟610,確定是否存在SOE頭部。如果否,則該消息不是SOE消息而是SIP消息,并進(jìn)行到步驟615直接進(jìn)行通常的SIP解析。如果是,則進(jìn)行到步驟620和625,依次獲得權(quán)標(biāo)計(jì)數(shù)和權(quán)標(biāo)類型條目部分中的類型。接著,在步驟630,選擇在權(quán)標(biāo)類型條目部分的類型中與運(yùn)行于服務(wù)器上的應(yīng)用相關(guān)的感興趣的行。在步驟635,選擇在權(quán)標(biāo)類型條目部分的類型中與運(yùn)行于服務(wù)器上的應(yīng)用相關(guān)的感興趣的權(quán)標(biāo)。在步驟640,通過行類型和權(quán)標(biāo)類型獲得處理信息。接著在步驟645,通過指針來定位權(quán)標(biāo)內(nèi)容條目部分中的值。在步驟650判斷該值是否具有可變長度。如果是,則在步驟655通過其長度獲得該值。否則在步驟660直接獲得該值。在步驟655或660或615之后,在步驟665執(zhí)行消息解析后的與應(yīng)用相關(guān)的處理。在完成步驟665之后,本發(fā)明方法的過程結(jié)束于步驟670。以上介紹了根據(jù)本發(fā)明實(shí)施例的用于對SIP消息進(jìn)行二進(jìn)制化處理的方法和在服務(wù)器端對消息進(jìn)行選擇性處理的方法。在以上實(shí)施例中,在對SIP消息進(jìn)行二進(jìn)制化處理的中,是針對SIP消息中的各個(gè)權(quán)標(biāo)進(jìn)行解析。對于本領(lǐng)域一般技術(shù)人員來說很明顯,可以根據(jù)后端服務(wù)器端上運(yùn)行的應(yīng)用,在前端只對指定類型的權(quán)標(biāo)、指定的SIP消息行進(jìn)行解析。并且,解析的粒度也不只限于權(quán)標(biāo),對于當(dāng)前應(yīng)用不感興趣的SIP消息,可以將部分消息行甚至整個(gè)消息封裝為S0E消息中一個(gè)條目。此外,在后端服務(wù)器端可以僅處理自己所感興趣的S0E消息部分。于是,基于本發(fā)明的SOE消息結(jié)構(gòu),可以按不同粒度和不同時(shí)序來處理SIP消息。圖7示出了根據(jù)本發(fā)明優(yōu)選實(shí)施例.以不同粒度和不同時(shí)序處理SIP消息的結(jié)構(gòu)示意圖。其中,將一個(gè)或多個(gè)前端節(jié)點(diǎn)以及可選的其它功能節(jié)點(diǎn)與一個(gè)或多個(gè)服務(wù)器相鏈接,以構(gòu)成同構(gòu)的、層級(jí)的和分布式的SIP處理路徑,從而可以按不同粒度(可以是以下粒度中的任一種權(quán)標(biāo)、行、頭部、整個(gè)信息)和不同時(shí)序來處理SIP消息。例如,i^消息通過同一個(gè)前端可以到達(dá)多個(gè)服務(wù)器,也可以到達(dá)另一前端;而從任一服務(wù)器輸出的消息還可以繼續(xù)通過另一個(gè)前端接受進(jìn)一步的轉(zhuǎn)換處理。在同一發(fā)明構(gòu)思下,本發(fā)明還提出一種用于處理SIP消息的系統(tǒng)。圖8示出了才艮據(jù)本發(fā)明優(yōu)選實(shí)施例的用于處理SIP消息系統(tǒng)的示意圖。所述系統(tǒng)包括前端110和服務(wù)器120,其中所述前端110包括消息解析器810、存儲(chǔ)庫820、通信裝置830、粒度控制器840和應(yīng)用簡表850,所述月艮務(wù)器120包括SOE消息處理裝置860、SIP消息處理裝置870、選擇性控制裝置880、通信裝置890。前端110中的通信裝置830與服務(wù)器120中的通信裝置890彼此進(jìn)行通信,以建立數(shù)據(jù)傳輸機(jī)制。消息解析器810用于根據(jù)來自粒度控制器840的信息對前端所接收到的SIP消息進(jìn)行解析,其中解析粒度可以是以下粒度中的任一種權(quán)標(biāo)、行、頭部、整個(gè)信息。粒度控制器840用于才艮據(jù)服務(wù)器端應(yīng)用的需要或基于應(yīng)用簡表850確定消息解析器810的解析粒度。應(yīng)用簡表850用于存儲(chǔ)各應(yīng)用的屬性以及其感興趣的消息行或4又標(biāo)。SOE消息處理裝置860用于在選擇性控制裝置880的控制下對所接收到的消息進(jìn)行選擇性處理。SOE消息參考編碼及SIP-SOE消息轉(zhuǎn)換示例為了有助于理解本發(fā)明的二進(jìn)制化轉(zhuǎn)換,以下參考表4提供了對于TYPEA的參考編碼。其中表4中的斜體參數(shù)表示它們包含其它l^t或字段,其將被列于下文的表5的第一列中。<table>tableseeoriginaldocumentpage17</column></row><table><table>tableseeoriginaldocumentpage18</column></row><table><table>tableseeoriginaldocumentpage19</column></row><table><table>tableseeoriginaldocumentpage20</column></row><table>表4對于方法和頭部的TYPE—A編碼在以下表5中列出了可能的字段和參數(shù)。某些參勤字段可出現(xiàn)在不同的頭部中,為完整起見,將這些參勤字段在相應(yīng)頭部中出現(xiàn)的全部可能性都列出。<table>tableseeoriginaldocumentpage21</column></row><table><table>tableseeoriginaldocumentpage22</column></row><table><table>tableseeoriginaldocumentpage23</column></row><table>timesent-protoeolprotocol-nameprotocol-versiontransport=trasport-paramvia-ttl=ttl-paramvia-maddr=maddr-paramvia-receivedvia-branchvia-extension=generic-paramvia-receivedother-chanllengeauth-schemeauth-paramlanguage-tag=language-rangesent勿hostportdisp-paramhandling-paratngcncric-paramabsolute-uri=scheme-dataaccept-param-q-paramoption-tag=tagcontent-coding=encodingexpires-delta墨secondsinfo-param=purposedomaindelayseq-numbermajor-version<table>tableseeoriginaldocumentpage25</column></row><table>表5可能的參勤字段的列表以下參考表6提供了對于TYPE一B的參考編碼。其中列出了字段或參數(shù)的某些示例。<table>tableseeoriginaldocumentpage26</column></row><table><table>tableseeoriginaldocumentpage27</column></row><table><table>tableseeoriginaldocumentpage28</column></row><table><table>tableseeoriginaldocumentpage29</column></row><table>表6對于參勤字段的TYPEB編碼在"對于該TYPE一B代碼的VALUE一OR—PTR"字段中,空白表示將出現(xiàn)可變長度值,其在權(quán)標(biāo)內(nèi)容部分中具有"VALUE—LENGTH"字段,而"Ptr+Fixed"表示該值在長度上固定,因此在權(quán)標(biāo)內(nèi)容部分中不具有"VALUE—LENGTH"字段。以下表7示出了權(quán)標(biāo)內(nèi)容部分中的固定長度字段的細(xì)節(jié)。<table>tableseeoriginaldocumentpage29</column></row><table>seq-numberCSeq頭部整數(shù),4字節(jié)Delta-secondsExpires,Retry-After以及其它頭部整數(shù),4字節(jié)max-forwardsM2x-F0rw3rds頭部整數(shù),4字節(jié)DurationRetry-After頭部整數(shù),4字節(jié)Major-versionSIPVersion整數(shù),4字節(jié)Mihor-versionSIPVersion整數(shù),4字節(jié)q許多頭部,諸如Accept-Encoding浮點(diǎn)數(shù),4字節(jié)timestampTimestamp頭部浮點(diǎn)數(shù),4字節(jié)delayTimestamp頭部浮點(diǎn)數(shù),4字節(jié)dresponse許多頭部串,32字節(jié)nonce-count許多頭部串,8字節(jié)表7權(quán)標(biāo)內(nèi)容部分中的固定長度字段以下將參考表8和表9把兩個(gè)消息(一個(gè)INVITE消息和一個(gè)REGISTER消息)作為示例用來示出通過根據(jù)本發(fā)明的編碼機(jī)制而進(jìn)行的SOE轉(zhuǎn)換。INVITE消息的編碼示例<table>tableseeoriginaldocumentpage31</column></row><table><table>tableseeoriginaldocumentpage32</column></row><table>表8INVITE消息的編碼示例<table>tableseeoriginaldocumentpage33</column></row><table><table>tableseeoriginaldocumentpage34</column></row><table>表9REGISTER消息的編碼示例以上是參考實(shí)施例對本發(fā)明的用于將SIP消息二進(jìn)制化用以減載和選擇性處理的方法和系統(tǒng)的詳細(xì)描述。如本領(lǐng)域普通人員可以了解的,本發(fā)明可以體現(xiàn)為方法、系統(tǒng)和/或計(jì)算積4E序產(chǎn)品。因此,本發(fā)明可以呈現(xiàn)為完全硬件實(shí)施形式、完全軟件實(shí)施形式或者軟件和硬件組合實(shí)施形式。此外,本發(fā)明可以被呈現(xiàn)為在機(jī)器可讀媒體上包括的計(jì)算機(jī)程序產(chǎn)品,機(jī)器機(jī)器可執(zhí)行程序指令。這里所使用的術(shù)語"機(jī)器可讀媒體"包括向計(jì)算機(jī)系統(tǒng)提供用于執(zhí)行的指令的任意媒體。這種媒體可以采用多種形式,包括但是不局限于非易失性媒體、易失性媒體和傳輸媒體。非易失性媒體的常見形式例如包括軟盤、軟磁盤、硬盤、磁帶或者任何其他磁媒體、光盤ROM(CD-ROM)或者任何其他光媒體,打孔卡或者任何其他帶有孔圖案的物理媒體、可編程ROM(PROM)、可擦寫PROM(EPROM)、電EPROM(EEPROM)、閃速存儲(chǔ)器、任何其他存儲(chǔ)芯片或者盒式磁帶(cartridge)、或者計(jì)算機(jī)系統(tǒng)可以讀取并適合存儲(chǔ)指令的任何其他媒體。此外,可以理解,方框圖和/或流程圖中的每個(gè)方框以及方框圖和流程圖中的一些方框的組合可以用一些計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給一通用計(jì)算機(jī)、專用計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器以產(chǎn)生一機(jī)器,使得這些指令通過計(jì)算機(jī)或其他可編程數(shù)據(jù)處理設(shè)備的處理器的執(zhí)行創(chuàng)建用于實(shí)現(xiàn)在方框圖和/或流程圖內(nèi)或者方框內(nèi)所指定的功能的裝置。盡管已經(jīng)參考優(yōu)選實(shí)施例具體地示出并描述了本發(fā)明,但其不是為了以公開的形式窮舉或限制本發(fā)明。對于本領(lǐng)域的普通技術(shù)人員,可以在形式上和細(xì)節(jié)上進(jìn)行各種改變而不會(huì)背離本發(fā)明的精神和范圍。選擇并描述了實(shí)施例是為了最好地解釋本發(fā)明的原理和實(shí)際的應(yīng)用,以及為了使本領(lǐng)域的其他普通技術(shù)人員能夠理解對于各種實(shí)施例的本發(fā)明,所述實(shí)施例具有適合于預(yù)期的具體使用的各種修改。權(quán)利要求1.一種會(huì)話啟動(dòng)協(xié)議消息處理方法,包括以下步驟由前端接收會(huì)話啟動(dòng)協(xié)議消息;由前端解析所述會(huì)話啟動(dòng)協(xié)議消息,將所述會(huì)話啟動(dòng)協(xié)議消息中的權(quán)標(biāo)類型以及權(quán)標(biāo)內(nèi)容分別成組,并在所述權(quán)標(biāo)類型以及權(quán)標(biāo)內(nèi)容之間建立相應(yīng)的鏈接,所述會(huì)話啟動(dòng)協(xié)議消息在解析后被轉(zhuǎn)換為具有以下三部分的會(huì)話啟動(dòng)協(xié)議減載引擎消息會(huì)話啟動(dòng)協(xié)議減載引擎頭部分,用于存儲(chǔ)消息級(jí)信息;權(quán)標(biāo)類型部分用于存儲(chǔ)權(quán)標(biāo)的類型信息,其中可包括多個(gè)固定長度的條目;權(quán)標(biāo)內(nèi)容部分用于存儲(chǔ)權(quán)標(biāo)內(nèi)容,其中可包括多個(gè)可變長度的條目;以及在服務(wù)器端對經(jīng)轉(zhuǎn)換的會(huì)話啟動(dòng)協(xié)議減載引擎消息進(jìn)行處理。2.根據(jù)權(quán)利要求l所述的方法,其中,所述在服務(wù)器端對經(jīng)轉(zhuǎn)換的會(huì)話啟動(dòng)協(xié)議減栽引擎消息進(jìn)行處理包括基于服務(wù)器端的應(yīng)用對經(jīng)轉(zhuǎn)換的會(huì)話啟動(dòng)協(xié)議減栽引擎消息進(jìn)行選擇性處理。3.根據(jù)權(quán)利要求l所述的方法,其中,基于服務(wù)器端的應(yīng)用,所述消息轉(zhuǎn)換的粒度可以不同,所述權(quán)標(biāo)可以是特定的^i標(biāo)、特定的消息4亍、消息頭部或整個(gè)信息。4.根據(jù)權(quán)利要求2所述的方法,其中對經(jīng)轉(zhuǎn)換的會(huì)話啟動(dòng)協(xié)議減載引擎消息進(jìn)行選擇性處理的所述步驟包括在所述權(quán)標(biāo)類型部分中選擇感興趣的權(quán)標(biāo)并獲得指針信息,以及通過指針來定位所需的權(quán)標(biāo)內(nèi)容。5.根據(jù)權(quán)利要求l所述的方法,還包括將一個(gè)或多個(gè)所述前端與一個(gè)或多個(gè)所述^^務(wù)器相鏈接,以構(gòu)成同構(gòu)的、層級(jí)的和分布式的會(huì)話啟動(dòng)協(xié)議處理路徑。6.根據(jù)權(quán)利要求1所述的方法,其中所述權(quán)標(biāo)類型部分用1¥卩£_11¥£一8的形式來指示權(quán)標(biāo)的類型,其中,TYPE一A部分區(qū)分該權(quán)標(biāo)所在的頭部,而TYPE一B部分區(qū)別該權(quán)標(biāo)的詳細(xì)的類型信息。7.根據(jù)權(quán)利要求1所述的方法,其中所述權(quán)標(biāo)類型部分還包括VALUE—OR—PTR字段,其中包含有指向與該類型條目字段對應(yīng)的4又標(biāo)內(nèi)容條目中的特定權(quán)標(biāo)內(nèi)容所在位置的指針。8.—種會(huì)話啟動(dòng)協(xié)議消息處理系統(tǒng),包括前端,其包括消息解析器;服務(wù)器,其包括消息處理裝置;其中,由所述前端接收會(huì)話啟動(dòng)協(xié)議消息;由所述消息解析器解析所述會(huì)話啟動(dòng)協(xié)議消息,將所述會(huì)話啟動(dòng)協(xié)議消息中的權(quán)標(biāo)類型以及權(quán)標(biāo)值分別成組,并在所述權(quán)標(biāo)類型以及權(quán)標(biāo)值之間建立相應(yīng)的鏈接,所述會(huì)話啟動(dòng)協(xié)議消息在解析后被轉(zhuǎn)換為具有以下三部分的會(huì)話啟動(dòng)協(xié)議減載引擎消息會(huì)話啟動(dòng)協(xié)議減栽引擎頭部分,用于存儲(chǔ)消息級(jí)信息;權(quán)標(biāo)類型部分用于存儲(chǔ)權(quán)標(biāo)的類型信息,其中可包括多個(gè)固定長度的條目;權(quán)標(biāo)內(nèi)容部分用于存儲(chǔ)權(quán)標(biāo)內(nèi)容,其中可包括多個(gè)可變長度的條目;以及由所述消息處理裝置對經(jīng)轉(zhuǎn)換的會(huì)話啟動(dòng)協(xié)議減載引擎消息進(jìn)行處理。9.根據(jù)權(quán)利要求8所述的系統(tǒng),其中,所述服務(wù)器還包括一選擇性控制裝置,用于控制所述消息處理裝置對經(jīng)轉(zhuǎn)換的會(huì)話啟動(dòng)協(xié)議減載引擎消息進(jìn)行選擇性處理。10.根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述前端還包括一粒度控制器,用于控制所述所述消息解析器對消息轉(zhuǎn)換的粒度,所述權(quán)標(biāo)可以是特定的權(quán)標(biāo)、特定的消息行、消息頭部或整個(gè)消息。11.根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述前端還包括一應(yīng)用筒表,用于存儲(chǔ)各應(yīng)用的屬性以及其感興趣的消息行或權(quán)標(biāo)。12.根據(jù)權(quán)利要求8所述的系統(tǒng),還包括將一個(gè)或多個(gè)所述前端與一個(gè)或多個(gè)所述服務(wù)器相鏈接,以構(gòu)成同構(gòu)的、層級(jí)的和分布式的會(huì)話啟動(dòng)協(xié)議處理路徑。13.根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述權(quán)標(biāo)類型部分用TYPE一A.TYPE一B的形式來指示權(quán)標(biāo)的類型,其中,TYPE一A部分區(qū)分該權(quán)標(biāo)所在的頭部,而TYPE一B部分區(qū)別該權(quán)標(biāo)的詳細(xì)的類型信息。14.根據(jù)權(quán)利要求8所述的系統(tǒng),其中所述權(quán)標(biāo)類型部分還包括VALUE一OR—PTR字段,其中包含有指向與該類型條目字段對應(yīng)的權(quán)標(biāo)內(nèi)容條目中的特定權(quán)標(biāo)內(nèi)容所在位置的指針。全文摘要本發(fā)明公開了一種會(huì)話啟動(dòng)協(xié)議消息處理方法和系統(tǒng),包括由前端接收會(huì)話啟動(dòng)協(xié)議消息;由前端解析所述會(huì)話啟動(dòng)協(xié)議消息,將所述會(huì)話啟動(dòng)協(xié)議消息中的權(quán)標(biāo)類型以及權(quán)標(biāo)內(nèi)容分別成組,并在所述權(quán)標(biāo)類型以及權(quán)標(biāo)內(nèi)容之間建立相應(yīng)的鏈接,所述會(huì)話啟動(dòng)協(xié)議消息在解析后被轉(zhuǎn)換為具有以下三部分的會(huì)話啟動(dòng)協(xié)議減載引擎消息會(huì)話啟動(dòng)協(xié)議減載引擎頭部分,用于存儲(chǔ)消息級(jí)信息;權(quán)標(biāo)類型部分用于存儲(chǔ)權(quán)標(biāo)的類型信息,其中可包括多個(gè)固定長度的條目;權(quán)標(biāo)內(nèi)容部分用于存儲(chǔ)權(quán)標(biāo)內(nèi)容,其中可包括多個(gè)可變長度的條目;以及在服務(wù)器端對經(jīng)轉(zhuǎn)換的會(huì)話啟動(dòng)協(xié)議減載引擎消息進(jìn)行處理。文檔編號(hào)H04L29/06GK101272378SQ200710089480公開日2008年9月24日申請日期2007年3月23日優(yōu)先權(quán)日2007年3月23日發(fā)明者博楊,梁志勇,偉薛,趙邑新,凌邵申請人:國際商業(yè)機(jī)器公司