主頁 > 知識庫 > VOIP軟交換協(xié)議適配的實(shí)現(xiàn)

VOIP軟交換協(xié)議適配的實(shí)現(xiàn)

熱門標(biāo)簽:防封軟件代理 大連電銷 沈陽電銷 西藏電銷 手機(jī)卡低資費(fèi) 汕尾電銷 天津電銷 酒泉電銷

VoIP軟交換協(xié)議適配的目標(biāo)是將不同的協(xié)議轉(zhuǎn)換成統(tǒng)一的BCSM到用戶的接入指示,以驅(qū)動BCSM按照其預(yù)定義的方式運(yùn)轉(zhuǎn),并實(shí)現(xiàn)與外部網(wǎng)絡(luò)設(shè)備之間的交互。簡單地說,就是將接收的不同信令消息解釋成呼叫模型可以識別的BCSM指示,并將呼叫模型發(fā)出的BC?SM指示轉(zhuǎn)換為相應(yīng)的協(xié)議行為。不同協(xié)議的信令流程是有差別的,通過一定的映射關(guān)系,就可以轉(zhuǎn)換成統(tǒng)一的BCSM指示。但是,由千協(xié)議是多樣的,它們與標(biāo)準(zhǔn)BCSM指示之間的適配方式并不固定,如果適配模式設(shè)計(jì)不合理,就會導(dǎo)致呼叫處理操作與用戶設(shè)備實(shí)際執(zhí)行動作之間的偏差,這就需要盡可能采用規(guī)范化的模式來處理不同協(xié)議與BCSM模型之間的適配規(guī)則。

協(xié)議適配的核心是消息映射以及過程匹配,因此可以認(rèn)為協(xié)議適配需要實(shí)現(xiàn)兩方面的功能:靜態(tài)映射和動態(tài)交互。靜態(tài)映射主要是實(shí)現(xiàn)特定協(xié)議的消息/事件到BCSM指示/事件的映射,這種映射包括消息格式、消息名稱、消息參數(shù)的轉(zhuǎn)換等;動態(tài)交互則主要考慮如何使協(xié)議處理過程適應(yīng)標(biāo)準(zhǔn)化的BCSM處理過程的需要,比如在呼叫掛起時,實(shí)現(xiàn)協(xié)議處理過程的暫停和恢復(fù)等,尤其是在需要接入外部業(yè)務(wù)的時候。概括地說,上述靜態(tài)映射和動態(tài)交互功能,就是以BCSM為基礎(chǔ),對特定協(xié)議的語義和語法進(jìn)行解釋的過程。

