下一代網絡中媒體網關上報事件處理方法
2023-05-18 16:12:26 1
專利名稱:下一代網絡中媒體網關上報事件處理方法
技術領域:
本發明涉及下一代網絡技術,特別涉及下一代網絡中媒體網關向媒體網關控制器上報事件的處理方法。
背景技術:
媒體網關控制器(Media Gateway Controller,簡稱「MGC」)和媒體網關(Media Gateway,簡稱「MG」)是下一代網絡(Next Generation Network,簡稱「NGN」)中的兩個關鍵構件。MGC負責呼叫控制功能,MG負責業務承載功能,由此實現呼叫控制平面和業務承載平面的分離,從而充分共享網絡資源,簡化設備升級和業務擴展,大大降低開發和維護成本。
圖1示出了NGN網絡各組件的關係及通信協議。其中核心分組網一般為網際協議(Internet Protocol,簡稱「IP」)網絡,它承載了MG與MG之間、MG與MGC之間的連接,MG負責用戶終端通過接入網接入核心網絡。MGC與MG之間通過媒體網關控制協議進行通信,實現MGC對MG的控制和網絡控制功能。MG與MG之間通信完成媒體流的承載,一般採用實時傳輸協議(Real-time Transport Protocol,簡稱「RTP」)實現。
媒體網關控制協議是MG和MGC之間通信的主要協議,目前應用較為廣泛的有H.248和「媒體網關控制協議」(Media Gateway Control Protocol,簡稱「MGCP」)兩種。其中,MGCP協議由網際網路工程任務組(InternetEngineering Task Force,簡稱「IETF」)於1999年10月制訂並於2003年1月修訂;H.248協議(又稱MeGaCo協議)是由IETF和國際電信聯盟(International Telecommunication Union,簡稱「ITU」)於2000年11月共同制訂並於2003年6月修訂。
在H.248協議中,MG對於業務的承載是通過其上的資源來實現,MG上的各種資源被抽象表示為終端(Termination)。終端又分為物理終端和臨時終端,前者代表一些具有半永久存在性的物理實體,例如時分復用(TimeDivision Multiplexing,簡稱「TDM」)通道等,後者代表一些臨時申請用後釋放的公共資源,例如RTP流等。終端之間的組合被抽象表示為上下文(Context)。上下文可以包含多個終端,可以用拓撲來描述終端間的相互關係。基於這樣一個抽象模型,呼叫控制實際上就可以抽象地描述成對終端和上下文的各種操作和處理。
媒體網關協議通信中,MGC和MG之間通過協議命令(Command)進行交互,命令所攜帶的參數被劃分為信號(Signal)、事件(Event)等類別,其中信號被MGC用來指示MG進行資源的操作,例如向用戶放撥號音、回鈴音、忙音等,事件被MGC用來指示MG進行狀態的監測,例如監測用戶摘機、掛機、撥號、拍叉等。
類似信號、事件之類的命令包含了MG對呼叫接續和資源操作中的各種控制細節,因此命令的執行需要嚴格的保證順序。但是IP分組網絡本身的不可靠性可能導致命令的傳輸使得順序混亂、甚至命令丟失,這將導致嚴重的後果。因此媒體網關協議通信中必須採取一定的機制來保證命令有序地被傳輸和執行。
在H.248協議中,已經採用所謂事務的機制來實現命令的傳送和執行。命令的相關性以事務為限定範圍,即同一事務內的命令按其先後順序執行,而不同事務內的命令可以並行執行。另外,對於不同事務內命令的執行順序有以下幾點規則規則一(Rule 1)針對不同終端的命令可以並行發送;規則二(Rule 2)對於不保證消息順序傳遞的傳輸,如用戶數據報協議(User Datagram Protocol,簡稱「UDP」),一個終端上應該最多只有一個未完成的H.248協議的通知(Notify)命令;規則三(Rule 3)H.248協議的審計值(AuditValue)命令,不受任何順序限制。
其中Rule2是保證了對於一個終端的操作必須有序進行,因為每個操作命令必須由Notify響應,Rule2保證了一條命令在沒有響應之前不執行下一條命令。Rule3中的AuditValue命令是用於返回終端特性的當前狀態的特殊命令,不與其他任何操作衝突,因此可以不受順序限制。
基於上述三條規則,命令的接收方是以事務作為獨立執行單位的,同一事務內若存在多個命令則按其先後順序執行,而不同事務內的命令則既可以按接收順序串行執行,也可以忽略順序並行執行。因此命令之間若存在相關性,則命令的發送方必須依據規則有效保障其在接收方的執行順序。
從MGC下發命令給MG時,MGC需要保障一個終端上最多只有一個未完成的H.248協議的添加(Add)、修改(Modify)或刪除(Move)命令。對於可以控制呼叫進程的MGC而言,只要在前一命令被響應後再發送後一命令即可。可見,從MGC下發給MG的命令來看,MGC不需要太複雜的機制即可實現事件發送順序的控制處理。
而對於MG而言,MG上報MGC事件時需要保障一個終端上最多只有一個未完成的H.248協議的Notify命令。由於MG上報MGC的信息大多是用戶的操作,例如話音業務中的摘機(Off-hook)、掛機(Hang-up)、撥號(Dialling)、拍叉(Flash-hook)等,而用戶操作往往是隨機的,因此MG需要建立比MGC複雜得多的機制來保障自己的上報命令在MGC被串行執行,而不產生混亂。在MG實現有序上報事件的這種機制被稱為輕量級的狀態機(LightWeight State Machine)。
MG的這種處理上報事件的方法是當前NGN網絡技術的關鍵問題,是熱點問題也是難點問題。
目前業界主要有兩種技術方案用以解決MG上報事件處理問題。一種是基於可靠傳輸協議的技術,另一種是基於MGC控制的技術。
第一方案使用可靠連接的傳輸協議,比如傳輸控制協議(Transfer ControlProtocol,簡稱「TCP」)或者流控制傳輸協議(Stream Control TransmissionProtocol,簡稱「SCTP」)來保證命令傳輸的有序串行,這樣發送方有序發送即可保證接收方有序執行。發送方的應用層只需將準備發送的命令消息交付給傳輸層,利用傳輸協議的可靠性機制來保證每一條消息順序抵達接收方。在前一命令尚未得到響應之前,後續命令將緩存在傳輸層的發送隊列內,通過傳輸層的緩存和命令串行發送的機制就自然地達到了命令串行執行的目的。
該方案使用可靠連接的傳輸協議雖然能夠避免因為傳輸原因造成命令的執行亂序,但是這同時也就限定了應用可以選擇的傳輸協議,尤其是對於廣泛需要採用非可靠連接的環境將無法適用。另外,傳輸協議的可靠性機制將減緩消息的傳遞速度,因而也就必然帶來命令交互效率方面的下降。
另一種基於MGC控制的方案是使用事件緩存(EventBuffer)機制來保證命令串行,即當某個終端上出現事件上報尚未得到Notify響應時,後續檢測到的事件基於一定的篩選條件先暫時緩存到一個為該終端建立的先進先出(First In First Out,簡稱「FIFO」)隊列中,等接收到前一事件上報的響應後再根據一定的條件從該隊列中選取事件上報,而不符合選擇條件的事件將被丟棄。但由於H.248協議使用了Events描述符(Events Descriptor)設置事件的上報條件,使用EventBuffer描述符設置事件的緩存條件,使用EventBufferControl屬性來控制事件緩存這個FIFO隊列是關閉(off)還是基於Events描述符所設條件從中單次選取和上報事件(LockStep),因此這一上報事件處理過程事實上是需要有MGC下發Event描述符來控制的。
該方案中,通過EventBuffer和Events描述符的聯合使用,才可以保證上述三條規則得到滿足。當MGC需要MG檢測並上報某些特定事件時,就生成一個Events描述符包含這些特定的事件,然後下發給MG。一般的Events描述符都具有單次上報限制,即該描述符中的事件被檢測並上報一次後,該描述符即出於鎖定狀態,不再發生作用。MGC需要MG檢測和上報其它事件,必需另外發送新的Events描述符。一旦描述符中的事件被檢測到,MG通過Notify命令向MGC上報,在MGC返回的Notify應答被MG收到之前,該Notify命令就處於未完成(unfinished)狀態。跟據Rule2,此時再有事件到來,則只能進入該終端的EventBuffer進行緩存。等到MG收到MGC對於Notify命令的應答,如果此時有處於活動狀態的Events描述符,MG繼續從EventBuffer中按照一定規則提取事件上報。
該方案使用事件緩存機制雖然能夠保證命令的串行傳輸和執行,但是這種複雜度較高的機制在MG上啟動必須依賴於MGC提前下發控制,而實際應用中僅由MG保證來上報命令的串行是必要的。另外,若在FIFO隊列中積累的事件較多,則逐個檢查和上報的方式也將大大延遲MG和MGC的命令交互效率。實際應用中,這些積累的事件往往已經成為實際上的失效事件,上報給MGC不再有任何意義,反而會浪費時間、降低處理效率。極端情況下將使MG和MGC的終端狀態信息嚴重失去同步。
發明內容
有鑑於此,本發明的主要目的在於提供一種下一代網絡中媒體網關上報事件處理方法,使得媒體網關可以高效實現上報事件的串行處理。
為實現上述目的,本發明提供了一種下一代網絡中媒體網關上報事件處理方法,包含以下步驟,A針對業務邏輯執行與事件的關係,對事件分類;
B根據協議規定的事件處理規則,結合業務邏輯和業務狀態的轉移機制,建立由事件驅動的狀態機;C媒體網關執行所述狀態機處理事件。
其中,所述狀態機中設置掛起狀態,用於確保命令串行;所述媒體網關中設置事件緩存隊列,用於在所述狀態機的掛起狀態下緩存事件;所述狀態機在除掛起狀態以外的任何狀態下,當上報通知命令時,即進入所述掛起狀態;在所述掛起狀態下,所述媒體網關將檢測到的事件存入所述事件緩存隊列,且當所述通知命令得到響應時,所述狀態機即返回進入所述掛起狀態前的狀態。
此外在所述方法中,所述步驟C包含以下子步驟,C1所述媒體網關接收事件,並根據事件驅動所述狀態機進行狀態轉移;C2當所述通知命令上報時,所述狀態機進入所述掛起狀態;C3在所述掛起狀態下,所述媒體網關將事件按照先進先出方式存入所述事件緩存隊列;C4當所述通知命令得到響應時,所述狀態機退出所述掛起狀態,所述媒體網關處理所述事件緩存隊列中的事件,並繼續執行所述狀態機處理上報事件。
此外在所述方法中,在所述步驟A中,事件分為特徵事件與雜類事件,其中所述特徵事件影響業務處理的狀態轉移,所述雜類事件不影響業務處理的狀態轉移;所述特徵事件進一步分為純狀態事件與非純狀態事件,其中所述純狀態事件僅影響業務處理的狀態轉移,所述非純狀態事件除影響業務處理的狀態轉移外還帶有業務邏輯執行需要的信息。
此外在所述方法中,在所述步驟B中,以有向圖的形式描述所述狀態機,並計算任意起始狀態到終止狀態之間的最短路,用於表示從該起始狀態到該終止狀態所需要的最短必要驅動事件串;在所述步驟C4中,所述媒體網關保留屬於所述最短路的事件,保留不屬於所述最短路的雜類事件並基於對此類事件預先定義的規則進行進一步處理,根據處理結果最終決定此類事件的保留或者刪除;保留不屬於所述最短路的非純狀態事件,並基於對此類事件預先定義的規則進行進一步處理,根據處理結果最終決定此類事件的保留或者刪除;刪除不屬於所述最短路的所述純狀態事件。
此外在所述方法中,在所述步驟A中,定義所述非純狀態事件規則,用於描述處理所述非純狀態事件規則的方法;在所述步驟C4中,所述媒體網關根據所述非純狀態事件規則處理所述非純狀態事件;在所述步驟A中,定義雜類事件規則,用於描述所述雜類事件的處理方法;在所述步驟C4中,執行狀態機處理所述特徵事件,按所述雜類事件規則處理所述雜類事件。
此外在所述方法中,當所述媒體網關處理兩種及兩種以上業務時,對於所有業務分別執行所述步驟A和步驟B,對各種業務對應的事件分別分類,並分別建立對應的所述狀態機;然後在所述步驟C中由所述媒體網關分別執行各種業務對應的所述狀態機來處理其對應的事件。
此外在所述方法中,當所述媒體網關處理兩種及兩種以上業務時,在所述步驟A中,將所有事件分為特徵事件與雜類事件,其中所述特徵事件影響至少一種業務處理的狀態轉移,所述雜類事件不影響任何一種業務處理的狀態轉移,並定義雜類事件規則,用於描述所述雜類事件的處理方法;在所述步驟C4中,執行各種業務對應的所述狀態機的同時,按所述雜類事件規則處理所述雜類事件。
此外在所述方法中,所述媒體網關將所述步驟A和步驟B中產生的各種業務對應的事件分類、所述狀態機、所述有向圖、所述最短路、所述非純狀態事件規則和所述雜類事件規則信息保存為配置數據,對所述下一代網絡進行配置,並維護所述配置數據。
此外在所述方法中,當所述媒體網關新增業務時,對於該新增業務執行所述步驟A和步驟B,對該新增業務對應的事件分別分類,並建立對應的所述狀態機及其他屬於配置數據的信息,更新所述配置數據中的相關信息;然後在所述步驟C中由所述媒體網關執行該新增業務對應的所述狀態機來處理其對應的事件。
此外在所述方法中,當所述媒體網關取消業務時,刪除該取消業務對應的事件及其分類信息,刪除其對應的所述狀態機信息,更新所述配置數據中的相關信息;在所述步驟C中停止執行該取消業務對應的所述狀態機。
此外在所述方法中,當所述媒體網關業務邏輯變更時,重新定義該業務對應的事件及其分類信息,刪除其對應的所述狀態機信息,刪除所述配置數據中的相關信息;
對於該更新業務重新執行步驟A和B以建立狀態機和其他屬於配置數據的信息,重新建立該業務對應的新的配置數據;在所述步驟C中停止執行該取消業務對應的所述狀態機。
此外在所述方法中,所述媒體網關處理話音業務時,所述特徵事件可以是摘機、掛機、撥號和拍叉事件。
此外在所述方法中,所述媒體網關處理話音業務時,所述純狀態事件可以是摘機、掛機和拍叉事件;所述非純狀態事件可以是撥號事件。
此外在所述方法中,所述媒體網關根據事件描述符檢測並處理上報事件;所述媒體網關根據所述媒體網關控制器下發的命令更新所述事件描述符。
此外,所述方法可應用於所述媒體網關與媒體網關控制器之間根據H.248媒體網關控制協議或媒體網關控制協議進行通信的情況。
通過比較可以發現,本發明的技術方案與現有技術的主要區別在於,根據業務和事件的關係對事件分類,採用有限狀態機機制實現處理上報事件的一般化方法,並結合上報事件處理規則,在狀態機中引入掛起狀態及相應事件,在遵循現有技術中對媒體網關的一組規則的前提下,通過等待Notify響應並對上報事件進行緩存的方法,實現上報事件的有序執行;基於狀態機的有向圖理論描述,採用最短路簡化方法對緩存事件進行處理,在確保業務正確執行的前提下刪除無效緩存事件;針對與狀態轉移無關的雜類事件和帶有額外信息的非純狀態事件,分別採用事先定義的雜類事件規則和非純狀態事件規則進行專門處理,提供給設備管理者根據需要靈活定義這些雜類事件和非純狀態事件的處理規則的系統接口;另外,對於一般情況下媒體網關同時處理多種不同業務的情況,通過分別建立各種業務相應的事件及其分類、狀態機等,並分別執行各種業務對應的狀態機來處理其相應事件,還採用配置數據來描述和維護各類業務的相應事件分類及狀態機信息,對於業務種類的增加、取消以及已有業務邏輯的變更的情況,也分別給出了相應的處理方法。
這種技術方案上的區別,帶來了較為明顯的有益效果,即通過引入掛起機制的狀態機的執行及緩存事件的機制,在媒體網關上獨立、方便地實現了上報事件處理的一般化方法,確保了事件上報符合協議規則,大大提高了系統的適應性和可靠性。
通過基於有向圖理論的最短路簡化,提高了上報事件處理效率,節省了網絡帶寬和處理資源,增強了媒體網關和媒體網關控制器之間的同步,而該同步是下一代網絡正常運行的重要前提條件。
通過對雜類事件和非純狀態事件的專門處理,保證了狀態機處理上報事件和最短路簡化的方法有效執行。
針對多種業務同時處理及新增、取消業務、已有業務邏輯的更改等情況的處理,增強了系統的靈活性和可擴張性,並保證和促進了下一代網絡業務多樣性的發展。
圖1是NGN各功能實體的相互連接示意圖;圖2是話音業務的業務邏輯狀態機示意圖;圖3是根據本發明的第一實施例的話音業務上報事件處理狀態機示意圖;
圖4是根據本發明的第三實施例的上報事件處理方法流程圖;圖5是根據本發明的第四實施例的上報事件處理方法流程圖。
具體實施例方式
為使本發明的目的、技術方案和優點更加清楚,下面將結合附圖對本發明作進一步地詳細描述。
本發明通過對業務、事件、狀態機的抽象建立一種媒體網關的上報事件的處理的通用方法。首先將各種事件和業務之間的關係進行抽象描述,建立業務事件驅動的狀態機模型,並依據上述Rulel、2、3修正狀態機,建立一般化的描述方法,採用掛起緩存隊列方法,確保上報事件串行;還利用有向圖理論給出基於最短路的簡化處理方法,增加處理效率,檢測上報事件的有效性,確保MG和MGC信息同步。本發明給出的通用處理方法是建立在一般化描述理論之上的,適用於任意媒體網關的上報事件處理,與具體協議無關。
本發明以業務為中心,把終端可能檢測到的所有事件分為特徵事件集合和雜類事件集合,從業務狀態及事件驅動的關係建立業務狀態機模型,形成業務和業務特徵事件集合之間關係的一般化描述理論。
基於該業務、事件、狀態機理論,依據規則Rule1~Rule3,修正業務狀態機,結合MG上事件緩存機制,實現上報事件處理的通用方法,嚴格實現事件上報的正確順序,確保MGC和MC上信息的同步。其中對雜類事件定義專門的規則進行處理。
此處,根據針對狀態機的有向圖理論,發展基於最短路的簡化處理方法,對純狀態事件和非純狀態事件定義專門處理規則,並對事件有效性進行檢測,提高事件處理效率,完全避免緩存事件的積累導致失效事件上報問題,提高系統可靠性。
本發明的第一實施例中的MG上報事件處理方法的流程大致分為以下三大步驟針對業務處理與事件的關係,對事件分類;根據協議規定的事件處理規則,建立由事件驅動的狀態機;媒體網關執行所述狀態機處理事件。
實際應用中,NGN的業務邏輯執行是按照狀態機進行的,從初始狀態開始,新的事件到來,則使得業務從一個狀態轉移到另外一個狀態。業務的進行過程其實就是一個狀態不斷轉移的過程,這個過程是由用戶輸入事件來驅動的。因此業務狀態和它的事件之間的相互關係可以用有限狀態機(FiniteState Machine,簡稱「FSM」)來描述。
在本發明的第一實施例中,即根據業務與事件的關係將每種業務的上報事件處理過程用狀態機模擬,業務存在各種狀態,由事件驅動狀態的轉移。使用FSM進行建模可以簡化處理機制,只用簡單的數據結構和If-then形式的規則來表示,實現起來簡單方便。而且FSM是一種一般化的描述方法,基於此可以建立一般化的事件處理方法,再結合上述規則Rulel-Rule3和H.248事件緩存和上報機制,所建立的一般化方法就能夠正確保證規則的遵守,處理效率高,擴展性強,除了支持話音業務外,還可以支持更為複雜的多媒體業務。
因此,在第一步中首先將業務進行分類,根據事件對於業務狀態的影響,將業務分為特徵事件(Eigen Events)與雜類事件(Miseellaneous Events)。特徵事件就是影響業務狀態轉移的事件;而雜類事件就是不影響業務狀態轉移的事件,具有一定突發性的隨機事件,可以隨時處理。在NGN的各種業務中,根據事件和業務的關係,每種業務都有各自的事件集合。比如對於話音業務,上面提到的四種典型事件摘機(Off-hook)、掛機(Hang-up)、撥號(Dialling)、拍叉(Flash-hook)就是該業務的特徵事件。隨著NGN業務多樣化的發展,尤其是多種多媒體業務的出現,不同的業務將產生很多新的事件和該業務相關聯。比如可視電話業務中,除了上述四種事件外,還可以有選擇視頻、禁止視頻事件、申請發言、申請主席、發送文本事件等等。
這裡為描述方便,假設某種類型的終端上即某種業務的所有可能被檢測到的M個事件用集合AllEvents={E1,E2,E3,...........,EM}表示,其中包含Q個特徵事件組成的集合即特徵事件集合(Eigen Event Set,簡稱「EES」)表示為EES={EEG1,EEG2,EEG3,...,EEGQ},以及M-Q個雜類事件集合(MisEvents)。而業務的狀態集合(N個狀態)用SVCST={S0,S1,S2,.......,SN-1}表示。比如對於話音業務,其EES={O,F,D,H},其狀態集為SVCST={S0,S1,S2}。其中,O,F,D,H即為用首字母代表的四種事件;狀態分別為S0表示未摘機狀態、S1表示已摘機狀態,還未開始撥號、S2表示撥號狀態。
在本發明的第一實施例的第二步中,對事件和狀態進行分析定義以後,需要建立狀態機,用於執行處理上報事件。首先需要得到業務邏輯本身處理事件的狀態機。執行業務邏輯的狀態機可以根據特徵事件及其邏輯關係推演得到。比如話音業務的狀態機模型如圖2所示。其中初始狀態S0用雙層圓圈表示。在業務邏輯的狀態機的基礎上,根據Rule1-3需要對狀態機進行修正,以符合事件執行串行的規則。
在MGC和MC之間的配合中,MG先檢測特定終端上發生的來自於用戶輸入的事件,然後通過Notify命令上報給MGC進行處理。根據Rule 1、Rule 2、Rule 3,MG上報事件必須串行有序進行,但是由於MG與MGC傳輸不可靠,或者因為MG上報和MGC處理的速度不平衡,可能導致規則的破壞,因此本發明的第一實施例採用事件緩存隊列(EventBuffer)來緩存暫時不能上報的事件。除此之外,為了保證上報事件在MGC串行執行,必須保證前面事件都已得到響應後才能繼續上報。因此本發明的第一實施例通過在狀態機中加入一個特殊狀態「掛起」狀態(Suspension),用於等待Notify命令的響應,即在發出Notify命令後馬上進入掛起狀態,直到收到響應後,才從掛起態回到進入掛起態之前所處的狀態,重新開始處理事件。
在業務邏輯狀態機基礎上,引入掛起狀態SSusp和相應的事件ENot對應Notify命令發送事件和ERNot對應Notify命令得到響應事件,得到所需要建立的狀態機。圖3示出了根據Rulel~Rule3規則進行緩存處理的話音業務的上報事件處理狀態機。可見通過加入一個掛起狀態和事件緩存隊列來實現MG上獨立控制上報事件的串行,不僅實現起來非常方便,而且所用模型具有通用性,對於任何協議、任何業務都適用。
最後,在本發明的第一實施例的第三步中,即可在MG上執行第二步所建立的狀態機來處理上報事件。其中對於雜類事件,由於其和狀態轉移無關,因此事先定義專門的雜類事件規則,MG按照該規則處理雜類事件。
為了進一步提高上報事件處理效率,避免信息失去同步,在本發明的第二實施例中,根據圖論和最短路理論實現了對事件緩存隊列進行的處理方法,以提高上報事件處理效率。首先將狀態機模型抽象成圖論中的有向圖(Directed Graph Representation),有向圖由頂點和弧組成,其弧均有方向。把狀態機中的狀態表示為頂點,事件表示為弧,則狀態機模型可以抽象成一個有向圖。
由於狀態機的特性,即各個狀態之間都是相互可達的,從任何一個狀態可以經過有限次的轉移,到達任何其它狀態,因此對應的有向圖也就是連通的。根據有向圖中路的理論,具有連通性的圖中,任意兩個頂點Si,Sj,之間必然存在至少一條路徑(Path),從Si出發到Sj終止,該路徑由若干弧即事件串組成。比如話音業務中,狀態S0,S2之間存在的路徑是事件串O,D,對應的意義是從未摘機狀態,經過O,D兩個事件,可以轉移到撥號狀態。如果在Si,Sj之間存在多條路徑,那麼必然存在一條最短路,該路徑包含的弧(事件)最少,即從Si到Sj需要經過的轉移次數最少。根據有向圖理論,連通有向圖的任意一對頂點Si,Sj之間都可以計算出其最短路SPath(Si,Sj)。
因此,在狀態機所對應的有向圖中,本發明的第二實施例定義最短路SPath(Si,Sj)為從起始狀態Si到終止狀態Sj的所必須經過的且是最少事件數的路徑即事件串。也就是說,任何可能的從狀態Si到狀態Sj的事件串長度均長於、均包含一個完全與其最短路SPath(Si,Sj)匹配的子串。由此,進一步考慮兩種情況從狀態Si出發經過某一事件串後到達狀態Sj,和直接經過最短路SPath(Si,Sj)到達,前一種情況所需要的事件數必然多於最短路,如果這一事件串中所有事件僅僅對狀態轉移起了作用,則兩種情況效果完全相等。例如在話音業務中,從未摘機狀態S0出發,經過輸入事件O,D,F驅動,狀態經過S1到S2再回到S1,效果和沿著最短路徑SPath(S0,S1)=O直接到達S1是一樣的。根據這一點,本發明的第二實施例通過用緩存事件串中的最短路子串簡化整個緩存事件串的方法實現了高效處理上報事件的目的。
但是注意到,滿足最短路簡化緩存串的前提條件是所有事件都是僅起到狀態轉移的作用。而從特徵事件來說,有些特徵事件的作用就僅僅是驅動業務狀態進行轉移的,而其他的特徵事件除了這個作用外,還本身攜帶信息。比如撥號事件,撥一個號碼後,號碼就增加一位,號碼是業務邏輯需要的信息。由此,本發明的第二實施例將特徵事件分為純狀態事件(Pure State Event,簡稱「PSE」)和非純狀態事件(Non-Pure State Event,簡稱「NPSE」)。其中純狀態事件僅影響業務處理的狀態轉移,非純狀態事件除影響業務處理的狀態轉移外還帶有業務邏輯執行所需要的信息。對於事件緩存隊列中的純狀態事件可以用最短路簡化,而非純狀態事件則需要定義專門的非純狀態規則進行處理。
在狀態機從掛起態返回原來狀態後,當前狀態為Si,而EventBuffer中緩存的事件串BE1,BE2,.......,BEL,共L個事件,如果順序作用於狀態機,將能夠驅動狀態轉移到目的狀態Sj。可見事件緩存隊列中事件串即構成一條從當前狀態為Si到目的狀態Sj的路徑,該路徑中包含最短路SPath(Si,Sj)。在本發明第二實施例中,對事件緩存隊列掃描得到最短路,保留屬於最短路的事件,對於不屬於最短路的其他事件,如果是純狀態事件則刪除,如果是非純狀態事件則按事先定義的非純狀態事件規則進行處理。
比如話音業務中,進入掛起態之前為已摘機狀態,用戶在掛起期間,先後輸入了撥號事件,後來發現所撥號碼錯誤,輸入拍叉事件,這時從掛起態返回,顯然最終到達的還是已摘機狀態。那麼狀態與本身之間最短路為空,撥號事件和拍叉事件都不屬於最短路。其中拍叉事件是純狀態事件可以刪除,而撥號事件是非純狀態事件,根據其處理規則。比如對於話音業務的撥號事件,可以定義其非純狀態事件規則如下Step1.如果目的狀態為撥號狀態S2,且EventBuffer的最後一個事件為撥號事件D,轉步驟Step2,否則轉步驟Step4;Step2.在EventBuffer中,從後向前順序掃描事件,如果掃描到的事件為撥號事件D,則繼續向前掃描,否則停止掃描,進入步驟Step3;Step3.如果當前掃描到的一段事件串必然為一串連續的撥號事件D,保留該串事件,終止流程;Step4.刪除EventBuffer中的所有撥號事件。
由此可見,採用最短路簡化和非純狀態規則處理的方法後,剔除了失效事件,不僅保證上報事件處理結果的正確性,而且節省了MGC的處理資源和網絡帶寬,避免惡性循環導致信息失去同步。
綜上易見,本發明給出的通用處理方法是建立在一般化理論之上的,適用於任意媒體網關的上報事件處理,與具體協議無關。對於H.248、MGCP或者以後可能出現的任何MGC與MG之間的通信和控制協議都適用,具有通用性。
為了明確描述本發明給出的上報事件處理方法,圖4示出了本發明的第三實施例中上報事件處理的整個流程。
首先在步驟401中,對NGN業務和事件之間關係進行分析,並對事件進行分類。在所有事件AllEvents={E1,E2,E3,...........,EM}中,根據事件是否驅動業務狀態轉移分為特徵事件EES={EEG1,EEG2,EEG3,......,EEGQ}和雜類事件MisEvents={ME1,ME2,ME3,...........,MEMMis},其中根據是否除驅動狀態轉移外還帶有其他信息,特徵事件又分為純狀態事件和非純狀態事件。
接著進入步驟402,根據Rule1-3以及業務狀態和特徵事件的驅動關係建立狀態機模型,並根據該狀態機模型,進一步導出(建立)其有向圖描述,並生成計算機內部表示。具體實現時,先將所有業務狀態SVCST={S0,S1,S2,......,SN-1}列為狀態機的狀態,根據事件驅動關係加上特徵事件,最後引入掛起狀態SSusp和相應的ENot對應Notify命令發送事件和ERNot對應Notify命令得到響應事件。通過狀態對應頂點,有向弧直接對應事件的方法,可以由狀態機得到有向圖描述。計算機內部表示可以有多種方法表示,比如用三維數組或者鍊表等數據結構表示。
然後進入步驟403,對完成其他配置,包含對雜類事件規則、非純狀態事件規則的定義、有向圖任意頂點間最短路的計算,及MG上設置事件緩存隊列。對於每種雜類事件或非純狀態事件都應該根據具體業務設置及處理邏輯定義其處理規則,定義的方法是一系列If-then規則,並建立其計算機內部表示,對於所有雜類事件、非純狀態事件的處理規則進行單獨定義。然後採用圖論最短路算法,計算任何兩個狀態之間的最短路徑,得到最短路表,每個表項其實是一個由若干特徵事件組成的事件串,並生成計算機內部表示,比如用二維數組或者鍊表表示。
之後進入步驟404,MG啟動狀態機,根據Events描述符檢測事件,由事件驅動進行狀態轉移,處理上報事件。在NGN業務邏輯啟動後,啟動狀態機,並接收MGCEvents描述符的下發。業務邏輯執行啟動後,從初始狀態開始,MG上的狀態機由事件驅動。此時,MGC會根據業務邏輯向MG下發Events描述符,規定合法的特徵事件集合,MG根據收到Events描述符,檢測並上報事件,根據事件驅動執行狀態轉移。在處理上報事件過程中,MG還將根據MGC下發的Events描述符進行更新。
在步驟405中,如果檢測到需要上報的事件或要上報緩存事件,則發送Notify消息(其中含有該事件的信息),觸發ENot事件,進入掛起狀態,在此掛起狀態下如果再檢測到事件,根據FIFO原則緩存入事件緩存隊列EventsBuffer中。
在步驟406中,當Notify消息得到響應,則退出掛起狀態返回前一狀態,並根據以下規則處理事件緩存隊列檢測EventBuffer中緩存的事件,發現有BE1,BE2,.......,BEL,共L個事件,推得從當前狀態Sp出發經由該事件串最終到達的目的狀態Sq,查最短路表得到最短路SPath(Sp,Sq);掃描EventBuffer得到與SPath(Sp,Sq)完全匹配的事件串(Matched ShortestPath,簡稱「MSP」);對EventBuffer中的事件進行以下判斷a)如果該事件屬於MSP,則保留該事件;b)如果該事件不屬於MSP且為純狀態事件,則刪除該事件;c)如果該事件不屬於MSP且為非純狀態事件,則按照定義的該非純狀態特徵事件的非純狀態事件規則進行處理,保留或者刪除;d)如果是雜類事件,則按照定義的該雜類事件的雜類事件規則進行處理,保留或者刪除。
最後在步驟407中,處理完畢所有EventBuffer中的緩存事件後,檢測是否存在處於活動狀態的Events描述符,如果是,並且EventBuffer保留的事件符合Events描述符條件,回到步驟405,用Notify命令上報該事件,並進入掛起狀態,繼續處理上報事件。
至此,上面描述的三個實施例給出對於MG處理單獨某種業務的具體技術方案和實現細節。但是隨著NGN業務多樣化的發展,尤其是多種多媒體業務的出現,不同的業務將產生很多新的事件和該業務相關聯。比如可視電話業務中,除了上述四種事件外,還可以有選擇視頻、禁止視頻事件、申請發言、申請主席、發送文本事件等等。也就是說各種業務的具體設置包括事件、狀態機等都會不同,因此,本發明為了更好支持業務多樣化的發展,專門給出了多種業務同時處理上報事情的方法及相關的技術解決方案。
在本發明的第四實施例中,對於MG所處理的所有業務、業務各種類型分別進行上述的處理對業務相關的事件進行分類、根據業務邏輯建立相應的狀態機、並執行各自的狀態機來處理其相應的事件。
首先,按照這個思路,對各種業務對應的事件分別分類,可以把業務及其相關的事件組合起來,這樣就可以把各種業務相關事件歸為各自業務的事件集中。先設共有K種業務,夠成業務集,表示為AllServices={SVC1,SVC2,SVC3,.......,SVCK}。同樣的每個業務都有一個EES,用上標i來區分第i種業務的事件集EESi={E(i)1,E(i)2,E(i)3,...,E(i)Mi-1},對應有Mi-1種事件。每個業務還對應有自己的狀態集SVCSTi={S(i)0,S(i)1,S(i)2,......,S(i)Ni-1},共有Ni個不同的狀態。關於每種業務內部,其事件集和狀態集之間的條件等都與上面所述相同,這裡不再贅述。
值得注意的是,雜類事件的定義可以是相同的,即雜類事件與所有業務都不關聯,因此EES1、EES2、EES3、....、EESK、MisEvents並起來才是所有事件集AllEvents。這裡對於事件、狀態的分類和定義都是針對多種業務並存的情況。而對於每種業務的相關事件內部也同樣分為純狀態事件和非純狀態事件,並定義非純狀態事件相應的處理規則。另外,雜類事件同樣的也是根據雜類事件規則進行特殊處理,這一點無論那種業務對應的狀態機執行時都應該滿足。
其次,對於每種業務及其狀態集,也建立相應的狀態機,生成狀態機的圖形表示。根據每種業務的特徵事件及其邏輯關係推演得到執行業務邏輯的狀態機。與上文相同,也用有向圖表示和存儲,並計算每個業務狀態圖上任意兩個狀態之間的最短路。比如第i種業務SVCi的狀態集中的第m,n個狀態之間,計算其最短路為SPath(S(i)m,S(i)n)。這樣最短路其實就是一個三維的表格了,多了一維業務類型。
之後,在MG中需要對各種業務分別執行其相應的狀態機來處理其上報事件對於第i種業務SVCi,業務邏輯執行啟動;從初始狀態S(i)0開始,狀態機啟動;MGC根據業務邏輯,不斷向MG下發含有某些特定特徵事件的Events描述符;MG收到Events描述符,此Events描述符為活動狀態。對於狀態改變及各種事件處理等特殊方面的考慮與上文描述的實施例相同。
圖5的處理流程總結了上述對於多種業務同時處理的情況。
這裡需要說明的一點是,對於一個處理器的實體碰到需要同時處理多種不同業務的情況,本發明通過在該實體上實現多任務執行機制實現對多個業務狀態機的分別同時執行,各個處理進程之間進行必要的協調並採用現有的成熟機制來避免資源衝突等異常情況。
另外,本發明還採用配置數據的方法配置整個NGN系統,使得整個系統能夠協調運行,況且這樣能夠極大的方便了多種業務、多種事件、多種狀態及多種規則的保存、描述和維護更新。因此,對於上述各個步驟產生的結果,比如事件分類集設置信息、狀態圖和最短路信息、處理規則信息等,都要作為數據和可動態生成的規則保存到相應的配置數據,並配置到NGN系統中去。該配置數據便於系統保存和維護,在系統設置變化時進行更新。
在給出多種業務同時處理的事情的解決方案後,自然會聯想到業務種類變化和動態維護的問題。在NGN發展中,可能出現動態調整業務種類的情況,比如需要增加一些新開發的業務類型,或者取消一些舊的業務類型。這些情況下,需要對系統配置等進行更新,包括上述上報事件處理中所涉及到的事件集、分類方案、狀態機等。
因此,在本發明的第四實施例中,當MG新增業務時,對於該新增業務執行上文所述各個步驟,對該新增業務對應的事件分別分類,設置特徵事件集,並按照業務邏輯建立對應的狀態機,更新配置數據中的相關信息;然後在MG執行該新增業務對應的狀態機來處理其對應的特徵事件。而當所述媒體網關取消業務時,刪除該取消業務對應的事件及其分類信息,刪除其對應的狀態機信息,更新配置數據中的相關信息,而MG也停止運行其狀態機。
在新的參數下,重複上述各個步驟。當新的業務出現後,定義該業務和相關事件所符合的FSM模型,並且轉化成機器可以理解的數據結構和相應形式的規則系統,就可以通過對於NGN的配置使得MGC、MG支持該種新業務及其相關事件。同時通過對於新增業務和新增事件之間的關係分析和建模,就可以生成配置信息,然後對於NGN更新相應的配置,新業務就可以被支持了。從而大大提高了系統靈活性和可擴展性。
熟悉本領域的技術人員可以理解,上述處理上報事件的方法是通用方法可以應用於除H.248以外的MGC與MG之間的通信協議(如MGCP等),達到高效處理上報事件的發明目的,而不影響本發明的實質和範圍。
雖然通過參照本發明的某些優選實施例,已經對本發明進行了圖示和描述,但本領域的普通技術人員應該明白,可以在形式上和細節上對其作各種改變,而不偏離本發明的精神和範圍。
權利要求
1.一種下一代網絡中媒體網關上報事件處理方法,其特徵在於,包含以下步驟,A針對業務邏輯執行與事件的關係,對事件分類;B根據協議規定的事件處理規則,結合業務邏輯和業務狀態的轉移機制,建立由事件驅動的狀態機;C媒體網關執行所述狀態機處理事件。
2.根據權利要求1所述的下一代網絡中媒體網關上報事件處理方法,其特徵在於,所述狀態機中設置掛起狀態,用於確保命令串行;所述媒體網關中設置事件緩存隊列,用於在所述狀態機的掛起狀態下緩存事件;所述狀態機在除掛起狀態以外的任何狀態下,當上報通知命令時,即進入所述掛起狀態;在所述掛起狀態下,所述媒體網關將檢測到的事件存入所述事件緩存隊列,且當所述通知命令得到響應時,所述狀態機即返回進入所述掛起狀態前的狀態。
3.根據權利要求2所述的下一代網絡中媒體網關上報事件處理方法,其特徵在於,所述步驟C包含以下子步驟,C1所述媒體網關接收事件,並根據事件驅動所述狀態機進行狀態轉移;C2當所述通知命令上報時,所述狀態機進入所述掛起狀態;C3在所述掛起狀態下,所述媒體網關將事件按照先進先出方式存入所述事件緩存隊列;C4當所述通知命令得到響應時,所述狀態機退出所述掛起狀態,所述媒體網關處理所述事件緩存隊列中的事件,並繼續執行所述狀態機處理上報事件。
4.根據權利要求3所述的下一代網絡中媒體網關上報事件處理方法,其特徵在於,在所述步驟A中,事件分為特徵事件與雜類事件,其中所述特徵事件影響業務處理的狀態轉移,所述雜類事件不影響業務處理的狀態轉移;所述特徵事件進一步分為純狀態事件與非純狀態事件,其中所述純狀態事件僅影響業務處理的狀態轉移,所述非純狀態事件除影響業務處理的狀態轉移外還帶有業務邏輯執行需要的信息。
5.根據權利要求4所述的下一代網絡中媒體網關上報事件處理方法,其特徵在於,在所述步驟B中,以有向圖的形式描述所述狀態機,並計算任意起始狀態到終止狀態之間的最短路,用於表示從該起始狀態到該終止狀態所需要的最短必要驅動事件串;在所述步驟C4中,所述媒體網關保留屬於所述最短路的事件,保留不屬於所述最短路的雜類事件並基於對此類事件預先定義的規則進行進一步處理,根據處理結果最終決定此類事件的保留或者刪除;保留不屬於所述最短路的非純狀態事件,並基於對此類事件預先定義的規則進行進一步處理,根據處理結果最終決定此類事件的保留或者刪除。刪除不屬於所述最短路的所述純狀態事件。
6.根據權利要求5所述的下一代網絡中媒體網關上報事件處理方法,其特徵在於,在所述步驟A中,定義所述非純狀態事件規則,用於描述處理所述非純狀態事件規則的方法;在所述步驟C4中,所述媒體網關根據所述非純狀態事件規則處理所述非純狀態事件;在所述步驟A中,定義雜類事件規則,用於描述所述雜類事件的處理方法;在所述步驟C4中,執行狀態機處理所述特徵事件,按所述雜類事件規則處理所述雜類事件。
7.根據權利要求6所述的下一代網絡中媒體網關上報事件處理方法,其特徵在於,當所述媒體網關處理兩種及兩種以上業務時,對於所有業務分別執行所述步驟A和步驟B,對各種業務對應的事件分別分類,並分別建立對應的所述狀態機;然後在所述步驟C中由所述媒體網關分別執行各種業務對應的所述狀態機來處理其對應的事件。
8.根據權利要求7所述的下一代網絡中媒體網關上報事件處理方法,其特徵在於,當所述媒體網關處理兩種及兩種以上業務時,在所述步驟A中,將所有事件分為特徵事件與雜類事件,其中所述特徵事件影響至少一種業務處理的狀態轉移,所述雜類事件不影響任何一種業務處理的狀態轉移,並定義雜類事件規則,用於描述所述雜類事件的處理方法;在所述步驟C4中,執行各種業務對應的所述狀態機的同時,按所述雜類事件規則處理所述雜類事件。
9.根據權利要求8所述的下一代網絡中媒體網關上報事件處理方法,其特徵在於,所述媒體網關將所述步驟A和步驟B中產生的各種業務對應的事件分類、所述狀態機、所述有向圖、所述最短路、所述非純狀態事件規則和所述雜類事件規則信息保存為配置數據,對所述下一代網絡進行配置,並維護所述配置數據。
10.根據權利要求9所述的下一代網絡中媒體網關上報事件處理方法,其特徵在於,當所述媒體網關新增業務時,對於該新增業務執行所述步驟A和步驟B,對該新增業務對應的事件分別分類,並建立對應的所述狀態機及其他屬於配置數據的信息,更新所述配置數據中的相關信息;然後在所述步驟C中由所述媒體網關執行該新增業務對應的所述狀態機來處理其對應的事件。
11.根據權利要求9所述的下一代網絡中媒體網關上報事件處理方法,其特徵在於,當所述媒體網關取消業務時,刪除該取消業務對應的事件及其分類信息,刪除其對應的所述狀態機信息,更新所述配置數據中的相關信息;在所述步驟C中停止執行該取消業務對應的所述狀態機。
12.根據權利要求10所述的下一代網絡中媒體網關上報事件處理方法,其特徵在於,當所述媒體網關業務邏輯變更時,重新定義該業務對應的事件及其分類信息,刪除其對應的所述狀態機信息,刪除所述配置數據中的相關信息;在所述步驟C中停止執行該取消業務對應的所述狀態機。對於該更新業務重新執行步驟A和B以建立狀態機和其他屬於配置數據的信息,重新建立該業務對應的新的配置數據。然後在所述步驟C中由所述媒體網關執行該變更邏輯的業務對應的所述狀態機來處理其對應的事件。
13.根據權利要求1至12中任一項所述的下一代網絡中媒體網關上報事件處理方法,其特徵在於,所述媒體網關處理話音業務時,所述特徵事件可以是摘機、掛機、撥號和拍叉事件。
14.根據權利要求13所述的下一代網絡中媒體網關上報事件處理方法,其特徵在於,所述媒體網關處理話音業務時,所述純狀態事件可以是摘機、掛機和拍叉事件;所述非純狀態事件可以是撥號事件。
15.根據權利要求1至12中任一項所述的下一代網絡中媒體網關上報事件處理方法,其特徵在於,所述媒體網關根據事件描述符檢測並處理上報事件;所述媒體網關根據所述媒體網關控制器下發的命令更新所述事件描述符。
16.根據權利要求15所述的下一代網絡中媒體網關上報事件處理方法,其特徵在於,所述方法可應用於所述媒體網關與媒體網關控制器之間根據H.248媒體網關控制協議或媒體網關控制協議進行通信的情況。
全文摘要
本發明涉及下一代網絡技術,公開了一種下一代網絡中媒體網關上報事件處理方法,使得媒體網關可以高效實現一種或多種業務上報事件的串行處理。本發明中,對於不同業務分別處理,每種業務根據業務和事件的關係對事件分類,採用有限狀態機機制處理上報事件,並結合上報事件處理規則,在狀態機中引入掛起狀態及相應事件,在遵循既有規則的前提下,通過等待Notify響應並對上報事件進行緩存,實現上報事件的有序執行;還基於狀態機的有向圖理論描述,採用最短路簡化方法對緩存事件進行處理以刪除無效緩存事件;針對與狀態轉移無關的雜類事件和帶有額外信息的非純狀態事件,採用事先定義並且可以靈活擴展的處理規則進行專門處理。
文檔編號H04L29/06GK1855931SQ20051011302
公開日2006年11月1日 申請日期2005年10月11日 優先權日2005年4月20日
發明者羅忠 申請人:華為技術有限公司