專利名稱:在基于消息的通信中的改進(jìn)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及通信協(xié)議和系統(tǒng)領(lǐng)域,并且尤其涉及基于消息的通信,其中經(jīng)由一個(gè)或多個(gè)中間部件在端點(diǎn)之間傳送消息。
背景技術(shù):
許多通信系統(tǒng)使用基于消息的請(qǐng)求-響應(yīng)通信協(xié)議來(lái)在源部件和目的地部件之間通信。常常經(jīng)由中間部件發(fā)送請(qǐng)求和響應(yīng)消息,所述中間部件把所接收的消息轉(zhuǎn)送到適當(dāng)?shù)哪康牡夭考?br>
會(huì)話啟動(dòng)協(xié)議(SIP)是這種通信協(xié)議的一個(gè)例子,并且其在Internet標(biāo)準(zhǔn)(RFC)3261中被定義為應(yīng)用層控制和通信協(xié)議,以便主要經(jīng)由網(wǎng)際協(xié)議(IP)網(wǎng)絡(luò)來(lái)建立、修改并終止實(shí)時(shí)呼叫和會(huì)議。通過(guò)采用SIP消息的形式從一個(gè)SIP部件向另一個(gè)SIP部件發(fā)送請(qǐng)求并接收響應(yīng)來(lái)實(shí)現(xiàn)這些動(dòng)作。
在一些情況下,中間部件可能有必要向源部件傳送信息,然而在中間部件和源部件之間可能并不存在任何直接的雙向通信路徑。在這種情況下,中間部件與源部件傳送信息的唯一方式是等待將從目的地部件所發(fā)送的響應(yīng)消息,并且將要傳送的所述信息添加到所述響應(yīng)消息,其中所述響應(yīng)消息也經(jīng)由中間部件發(fā)送。在中間部件從多個(gè)源和目的地部件接收消息的情況下,另外要求一種機(jī)制使得中間部件能夠確定哪些響應(yīng)消息與哪些請(qǐng)求消息相關(guān)聯(lián)。在SIP中,這種情況隨著SIP消息壓縮的使用而出現(xiàn),其中要被傳送的信息涉及消息壓縮,如在RFC 3486中所定義。RFC 3486描述了可以怎樣壓縮SIP消息并且提供了一個(gè)參數(shù),所述參數(shù)可以被添加到SIP消息以便表明部件是否支持SIP壓縮。
例如,經(jīng)由中間部件從源部件發(fā)送到目的地部件的SIP請(qǐng)求消息可以包含用于表明所述源部件支持SIP壓縮的信息。如果中間部件也支持壓縮,那么可能需要把信息傳送回源部件以便允許將來(lái)在源和中間部件之間使用壓縮來(lái)進(jìn)行通信。中間部件通過(guò)當(dāng)接收由目的地部件向源部件發(fā)送相應(yīng)的響應(yīng)消息時(shí)把信息插入到該消息中以便向源部件表明所述中間部件也支持壓縮來(lái)實(shí)現(xiàn)這點(diǎn)。
由于諸如SIP代理之類的中間部件典型情況下從多個(gè)目的地接收消息,所以需要維護(hù)上下文數(shù)據(jù)庫(kù)以便使所述中間部件能夠把形成相同事務(wù)部分的相應(yīng)請(qǐng)求和響應(yīng)消息配對(duì)。例如RFC 3486中所描述的這種技術(shù)要求消息路徑中的中間部件(諸如代理服務(wù)器)本地存儲(chǔ)對(duì)話或事務(wù)上下文信息——換句話說(shuō),當(dāng)前所建議的技術(shù)要求使用有狀態(tài)(stateful)的部件。
有狀態(tài)的部件要求提供附加存儲(chǔ)容量、數(shù)據(jù)庫(kù)、查找例程、無(wú)用單元收集例程等,其耗盡了寶貴的處理資源并且典型情況下增加了這種設(shè)備的成本和開(kāi)發(fā)時(shí)間。例如在SIP中,具有壓縮能力的代理服務(wù)器常常位于固定和無(wú)線網(wǎng)絡(luò)之間的網(wǎng)關(guān),并且通常是要求高性能和高可用性的關(guān)鍵性網(wǎng)絡(luò)元件。
如那些本領(lǐng)域技術(shù)人員理解,特別是在需要保留大量上下文數(shù)據(jù)的情況下,要求使部件高度可用是困難且昂貴的。此外,提供高可用性機(jī)制典型情況下導(dǎo)致一定程度的性能降低,這在電信應(yīng)用中是尤其不想要的,例如在可以由部件處理的同時(shí)呼叫的數(shù)目直接與系統(tǒng)性能相關(guān)的情況下,并且該數(shù)目常常是在競(jìng)爭(zhēng)者產(chǎn)品之間顯著的區(qū)分因素。
據(jù)此,本發(fā)明的一個(gè)目標(biāo)在于緩和至少一些上述問(wèn)題。
發(fā)明內(nèi)容
依照本發(fā)明的第一方面,提供了一種用于在基于消息的通信系統(tǒng)中的中間部件和源部件之間傳送信息的方法,其中從所述源部件向目的地部件發(fā)送請(qǐng)求消息并且響應(yīng)于此從所述目的地部件向源部件發(fā)送相應(yīng)的響應(yīng)消息,經(jīng)由中間部件來(lái)發(fā)送所述請(qǐng)求和響應(yīng)消息,所述中間部件被安排來(lái)把所述消息轉(zhuǎn)送到適當(dāng)?shù)牟考?。所述方法包括在中間部件并且在轉(zhuǎn)送所接收的請(qǐng)求消息之前,確定在所接收的請(qǐng)求消息中存在信息要被傳送的指示,并且在存在的情況下,采用把與所述中間部件相關(guān)聯(lián)的臨時(shí)標(biāo)識(shí)符包括在相應(yīng)的響應(yīng)消息中的方式把所述臨時(shí)標(biāo)識(shí)符添加到所述消息。在轉(zhuǎn)送所接收的響應(yīng)消息之前,所述方法包括確定存在與中間部件相關(guān)聯(lián)的臨時(shí)標(biāo)識(shí)符,并且在存在的情況下,用要被傳送到源部件的信息來(lái)代替所述臨時(shí)標(biāo)識(shí)符。
有益地是,這使得不必存儲(chǔ)與消息相關(guān)的上下文信息并因而不必存儲(chǔ)相關(guān)聯(lián)的數(shù)據(jù)庫(kù)查找例程、無(wú)用單元收集例程等。
適當(dāng)?shù)厥?,臨時(shí)標(biāo)識(shí)符在系統(tǒng)內(nèi)是明確的。
適當(dāng)?shù)厥?,添加臨時(shí)標(biāo)識(shí)符的步驟還包括添加用于標(biāo)識(shí)要被傳送到源部件的信息類型的附加信息。
基于消息的通信系統(tǒng)可以是基于會(huì)話啟動(dòng)協(xié)議(SIP)的系統(tǒng),其中中間部件是SIP代理服務(wù)器,在這種情況下請(qǐng)求消息可以是SIP請(qǐng)求消息,并且其中響應(yīng)消息可以是SIP響應(yīng)消息。在這種情況下,在所接收的請(qǐng)求消息中確定存在的步驟還包括確定SIP壓縮參數(shù)的存在。
請(qǐng)求消息適當(dāng)?shù)匕⊿IP代理的URI,于是添加臨時(shí)標(biāo)識(shí)符的步驟還包括把所述臨時(shí)標(biāo)識(shí)符添加到所述SIP代理的URI。
適當(dāng)?shù)厥?,確定在響應(yīng)消息中存在臨時(shí)標(biāo)識(shí)符的步驟還包括確定在所述響應(yīng)消息內(nèi)的SIP代理的URI中存在臨時(shí)標(biāo)識(shí)符。
優(yōu)選地是,代替臨時(shí)標(biāo)識(shí)符的步驟還包括用SIP壓縮參數(shù)來(lái)代替所述臨時(shí)標(biāo)識(shí)符。
適當(dāng)?shù)厥?,在SIP代理先前已經(jīng)向源部件表明該代理支持SIP壓縮的情況下,使用壓縮來(lái)從所述源部件向所述SIP代理發(fā)送將來(lái)的請(qǐng)求消息。
依照本發(fā)明的第二方面,提供了適于依照任何以上所描述的方法步驟操作的中間部件。
依照本發(fā)明的第三方面,提供了一種適于依照任何以上所描述的方法步驟來(lái)操作的SIP代理。
依照第四方面,提供了一種用于在基于消息的通信系統(tǒng)中轉(zhuǎn)送消息的設(shè)備,其中從源部件向目的地部件發(fā)送請(qǐng)求消息,并且響應(yīng)于此從所述源部件向目的地部件發(fā)送響應(yīng)消息,所述系統(tǒng)被這樣配置以致消息經(jīng)由所述設(shè)備被發(fā)送以便轉(zhuǎn)送到它們適當(dāng)?shù)哪康牡?,所述系統(tǒng)包括用于在轉(zhuǎn)送所接收的請(qǐng)求消息之前確定在所接收的請(qǐng)求消息中存在要傳送的信息的指示的裝置,所述裝置被配置成在確定存在所述指示的情況下采用把與中間部件相關(guān)聯(lián)的臨時(shí)標(biāo)識(shí)符包括在相應(yīng)的響應(yīng)消息中的方式來(lái)把所述臨時(shí)標(biāo)識(shí)符添加到所述消息;還包括用于在轉(zhuǎn)送所接收的響應(yīng)消息之前確定在所接收的響應(yīng)消息中存在與所述中間部件相關(guān)聯(lián)的臨時(shí)標(biāo)識(shí)符的裝置,所述裝置被配置成在確定存在所述臨時(shí)標(biāo)識(shí)符的情況下,用要被傳送到所述源部件的信息來(lái)代替所述臨時(shí)標(biāo)識(shí)符。
現(xiàn)在將僅以舉例形式,參考附圖來(lái)描述本發(fā)明的實(shí)施例,其中圖1A是示出依照現(xiàn)有技術(shù)的SIP網(wǎng)絡(luò)的框圖;圖1B是概述在圖1A中所示出網(wǎng)絡(luò)的不同網(wǎng)絡(luò)元件之間的典型消息流的消息流程圖;圖2A是依照本發(fā)明實(shí)施例示出包括SIP代理服務(wù)器的SIP網(wǎng)絡(luò)的框圖;圖2B是概述在圖2B中所示出網(wǎng)絡(luò)的不同網(wǎng)絡(luò)元件之間的消息流的消息流程圖;和圖3是概述依照本發(fā)明實(shí)施例由SIP代理服務(wù)器所執(zhí)行的示例性處理步驟的流程圖。
具體實(shí)施例方式
參考會(huì)話啟動(dòng)協(xié)議(SIP)網(wǎng)絡(luò)來(lái)進(jìn)行以下描述。然而本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,這里所描述的發(fā)明原理決不限于SIP,并且可以按要求采用適當(dāng)?shù)男薷膩?lái)用于具有類似特性的其它通信協(xié)議。
圖1A示出了依照現(xiàn)有技術(shù)的典型SIP網(wǎng)絡(luò)100的框圖。SIP網(wǎng)絡(luò)包括多個(gè)網(wǎng)絡(luò)元件,即SIP用戶代理客戶端(UAC)102、SIP用戶代理服務(wù)器(UAS)110和多個(gè)中間部件,諸如SIP代理服務(wù)器104、106和108。UAC 102例如可以通過(guò)向UAS 110發(fā)送諸如INVITE消息之類的請(qǐng)求消息來(lái)與所述UAS 110建立呼叫。UAS可以用諸如200 OK消息之類的響應(yīng)消息作出響應(yīng),如下面將進(jìn)一步描述。那些本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,還可以發(fā)送附加消息以便完成呼叫建立。
在SIP中,這種消息交換被稱為事務(wù),事務(wù)包括從服務(wù)器所發(fā)送的第一請(qǐng)求消息直到從所述服務(wù)器向客戶端發(fā)回的最終(非1xx)響應(yīng)消息的所有消息。SIP呼叫被定義為包括從初始INVITE消息直到BYE消息的所有消息。SIP呼叫可以包括多個(gè)事務(wù)。
代理服務(wù)器104、106和108用來(lái)依照已知方式路由消息。在此例子中,UAC 102和代理服務(wù)器106依照RFC 3486支持SIP消息壓縮,而其它網(wǎng)絡(luò)元件不支持。
現(xiàn)在參照?qǐng)D1B,示出了消息流程圖,用于示出在UAC 102和UAS 110之間建立呼叫所涉及的初始消息。那些本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解在呼叫建立中還可以涉及附加消息。為了清楚起見(jiàn),在圖1B中所示出的消息以簡(jiǎn)寫(xiě)形式示出并且只示出了一些可用的SIP消息首部。
UAC 102向UAS 110發(fā)送SIP INVITE消息120。INVITE消息120最初被發(fā)送到代理服務(wù)器104,在UAC 102中預(yù)先配置所述代理服務(wù)器104的地址。INVITE消息120的Contact首部包含UAC 102的統(tǒng)一資源指示符(URI)。如上所述,UAC 102支持SIP消息壓縮,因此依照RFC 3486,所述UAC 102把參數(shù)comp=sigcomp添加到Contact首部中的URI。comp可以采取的值表明要使用的壓縮配置類型。以下假定使用在RFC 3320中所定義的信號(hào)壓縮(SigComp)配置,然而實(shí)際的壓縮機(jī)制在本發(fā)明的范圍以外并且將不再進(jìn)一步論述。為了清楚起見(jiàn),以下使用簡(jiǎn)化符號(hào)comp來(lái)代替普通寫(xiě)法符號(hào)comp=sigcomp。在SIP消息首部的URI中存在comp參數(shù)用來(lái)表明特定的部件支持壓縮并且部件希望在可能的情況下以壓縮格式接收將來(lái)的消息。
如果UAC 102知道代理104還支持壓縮,那么所述UAC 102還可以被預(yù)先配置以便以壓縮形式發(fā)送初始消息。
由于UAC 102并不知道至少在此時(shí)并不知道SIP網(wǎng)絡(luò)中的任何其它部件是否支持SIP消息壓縮,所以所述UAC 102在已經(jīng)把Via首部添加到具有UAC 102的URI的消息120之后最初發(fā)送未壓縮的消息。
不支持SIP壓縮并因而無(wú)狀態(tài)的SIP代理104,接收INVITE消息120并且在已經(jīng)將其URI添加到Via首部的列表之后把所述消息轉(zhuǎn)送到SIP代理106。
支持SIP壓縮的SIP代理106接收INVITE消息122。代理106被配置為在相同的SIP對(duì)話中停留在將來(lái)請(qǐng)求的路徑中并且通過(guò)把包含其URI的RECORD-ROUTE首部添加到消息來(lái)實(shí)現(xiàn)這點(diǎn)。由于代理106支持壓縮,所以它把信息存儲(chǔ)在事務(wù)上下文數(shù)據(jù)存儲(chǔ)裝置中。所存儲(chǔ)的信息類型包括Contact URI、唯一的呼叫標(biāo)識(shí)及其它信息,所述其它信息可由代理用來(lái)把當(dāng)前請(qǐng)求與最終的響應(yīng)消息相配。附加信息被存儲(chǔ)來(lái)表明當(dāng)與不同的SIP部件通信時(shí)是否應(yīng)當(dāng)使用壓縮。因而代理202被稱為有狀態(tài)的代理。最后,代理106將其URI添加到Via首部的列表,并且把未壓縮的消息124轉(zhuǎn)送到SIP代理108,這是因?yàn)榇?06最初同樣不知道代理108是否支持壓縮。
在此例子中并不支持壓縮并因而是無(wú)狀態(tài)的SIP代理108接收INVITE消息124,并且當(dāng)它也希望在相同的對(duì)話中留在用于將來(lái)請(qǐng)求的路徑中時(shí),把包含其URI的RECORD-ROUTE(記錄-路由)首部添加到所述消息并且把其URI添加到Via首部的列表頂部。由于代理108并不知道UAS是否支持SIP壓縮,所以所述消息被未壓縮地發(fā)送到UAS110。
UAS 110依照通常方式接收并處理消息126。由于INVITE消息是呼叫的第一消息,所以UAS 110構(gòu)造并存儲(chǔ)‘路由集’作為當(dāng)前呼叫上下文的一部分。路由集是用于標(biāo)識(shí)一系列服務(wù)器的有序URI的集合,經(jīng)由所述一系列服務(wù)器發(fā)送在當(dāng)前對(duì)話以外的新請(qǐng)求。路由集可以通過(guò)像記錄-路由那樣的首部來(lái)學(xué)習(xí),或可以被配置。對(duì)于UAS 110來(lái)說(shuō),路由集從消息126的首部信息中獲得并且包括路由集P3P2UAC;comp因而在相同呼叫內(nèi)從UAS 110向UAC 102所發(fā)送的新請(qǐng)求會(huì)經(jīng)由在路由集中所提供的路由發(fā)送。然而,這只是應(yīng)用于新的請(qǐng)求,而不應(yīng)用于響應(yīng)于先前請(qǐng)求所發(fā)送的消息。
UAS 110通過(guò)向UAC 102發(fā)回響應(yīng)200 OK消息128來(lái)對(duì)所接收的INVITE消息作出響應(yīng)。SIP要求響應(yīng)消息追隨由相應(yīng)的請(qǐng)求消息所采用的相同路徑,并且通過(guò)向在消息128的Via列表頂部中所表明的下一跳躍地址發(fā)送響應(yīng)128來(lái)保證,在這種情況下所述下一跳躍地址是代理108。由于UAS 110不支持壓縮,所以采用未壓縮形式來(lái)發(fā)送消息。
代理108接收消息128,將其URI從Via首部列表中刪除并且把消息130未壓縮地轉(zhuǎn)送到代理106。
當(dāng)作為有狀態(tài)代理的代理106接收響應(yīng)消息130時(shí),所述代理確定所接收的消息是否是當(dāng)前事務(wù)的一部分。例如這可以通過(guò)把當(dāng)前消息的事務(wù)標(biāo)識(shí)符與在事務(wù)上下文中所存儲(chǔ)的信息相匹配來(lái)實(shí)現(xiàn)。如果所述消息是當(dāng)前事務(wù)的一部分,那么代理分析所接收的消息以便確定它是否為記錄-路由的。這里以及在SIP規(guī)范中所使用的術(shù)語(yǔ)記錄-路由指的是先前已經(jīng)把記錄-路由首部插入到相同事務(wù)內(nèi)的SIP消息中的SIP部件。
如果代理106記錄-路由,那么所述代理檢查為此對(duì)話而設(shè)置的路由。在這種情況下所述路由包括UAS 102、代理108、代理106和UAC102。由于代理104未記錄-路由,所以它不包括在所述路由中。代理106檢查路由中的下一下游部件(在這種情況下為UAC 102),來(lái)確定它是否支持壓縮。這可以通過(guò)確定壓縮參數(shù)是否存在于UAC 102的URI中來(lái)實(shí)現(xiàn)。
由于在消息130的Contact首部中的UAC 102的URI包含comp參數(shù),借此表明UAC支持SIP壓縮請(qǐng)求,所以代理106將其自己的壓縮參數(shù)添加到所述消息的適當(dāng)部分。在這種情況下,這通過(guò)修改其消息132的記錄-路由首部以包括comp參數(shù)來(lái)實(shí)現(xiàn)。
當(dāng)UAC接收消息134時(shí),UAC通過(guò)在所接收的消息中所包含的首部信息來(lái)構(gòu)造路由集,所述路由集包括路由集P2;compP3UAS代理106的路由集條目包括壓縮參數(shù)的事實(shí)使UAC能夠以壓縮格式在相同的對(duì)話內(nèi)發(fā)送進(jìn)一步的請(qǐng)求,如下所見(jiàn)。
UAC 102處理所接收的消息134并且通過(guò)向UAS 110發(fā)回ACK消息來(lái)作出響應(yīng)。RFC 3261指定ACK消息形成新事務(wù)的一部分,由此它不必追隨與初始INVITE消息相同的路徑,并因而所述ACK以壓縮格式被直接發(fā)送到代理106。
代理106以未壓縮格式把所述消息轉(zhuǎn)送到代理108,所述代理108隨后采用正常方式把所述消息轉(zhuǎn)送到UAS 110。
因而可以看出在現(xiàn)有技術(shù)中為了實(shí)現(xiàn)SIP消息壓縮,要求在支持SIP壓縮的每個(gè)代理中維護(hù)事務(wù)上下文數(shù)據(jù)存儲(chǔ)裝置。另外,代理還必須通過(guò)分析消息首部來(lái)確定響應(yīng)路徑中的另一部件是否支持壓縮。此外,由于支持壓縮的SIP代理服務(wù)器必須是事務(wù)有狀態(tài)的,所以SIP代理中的資源要求與由相同系統(tǒng)所處理的同時(shí)建立的事務(wù)數(shù)目成正比。
現(xiàn)在參考圖2來(lái)描述依照本發(fā)明的實(shí)施例,其使支持壓縮的SIP代理服務(wù)器能夠是無(wú)狀態(tài)的。
圖2A表現(xiàn)了與圖1A中所示的類似的SIP網(wǎng)絡(luò)和消息流,并且向同樣的部件和消息給出了相同的數(shù)字標(biāo)識(shí)符。SIP網(wǎng)絡(luò)包括SIP用戶代理客戶端(UAC)102、三個(gè)SIP代理服務(wù)器分別為104、202和108以及SIP用戶代理服務(wù)器(UAS)110。下面更詳細(xì)地描述代理服務(wù)器202。
圖2B示出了用于概述SIP事務(wù)的消息流的消息流程圖,所述SIP事務(wù)涉及SIP網(wǎng)絡(luò)的各個(gè)部件,依照本發(fā)明實(shí)施例包括SIP代理202。
事務(wù)以UAC 102經(jīng)由包括代理服務(wù)器104、202和108的SIP網(wǎng)絡(luò)向UAS 110發(fā)送INVITE消息120開(kāi)始。
消息120最初被發(fā)送到代理服務(wù)器104,在UAC 102中預(yù)先配置所述代理服務(wù)器104的地址。INVITE消息120的Contact首部包含UAC 102的URI。在此例子中,UAC 102支持SIP消息壓縮,因此所述UAC 102把參數(shù)comp添加到Contact首部中的URI。
UAC 102把消息120的Via首部設(shè)置為UAC 102的URI。由于UAC此時(shí)并不知道代理104是否支持壓縮,所以未壓縮地發(fā)送消息120。
不支持SIP壓縮并因而無(wú)狀態(tài)的SIP代理104,接收INVITE消息120并且在已經(jīng)將其URI添加到Via首部的列表之后把所述消息轉(zhuǎn)送到SIP代理202。
支持SIP壓縮的SIP代理202接收INVITE消息122。代理202被配置為在相同的SIP對(duì)話中留在將來(lái)請(qǐng)求的路徑中并因此把包含其URI的RECORD-ROUTE首部添加到消息。然而,與如上所述的代理106不同,代理202是無(wú)狀態(tài)的-換句話說(shuō)它不維護(hù)事務(wù)上下文由此不要求任何上下文存儲(chǔ)裝置。下面參考圖3來(lái)描述代理202的操作。
當(dāng)消息由代理202接收時(shí)(步驟302),所述代理確定(步驟304)所述消息是請(qǐng)求消息還是響應(yīng)消息。如果在這種情況下,所接收的消息是請(qǐng)求消息,那么代理找到在所述消息包含其URI的記錄-路由首部(代理202剛剛添加到消息的)(步驟312),并且向其添加(步驟314)新的壓縮參數(shù)。新的壓縮參數(shù)包括用于明確標(biāo)識(shí)代理202的標(biāo)識(shí)符和用于表明是否應(yīng)當(dāng)壓縮將來(lái)請(qǐng)求的壓縮標(biāo)志??梢圆捎枚喾N不同的方式來(lái)導(dǎo)出明確的標(biāo)識(shí)符,這對(duì)那些本領(lǐng)域技術(shù)人員來(lái)說(shuō)是顯而易見(jiàn)的。
由代理202依照下列方式來(lái)確定標(biāo)志值。代理202分析所接收的消息來(lái)確定下一上游部件是否支持SIP壓縮??梢酝ㄟ^(guò)首先確定在消息中存在最頂部的記錄-路由首部(如果存在的話)來(lái)確定下一上游(即向UAC方向)部件,這是由于如果任何部件已經(jīng)記錄-路由的話,那么任何新的請(qǐng)求消息會(huì)自動(dòng)地通過(guò)所述記錄-路由的部件。如果沒(méi)有記錄-路由首部,那么這意味著下一上游部件是由所接收消息的Contact首部所定義的部件。一旦已經(jīng)建立下一上游部件的URI,那么代理202分析其URI來(lái)確定comp參數(shù)的存在。如果存在comp參數(shù),那么這表明可以以壓縮形式發(fā)送在下一上游部件和代理202之間所發(fā)送的將來(lái)請(qǐng)求消息。據(jù)此,代理202設(shè)置標(biāo)志值以表明應(yīng)當(dāng)使用壓縮,否則所述標(biāo)志被設(shè)置為表明不應(yīng)當(dāng)使用壓縮。然而在此,代理202的記錄-路由參數(shù)并不包含comp參數(shù)。
最后,代理202將其URI添加到Via首部的列表,并且把未壓縮的消息210轉(zhuǎn)送到SIP代理108,這是由于代理106最初同樣不知道代理108是否支持壓縮。
應(yīng)當(dāng)注意,如果代理被配置為留在路徑中,例如通過(guò)被配置為添加記錄-路由首部,那么只把明確的標(biāo)識(shí)符和標(biāo)志插入該消息。
不支持壓縮的SIP代理108接收INVITE消息210,當(dāng)它也希望在相同的對(duì)話中留在用于將來(lái)請(qǐng)求的路徑中時(shí),把包含其URI的RECORD-ROUTE首部添加到消息,把消息細(xì)節(jié)添加到事務(wù)上下文數(shù)據(jù)存儲(chǔ)裝置,并且把其URI添加到Via首部的列表頂部。由于代理108并不知道UAS是否支持SIP壓縮,所以所述消息被未壓縮地發(fā)送到UAS 110。
UAS 110接收并處理消息212。由于INVITE消息是呼叫的第一消息,所以UAS 110存儲(chǔ)路由集作為當(dāng)前呼叫上下文的一部分。對(duì)于UAS110來(lái)說(shuō),路由集從消息126的首部信息中獲得并且包括路由集P3
P2ID+FLAGUAC;comp因而在相同呼叫內(nèi)從UAS 110向UAC 102所發(fā)送的新請(qǐng)求會(huì)經(jīng)由在路由集中所提供的路由發(fā)送。
然后UAS 110向UAC 102發(fā)回響應(yīng)200 OK消息128。如上所述,SIP要求響應(yīng)消息追隨由相應(yīng)的請(qǐng)求消息所采用的相同路徑,并且通過(guò)向在消息214的Via列表頂部中所表明的下一跳躍地址發(fā)送響應(yīng)214來(lái)保證,在這種情況下所述下一跳躍地址是代理108。由于下一跳躍地址并不包含comp參數(shù),所以所述消息被未壓縮地發(fā)送。
代理108接收消息214,將其URI從Via首部列表中刪除并且把消息216未壓縮地轉(zhuǎn)送到代理202。
當(dāng)代理202接收(步驟302)消息216時(shí),并且再次參照?qǐng)D3,所述代理確定(步驟304)所接收的消息216是請(qǐng)求還是響應(yīng)的一部分。在這種情況下,所接收的消息是響應(yīng)消息——換句話說(shuō),所接收的消息是包括初始請(qǐng)求INVITE消息的事務(wù)的一部分。因此代理202檢查所述消息以便找到在路由中下一下游部件(即UAC)的相關(guān)首部并且搜索所接收的消息以查看存在上述的明確標(biāo)識(shí)符。由于搜索所要求的簡(jiǎn)單性,這種搜索例程可以在速度和效率上優(yōu)化。
如果在消息中找到代理202的標(biāo)識(shí)符,那么獲得標(biāo)志值。在這種情況下,如上所述所述標(biāo)志表明應(yīng)當(dāng)壓縮將來(lái)請(qǐng)求消息,而且下一下游部件支持壓縮。因此代理202修改消息216中的記錄-路由條目以便刪除先前添加的明確標(biāo)識(shí)符和標(biāo)志,并且用comp參數(shù)來(lái)代替。然后所修改的消息218被轉(zhuǎn)送到代理104。
那些本領(lǐng)域技術(shù)人員應(yīng)當(dāng)知道在SIP中,始終參考當(dāng)前請(qǐng)求或響應(yīng)的消息流方向來(lái)理解概念‘上游’和‘下游’。
當(dāng)UAC接收消息134時(shí),UAC通過(guò)在所接收的消息中所包含的首部信息來(lái)構(gòu)造路由集,所述路由集包括路由集P2;compP3UASUAC 102處理所接收的消息134并且通過(guò)向UAS 110發(fā)回ACK消息來(lái)作出響應(yīng)。由于代理202已經(jīng)記錄-路由并且所述記錄-路由首部表明所述代理202支持SIP壓縮,所以消息136以壓縮格式被直接發(fā)送到代理106。如分別在消息138和140中所示,ACK消息136以未壓縮格式經(jīng)由代理108被轉(zhuǎn)送到UAS 110。
為了概括,SIP壓縮提供了一種機(jī)制,借此源部件(諸如UAC)當(dāng)向中間部件發(fā)送將來(lái)請(qǐng)求消息時(shí)可以要求所述中間部件(諸如代理)向所述源部件表明所述源部件是否可以使用壓縮。由于SIP只提供單向通信路徑,即請(qǐng)求或響應(yīng),所以可以只在響應(yīng)消息中給出這種指示。依照本實(shí)施例有益地是,這種機(jī)制并不要求使用有狀態(tài)的中間部件。
上述過(guò)程的效果在于由UAC 102所接收的200 OK消息134與現(xiàn)有技術(shù)中所接收的消息相同,區(qū)別之處在于現(xiàn)有技術(shù)要求使用有狀態(tài)的代理服務(wù)器,而本實(shí)施例只要求使用無(wú)狀態(tài)的代理服務(wù)器。因而,依照上述實(shí)施例的SIP代理服務(wù)器可以被部署在要求支持SIP消息壓縮的SIP網(wǎng)絡(luò)中,可以獲得與有狀態(tài)的代理服務(wù)器相對(duì)比使用無(wú)狀態(tài)代理服務(wù)器所提及的整個(gè)優(yōu)點(diǎn)。
那些本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解相同的技術(shù)也可以應(yīng)用于其它SIP部件,諸如背對(duì)背用戶代理(B2BUA)。
權(quán)利要求
1.一種用于在基于消息的通信系統(tǒng)中的中間部件和源部件之間傳送信息的方法,其中從所述源部件向目的地部件發(fā)送請(qǐng)求消息并且響應(yīng)于此從所述目的地部件向源部件發(fā)送相應(yīng)的響應(yīng)消息,經(jīng)由中間部件來(lái)發(fā)送所述請(qǐng)求和響應(yīng)消息,所述中間部件被安排來(lái)把所述消息轉(zhuǎn)送到適當(dāng)?shù)牟考?,在所述中間部件處所述方法包括在轉(zhuǎn)送所接收的請(qǐng)求消息之前確定在所接收的請(qǐng)求消息中存在要被傳送的信息的指示,并且在存在的情況下,采用把與所述中間部件相關(guān)聯(lián)的臨時(shí)標(biāo)識(shí)符包括在相應(yīng)的響應(yīng)消息中的方式來(lái)把所述臨時(shí)標(biāo)識(shí)符添加到所述消息;并且在轉(zhuǎn)送所接收的響應(yīng)消息之前;確定存在與所述中間部件相關(guān)聯(lián)的臨時(shí)標(biāo)識(shí)符,并且在存在的情況下,用要被傳送到所述源部件的信息來(lái)代替所述臨時(shí)標(biāo)識(shí)符。
2.如權(quán)利要求1所述的方法,其中添加所述臨時(shí)標(biāo)識(shí)符的步驟還包括添加用于明確標(biāo)識(shí)所述中間部件的標(biāo)識(shí)符。
3.如權(quán)利要求1或2所述的方法,其中添加所述臨時(shí)標(biāo)識(shí)符的步驟還包括添加用于標(biāo)識(shí)要被傳送到源部件的信息類型的附加信息。
4.如權(quán)利要求1、2或3所述的方法,其中基于消息的通信系統(tǒng)是基于會(huì)話啟動(dòng)協(xié)議(SIP)的系統(tǒng),其中所述中間部件是SIP代理服務(wù)器,其中所述請(qǐng)求消息是SIP請(qǐng)求消息,其中所述響應(yīng)消息是SIP響應(yīng)消息,并且其中確定在所接收的請(qǐng)求消息中存在的步驟還包括確定存在SIP壓縮參數(shù)。
5.如權(quán)利要求4所述的方法,其中所述請(qǐng)求消息包括SIP代理服務(wù)器的URI,并且其中添加所述臨時(shí)標(biāo)識(shí)符的步驟還包括把所述臨時(shí)標(biāo)識(shí)符添加到SIP代理的URI。
6.如權(quán)利要求5所述的方法,其中確定在響應(yīng)消息中存在臨時(shí)標(biāo)識(shí)符的步驟還包括確定在所述響應(yīng)消息內(nèi)的SIP代理的URI中存在臨時(shí)標(biāo)識(shí)符。
7.如權(quán)利要求6所述的方法,其中代替臨時(shí)標(biāo)識(shí)符的步驟還包括用SIP壓縮參數(shù)來(lái)代替所述臨時(shí)標(biāo)識(shí)符。
8.如權(quán)利要求4到7中任何一個(gè)所述的方法,還包括在SIP代理先前已經(jīng)向所述源部件表明該代理支持SIP壓縮的情況下,使用壓縮從所述源部件向SIP代理發(fā)送將來(lái)的請(qǐng)求消息。
9.一種適于依照權(quán)利要求1到8中任何一個(gè)所述的方法來(lái)操作的中間部件。
10.一種適于依照權(quán)利要求1到8中任何一個(gè)所述的方法來(lái)操作的SIP代理。
11.一種用于在基于消息的通信系統(tǒng)中轉(zhuǎn)送消息的設(shè)備,其中從源部件向目的地部件發(fā)送請(qǐng)求消息,并且響應(yīng)于此從所述源部件向目的地部件發(fā)送響應(yīng)消息,所述系統(tǒng)被這樣配置以致消息經(jīng)由所述設(shè)備發(fā)送以便轉(zhuǎn)送到它們適當(dāng)?shù)哪康牡?,包括用于在轉(zhuǎn)送所接收的請(qǐng)求消息之前,確定在所接收的請(qǐng)求消息中存在信息要被傳送的指示的裝置,所述裝置被配置成在確定存在所述指示的情況下,采用把與所述中間部件相關(guān)聯(lián)的臨時(shí)標(biāo)識(shí)符包括在相應(yīng)的響應(yīng)消息中的方式把所述臨時(shí)標(biāo)識(shí)符添加到所述消息;和用于在轉(zhuǎn)送所接收的響應(yīng)消息之前,確定在所接收的響應(yīng)消息中存在與所述中間部件相關(guān)聯(lián)的臨時(shí)標(biāo)識(shí)符的裝置,所述裝置被配置成在確定存在所述臨時(shí)標(biāo)識(shí)符的情況下,用要被傳送到所述源部件的信息來(lái)代替所述臨時(shí)標(biāo)識(shí)符。
12.如權(quán)利要求11所述的設(shè)備,其中用添加所述臨時(shí)標(biāo)識(shí)的裝置適于添加用于明確標(biāo)識(shí)所述中間部件的標(biāo)識(shí)符。
13.如權(quán)利要求11或12所述的設(shè)備,其中用于添加所述臨時(shí)標(biāo)識(shí)符的裝置適于添加用于標(biāo)識(shí)要被傳送到源部件的信息類型的附加信息。
14.如權(quán)利要求11、12或13所述的設(shè)備,其中基于消息的通信系統(tǒng)是基于會(huì)話啟動(dòng)協(xié)議(SIP)的系統(tǒng),其中所述中間部件是SIP代理服務(wù)器,其中所述請(qǐng)求消息是SIP請(qǐng)求消息,其中所述響應(yīng)消息是SIP響應(yīng)消息,并且其中用于確定在所接收的請(qǐng)求消息中存在的裝置適于確定存在SIP壓縮參數(shù)。
15.如權(quán)利要求14所述的設(shè)備,其中所述請(qǐng)求消息包括SIP代理的URI,并且其中用于添加所述臨時(shí)標(biāo)識(shí)符的裝置適于把所述臨時(shí)標(biāo)識(shí)符添加到所述SIP代理的URI。
16.如權(quán)利要求15所述的設(shè)備,其中用于確定在響應(yīng)消息中存在臨時(shí)標(biāo)識(shí)符的裝置適于確定在所述響應(yīng)消息內(nèi)的SIP代理的URI中存在臨時(shí)標(biāo)識(shí)符。
17.如權(quán)利要求16所述的設(shè)備,其中用于代替臨時(shí)標(biāo)識(shí)符的裝置適于用SIP壓縮參數(shù)來(lái)代替所述臨時(shí)標(biāo)識(shí)符。
全文摘要
依照本發(fā)明的一個(gè)方面,提供了一種用于在基于消息的通信系統(tǒng)中的中間部件和源部件之間傳送信息的方法,其中從所述源部件向目的地部件發(fā)送請(qǐng)求消息并且響應(yīng)于此從所述目的地部件向源部件發(fā)送相應(yīng)的響應(yīng)消息,所述請(qǐng)求和響應(yīng)消息被經(jīng)由中間部件來(lái)發(fā)送,所述中間部件被安排來(lái)把所述消息轉(zhuǎn)送到適當(dāng)?shù)牟考?,所述方法包括,在所述中間部件在轉(zhuǎn)送所接收的請(qǐng)求消息之前確定在所接收的請(qǐng)求消息中存在要被傳送的信息的指示,并且在存在的情況下,采用把與所述中間部件相關(guān)聯(lián)的臨時(shí)標(biāo)識(shí)符包括在相應(yīng)的響應(yīng)消息中的方式來(lái)把所述臨時(shí)標(biāo)識(shí)符添加到所述消息;并且在轉(zhuǎn)送所接收的響應(yīng)消息之前確定存在與所述中間部件相關(guān)聯(lián)的臨時(shí)標(biāo)識(shí)符,并且在存在的情況下,用要被傳送到所述源部件的信息來(lái)代替所述臨時(shí)標(biāo)識(shí)符。
文檔編號(hào)H04L29/06GK1954578SQ200580015681
公開(kāi)日2007年4月25日 申請(qǐng)日期2005年5月13日 優(yōu)先權(quán)日2004年5月17日
發(fā)明者D·曼蘇蒂, B·梅內(nèi)茲, M·-N·馬蒂厄 申請(qǐng)人:惠普開(kāi)發(fā)有限公司