專利名稱:會話啟動協(xié)議(sip)中或其相關的改進的制作方法
技術領域:
本發(fā)明一般涉及會話啟動協(xié)議(SIP)網(wǎng)絡,尤其涉及改善至少某些SIP網(wǎng)絡單元性能。
在請求說明(RFC)3261中定義的會話啟動協(xié)議(SIP)是一種用于創(chuàng)建、修改和終止實時呼叫和主要因特網(wǎng)協(xié)議(IP)網(wǎng)絡會議的應用層控制和信令協(xié)議。一個典型的SIP網(wǎng)絡包含多個單元,包括SIP用戶代理服務器(UAS),SIP用戶代理客戶機(UAC),代理服務器,重定向服務器和寄存服務器。
SIP定義了一個分層通信協(xié)議模型,如
圖1所示,給出了一個典型的SIP棧100,棧包含網(wǎng)絡層102、傳輸層104、處理層106、可選擇的會話層108和業(yè)務或應用層110。
網(wǎng)絡層102提供適當?shù)囊蛱鼐W(wǎng)協(xié)議(IP)連接,使每個SIP單元能通過IP網(wǎng)絡實現(xiàn)通信。
傳輸層104定義了,在網(wǎng)絡中,客戶機怎樣發(fā)送請求和接收響應,服務器怎樣接收請求和發(fā)送響應。SIP服務器是一個為了服務它們而接收請求并對那些請求返回響應的網(wǎng)絡單元。傳輸層104也負責在網(wǎng)絡中使SIP消息成幀。
接下一層是處理層106,處理是(使用傳輸層)由客戶機處理發(fā)送到服務器處理的請求,及從服務器處理發(fā)送回到客戶機的對該請求的響應。處理層負責執(zhí)行適應的消息序列及當傳輸層不可靠時的重發(fā)并濾除重復的SIP消息。用戶代理客戶機(UAC)完成的任何任務都使用了一系列的處理。
處理層上面是處理用戶(TU)或業(yè)務層110。業(yè)務層110是運行在SIP棧之上的應用,它為單元提供了特定功能。
可選的會話層108可在業(yè)務層110和處理層106間存在。SIP識別一系列相關處理。例如,在一個標準電話呼叫建立和拆除是單個SIP會話中的兩個相關處理。會話層負責執(zhí)行適當?shù)奶幚硇蛄泻凸芾硭麄冮g的不足之處。
SIP單元以SIP消息的形式發(fā)送請求和響應到其它SIP單元。SIP消息包含廣泛的信息及其細節(jié),例如源地址或URI、目標地址、路由細節(jié)、呼叫標識、序列號等本領域技術人員所意識到的。
SIP消息格式由于報頭信息可在一個消息中被安排和預定,從而具有顯著的靈活性,還會出現(xiàn)消息邏輯上等同,同時句法不同的情況。例如,SIP沒為多個報頭規(guī)定它們在SIP消息中出現(xiàn)的順序。而且,SIP報頭通常是事件無關的,不同的商家的SIP棧會以不同方式構筑其消息。然而,重要的是所有SIP棧是相互兼容的。
SIP消息的解碼由語法分析器112實現(xiàn),該分析器是SIP棧100的組成部分。語法分析器112分析消息并提取特定層的相關消息。由于構造SIP消息傳輸相同信息的不同方式的數(shù)量,語法分析器必須能夠在任何消息格式下提取報頭信息、參數(shù)數(shù)據(jù)等。例如,語法分析器必須能夠處理高層和低層事件特性,及報頭分離變量如換行特性、間隔、分號、標簽(tab)特性等。語法分析器因此能提供復雜的分析功能。典型地,向SIP棧提供普通的不用定制的組件,實現(xiàn)整個SIP說明,使它們適合同任何類型的SIP單元一起使用。
每個不同類別的SIP單元都存在不同程度的功能復雜性,由每一類別單元處理的消息數(shù)量也變化很大。例如,SIP用戶代理客戶機和用戶代理服務器能實現(xiàn)復雜的處理和通信任務,例如,何時建立一個呼叫。但同時由UAC處理的消息的數(shù)量通常相對較小。例如,UAS通常只處理與由UAS發(fā)起的呼叫確立請求相關的消息。一旦呼叫確立,假設呼叫參數(shù)沒變,UAC或UAS可能不處理任何更進一步的消息直到呼叫結束。
另一方面,其它單元,如SIP重定向服務器,實現(xiàn)一些較簡單的處理任務,但接收更多數(shù)量的消息進行處理。例如SIP重定向服務器實現(xiàn)存儲SIP URI和IP地址間映射的相對簡單任務,在該IP地址處能達到SIP URI。這是SIP網(wǎng)絡中的一個基本功能,因為重定向服務器被SIP代理用于在路由呼叫前獲得用戶設備的當前IP地址。這在移動UAC接入到網(wǎng)絡的情況下尤其重要,因為通常IP地址是動態(tài)分配并且頻繁改變。而且,為確保映射信息是最新的,每個移動UAC通常以周期間隔發(fā)送登記(REGISTER)消息。
因此,很清楚這種被重定向服務器處理的消息的數(shù)量通常遠高于那些被UAC處理的消息數(shù)量。例如,當前寄存服務器通常每秒能處理200至1000個寄存操作。
然而,隨著使用SIP的新業(yè)務的出現(xiàn),如所謂的按鍵通話(PTT)業(yè)務,希望某些被發(fā)送消息的數(shù)量有很大的增加,這可能增加現(xiàn)存網(wǎng)絡單元處理這些消息的負荷??梢灶A見一些這樣的單元可能不能應付增加的需求。
例如,按鍵通話業(yè)務通常要求網(wǎng)上的每一個移動設備至少每5分鐘就發(fā)送一個REGISTER消息。這不僅導致這種消息在網(wǎng)絡上的發(fā)送量大量增加,而且隨著這種業(yè)務普及的增加而希望連接到網(wǎng)絡的移動設備會大量增加,因此要進一步結合情況。
如上所述,所有SIP單元普遍基于相同實現(xiàn)模型,該模型包含通常的SIP棧加上應用或為該單元提供了特定功能的業(yè)務層。這種模型已被大量用來舒緩SIP網(wǎng)絡單元的發(fā)展時期和減少費用,并用來確保使用來自不同商家的SIP棧的其他網(wǎng)絡單元之間的互操作性。然而,由于增加的實施壓力,至少對于某些SIP單元來說,這種途徑不再是令人想要的,這一點正在明朗化。
因此,本發(fā)明的一個目的是克服或緩和至少一些上述問題。
根據(jù)本發(fā)明的第一實施例,提供了一個SIP網(wǎng)絡單元,用于處理從SIP單元網(wǎng)絡中的其它SIP單元接收到的消息。該SIP單元適合接收預定類型的SIP請求,該請求包含多個報頭和與各報頭相關的數(shù)據(jù),還包含一個消息檢索功能,該功能適合從所述報頭的預定選擇中提取數(shù)據(jù),用于處理所提取數(shù)據(jù)的處理邏輯,產(chǎn)生與所接收請求相關的預定類型響應消息的裝置,響應消息包含從接收到的消息中提取的數(shù)據(jù),及將產(chǎn)生的消息發(fā)送到目的地的裝置,該目的地標識在產(chǎn)生的響應消息中。
有利地,這能提高至少某些SIP單元的性能。
SIP單元可適用于只接收一種預定類型的SIP請求消息。
適當?shù)?,SIP單元適用于只處理單個SIP事務(transaction)。
預定選擇優(yōu)選地與請求的預定類型相關聯(lián)。
適當?shù)?,SIP單元沒有維持在SIP單元的會話上下文或事務上下文,它是無國籍的(stateless)。
優(yōu)選地,SIP單元適合以與最初接收到消息相同的方式處理消息重發(fā)。
適當?shù)?,SIP單元可以是一個SIP寄存服務器,在此情況下SIP單元適合接收SIP REGISTER消息,消息分析器適合從消息的去(TO)、聯(lián)系(Contact)和終止(Expires)報頭提取數(shù)據(jù)。
適當?shù)?,SIP寄存服務器還包括數(shù)據(jù)存儲中存儲映射的裝置,該映射是所接收消息的源發(fā)站的URI與提取的數(shù)據(jù)中標識的地址間的映射。
適當?shù)?,產(chǎn)生響應消息的裝置適合產(chǎn)生SIP 200同意(OK)消息。
可選地,SIP單元可以是SIP重定向服務器,在此情況下SIP單元適合接收SIP重定向(REDIRECT)消息,消息分析器適合從消息的To報頭提取數(shù)據(jù)。
適當?shù)兀琒IP重定向服務器還包含在數(shù)據(jù)存儲中存儲一個或多個與所接收消息的源發(fā)站的URI相關聯(lián)地址的裝置,一個或多個地址標識在提取的數(shù)據(jù)中。
適當?shù)兀a(chǎn)生響應消息的設備適合產(chǎn)生SIP 200OK消息。
適當?shù)?,重定向服務器還適合接收SIP確認(ACK)響應消息。
根據(jù)本發(fā)明的第二方面,提供了包含上述SIP網(wǎng)絡單元的SIP網(wǎng)絡。
應該認識到SIP規(guī)范為某些SIP單元和功能定義了某些概念,這需要附加處理步驟才能實現(xiàn),而這對那些單元來說不能帶來任何特殊的價值。在很多情況下這些附加處理步驟導致可觀系統(tǒng)資源的消耗。例如,這可被應用到某些SIP單元如SIP寄存服務器和重定向服務器中的會話和處理的構思中。而且,一些SIP單元通常只使用SIP所定義的部分功能,因此使用通常非定制的SIP棧可能并不是最有效的設計選擇。
本發(fā)明現(xiàn)在通過例子來說明,并參考附圖,其中圖1是根據(jù)現(xiàn)有技術的普通SIP棧100的框圖;圖2是根據(jù)現(xiàn)有技術的SIP寄存服務器的框圖;圖3是根據(jù)本發(fā)明實施例的SIP寄存服務器的框圖;圖4是根據(jù)本發(fā)明實施例,減述SIP寄存服務器處理步驟例子的流程圖。
現(xiàn)在參照圖2說明現(xiàn)有技術中SIP寄存服務器的結構和功能。
REGISTER消息,如下面的REGISTER消息的例子,從SIP用戶代理客戶機(UAC)發(fā)送到SIP寄存服務器200。
示例的SIP REGISTER消息消息被寄存服務器200的SIP棧114中的傳輸層104接收,它把消息傳遞給處理層106。處理層106使用SIP棧114的語法分析器112,提取并處理該處理標識符,該標識符為呼叫ID(Call-ID)、From報頭、To報頭和Cseq報頭的合并組成。這使得處理層106確定所接收的消息是否是個新處理,或是否是一個現(xiàn)行處理的一部分。為此,處理層106對數(shù)據(jù)庫檢索,使用上下文檢索模塊118(圖2B),接著為上下文數(shù)據(jù)庫120中的每個處理存儲一些上下文信息,如Via和Cseq報頭。關于每個處理的存儲信息使處理層能夠操縱任何可能的消息進行可能出現(xiàn)的重發(fā)。處理層106接著將消息遞交到會話層108。
會話層108,使用語法分析器112提取并處理Call-ID報頭、From報頭和To報頭以確定接收的消息是現(xiàn)行會話的組成部分還是一個新會話的組成部分。這又需要會話層108使用上下文檢索模塊114進行數(shù)據(jù)庫檢索,并從會話上下文數(shù)據(jù)庫116(圖2C)中存儲或取回呼叫ID報頭、From報頭和To報頭。
最后,會話層108將消息傳遞給寄存應用層110(業(yè)務層),在此處理To報頭、Contact報頭和Expires報頭以更新寄存服務器數(shù)據(jù)庫204中請求的寄存信息。
寄存應用接著通過發(fā)送一個200OK消息響應UAC,示例如下。
示例的SIP 200OK消息響應消息由每個協(xié)議層逐漸構筑,如下所述。
寄存應用層110設置Contact報頭的終止參數(shù),接著使消息傳到會話層108。會話層108設置To報頭和會話上下文報頭。
會話層108也設置具有一終止值的計時器使其在一個給定時間周期后終止會話,正如在Contact報頭的終止參數(shù)中定義的那樣。會話層108將消息傳給處理層106,在這里設置消息的事務上下文報頭,包括Call-ID和From報頭,并在會話上下文數(shù)據(jù)庫116中保存信息,以備消息重發(fā)所需。最后,消息傳到傳輸層104,在此從Via報頭重新取回下一跳IP地址以發(fā)送響應。
除此之外,一個后臺無用信息收集子程序清除過時的、被保存用來處理重發(fā)的事務上下文。第二無用信息收集子程序在會話層上運行以清除會話上下文。
可以觀察到SIP寄存服務器只處理單個處理。例如,涉及到用寄存服務器寄存的處理包含單個請求和單個響應消息從SIP用戶客戶機發(fā)送到寄存服務器的REGISTER消息;及作為響應從寄存服務器向用戶代理客戶機發(fā)送的200OK消息。一些其它SIP單元,如SIP重定向服務器和SIP通知服務器也只處理單個SIP事務。例如,涉及重定向操作的處理包括一個請求消息和兩個響應消息從UAC向重定向服務器發(fā)送的REDIRECT消息,作為響應從重定向服務器向UAC發(fā)送的200OK消息,及最后作為確認從UAC發(fā)送到重定向服務器的ACK消息。
由于由這種SIP單元實現(xiàn)的任務具有相對簡單的性質,已認識到用這樣的傳統(tǒng)方法實現(xiàn)這種單元顯得有點效率過低,可通過使用更完整更有效的模塊獲得潛在的重要性能收益,這將在下面更加詳細地予以說明。這對于那些只需要通過它們內在功能去實現(xiàn)單個處理,或只使用SIP提供的部分功能的SIP單元來說尤其如此。
進一步認識到,通常SIP單元不需要使用或按照整個SIP規(guī)程,或使用傳統(tǒng)的SIP棧,只要從外部觀點來看SIP規(guī)程是與其一致就行。本質上,并沒有責任讓SIP單元使用SIP標準建議的結構和處理模塊。同時這一途徑可能被認為有點與通常的想法相反因為發(fā)展成本可能更高,發(fā)展時期更長,所以,人們認為改善一些SIP單元如SIP寄存服務器和SIP重定向服務器的性能是適當?shù)摹?br>
例如,因為由寄存服務器執(zhí)行的操作只涉及單個處理,這就不需要確立或維護一會話上下文以對潛在的REGISTER消息的重發(fā)提供服務。而且,不需要確立或維護事務上下文。開始,重發(fā)消息的數(shù)量可能比較少且只占所有SIP消息的很小比例。在任何情況下,如果一個UAC重發(fā)一個REGISTER消息,這產(chǎn)生與包含在先前發(fā)送的REGISTER消息中相同的信息。如果寄存服務器接收一個重發(fā)消息,通過處理或會話上下文,確定是否消息先前已被接收因而拒絕,不能得到特別的功能益處。實際上,如果沒有使用這種重發(fā)機制,重發(fā)消息將像開始消息一樣進行處理且使用它以更新地址解析業(yè)務中的綁定會更加有效,即使具有與已包含在其中的消息相同。
在這種情況下,寄存服務器可被認為無國籍的,因為其中未存儲或處理會話或事務上下文信息。而且,如果沒有上下文信息被存儲,就沒有其他對無用信息收集子程序的請求。
如前面提及的,寄存服務器在地址解析業(yè)務中的主要目標是寄存與用戶SIPURI和用戶可聯(lián)系設備的地址間的綁定。因此,寄存服務器主要對包含在SIPREGISTER消息中的一部分信息感興趣,即To、Contact和Expires報頭。因此,既然寄存服務器只對SIP REGISTER消息有限的一部分報頭感興趣,可使用優(yōu)化的子鏈檢索功能,而不是使用在典型SIP棧中能找到的普通的SIP語法分析器。這意識到使用只查找一小部分消息報頭特定檢索功能要比使用通常的能夠檢測所有可能SIP消息報頭和參數(shù)的語法分析器的效率更高些。
當寄存服務器向REGISTER消息源發(fā)送響應時,寄存服務器通過復制接收的REGISTER消息的相關報頭能夠構建200OK響應消息。響應屬性如Expires和Tap參數(shù)可在所要求的地方加進去。200OK消息的目的地地址僅僅是REGISTER消息的源地址,寄存服務器不需要分析REGISTER消息以從該消息中提取源地址。
根據(jù)本發(fā)明實施例的高性能SIP寄存服務器現(xiàn)在參考圖3和4予以說明。在本實施例中如現(xiàn)有技術中那樣,SIP寄存服務器使用的SIP棧并未如現(xiàn)有技術中那樣分層,而實質在性質上是統(tǒng)一的。
現(xiàn)在參考圖3和4,示出根據(jù)本發(fā)明實施例的高性能SIP寄存服務器300。消息分析器302接收SIP REGISTER消息(步驟400)。消息分析器302例如使用適當簡潔及有效的檢索功能,該功能限于檢測和提取(步驟402)SIP寄存服務器300所需的必要信息,即從To、Contact和Expires報頭來的信息。本領域技術人員知道可使用任何合適的檢索功能。
提取的信息被傳給登記存儲單元302,它將在登記映射數(shù)據(jù)庫304中存儲(步驟406)適當?shù)牡怯浶畔ⅰ?br>
一旦信息被存儲了,響應消息產(chǎn)生器306產(chǎn)生一個200OK消息(步驟408)。消息產(chǎn)生器306從接收到的REGISTER消息中復制大部分的報頭,并以Expires和Tap參數(shù)形式增加響應屬性。響應消息的目的地地址從接收的REGISTER消息中的源地址獲得,有利的是消息分析器不必分析REGISTER消息以提取消息中的源地址。一旦200OK消息完成,它將被發(fā)送給消息Via報頭中指示的下一跳地址(步驟410),這是本領域技術人員能夠意識到的。
因而,可以看出,不像現(xiàn)有技術解決方案那樣使用模塊將消息處理和語法分析與應用功能分離,根據(jù)本實施例的網(wǎng)絡單元使用更加綜合及直接的模塊。這種方法不僅有助于促進系統(tǒng)資源釋放及減輕對SIP網(wǎng)絡單元如寄存服務器的性能要求,而且很大程度上允許現(xiàn)行寄存服務器能夠比以前處理更多數(shù)量的同時操作。這在電信產(chǎn)業(yè)中尤其讓人感興趣,在電信產(chǎn)業(yè)中同時處理操作的數(shù)量是競爭者產(chǎn)品的一個重要區(qū)別特性。
在測試中,這種高性能寄存服務器已顯示了超過20倍的性能增加,這是同參考圖2的上述現(xiàn)有技術的寄存服務器比較后得出的。這種性能很容易滿足上述對登記處理所期望的未來需求。
應該注意到上面的說明主要參考SIP寄存服務器進行的,然而本領域技術人員會意識到這里所述的技術,如果需要可作適當改變應用到其它SIP單元,如SIP重定向服務器和SIP通知服務器。
權利要求
1.一種SIP網(wǎng)絡單元,用于處理從SIP單元網(wǎng)絡中的其它SIP單元接收到的消息,其中該單元適合接收預定類型的SIP請求消息,該請求包含多個報頭和與每個報頭相關的數(shù)據(jù),該單元還包含消息檢索功能,該功能適合從所述報頭的預定選擇中提取數(shù)據(jù),用于處理所提取數(shù)據(jù)的處理邏輯;產(chǎn)生與接收到的請求相關聯(lián)的預定類型響應消息的裝置,該響應消息包含從接收到消息中提取的數(shù)據(jù);及將產(chǎn)生的消息發(fā)送到目的地的裝置,該目的地標識在產(chǎn)生的響應消息中。
2.根據(jù)權利要求1的SIP單元,適用于只接收單一預定類型的SIP請求消息。
3.根據(jù)權利要求1或2的SIP單元,適用于只處理單一類型的SIP事務。
4.根據(jù)權利要求1、2或3的SIP單元,其中所述預定選擇與請求的預定類型相關聯(lián)。
5.根據(jù)權利要求1、2、3或4的SIP單元,其中該SIP單元是無國籍狀態(tài)的。
6.根據(jù)權利要求1、2、3、4或5的SIP單元,其中沒有會話上下文維持在其上。
7.根據(jù)前面的任一權利要求的SIP單元,其中沒有事務上下文維持在其上。
8.根據(jù)前面的任一權利要求的SIP單元,適用于以與最初接收到的消息相同的方式處理重發(fā)消息。
9.根據(jù)權利要求1-8中任一權利要求的SIP單元,其中該SIP單元是SIP寄存服務器。
10.根據(jù)權利要求9的SIP單元,其中該單元適用于接收SIP REGISTER消息,且消息分析器適用于從消息的TO、Contact和Expires報頭提取數(shù)據(jù)。
11.根據(jù)權利要求9或10的SIP寄存服務器,其中處理邏輯適用于在數(shù)據(jù)存儲裝置中存儲映射,該映射在所接收消息的源發(fā)站的URI與提取的數(shù)據(jù)中標識的地址之間。
12.根據(jù)權利要求9、10或11的SIP寄存服務器,其中產(chǎn)生響應消息的裝置適用于產(chǎn)生SIP 200 OK消息。
13.根據(jù)權利要求1-8中任一權利要求的SIP單元,其中該SIP單元是SIP重定向服務器。
14.根據(jù)權利要求13的SIP重定向服務器,其中該單元適用于接收SIPREDIRECT消息,并且該消息分析器適合從消息的To報頭提取數(shù)據(jù)。
15.根據(jù)權利要求13或14的SIP重定向服務器,其中處理邏輯適合在數(shù)據(jù)存儲裝置中存儲一個或多個與所接收消息的源發(fā)站的URI相關聯(lián)的地址,所述的一個或多個地址標示在提取的數(shù)據(jù)中。
16.根據(jù)權利要求13、14或15的SIP重定向服務器,其中產(chǎn)生響應消息的裝置適用于產(chǎn)生SIP 200 OK消息。
17.根據(jù)權利要求13至16中任一權利要求的SIP重定向服務器,該服務器還適用于接收SIP ACK響應消息。
18.一種SIP網(wǎng)絡,該網(wǎng)絡包含根據(jù)權利要求1-17中任一權利要求所述的SIP網(wǎng)絡單元。
全文摘要
根據(jù)本發(fā)明的一個方面,提供了一個SIP網(wǎng)絡單元,用來在SIP單元網(wǎng)絡中處理從其它SIP單元所接收的消息,該單元適合接收預先確定類別的SIP請求,該請求包含多個報頭和與每個報頭相關的數(shù)據(jù),該單元還包含適合從所述報頭預定選擇提取數(shù)據(jù)的消息檢索功能,處理提取數(shù)據(jù)的處理邏輯;產(chǎn)生與所接收請求相關的預定類型的響應消息的裝置,該響應消息包含從所接收消息中提取的數(shù)據(jù);及將產(chǎn)生的消息發(fā)送到目的地的裝置,該目的地標識在響應消息中。
文檔編號H04L29/06GK1934840SQ200580008498
公開日2007年3月21日 申請日期2005年3月15日 優(yōu)先權日2004年3月18日
發(fā)明者S·鮑特 申請人:惠普開發(fā)有限公司