專利名稱:分布式架構中sip消息分發(fā)和處理方法及其系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及通信領域,特別涉及分布式交換機架構中會話初始協(xié)議
(Session Initiation Protocol,簡稱"SIP")消息處理。
背景技術:
在電話通信網(wǎng)中,交換機內(nèi)部以及交換機與交換機之間信號的交換與傳 輸都是采取數(shù)字信號的方式。而用戶到交換機之間,即用戶線上,由于成本 問題目前仍是采用的模擬信號方式,只有等到將來綜合業(yè)務數(shù)字網(wǎng)的出現(xiàn), 用戶線上也將采用數(shù)字信號的方式。那時,整個通信網(wǎng)將是一個全數(shù)字的通 信網(wǎng),將會給用戶帶來一系列的好處。
交換技術的發(fā)展為局域網(wǎng)交換機提供了 一個空前的發(fā)展機遇,也極大地 促進了局域網(wǎng)交換機技術與產(chǎn)品的更新?lián)Q代。
從目前局域網(wǎng)交換機技術發(fā)展的現(xiàn)狀而言,其體系結構大致有總線結 構、點對點結構和星形連接的點對點結構。
其中,基于總線結構的交換機一般分為并行總線和共享內(nèi)存型總線兩大 類。其中,并行總統(tǒng)結構采用由一種介質組成的單塊背板,模塊之間的所有 信息流都必須經(jīng)過這條總線進行傳輸,數(shù)據(jù)通過時分多路復用(Time Division Multiplexing,簡稱"TDM")傳輸方式在總線上傳輸。
點對點結構交換機又稱為縱橫制交換機或矩陣交換機。成本和復雜性高 是這種交換機容量增加的主要限制因素。在點對點交換機的全矩陣實施方案 中,每個模塊都通過連線直接連至其它模塊,形成了全網(wǎng)狀背板。由于每個 模塊都有自己的一組連接線,因而不必設置中央交換陣列。
星形連4矣的點》f點結構多應用于異步傳輸才莫式(Asynchronous Transfer Mode,簡稱"ATM")交換機中。這種結構比矩陣交換機的分布交換結構簡 單得多。星形連接的互連設計用中央交換陣列去取代網(wǎng)狀的模塊連接線。每 個星形連接的模塊接到中央交換陣列,在需要有冗余能力時還要連接到備份 交換陣列中。
要提供更大的帶寬和更快的速度,點對點連接是交換結構的發(fā)展方向。 矩陣點對點交換造價高昂,可擴展性差,不適合于大端口量的交換機;星形 點對點連接方案雖然絕對帶寬不如矩陣連接,但通過優(yōu)化可以獲得很高的性 能,且復雜度低得多,目前看來,它是大容量交換機的最佳方案。
普通交換機工作在開放系統(tǒng)互聯(lián)(Open System Interconnection ,簡稱 "OSI" )7層模型的第二層,即數(shù)據(jù)鏈路層,交換以媒體訪問控制(Medium Access Control,簡稱"MAC")地址為基礎。網(wǎng)間互聯(lián)協(xié)議(Internet Protocol, 簡稱"IP")處于OSI協(xié)議棧的第三層,通常由路由器通過軟件實現(xiàn)網(wǎng)間互 連。然而,路由器價格昂貴且轉發(fā)速度慢,越來越成為網(wǎng)絡的瓶頸,于是第 三層交換借助于線速交換技術,把路由功能集成到交換機中,這種交換機稱 為路由交換機或第三層交換機。
第三層交換在各個網(wǎng)絡層次上都能實現(xiàn)線速交換,性能有大幅度的提 高。同時,它保留了第三層上的網(wǎng)絡拓樸結構和服務。這些結構和服務在網(wǎng) 絡分段、安全性、可管理性和抑制廣播等方面具有很大優(yōu)勢,它有鑒別各種 應用層協(xié)議的能力,有助于實現(xiàn)基于策略的網(wǎng)絡控制,所以借助硬件在第三 層實現(xiàn)主要的路由協(xié)議,例如IP和因特網(wǎng)絡分組交換(Internetwork Packet Exchange,簡稱"IPX")。第三層交換機的目標是取代現(xiàn)有的路由器。它 們提供子網(wǎng)間的信息流通信,使通信速度從數(shù)百個數(shù)據(jù)包每秒提高到數(shù)百萬 個數(shù)據(jù)包每秒。第三層交換旨在高速轉發(fā)多種協(xié)議,或提供防火墻以保護網(wǎng) 絡資源,或實現(xiàn)帶寬的預留。下一代骨千網(wǎng)的核心交換機都將是第三層交換機。
一般認為,局域網(wǎng)交換機的技術發(fā)展趨勢離不開交換技術的發(fā)展。交
換技術從目前來講可分為第二層交換和第三層交換。第二層交換是OSI第二 層或稱MAC層的交換;而第三層交換或稱網(wǎng)絡層交換,則提供了更高層的 服務,如路由功能等。
當前交換機將向處理信令越來越多、處理內(nèi)容越來越復雜、處理單元越 來越多樣化的方向發(fā)展,這樣將允許系統(tǒng)分布式地配置多個處理單元,可以 大大提高系統(tǒng)的處理能力。
目前有些交換機中采用了分布式結構,其中包括多個IP分發(fā)模塊和SIP 處理模塊,IP分發(fā)模塊和SIP處理模塊可能分布于不同的單板上,當IP分發(fā) 模塊收到一條消息時,需要鑒別該消息是否是SIP消息。當該消息為SIP消 息時,還需要選擇合適的SIP處理模塊,然后向該SIP處理模塊轉發(fā)該消息, 由SIP處理模塊來處理該消息。因此,在這種分布式的結構中,這種消息分 發(fā)所需的處理復雜,目前沒有理想的機制確保SIP消息被正確地處理。
發(fā)明內(nèi)容
有鑒于此,本發(fā)明的主要目的在于提供一種分布式架構中SIP消息分發(fā) 和處理方法及處理系統(tǒng),使得分布式結構中,既能保證SIP消息得到正確處 理,又能在SIP處理模塊間進行負荷分擔。
為實現(xiàn)上述目的,本發(fā)明提供了一種分布式架構中SIP消息分發(fā)和處理 方法,包含以下步驟
IP分發(fā)模塊收到新的SIP消息后,如果此前收到過與該新消息屬于同一 呼叫的其它SIP消息,則將該新消息分發(fā)到此前處理同一呼叫的其它SIP消 息的SIP處理模塊;否則以負荷分擔方式在可用的SIP處理模塊中選擇一個,
并將該新消息分發(fā)到所選擇的該SIP處理模塊。
其中,所述SIP處理模塊通過以下方式之一實現(xiàn)所述負荷分擔
輪流地從可用的SIP處理4莫塊中選擇一個;或者,
以空閑資源量為權重從可用的SIP處理模塊中選擇。
此外在所述方法中,所述可用的SIP處理模塊的信息保存在IP分發(fā)模塊 中,在增加、刪除、修改SIP處理模塊的配置時動態(tài)更新所述可用的SIP處 理模塊的信息。
此外在所述方法中,所述將新消息分發(fā)到此前處理同一呼叫的其它SIP 消息的SIP處理模塊的步驟包含以下子步驟
所述IP分發(fā)模塊收到SIP消息時,解析出SIP呼叫標識;
根據(jù)解析出的SIP呼叫標識,在此前記錄的SIP呼叫標識與SIP處理模 塊的對應關系中查找,如果找到匹配的記錄則將該SIP消息分發(fā)到記錄中的 SIP處理模塊,如果沒有找到匹配的記錄則在以負荷分擔方式分發(fā)該SIP消 息后記錄該SIP消息與SIP處理模塊的對應關系。
此外在所述方法中,所述IP分發(fā)模塊周期性刪除過時的SIP呼叫標識與 SIP處理模塊的對應關系。
此外在所述方法中,所述IP分發(fā)模塊在記錄每條SIP呼叫標識與SIP處 理模塊的對應關系時啟動一個定時器,該定時器超時時刪除該對應關系。
此外在所述方法中,呼叫釋放時,所述SIP處理模塊通知所述IP分發(fā)模 塊被釋放的SIP呼叫的標識,所述IP分發(fā)模塊刪除該SIP呼叫標識與SIP處
理模塊的對應關系。
此外在所述方法中,還包含以下步驟
所述SIP處理模塊收到發(fā)送給服務端口的SIP消息時,通知呼叫方將后
續(xù)消息發(fā)送到與本SIP處理才莫塊相對應的指定端口 ;
所述IP分發(fā)模塊收到發(fā)送給所述指定端口的SIP消息時,直接將該SIP 消息轉發(fā)給與該指定端口相對應的SIP處理模塊。
此外在所述方法中,所述SIP呼叫標識與SIP處理才莫塊的對應關系至少 需要保留的時長為SIP消息超時的最大等待時間。
本發(fā)明還提供了一種分布式架構中SIP消息分發(fā)和處理系統(tǒng),包含至少 一個用于接收和分發(fā)SIP消息的IP分發(fā)模塊,和至少一個用于處理SIP消息 的SIP處理模塊,所述IP分發(fā)模塊進一步包含
轉發(fā)單元,用于將SIP消息轉發(fā)到指定SIP處理模塊;
負荷分擔單元,用于以負荷分擔方式在可用的SIP處理模塊中選擇一個;
判斷單元,用于在收到新的SIP消息后,判斷此前是否收到過與該新消 息屬于同一呼叫的其它SIP消息的單元,如果是則通過所述轉發(fā)單元將該新 消息轉發(fā)到此前處理同一呼叫的其它SIP消息的SIP處理模塊,否則通過所 述轉發(fā)單元將該新消息轉發(fā)到所述負荷分擔單元選中的SIP處理模塊。
其中,所述SIP處理模塊還用于在收到發(fā)送給服務端口的SIP消息時, 通知呼叫方將后續(xù)消息發(fā)送到與本SIP處理模塊相對應的指定端口 ;
所述IP分發(fā)模塊還用于收到發(fā)送給所述指定端口的SIP消息時,直接將 該SIP消息轉發(fā)給與該指定端口相對應的SIP處理模塊。
通過比較可以發(fā)現(xiàn),本發(fā)明的技術方案與現(xiàn)有技術的主要區(qū)別在于,IP 分發(fā)模塊收到新消息后,如果此前收到過與該新消息屬于同 一呼叫的任一其 它消息,則將該新消息分發(fā)到與處理其它消息相同的SIP處理模塊;否則以 負荷分擔方式在多個SIP處理模塊中選擇一個,并將該新消息分發(fā)到所選擇 的SIP處理模塊。實現(xiàn)了分布式構架下的IP分發(fā)模塊向SIP處理模塊的消息
的分發(fā)。由于同一呼叫的SIP消息能否在同一個SIP處理模塊中處理,保證 了 SIP消息處理的正確性。同一呼叫前后的SIP消息之間可能有依賴性,如 果在不同的SIP處理模塊中處理可能會導致錯誤。由于以負荷分擔方式在SIP 處理模塊間分配新的呼叫,可以使SIP處理模塊之間的負荷比較平衡,不會 出現(xiàn)部分SIP處理模塊因負荷過重而拒絕新的呼叫,同時部分SIP處理模塊
還有相當多剩余處理能力的情況。
SIP處理模塊收到新呼叫的SIP消息后,在向呼叫方返回的消息中攜帶 與該SIP處理模塊對應的指定端口號,呼叫方則將后續(xù)消息發(fā)送到該指定端 口號,IP分發(fā)模塊根據(jù)指定端口號將后續(xù)消息直接轉發(fā)到對應的SIP處理模
塊。后續(xù)消息根據(jù)端口號的直接轉發(fā),節(jié)省了系統(tǒng)資源,提高了呼叫消息分 發(fā)效率。
保存在IP分發(fā)模塊中的SIP呼叫標識與SIP處理模塊的對應關系需要進
行老化處理,可以周期性批量釋放,對每一個記錄定時釋放,或在呼叫結束 后釋放。通過這些老化處理節(jié)省了 IP分發(fā)模塊的存貯資源。
圖1是根據(jù)本發(fā)明第一實施方式的分布式架構中SIP消息分發(fā)和處理方 法流程圖2是根據(jù)本發(fā)明第二實施方式的分布式架構中SIP消息分發(fā)和處理方 法流程圖3是根據(jù)本發(fā)明第三實施方式的分布式架構中SIP消息分發(fā)和處理方 法流程圖4是根據(jù)本發(fā)明第四實施方式的分布式架構中SIP消息分發(fā)和處理系 統(tǒng)結構圖。
具體實施例方式
為使本發(fā)明的目的、技術方案和優(yōu)點更加清楚,下面將結合附圖對本發(fā) 明作進一 步地詳細描述。
本發(fā)明提出了一種分布式架構中,SIP消息分發(fā)及其處理的方式和系統(tǒng) 結構。對于新的SIP呼叫,IP分發(fā)模塊將該呼叫消息根據(jù)負荷分擔的方式分 發(fā)給SIP處理模塊;對于SIP呼叫的后續(xù)消息,IP分發(fā)模塊通過一定策略轉 發(fā)給同一 SIP處理模塊;或者通過SIP處理模塊在處理SIP呼叫第一次消息 時,通知呼叫方該SIP處理模塊的端口地址,呼叫方的后續(xù)消息根據(jù)該SIP 處理模塊的端口地址,直接發(fā)送到同一 SIP處理模塊進行處理。
其中,SIP協(xié)議是基于Client/Server (客戶端/服務器)模型的,任何一 臺接受SIP請求的服務器或交換機等都是一個Server,對外公布一個公共的 服務端口 。該服務端口被IP分發(fā)模塊用來監(jiān)聽所有Client的請求及響應消息, 并將監(jiān)聽到SIP消息轉發(fā)到SIP處理模塊上處理,實現(xiàn)SIP消息分發(fā),而該 端口繼續(xù)監(jiān)聽其它SIP消息。
本發(fā)明第一實施方式的分布式架構中SIP消息分發(fā)和處理方法如圖1所示。
在步驟101中,IP分發(fā)模塊在SIP服務端口上,例如,端口地址為5060, 監(jiān)聽消息。
在步驟102中,IP分發(fā)模塊收到來自呼叫方發(fā)來的新的SIP消息后,解 析出該呼叫的SIP呼叫標識。如果根據(jù)該SIP呼叫標識判定此前沒有收到過 與該新消息屬于同一呼叫的其它SIP消息,將采用負荷分擔的方式選擇一個 SIP處理模塊,然后,將消息轉發(fā)給所選擇的SIP處理模塊。其中,負荷分 擔的方式為輪流地從可用的SIP處理模塊中選擇一個,或者以空閑資源量為 權重從可用的SIP處理模塊中選擇一個,或者采用其它的策略從可用的SIP
處理4莫塊中選擇一個。例如,SIP處理4莫塊有兩個,第一個SIP處理才莫塊的 空閑資源量為6,第二個SIP處理模塊的空閑資源量為4,則以空閑資源量為 權重選擇時,第一個SIP處理模塊可以得到60%的選中機會,第二個SIP處 理模塊可以得到40%的選中機會。
在IP分發(fā)模塊中保存了可用的SIP處理模塊的信息,用靜態(tài)表或者動態(tài) 表來記錄SIP處理模塊的分布情況;若為靜態(tài)表,則該表大小可由當前系統(tǒng) 能提供的最大SIP處理模塊數(shù)決定。在此后的增加、刪除、修改SIP處理模 塊的配置時,動態(tài)更新可用的SIP處理模塊的信息。另外,用變量B記錄本 次呼叫所對應的SIP處理模塊。當進行負荷分擔時,通過變量B來指示負荷 分擔策略選擇的一個SIP處理模塊來處理新的一次呼叫的SIP消息。例如, 采用輪流的方式負荷分擔,當變量B指向表中最后一個SIP處理模塊時,下 一次新的呼叫開始時,變量B將指向表中第一個SIP處理模塊。
同時,IP分發(fā)模塊建立本次SIP呼叫與該SIP處理模塊的對應關系,例 如采用HASH (哈希)表、其它數(shù)據(jù)鏈表或數(shù)組等等形式來存放該對應關系 和信息。具體地說,保存本次SIP呼叫的SIP呼叫標識與SIP處理模塊的對 應關系。
并且,IP分發(fā)模塊將周期性地刪除過時的SIP呼叫標識與SIP處理模塊 的對應關系。該周期大于或等于該對應關系需要保留的最短的時長。SIP呼 叫標識與SIP處理模塊的對應關系需要保留的最短的時長為SIP消息超時的 最大等待時間。例如,如果采用HASH表存放該對應關系,則需要保留的時 長為SIP消息超時的最大等待時間64xTl秒,根據(jù)SIP標準協(xié)議RFC3261 的定義,Tl為環(huán)路傳輸延時(Round Trip Time,簡稱"RTT")的估計值。 這樣,在該保留的時長內(nèi),可以識別該SIP消息的重發(fā)。
然而,在對應關系尚未刪除以前時,IP分發(fā)模塊收到重發(fā)的該消息或本 次呼叫的后續(xù)消息后,判定此前收到過與該新消息屬于同一呼叫的其它SIP
消息,則首先解析出SIP呼叫標識,然后根據(jù)解析出的SIP呼叫標識,在此 前記錄的SIP呼叫標識與SIP處理4莫塊的對應關系中查找,如果找到匹配的 記錄則將該SIP消息分發(fā)到記錄中的SIP處理模塊,從而識別出該SIP消息 的重發(fā),進而將該重發(fā)的SIP消息發(fā)送到同一個SIP處理模塊處理。
在步驟103中,SIP處理模塊收到發(fā)送給服務端口的SIP消息時,返回 100消息給呼叫方。
在步驟104中,SIP處理模塊返回180消息給呼叫方,在所返回的消息 中的Contact (聯(lián)系)頭域打包本局的更新地址,例如,端口地址為5061。 通過該地址,通知呼叫方將后續(xù)消息發(fā)送到與本SIP處理才莫塊相對應的指定 端口 5061。
在步驟105中,呼叫方發(fā)送臨時響應的確認請求(PRACK),該請求所 使用的目的地址為收到的180消息中的更新地址5061。此后,呼叫方的本次 呼叫的后續(xù)消息,將直接送往地址5061。后續(xù)消息根據(jù)端口號5061直接轉 發(fā)可以節(jié)省系統(tǒng)資源,提高呼叫消息分發(fā)效率。
而IP分發(fā)模塊收到發(fā)送給指定端口 5061的SIP消息時,直接將該SIP 消息轉發(fā)給與該指定端口相對應的SIP處理模塊。
在步驟106中,SIP處理模塊發(fā)送確認請求。
在步驟107中,SIP處理模塊發(fā)送表示確認的200消息給呼叫方。
在步驟108中,呼叫方返回確認的響應消息ACK,該消息攜帶的目的地 址也為IP地址5061。
在步驟109中,當呼叫結束時,SIP處理模塊向呼叫方發(fā)送BYE(結束) 請求消息,其中Via頭域打包本局的更新地址,IP地址5061。
在步驟110中,呼叫方將BYE消息送往BYE請求消息中Via頭域打包 的IP地址5061。結束本流程。 本發(fā)明第二實施方式的分布式架構中SIP消息分發(fā)和處理方法如圖2所示。
歩驟201與歩驟101相類似。
在步驟202中,IP分發(fā)模塊收到來自呼叫方發(fā)來的新的SIP消息后,解 析出該呼叫的SIP呼叫標識。如果根據(jù)該SIP呼叫標識判定此前沒有收到過 與該新消息屬于同一呼叫的其它SIP消息,將采用負荷分擔的方式選擇一個 SIP處理模塊,然后,將消息轉發(fā)給所選擇的SIP處理模塊。其中,負荷分 擔的方式同樣可以為輪流地從可用的SIP處理模塊中選擇一個,或者隨機地 從可用的SIP處理模塊中選擇一個,或者采用其它的策略從可用的SIP處理 模塊中選擇一個。
在IP分發(fā)模塊中保存了可用的SIP處理模塊的信息,用靜態(tài)表或者動態(tài) 表來記錄SIP處理模塊的分布情況;若為靜態(tài)表,則該表大小可由當前系統(tǒng) 能提供的最大SIP處理模塊數(shù)決定。在此后的增加、刪除、修改SIP處理模 塊的配置時,動態(tài)更新可用的SIP處理模塊的信息。另外,用變量B記錄本 次呼叫所對應的SIP處理模塊。當進行負荷分擔時,通過變量B來指示負荷 分擔策略選擇的一個SIP處理模塊來處理新的一次呼叫的SIP消息。例如, 采用輪流的方式負荷分擔,當變量B指向表中最后一個SIP處理模塊時,下 一次新的呼叫開始時,變量B將指向表中第一個SIP處理模塊。
同時,IP分發(fā)模塊建立本次SIP呼叫與該SIP處理才莫塊的對應關系,例 如采用HASH表。即保存本次SIP呼叫的SIP呼叫標識與SIP處理模塊的對 應關系。IP分發(fā)才莫塊在記錄每條SIP呼叫標識與SIP處理模塊的對應關系時 啟動一個定時器,該定時器超時時刪除該對應關系。
該定時器的定時時長應該大于或等于該對應關系需要保留的最短的時 長。SIP呼叫標識與SIP處理模塊的對應關系需要保留的最短的時長為SIP 消息超時的最大等待時間。例如,如果采用HASH表存放該對應關系,則需
要保留的時長為SIP消息超時的最大等待時間64xTl秒。這樣,在該保留 的時長內(nèi),也可以識別該SIP消息的重發(fā)。
然而,在對應關系尚未刪除以前時,IP分發(fā)模塊收到重發(fā)的該消息或本 次呼叫的后續(xù)消息后,判定此前收到過與該新消息屬于同一呼叫的其它SIP 消息,則首先解析出SIP呼叫標識,然后根據(jù)解析出的SIP呼叫標識,在此 前記錄的SIP呼叫標識與SIP處理模塊的對應關系中查找,如果找到匹配的 記錄則將該SIP消息分發(fā)到記錄中的SIP處理模塊,從而識別出該SIP消息 的重發(fā),進而將該重發(fā)的SIP消息發(fā)送到同一個SIP處理模塊處理。
步驟203到步驟210分別與步驟103到步驟IIO相類似,此處不再贅述。
本發(fā)明第三實施方式的分布式架構中SIP消息分發(fā)和處理方法如圖3所示。
步驟301同樣與步驟101相類似,在此不再贅述。
在步驟302中,IP分發(fā)模塊收到來自呼叫方發(fā)來的新的SIP消息后,解 析出該呼叫的SIP呼叫標識。如果根據(jù)該SIP呼叫標識判定此前沒有收到過 與該新消息屬于同一呼叫的其它SIP消息,將采用負荷分擔的方式選擇一個 SIP處理模塊,然后,將消息轉發(fā)給所選擇的SIP處理模塊。其中,負荷分 擔的方式同樣可以為輪流地從可用的SIP處理模塊中選擇一個,或者隨機地 從可用的SIP處理模塊中選擇一個,或者采用其它的策略從可用的SIP處理 模塊中選擇一個。
在IP分發(fā)模塊中保存了可用的SIP處理模塊的信息,用靜態(tài)表或者動態(tài) 表來記錄SIP處理模塊的分布情況;若為靜態(tài)表,則該表大小可由當前系統(tǒng) 能提供的最大SIP處理模塊數(shù)決定。在此后的增加、刪除、修改SIP處理模 塊的配置時,動態(tài)更新可用的SIP處理模塊的信息。另外,也釆用一個變量 B記錄呼叫所對應的SIP處理才莫塊。
同時,IP分發(fā)模塊建立本次SIP呼叫與該SIP處理模塊的對應關系,例
如采用HASH表。即保存本次SIP呼叫的SIP呼叫標識與SIP處理模塊的對 應關系。
在步驟303中,SIP處理模塊收到發(fā)送給服務端口的SIP消息時,返回 100消息給呼叫方。
在步驟304中,在本次呼叫的過程中,呼叫方向服務端口 5060發(fā)送重 發(fā)的消息或后續(xù)消息。
在步驟305中,IP分發(fā)模塊收到重發(fā)的該消息或本次呼叫的后續(xù)消息后, 判定此前收到過與該新消息屬于同一呼叫的其它SIP消息,則首先解析出SIP 呼叫標識,然后根據(jù)解析出的SIP呼叫標識,在此前記錄的SIP呼叫標識與 SIP處理模塊的對應關系中查找,如果找到匹配的記錄則將該SIP消息分發(fā) 到記錄中的SIP處理模塊,從而識別出該SIP消息的重發(fā),進而將該重發(fā)的 SIP消息發(fā)送到同一個SIP處理模塊處理。
在步驟306中,SIP處理模塊收到發(fā)送給服務端口的SIP消息時,返回 100消息。
在步驟307中,當呼叫結束時,SIP處理模塊向呼叫方發(fā)送BYE請求消
臺
在步驟308中,呼叫方返回呼叫結束的確認消息。
在步驟309中,該結束確認的消息同樣經(jīng)過IP分發(fā)模塊查詢對應關系表, 轉發(fā)到對應的SIP處理模塊。
在步驟310中,SIP處理模塊收到確認呼叫方返回的結束確認消息后, 向呼叫方返回結束確i人消息。
在步驟311中,SIP處理模塊通知IP分發(fā)模塊被釋放該SIP呼叫的資源。 其中,通知IP分發(fā)模塊釋放該SIP呼叫資源的方式有多種,例如,SIP處理 模塊根據(jù)該呼叫在IP分發(fā)模塊所記錄的SIP呼叫標識和SIP處理模塊的對應
關系的索引號,來通知IP分發(fā)模塊,需要刪除的對應關系記錄;或者,SIP 處理模塊直接通知SIP呼叫標識,由IP分發(fā)模塊根據(jù)收到的SIP呼叫標識查 找對應關系表,并刪除相應的記錄;或者,采用其它的策略通知IP分發(fā)模塊 釋放對該SIP呼叫的資源。
在步驟312中,IP分發(fā)模塊根據(jù)SIP處理模塊的釋放通知進行相應的處 理,刪除相應的SIP呼叫標識與SIP處理模塊的對應關系的記錄,并釋放相 應的呼叫資源。結束本流程。
上述各實施方案均實現(xiàn)了分布式構架下的IP分發(fā)模塊向SIP處理模塊的 消息的分發(fā)。并且,保證了同一呼叫的SIP消息被分發(fā)到同一SIP處理模塊 中。由于同一呼叫的SIP消息能否在同一個SIP處理模塊中處理,保證了 SIP 消息處理的正確性。同一呼叫前后的SIP消息之間可能有依賴性,如果在不 同的SIP處理模塊中處理可能會導致錯誤。由于以負荷分擔方式在SIP處理 模塊間分配新的呼叫,可以使SIP處理模塊之間的負荷比較平衡,不過出現(xiàn) 部分SIP處理模塊因負荷過重而拒絕新的呼叫,同時部分SIP處理模塊還有 相當多剩余處理能力的情況。
另外,在上述各實施方案中,對保存在IP分發(fā)模塊中的SIP呼叫標識與 SIP處理模塊的對應關系進行了老化處理,例如這些方案所采用的周期性批 量釋放、對每一個記錄定時釋放或在呼叫結束后釋放。通過這些老化處理節(jié) 省了 IP分發(fā)模塊的存貯資源。本領域普通技術人員容易理解,對存貯資源的 處理策略可以根據(jù)系統(tǒng)資源的配置靈活處理,當然不局限于所列舉的這幾種 方式。
本發(fā)明第四實施方式的分布式架構中SIP消息分發(fā)和處理系統(tǒng)結構如圖 4所示,包含兩個用于接收和分發(fā)SIP消息的IP分發(fā)模塊1和2(至少一個) 和三個用于處理SIP消息的SIP處理模塊A、 B和C(至少一個)。
其中,每個IP分發(fā)模塊進一步包含轉發(fā)單元、負荷分擔單元和判斷單元。
具體地說,轉發(fā)單元用于將SIP消息轉發(fā)到指定SIP處理模塊;負荷分 擔單元用于以負荷分擔方式在可用的SIP處理模塊中選擇一個;而判斷單元 則用于在收到新的SIP消息后,判斷此前是否收到過與該新消息屬于同一呼 叫的其它SIP消息的單元,如果是則通過轉發(fā)單元將該新消息轉發(fā)到此前處 理同一呼叫的其它SIP消息的SIP處理模塊,否則通過轉發(fā)單元將該新消息 轉發(fā)到負荷分擔單元選中的SIP處理模塊。
然而,SIP處理模塊還可以用于在收到發(fā)送給服務端口的SIP消息時, 通知呼叫方將后續(xù)消息發(fā)送到與本SIP處理模塊相對應的指定端口 ; IP分發(fā) 模塊則用于收到發(fā)送給指定端口的SIP消息時,直接將該SIP消息轉發(fā)給與 該指定端口相對應的SIP處理模塊。
雖然通過參照本發(fā)明的某些優(yōu)選實施方式,已經(jīng)對本發(fā)明進行了圖示和 描述,但本領域的普通技術人員應該明白,可以在形式上和細節(jié)上對其作各 種改變,而不偏離本發(fā)明的精神和范圍。
權利要求
1.一種分布式架構中SIP消息分發(fā)和處理方法,其特征在于,包含以下步驟IP分發(fā)模塊收到新的SIP消息后,如果此前收到過與該新消息屬于同一呼叫的其它SIP消息,則將該新消息分發(fā)到此前處理同一呼叫的其它SIP消息的SIP處理模塊;否則以負荷分擔方式在可用的SIP處理模塊中選擇一個,并將該新消息分發(fā)到所選擇的該SIP處理模塊。
2. 根據(jù)權利要求1所述的分布式架構中SIP消息分發(fā)和處理方法,其 特征在于,所述SIP處理模塊通過以下方式之一實現(xiàn)所述負荷分擔輪流地從可用的SIP處理模塊中選擇一個;或者,以空閑資源量為權重從可用的SIP處理模塊中選擇。
3. 根據(jù)權利要求1所述的分布式架構中SIP消息分發(fā)和處理方法,其 特征在于,所述可用的SIP處理模塊的信息保存在IP分發(fā)模塊中,在增加、 刪除、修改SIP處理模塊的配置時動態(tài)更新所述可用的SIP處理模塊的信息。
4. 根據(jù)權利要求1所述的分布式架構中SIP消息分發(fā)和處理方法,其 特征在于,所述將新消息分發(fā)到此前處理同一呼叫的其它SIP消息的SIP處 理模塊的步驟包含以下子步驟所述IP分發(fā)模塊收到SIP消息時,解析出SIP呼叫標識;根據(jù)解析出的SIP呼叫標識,在此前記錄的SIP呼叫標識與SIP處理模 塊的對應關系中查找,如果找到匹配的記錄則將該SIP消息分發(fā)到記錄中的 SIP處理模塊,如果沒有找到匹配的記錄則在以負荷分擔方式分發(fā)該SIP消 息后記錄該SIP消息與SIP處理模塊的對應關系。
5. 根據(jù)權利要求4所述的分布式架構中SIP消息分發(fā)和處理方法,其 特征在于,所述IP分發(fā)模塊周期性刪除過時的SIP呼叫標識與SIP處理模塊的對應關系。
6. 根據(jù)權利要求4所述的分布式架構中SIP消息分發(fā)和處理方法,其 特征在于,所述IP分發(fā)模塊在記錄每條SIP呼叫標識與SIP處理模塊的對 應關系時啟動一個定時器,該定時器超時時刪除該對應關系。
7. 根據(jù)權利要求4所述的分布式架構中SIP消息分發(fā)和處理方法,其 特征在于,呼叫釋放時,所述SIP處理模塊通知所述IP分發(fā)模塊被釋放的 SIP呼叫的標識,所述IP分發(fā)模塊刪除該SIP呼叫標識與SIP處理模塊的對 應關系。
8. 根據(jù)權利要求5或6所述的分布式架構中SIP消息分發(fā)和處理方法, 其特征在于,還包含以下步驟所述SIP處理模塊收到發(fā)送給服務端口的SIP消息時,通知呼叫方將后 續(xù)消息發(fā)送到與本SIP處理模塊相對應的指定端口 ;所述IP分發(fā)模塊收到發(fā)送給所述指定端口的SIP消息時,直接將該SIP 消息轉發(fā)給與該指定端口相對應的SIP處理模塊。
9. 根據(jù)權利要求8所述的分布式架構中SIP消息分發(fā)和處理方法,其 特征在于,所述SIP呼叫標識與SIP處理模塊的對應關系至少需要保留的時 長為SIP消息超時的最大等待時間。
10. —種分布式架構中SIP消息分發(fā)和處理系統(tǒng),包含至少一個用于接 收和分發(fā)SIP消息的IP分發(fā)模塊,和至少一個用于處理SIP消息的SIP處 理模塊,其特征在于,所述IP分發(fā)模塊進一步包含轉發(fā)單元,用于將SIP消息轉發(fā)到指定SIP處理模塊;負荷分擔單元,用于以負荷分擔方式在可用的SIP處理模塊中選擇一判斷單元,用于在收到新的SIP消息后,判斷此前是否收到過與該新消息屬于同一呼叫的其它SIP消息的單元,如果是則通過所述轉發(fā)單元將該新 消息轉發(fā)到此前處理同 一呼叫的其它SIP消息的SIP處理模塊,否則通過所 述轉發(fā)單元將該新消息轉發(fā)到所述負荷分擔單元選中的SIP處理模塊。
11.根據(jù)權利要求10所述的分布式架構中SIP消息分發(fā)和處理系統(tǒng), 其特征在于,所述SIP處理模塊還用于在收到發(fā)送給服務端口的SIP消息時, 通知呼叫方將后續(xù)消息發(fā)送到與本SIP處理模塊相對應的指定端口 ;所述IP分發(fā)模塊還用于收到發(fā)送給所述指定端口的SIP消息時,直接 將該SIP消息轉發(fā)給與該指定端口相對應的SIP處理模塊。
全文摘要
本發(fā)明涉及通信領域,公開了一種分布式架構中SIP消息分發(fā)和處理方法及其系統(tǒng),使得分布式結構中,既能保證SIP消息得到正確處理,又能在SIP處理模塊間進行負荷分擔。本發(fā)明中,IP分發(fā)模塊收到新消息后,如果此前收到過與該新消息屬于同一呼叫的任一其它消息,則將該新消息分發(fā)到與處理其它消息相同的SIP處理模塊;否則以負荷分擔方式在多個SIP處理模塊中選擇一個,并將該新消息分發(fā)到所選擇的SIP處理模塊。SIP處理模塊收到新呼叫的SIP消息后,在向呼叫方返回的消息中攜帶與該SIP處理模塊對應的指定端口號,呼叫方則將后續(xù)消息發(fā)送到該指定端口號,IP分發(fā)模塊根據(jù)指定端口號將后續(xù)消息直接轉發(fā)到對應的SIP處理模塊。
文檔編號H04L29/06GK101110972SQ20061010668
公開日2008年1月23日 申請日期2006年7月18日 優(yōu)先權日2006年7月18日
發(fā)明者賈毅剛 申請人:華為技術有限公司