IMS與PSTN互通中SIP與ISUP之間轉(zhuǎn)換的設(shè)計(jì)
摘要:文章探討了在3GPP IMS與PSTN互通的過程中SIP與ISUP兩種不同的協(xié)議數(shù)據(jù)單元之間的轉(zhuǎn)換問題。提出了實(shí)現(xiàn)轉(zhuǎn)換的機(jī)制,定義了兩種不同的協(xié)議數(shù)據(jù)結(jié)構(gòu),重點(diǎn)研究基于ISUP數(shù)據(jù)單元格式兩種協(xié)議數(shù)據(jù)的轉(zhuǎn)換方法,并給出了具體的流程圖,實(shí)現(xiàn)了相互的轉(zhuǎn)換。
關(guān)鍵詞:互通;SIP;ISUP;轉(zhuǎn)換
0 引言
由于IMS系統(tǒng)主要是基于IP的多媒體子系統(tǒng),其在應(yīng)用層使用的會(huì)話協(xié)議是SIP協(xié)議,而CS/PSTN主要是傳統(tǒng)的電路交換網(wǎng)絡(luò),其典型的會(huì)話協(xié)議是ISUP協(xié)議。所以二者之間的互通必須進(jìn)行一個(gè)地址信令的轉(zhuǎn)換映射,這一功能主要是由MGCF來完成的。無論是對(duì)于IMS網(wǎng)絡(luò)還是CS/PSTN網(wǎng)絡(luò),MGCF都有相應(yīng)的邏輯接口,并且實(shí)現(xiàn)相應(yīng)的映射過程。因此,對(duì)于無論是由IMS發(fā)起的呼叫,還是CS/PSTN發(fā)起的呼叫,由于有了MGCF,都能使呼叫順利地進(jìn)行下去。
1 SIP與ISUP轉(zhuǎn)換的機(jī)制
SIP和ISUP信令之間的映射是基于收到的消息類型,通過對(duì)消息類型的理解,可以做出相應(yīng)的處理并維護(hù)或轉(zhuǎn)移當(dāng)前的呼叫狀態(tài)。在這里可以用有限狀態(tài)機(jī)FSM(Finite State Machine)去描述當(dāng)前呼叫狀態(tài)以及信令的映射關(guān)系。
在任何一個(gè)狀態(tài),MGCF會(huì)根據(jù)到達(dá)的事件執(zhí)行特定的操作,這里的事件主要指信令消息和定時(shí)器的超時(shí)消息,根據(jù)操作結(jié)果進(jìn)行狀態(tài)轉(zhuǎn)移。對(duì)于一個(gè)非法的消息,它保持當(dāng)前的狀態(tài)不變,并且返回一個(gè)失敗消息。
定義FSM的狀態(tài)單元的數(shù)據(jù)結(jié)構(gòu)如下:
由不同的狀態(tài)單元組成了狀態(tài)鏈表,根據(jù)當(dāng)前狀態(tài)以及收到的事件類型,查找狀態(tài)鏈表,就能得到相應(yīng)的處理,作出響應(yīng)。
2 SIP與ISUP轉(zhuǎn)換的實(shí)現(xiàn)過程
在互通的過程中,SIP消息和ISUP消息在一定的映射規(guī)則下要進(jìn)行轉(zhuǎn)換,因此這兩個(gè)消息的格式定義非常重要。首先定義SIP消息的數(shù)據(jù)結(jié)構(gòu):
當(dāng)MGCF收到消息時(shí),先查找互通FSM,根據(jù)當(dāng)前的狀態(tài)以及收到的事件,通過FSM得到相應(yīng)的處理方法。如果僅僅是對(duì)收到消息的同側(cè)做出響應(yīng),則不涉及轉(zhuǎn)換過程,直接做出處理:但是如果要對(duì)互通的另一側(cè)發(fā)出消息,則必須調(diào)用轉(zhuǎn)換過程。
由于在查找FSM的時(shí)候,已經(jīng)得知了對(duì)應(yīng)于當(dāng)前收到的事件的處理方法,也就知道了SIP消息映射到哪一個(gè)ISUP消息,所以,在轉(zhuǎn)換過程中最主要的就是處理如何在兩個(gè)消息的參數(shù)之間進(jìn)行轉(zhuǎn)換。
在具體的轉(zhuǎn)換過程的設(shè)計(jì)上,如果是SIP到ISUP消息的轉(zhuǎn)換,由于ISUP消息中要求各參數(shù)必須按照一定的順序排列,所以必須根據(jù)具體的ISUP消息對(duì)應(yīng)的參數(shù)表的參數(shù)順序,參照映射規(guī)則,提取SIP消息中相應(yīng)的字段進(jìn)行翻譯轉(zhuǎn)換得到各參數(shù)。如果SIP消息中存在MIME消息體,還需查找該消息體,轉(zhuǎn)換其中特有的ISUP信息而SIP消息沒有對(duì)應(yīng)的信息描述。如果對(duì)于必備的參數(shù),不存在相應(yīng)字段,需要參照本地策略填入默認(rèn)值:相反,如果是將ISUP消息翻譯到SIP消息,相對(duì)比較簡單,直接將ISUP消息中包含的相應(yīng)的字段根據(jù)映射規(guī)則轉(zhuǎn)換到SIP消息的對(duì)應(yīng)字段。如果沒有對(duì)應(yīng)字段的,就封裝到MIME消息體中。
轉(zhuǎn)換過程中涉及的數(shù)據(jù)結(jié)構(gòu)SIP消息格式和ISUP消息格式在前面已經(jīng)定義,下面定義部分涉及的函數(shù):
翻譯過程的流程圖如圖1(以SIP到ISUP的消息翻譯為例)。
翻譯過程處理函數(shù)為:int inter_tran(sip_t*s_msg,isup_m*i*msg),傳入的參數(shù)為sip*t結(jié)構(gòu)的sip消息,翻譯后的ISUP消息放入isup _m結(jié)構(gòu)的isup消息體中,成功完成操作返回1,否則返回0。具體的翻譯過程是,對(duì)應(yīng)于每一對(duì)SIP與ISUP消息組合,有不同的翻譯函數(shù)。在函數(shù)內(nèi)部,根據(jù)ISUP消息參數(shù)順序,參照映射規(guī)則,提取SIP消息的不同部分,來填充ISUP消息結(jié)構(gòu)體,如果沒有相應(yīng)的值就使用根據(jù)本地策略確定的缺省值,如果沒有缺省值,翻譯失敗。
3 結(jié)束語
IMS必須與PSTN實(shí)現(xiàn)互聯(lián)互通,但是前提是必須首先解決SIP與ISUP之間的轉(zhuǎn)換問題,基于ISUP參數(shù)的轉(zhuǎn)換方法操作起來比較簡單,容易理解。能夠較為有效地實(shí)現(xiàn)二者之間的轉(zhuǎn)換。