UniNet軟交換設(shè)備的設(shè)計(jì)中,協(xié)議適配功能也是以有限狀態(tài)機(jī)為基礎(chǔ)進(jìn)行實(shí)現(xiàn)的,可以稱之為協(xié)議映射狀態(tài)機(jī)。首先通過狀態(tài)等價映射的方式找出協(xié)議消息與BCSM指示的對應(yīng)方式(靜態(tài)匹配);然后通過FSM疊加的方式實(shí)現(xiàn)兩者狀態(tài)遷移的聯(lián)動過程(動態(tài)匹配)。

  1. 協(xié)議映射狀態(tài)機(jī)設(shè)計(jì)

    協(xié)議適配的核心就是映射狀態(tài)機(jī)的設(shè)計(jì),協(xié)議映射狀態(tài)機(jī)設(shè)計(jì)的難點(diǎn)是對其狀態(tài)的設(shè)定。通常情況下,通信協(xié)議采用有限狀態(tài)機(jī)的方式對協(xié)議功能進(jìn)行形式化描述,并實(shí)現(xiàn)對協(xié)議消息收發(fā)上下文的管理。在一定程度上,可以認(rèn)為這個狀態(tài)機(jī)就是針對該協(xié)議的“基本呼叫狀態(tài)模型”。因此,在協(xié)議適配的實(shí)現(xiàn)機(jī)制中,可以在各協(xié)議已定義的協(xié)議狀態(tài)機(jī)的基礎(chǔ)上,首先實(shí)現(xiàn)它們與BCSM之間的狀態(tài)映射,這是進(jìn)行消息映射的基礎(chǔ)。顯而易見,如果兩個狀態(tài)機(jī)在某個狀態(tài)上是等價的,那么它們的輸入事件和輸出事件都應(yīng)該是等價的,因此只要找出協(xié)議狀態(tài)機(jī)與BCSM在狀態(tài)上的對應(yīng)關(guān)系,就可以很容易給出協(xié)議消息與BCSM指令之間的對應(yīng)關(guān)系。

    在前文中已提到,UniNetBCSM是通過提取各協(xié)議呼叫處理流程的共性部分所形成的。在功能上,BCSM所代表的呼叫處理功能與各協(xié)議本身所具有的功能是不完全一致的。比如,H.323和SIP都具有處理多媒體呼叫的功能,但是在處理簡單語音呼叫時,只需要它們提供BCSM所要求的功能就可以,其他的功能可以認(rèn)為是這個協(xié)議的特殊能力,只是暫時不需要。而且,不同的協(xié)議由于應(yīng)用環(huán)境的不同,其協(xié)議的定義方式也各有特點(diǎn)。比如SIP協(xié)議主要是針對無傳輸保證的IP網(wǎng)設(shè)計(jì)的,在協(xié)議中設(shè)計(jì)了“三次握手”的機(jī)制。而在H.323以及IUSP協(xié)議中就沒有這種機(jī)制,所以在BCSM中也不會采用。因此,由于協(xié)議特點(diǎn)的不同以及協(xié)議本身處理能力的不同,在協(xié)議狀態(tài)機(jī)與BCSM狀態(tài)機(jī)對等映射過程中,經(jīng)常出現(xiàn)的情況是兩個FSM(狀態(tài)模型)不具有同樣數(shù)目的狀態(tài),或者說,在兩個狀態(tài)模型之間不存在完全等價關(guān)系。在這種情況下,就需要根據(jù)應(yīng)用目標(biāo)對映射方式進(jìn)行補(bǔ)償。對千軟交換設(shè)備的設(shè)計(jì)而言,協(xié)議映射的最終目的是按照BCSM的要求進(jìn)行呼叫處理,所以當(dāng)存在不完全等價映射時,應(yīng)以BCSM為基準(zhǔn)進(jìn)行補(bǔ)償。這就可能導(dǎo)致某協(xié)議狀態(tài)機(jī)中的多個狀態(tài)會被映射到BCSM中的單一狀態(tài)(即忽略VoIP軟交換協(xié)議處理中的某些特殊能力),或者反之,BCSM中的單一狀態(tài)被映射到協(xié)議狀態(tài)機(jī)中的多個狀態(tài)(即對協(xié)議處理進(jìn)行一定的擴(kuò)展,一般用千業(yè)務(wù)提供的需要)。下圖進(jìn)一步解釋了FSM狀態(tài)映射的幾種表現(xiàn)方式。

呼叫模型狀態(tài)映射方式示意圖

在上圖中,以FSMA(基本呼叫狀態(tài)模型)為基準(zhǔn),F(xiàn)SMA與FSMB(協(xié)議狀態(tài)模型)之間的狀態(tài)映射有4種方式:

? 一對一,如Q到l;

? 一對多,如P到G、H;

? 多對一,如T、U到K;

? 多對多,如R、S到J和K。

在上述映射方式中,多個狀態(tài)之間的交叉映射(即出現(xiàn)多對多映射的情況)是我們所不希望出現(xiàn)的情況,因?yàn)樗赡軒矶x性問題。比如在上圖中,F(xiàn)SMA中的狀態(tài)S被分別映射到FSMB的狀態(tài)J和狀態(tài)K,但是FSMB中的狀態(tài)J與FSMA中的狀態(tài)R也存在一個映射。這樣,在將FSMA中的狀態(tài)R到狀態(tài)S的遷移過程映射到FSMB時,存在二義性的解釋方式,F(xiàn)SMB將不存在唯一的遷移方式:它可能從狀態(tài)J遷移到狀態(tài)K,也可能繼續(xù)停留在狀態(tài)J上。

