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