如果確實(shí)存在這種映射結(jié)果,并且不可避免,那么在映射過程中可以采取兩種補(bǔ)償方式:一種是協(xié)議狀態(tài)機(jī)(FSMB)保持不變,將基本呼叫狀態(tài)模型(FSMA)中的狀態(tài)S拆分成兩個子狀態(tài)Sl和S2來處理,并在這兩個狀態(tài)之間加入一個轉(zhuǎn)移,其中Sl對應(yīng)FSMB中的狀態(tài)J'而S2對應(yīng)K,如圖7.19(a)所示;另一種是保持基本呼叫狀態(tài)模型(FSMA)不變,將協(xié)議狀態(tài)機(jī)(FSMB)中的狀態(tài)J和狀態(tài)K合并成一個狀態(tài)來處理,并映射到FSMA中的狀態(tài)R和狀態(tài)s,如圖所示。

由此所得到的兩種簡化映射在語義上與初始的復(fù)雜映射是等價的。在協(xié)議映射狀態(tài)機(jī)的設(shè)計(jì)中,除非是通過這種狀態(tài)映射發(fā)現(xiàn)BCSM設(shè)計(jì)上存在的缺陷(比如某種重要的網(wǎng)絡(luò)操作方式在BCSM中沒有反映出來),而需要對BCSM的狀態(tài)做出調(diào)整外,一般情況下,還是采取修改協(xié)議狀態(tài)機(jī)的方式,使協(xié)議的處理向BCSM靠攏,即通過限制某些協(xié)議所具有的特殊能力,以保證BCSM的設(shè)計(jì)對千所有(或者絕大多數(shù))協(xié)議都是適用的。

基于上述原理,可以在各種軟交換信令的協(xié)議狀態(tài)機(jī)基礎(chǔ)上,設(shè)計(jì)出與BCSM等價(這里所謂的等價是指從控制基本語音呼叫的角度實(shí)現(xiàn)的等價)的協(xié)議映射狀態(tài)機(jī),它是維系協(xié)議接入與呼叫控制的紐帶,負(fù)責(zé)將收到的協(xié)議消息按照目前所處的呼叫狀態(tài)進(jìn)行映射,轉(zhuǎn)換成相應(yīng)的BCSM指示。這一過程可能是將一條協(xié)議消息分解成若干條BCSM接入指示序列,或者將多條協(xié)議消息序列組合成一條BCSM接入指示,甚至對某些協(xié)議消息序列進(jìn)行屏蔽,完全由協(xié)議映射狀態(tài)機(jī)自行處理而不用上報基本呼叫狀態(tài)模型。盡管從協(xié)議處理的角度,這種映射有些“削足適履"的含義,導(dǎo)致一些協(xié)議自身功能的缺失,也可能會引入對協(xié)議功能的局部擴(kuò)充,但從呼叫控制過程來說,這種映射保證了呼叫控制功能的一致性(即保證了軟交換設(shè)備呼叫處理過程中每一步操作含義的一致性),并且實(shí)現(xiàn)了不同協(xié)議之間基千呼叫控制能力的等價性,這是為了實(shí)現(xiàn)多協(xié)議的統(tǒng)一接入不得不付出的代價。

需要說明的是,由千BCSM包含兩個有限狀態(tài)自動機(jī):O_BCSM和T_BCSM,與此對應(yīng),每一種協(xié)議的適配器最終也要包括兩種協(xié)議映射狀態(tài)機(jī),分別完成該協(xié)議消息與O_BCSM指示的適配以及與T_BCSM指示的適配。H.323協(xié)議映射狀態(tài)機(jī)的一個例子,如圖7.20所示。左側(cè)是發(fā)端側(cè)H.323協(xié)議映射狀態(tài)機(jī),右側(cè)是終端側(cè)H.323協(xié)議映射狀態(tài)機(jī),以及它們與BCSM在狀態(tài)上的對應(yīng)方式。

  1. 協(xié)議適配的實(shí)現(xiàn)

    從協(xié)議適配的角度,將一個協(xié)議體系結(jié)構(gòu)中的事件一個接一個單獨(dú)地映射到另一個協(xié)議體系結(jié)構(gòu)中的事件是不夠的。一般來說,應(yīng)該將一個體系中的事件序列映射為另一體系中的事件序列,而且有時這樣的事件序列的時間跨度很大。不同協(xié)議的適配功能,不僅要完成消息的映射/轉(zhuǎn)換,還需要根據(jù)呼叫處理的進(jìn)展對不同消息的發(fā)送和接收時序做出明確的規(guī)定,這實(shí)際上是一個動態(tài)的過程。另一方面,如前文所述,在呼叫控制功能中,為了提供業(yè)務(wù)的需要,通常需要進(jìn)行DP點(diǎn)的處理以及呼叫的掛起、恢復(fù)等操作,這種特性是各種協(xié)議處理本身所沒有的,而且在協(xié)議映射過程中也難以體現(xiàn)出來,它們更多地涉及到的是一種過程化的操作,或者說涉及的是協(xié)議處理與呼叫處理過程的動態(tài)映射過程,稱之為狀態(tài)機(jī)的同步遷移過程。

    在UniNet軟交換設(shè)備的設(shè)計(jì)中,協(xié)議適配器的實(shí)現(xiàn)采用了有限狀態(tài)機(jī)CFSM)疊加原理,將協(xié)議映射狀態(tài)機(jī)與呼叫狀態(tài)模型進(jìn)行狀態(tài)遷移同步鎖定,并保證這一過程對千所有協(xié)議都是可用的。所謂有限狀態(tài)機(jī)疊加方式,就是指在呼叫的處理過程中,以BCSM為基礎(chǔ),實(shí)現(xiàn)協(xié)議映射狀態(tài)機(jī)與BCSM在等價狀態(tài)上的同步遷移。換句話說,由BCSM的狀態(tài)遷移來同步驅(qū)動協(xié)議映射狀態(tài)機(jī)的遷移,在呼叫處理的任意特定時刻,保持兩者處于等價的狀態(tài),從而使得協(xié)議行為與預(yù)定的呼叫控制行為保持一致性,也就是軟交換設(shè)備所要求的呼叫控制服務(wù)以及它所能觀察到的服務(wù)性質(zhì)與特定協(xié)議內(nèi)部機(jī)制所表現(xiàn)出的總體行為和性質(zhì)是一致的。這種一致性包括兩方面:協(xié)議應(yīng)該提供語音呼叫控制要求的服務(wù);協(xié)議無需提供語音呼叫控制沒有要求的服務(wù)。此外,更重要的是使協(xié)議的處理過程滿足業(yè)務(wù)提供的需要,尤其是DP處理的需要。

    綜上所述,如果要有效地實(shí)現(xiàn)呼叫控制和協(xié)議處理的一致操作,就必須保證當(dāng)BCSM發(fā)生從一個狀態(tài)到另一個狀態(tài)的遷移時,協(xié)議映射狀態(tài)機(jī)也必須進(jìn)行等價的遷移,反之亦然。例如,假設(shè)圖7.19(b)中,F(xiàn)SMA位千狀態(tài)Q(此時隱含F(xiàn)SMB位千狀態(tài)1)'現(xiàn)在FSMB收到一個事件,導(dǎo)致到狀態(tài)J的一個狀態(tài)遷移(假定這種遷移是合法的)。FSMB的這一狀態(tài)改變將導(dǎo)致FSMA遷移到狀態(tài)RC因?yàn)镽對應(yīng)千FSMB中狀態(tài)J的開始)。

    當(dāng)兩個被集成在一起的FSM中只有其中一個接收到一個外部事件時,事件的處理是很容易描述的。例如,圖7.19(h)中,如果FSMA在狀態(tài)P,FSMB在狀態(tài)H,假定一個事件EC記為)將導(dǎo)致協(xié)議映射狀態(tài)機(jī)(FSMB)從狀態(tài)H到I的一個遷移,則基本呼叫狀態(tài)模型(FSMA)將被驅(qū)動轉(zhuǎn)移到狀態(tài)Q。

但是這種情況并不總能夠被保證。在很多情況下,被集成的協(xié)議映射狀態(tài)機(jī)和BC?SM可能會同時收到多個事件,例如,如果FSMA在狀態(tài)P,FSMB在狀態(tài)H,并且FSMA收到業(yè)務(wù)事件e'W>和,而FSMB同時收到協(xié)議事件,當(dāng)進(jìn)行映射時,就必須詳細(xì)定義一些規(guī)則,以說明: ? 允許哪一個FSM首先處理事件;

? 這些事件可能以什么樣的順序被處理;

? 這些事件中的每一個是否允許以及允許什么樣的狀態(tài)遷移;

? 被同步的狀態(tài)機(jī)是否也能夠處理事件,它能夠處理什么樣的事件,以及按照什么樣的順序處理事件。

可以在不同種類的事件之間定義一個依賴關(guān)系,這些事件是每一個FSM在給定的當(dāng)前狀態(tài)可以接收的,并在FSM之間建立起一個先后關(guān)系。當(dāng)事件被異步接收時,就能夠擁有一個定義明確的、合理的遷移集合。但是也可能存在一些例外的情況,它們是在執(zhí)行FSM疊加時需要明確給出的一些復(fù)雜性的指示。

一般而言,協(xié)議映射狀態(tài)機(jī)中的遷移可能是由于接收到外部實(shí)體發(fā)送的消息產(chǎn)生的??紤]這樣的情況:兩個狀態(tài)機(jī)FSM_A和FSM_B被緊密地集成在一起。在FSM_B中狀態(tài)Nl和NZ映射到FSM_A中的狀態(tài)Ml和M2,并且在FSM_B中支持從Nl到NZ的一個轉(zhuǎn)移。假定在正常情況下,F(xiàn)SM_A中從狀態(tài)Ml到狀態(tài)M2的遷移是由接收到外部實(shí)體的消息引起的。

現(xiàn)在,當(dāng)FSM_B首先發(fā)生一個從Nl到NZ的轉(zhuǎn)移時,為了保待狀態(tài)同步,F(xiàn)SM_A會被要求實(shí)現(xiàn)從Ml到M2的一個相應(yīng)的轉(zhuǎn)移,即使沒有接收到正在等待中的消息。但是該消息可能包含了進(jìn)一步的呼叫處理所需要的信息,而FSM_A現(xiàn)在還沒有,這樣就需要定義一些附加規(guī)則以決定是否允許這種情況發(fā)生。

另一方面,當(dāng)一些基于FSM_A的狀態(tài)遷移標(biāo)準(zhǔn)達(dá)到時,作為FSM_A操作的一部分,如果從Ml到M2的轉(zhuǎn)移要求在遷移發(fā)生的同時必須發(fā)送一條消息到一些外部實(shí)體,那么也會存在同樣的問題。因此,如果在這兩個FSM被疊加以后,F(xiàn)SM_A進(jìn)行這種狀態(tài)轉(zhuǎn)移是作為FSM_B狀態(tài)改變的一個結(jié)果時,就需要決定:

? 在FSM_A中是否有足夠的信息來生成它在正常(獨(dú)立)的操作條件下需要發(fā)送的消息;

? 并且給定當(dāng)前的呼叫上下文,這樣的一條消息是否確實(shí)需要被發(fā)送。

需要注意的是,F(xiàn)SM疊加的最終目的是使協(xié)議狀態(tài)機(jī)的遷移行為按照BCSM預(yù)期的方式進(jìn)行。因此,在模型集成中,如果協(xié)議狀態(tài)機(jī)呼叫模型狀態(tài)與BCSM狀態(tài)之間存在非等價關(guān)系或者在事件處理上存在沖突,則需要在映射過程中進(jìn)行補(bǔ)償。一般情況下是保證BCSM的正常行為,而對協(xié)議狀態(tài)機(jī)的行為進(jìn)行一定的限制。如何補(bǔ)償和限制,則需要在各種具體情況的基礎(chǔ)上仔細(xì)考慮和處理。

  1. H.323信令與呼叫模型的集成舉例

下圖描述了在一次完整的呼叫建立過程中,發(fā)端側(cè)和收端側(cè)在FSM疊加的情況下,BCSM和H.323協(xié)議映射狀態(tài)機(jī)之間的同步遷移關(guān)系。下圖中,H.323協(xié)議映射狀態(tài)機(jī)狀態(tài)與BCSM狀態(tài)之間的箭頭指向代表同步點(diǎn),BCSM或者H.323呼叫控制狀態(tài)內(nèi)的箭頭指向代表各自內(nèi)部狀態(tài)遷移的方向。圖中連接協(xié)議映射狀態(tài)機(jī)以及BCSM的線條代表了一次完整的呼叫建立過程中,收端側(cè)和發(fā)端側(cè)呼叫模型所有主要狀態(tài)之間的同步遷移順序。

下面以發(fā)端側(cè)呼叫模型的集成為例,詳細(xì)說明H.323發(fā)端協(xié)議映射狀態(tài)機(jī)與O_BC?SM之間的同步遷移關(guān)系,以及在呼叫建立過程中,控制關(guān)系的轉(zhuǎn)移過程。首先,H.323發(fā)端協(xié)議映射狀態(tài)機(jī)處千"NULL"狀態(tài),O_BCSM處千"O_NULL"狀態(tài),表示呼叫尚未發(fā)起。當(dāng)H.323發(fā)端協(xié)議映射狀態(tài)機(jī)接收到來自用戶終端的H.323消息"Setup"后,驅(qū)動狀態(tài)遷移到"CallInitiated",并將該消息轉(zhuǎn)換成O_BCSM可識別的BCSM接入指示,然后發(fā)送給O_BCSM中。O_BCSM首先分析H.323發(fā)端協(xié)議映射狀態(tài)機(jī)送上來的BCSM指示包含的信息,并發(fā)生一系列的狀態(tài)遷移,當(dāng)這一分析過程結(jié)束后,O_BCSM遷移到PIC"Selecte_Route",同時向H.323協(xié)議映射狀態(tài)機(jī)發(fā)送BCSM指示,驅(qū)動后者的狀態(tài)遷移至"IncomingCallProcessing",在該狀態(tài)上,H.323發(fā)端協(xié)議映射狀態(tài)機(jī)將向主叫終端發(fā)送H.323消息"CallProceeding"。

隨后,O_BCSM繼續(xù)下一步處理,狀態(tài)遷移至PIC"SendCall",此時終端側(cè)T_BCSM被激活,O_BCSM則停留在"Send_Call"狀態(tài),等待T_BCSM發(fā)送來的處理指示,此時H. 323發(fā)端協(xié)議映射狀態(tài)機(jī)也將繼續(xù)停留在"IncomingCallProcessing"狀態(tài)。當(dāng)O_BCSM接收到T_BCSM側(cè)發(fā)送來的被叫振鈴事件后,狀態(tài)遷移至"O_Alerting"PIC,同時向H.323發(fā)端協(xié)議映射狀態(tài)機(jī)發(fā)送BCSM指示,帶動后者狀態(tài)遷移至"CallDelivered",并將BCSM指示轉(zhuǎn)換成H.323消息"Alerting",發(fā)送給主叫終端。

最后,當(dāng)O_BCSM接收到T_BCSM側(cè)發(fā)送來的被叫摘機(jī)指示后,狀態(tài)遷移至"O_Active"PIC,同時向H.323發(fā)端協(xié)議映射狀態(tài)機(jī)發(fā)送BCSM指示,帶動后者遷移至"Active"狀態(tài),并向主叫終端發(fā)送H.323消息"Connect"。至此完成主、被叫終端之間的呼叫建立過程。

在上述過程中,當(dāng)BCSM中的PIC發(fā)生遷移時,如果相應(yīng)的DP點(diǎn)被配置,就會觸發(fā)外部業(yè)務(wù)邏輯請求,掛起呼叫處理過程并等待外部業(yè)務(wù)指示。

標(biāo)簽:福建 泉州 寧德 賀州 煙臺 吐魯番 昌都 荊門

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《VOIP軟交換協(xié)議適配的實(shí)現(xiàn)》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《VOIP軟交換協(xié)議適配的實(shí)現(xiàn)》相關(guān)的同類信息!
  • 本頁收集關(guān)于VOIP軟交換協(xié)議適配的實(shí)現(xiàn)的相關(guān)信息資訊供網(wǎng)民參考!
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266