亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

一種sip呼叫穿越網(wǎng)絡(luò)地址轉(zhuǎn)換的方法和系統(tǒng)的制作方法

文檔序號(hào):7753203閱讀:243來源:國(guó)知局
專利名稱:一種sip呼叫穿越網(wǎng)絡(luò)地址轉(zhuǎn)換的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及通信領(lǐng)域,尤其涉及一種SIP呼叫穿越網(wǎng)絡(luò)地址轉(zhuǎn)換設(shè)備的方法和系 統(tǒng)。
背景技術(shù)
由于IP地址資源緊缺以及安全等原因,大量的企業(yè)網(wǎng)和駐地網(wǎng)采用將私有IP地 址通過出口的網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)設(shè)備接入公網(wǎng)。NAT設(shè)備實(shí)際上只對(duì)UDP或TCP報(bào)文頭 域地址信息進(jìn)行修改,將內(nèi)部網(wǎng)絡(luò)的源地址變?yōu)镹AT設(shè)備自己的外部網(wǎng)絡(luò)地址,對(duì)應(yīng)用層 的內(nèi)容不作修改。該應(yīng)用層的內(nèi)容包括會(huì)話初始協(xié)議(SIP)消息,NAT設(shè)備用來完成會(huì)話 時(shí)SIP信令的NAT穿越。由于SIP協(xié)議屬于應(yīng)用層協(xié)議,SIP消息攜帶有控制通道和媒體 通道信息(IP地址和端口),支持SIP協(xié)議的網(wǎng)元使用此信息進(jìn)行信令和媒體層面的交互, 但是SIP協(xié)議攜帶的地址是私網(wǎng)地址,在至少呼叫一方為私網(wǎng)用戶時(shí),如不修改SIP協(xié)議本 身攜帶的地址信息,則無法利用控制通道和媒體通道信息與呼叫對(duì)端交互,呼叫不能建立。 目前對(duì)SIP呼叫進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換的方法,業(yè)界的解決方案有以下幾種UjSMMN^ (ALG, Application Layer Gateway) ^ ζNAT設(shè)備除了修改UDP或TCP報(bào)文頭域地址,還解析應(yīng)用層的SIP協(xié)議消息,修改 SIP消息本身攜帶的地址信息。使用此方式來支持SIP協(xié)議的NAT設(shè)備需要升級(jí),而且由于 對(duì)所有包進(jìn)行監(jiān)控和解析,NAT設(shè)備的負(fù)荷很大。2、中間盒通信(MIDCOM, Middlebox Communication)方式MIDCOM方式的基本框架是采用可信的第三方中間代理(MIDCOM Agent)對(duì)中間盒 (Middlebox)進(jìn)行控制,中間盒接收SIP消息,修改UDP或TCP報(bào)文頭域地址,并在網(wǎng)絡(luò)與 MIDCOM Agent之間對(duì)應(yīng)用層數(shù)據(jù)進(jìn)行透明轉(zhuǎn)發(fā)。應(yīng)用層協(xié)議的識(shí)別不由中間盒完成,而是 由外部的MIDCOM Agent完成,由MIDCOM Agent解析應(yīng)用層的SIP協(xié)議消息,修改SIP消息 本身攜帶的地址信息。因此SIP協(xié)議對(duì)中間盒是透明的,只需支持MIDCOM協(xié)議即可。使用 此方式的NAT設(shè)備需要升級(jí),以支持MIDCOM協(xié)議。3、NAT 的 UDP 簡(jiǎn)單穿越方式(STUN,Simple Traversal of UDP over NATS)私網(wǎng)接入終端通過某種機(jī)制預(yù)先得到其地址對(duì)應(yīng)在出口 NAT上的對(duì)外地址,直接 將應(yīng)用層的SIP消息的地址填寫為出口 NAT上的該對(duì)外地址,而不是私網(wǎng)終端的私有IP地 址。這樣報(bào)文應(yīng)用層的內(nèi)容在經(jīng)過NAT時(shí)無需修改,只需按普通NAT流程轉(zhuǎn)換報(bào)文頭的IP 地址即可,此時(shí)應(yīng)用層負(fù)載中的地址和UDP或TCP報(bào)文頭域地址是一致的。STUN協(xié)議基于 此思路來解決應(yīng)用層地址轉(zhuǎn)換的問題。此方式需要升級(jí)終端以支持STUN客戶端功能,同時(shí) 該方式不支持對(duì)稱NAT類型的穿越。4、通過中繼方式穿越 NAT (TURN,Traversal Using Relay NAT)TURN方式解決SIP呼叫的網(wǎng)絡(luò)地址轉(zhuǎn)換穿越問題的思路與STUN方式類似,私網(wǎng) 接入終端通過某種機(jī)制預(yù)先得到其私有地址對(duì)應(yīng)的公網(wǎng)地址(STUN方式得到的地址為出 口 NAT設(shè)備上的地址,TURN方式得到的地址是TURNServer上的地址),然后將報(bào)文的應(yīng)用層負(fù)載中的地址填寫為該公網(wǎng)地址。此方式也需要升級(jí)終端,以支持TURN客戶端功能,同 時(shí)需提供TURN服務(wù)器設(shè)備,所有報(bào)文必須經(jīng)過TURN服務(wù)器轉(zhuǎn)發(fā),增大了包的延遲和丟包的 可能性。以上幾種解決方案由于需要解析SIP協(xié)議、升級(jí)NAT設(shè)備或終端等原因,在性能、 可擴(kuò)展性以及對(duì)現(xiàn)網(wǎng)改造方面都存在一定缺陷,因此需要一種性能較優(yōu)且無需升級(jí)終端和 NAT設(shè)備的方法,來解決SIP協(xié)議的NAT穿越問題。

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提供另一種SIP呼叫穿越網(wǎng)絡(luò)地址轉(zhuǎn)換的方法,無需 升級(jí)終端和NAT設(shè)備。為了解決上述問題,本發(fā)明提供了一種會(huì)話初始協(xié)議(SIP)呼叫穿越網(wǎng)絡(luò)地址轉(zhuǎn) 換的方法,包括私網(wǎng)用戶進(jìn)行SIP呼叫,該私網(wǎng)用戶歸屬的信令代理設(shè)備對(duì)該SIP消息進(jìn)行應(yīng)用 層SIP協(xié)議解析;該信令代理設(shè)備根據(jù)解析得到的結(jié)果,判斷是否需要修改該SIP消息應(yīng)用層SIP 協(xié)議的媒體通道信息,是,則將媒體通道信息修改為網(wǎng)絡(luò)分配的媒體代理設(shè)備上與對(duì)端網(wǎng) 元進(jìn)行通信的媒體地址和端口,并發(fā)送修改后的消息;該私網(wǎng)用戶通過所述媒體地址和端口與對(duì)端用戶建立媒體連接。進(jìn)一步地,該信令代理設(shè)備根據(jù)解析得到的結(jié)果,如判斷不需修改該SIP消息應(yīng) 用層SIP協(xié)議的媒體通道信息,則直接轉(zhuǎn)發(fā)該SIP消息;該私網(wǎng)用戶終端還通過網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)設(shè)備和該私網(wǎng)用戶歸屬的信令代理 設(shè)備通信,該NAT設(shè)備對(duì)該呼叫的SIP消息進(jìn)行網(wǎng)絡(luò)層地址和傳輸層端口轉(zhuǎn)換,該私網(wǎng)用戶 還利用該NAT設(shè)備通過所述媒體地址和端口與對(duì)端用戶建立媒體連接。進(jìn)一步地,該信令代理設(shè)備修改該SIP消息應(yīng)用層SIP協(xié)議的媒體通道信息,包 括如該SIP消息為請(qǐng)求消息,則將該SIP消息應(yīng)用層SIP協(xié)議的媒體通道信息修改 為媒體代理設(shè)備與對(duì)端網(wǎng)元進(jìn)行通信的網(wǎng)絡(luò)地址和端口,同時(shí)在該消息的原始控制通道信 息Via頭域的第一行信息之前增加本信令代理設(shè)備的地址和端口,還在該增加的行中加入 媒體附加參數(shù),該媒體附加參數(shù)為網(wǎng)絡(luò)分配的該媒體代理設(shè)備與對(duì)端網(wǎng)元進(jìn)行通信的網(wǎng)絡(luò) 地址和端口;如該SIP消息為響應(yīng)消息,則用該消息應(yīng)用層控制通道信息中Via頭域的第一行 信息的媒體附加參數(shù)中的媒體地址和端口替換該響應(yīng)消息攜帶的媒體通道信息的媒體地 址和端口,并刪除該Via頭域的第一行。進(jìn)一步地,該信令代理設(shè)備根據(jù)解析得到的結(jié)果,通過以下方式判斷是否需要修 改該SIP消息應(yīng)用層SIP協(xié)議的媒體通道信息該信令代理設(shè)備如判斷該消息網(wǎng)絡(luò)層源地址和傳輸層源端口與應(yīng)用層SIP協(xié)議 的控制通道信息Via頭域第一行信息的地址和端口不一致,或被叫用戶是歸屬于本信令代 理設(shè)備的私網(wǎng)用戶并且該SIP消息攜帶的媒體通道信息沒有改變,則需要修改該SIP消息 應(yīng)用層SIP協(xié)議的媒體通道信息。
進(jìn)一步地,該信令代理設(shè)備通過如下方式判斷被叫用戶是否是歸屬于本信令代理 設(shè)備的私網(wǎng)用戶終端向該信令代理設(shè)備注冊(cè)時(shí),該信令代理設(shè)備對(duì)該終端的注冊(cè)SIP消息進(jìn)行解 析,如該消息的網(wǎng)絡(luò)層源地址與應(yīng)用層SIP協(xié)議的控制通道信息的地址不一致,則保存該 終端的用戶號(hào)碼、網(wǎng)絡(luò)層源IP地址和端口 ;該信令代理設(shè)備對(duì)用戶進(jìn)行呼叫的消息進(jìn)行解析,得到該呼叫消息中的被叫號(hào) 碼,檢查本地是否保存有該號(hào)碼,如有,則該被叫用戶是歸屬于本信令代理設(shè)備的私網(wǎng)用 戶。進(jìn)一步地,該信令代理設(shè)備對(duì)該SIP消息進(jìn)行應(yīng)用層SIP協(xié)議解析,通過以下方式 判斷該SIP消息攜帶的媒體通道信息是否改變?cè)撔帕畲碓O(shè)備先檢查該SIP消息的類型,如該SIP消息為請(qǐng)求消息,再判斷該請(qǐng) 求消息應(yīng)用層控制通道信息中Via頭域的第一行信息中是否包含媒體附加參數(shù),如是,則 該請(qǐng)求消息攜帶的媒體通道信息已經(jīng)改變,如否,則該請(qǐng)求消息攜帶的媒體通道信息沒有 改變;如該SIP消息為響應(yīng)消息,則檢查該響應(yīng)消息應(yīng)用層控制通道信息中Via頭域第 一行的信息中是否包含媒體附加參數(shù),如是,則該響應(yīng)消息攜帶的媒體通道信息沒有改變, 如否,則該響應(yīng)消息攜帶的媒體通道信息已經(jīng)改變。進(jìn)一步地,該信令代理設(shè)備如判斷該SIP消息網(wǎng)絡(luò)層源地址和傳輸層源端口與應(yīng) 用層SIP協(xié)議的控制通道信息Via頭域第一行信息的地址和端口不一致,還在該控制通道 信息的Contact頭域原有信息后增加該網(wǎng)絡(luò)層地址和傳輸層端口作為Contact頭域的附加 參數(shù),用于表示通過該地址和端口訪問該私網(wǎng)用戶的直接方式,如該SIP消息為請(qǐng)求消息, 還在原始控制通道信息Via頭域的第一行信息后增加該傳輸層端口作為端口附加參數(shù),用 于回送應(yīng)答消息。為了解決該問題,本發(fā)明還提供了一種SIP呼叫穿越網(wǎng)絡(luò)地址轉(zhuǎn)換的系統(tǒng),其特 征在于包括私網(wǎng)用戶的終端、信令代理設(shè)備和媒體代理設(shè)備,其中該私網(wǎng)用戶的終端,用于通過其歸屬的信令代理設(shè)備進(jìn)行SIP呼叫,通過該信令 代理設(shè)備提供的媒體地址和端口與對(duì)端用戶建立媒體連接;該媒體代理設(shè)備,用于提供網(wǎng)絡(luò)側(cè)媒體通道,包括媒體地址和端口 ;該信令代理設(shè)備,用于收到該終端進(jìn)行呼叫的SIP消息,對(duì)該消息進(jìn)行應(yīng)用層SIP 協(xié)議解析,根據(jù)解析得到的結(jié)果,判斷是否需要修改該SIP消息應(yīng)用層SIP協(xié)議的媒體通道 信息,是,則將該消息應(yīng)用層SIP協(xié)議的媒體通道信息修改為該媒體代理設(shè)備上與對(duì)端網(wǎng) 元進(jìn)行通信的媒體地址和端口,并發(fā)送修改后的消息。進(jìn)一步地,該系統(tǒng)還包括網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)設(shè)備,位于該私網(wǎng)用戶終端和該信 令代理設(shè)備之間,用于轉(zhuǎn)發(fā)該終端和對(duì)端之間通過該信令代理設(shè)備交互的SIP消息,并對(duì) 該SIP消息進(jìn)行網(wǎng)絡(luò)層地址和傳輸層端口轉(zhuǎn)換;該私網(wǎng)用戶的終端,還用于通過該NAT設(shè)備進(jìn)行SIP呼叫,利用該NAT設(shè)備通過該 信令代理設(shè)備提供的媒體地址和端口與對(duì)端用戶建立媒體連接;該信令代理設(shè)備還用于根據(jù)解析得到的結(jié)果,如判斷不需修改該SIP消息應(yīng)用層 SIP協(xié)議的媒體通道信息,則直接轉(zhuǎn)發(fā)該SIP消息。
7
進(jìn)一步地,該信令代理設(shè)備,還用于收到SIP消息,對(duì)該SIP消息進(jìn)行解析,如解 析得到該SIP消息為請(qǐng)求消息,將該SIP消息應(yīng)用層SIP協(xié)議的媒體通道信息修改為媒體 代理設(shè)備與對(duì)端網(wǎng)元進(jìn)行通信的網(wǎng)絡(luò)地址和端口,在該消息的原始控制通道信息Via頭域 的第一行信息之前增加本信令代理設(shè)備的地址和端口后,還在該增加的行中加入媒體附加 參數(shù),該媒體附加參數(shù)為網(wǎng)絡(luò)分配的該媒體代理設(shè)備與對(duì)端網(wǎng)元進(jìn)行通信的網(wǎng)絡(luò)地址和端 口 ;如解析得到該SIP消息為響應(yīng)消息,則用該響應(yīng)消息應(yīng)用層控制通道信息中Via頭域第 一行信息的媒體附加參數(shù)的媒體地址和端口替換該響應(yīng)消息攜帶的媒體通道信息的媒體 地址和端口,并刪除該Via頭域的第一行。進(jìn)一步地,該信令代理設(shè)備根據(jù)解析的到的結(jié)果,判斷是否需要修改該SIP消息 應(yīng)用層SIP協(xié)議的媒體通道信息,包括該信令代理設(shè)備,判斷該消息網(wǎng)絡(luò)層源地址和傳輸層源端口與應(yīng)用層SIP協(xié)議的 控制通道信息Via頭域第一行信息的地址和端口不一致,或被叫用戶是歸屬于本信令代理 設(shè)備的私網(wǎng)用戶并且該SIP消息攜帶的媒體通道信息沒有改變,則需要修改該SIP消息應(yīng) 用層SIP協(xié)議的媒體通道信息。進(jìn)一步地,該信令代理設(shè)備,還用于接收終端的注冊(cè)請(qǐng)求,對(duì)該終端的注冊(cè)SIP消 息進(jìn)行解析,檢查并判斷該消息的網(wǎng)絡(luò)層源地址與應(yīng)用層SIP協(xié)議的控制通道信息的地址 是否一致,如不一致,則保存該終端的用戶號(hào)碼、網(wǎng)絡(luò)層源IP地址和端口 ;對(duì)用戶進(jìn)行呼叫 的消息進(jìn)行解析,得到該呼叫消息中的被叫號(hào)碼,檢查本地是否保存有該號(hào)碼,如有,則認(rèn) 為該被叫用戶是歸屬于本信令代理設(shè)備的私網(wǎng)用戶。進(jìn)一步地,該信令代理設(shè)備,還用于收到該用戶呼叫的SIP消息,檢查該SIP消息 的類型,如該SIP消息為請(qǐng)求消息,再判斷該請(qǐng)求消息應(yīng)用層控制通道信息中Via頭域的 第一行信息中是否包含媒體附加參數(shù),如是,則認(rèn)為該請(qǐng)求消息攜帶的媒體通道信息已經(jīng) 改變,如否,則該請(qǐng)求消息攜帶的媒體通道信息沒有改變;如該SIP消息為響應(yīng)消息,則檢 查該響應(yīng)消息應(yīng)用層控制通道信息中Via頭域的第一行信息中是否包含媒體附加參數(shù),如 是,則認(rèn)為該響應(yīng)消息攜帶的媒體通道信息沒有改變,如否,則該響應(yīng)消息攜帶的媒體通道 信息已經(jīng)改變。進(jìn)一步地,該信令代理設(shè)備,還用于判斷該SIP消息網(wǎng)絡(luò)層源地址和傳輸層源端 口與應(yīng)用層SIP協(xié)議的控制通道信息Via頭域第一行信息的地址和端口不一致,在該控制 通道信息的Contact頭域原有信息后增加該網(wǎng)絡(luò)層地址和傳輸層端口作為Contact頭域的 附加參數(shù),用于表示通過該地址和端口訪問該私網(wǎng)用戶的直接方式,如該SIP消息為請(qǐng)求 消息,還在原始控制通道信息Via頭域的第一行信息后增加該傳輸層端口作為端口附加參 數(shù),用于回送應(yīng)答消息。進(jìn)一步地,該信令代理設(shè)備的功能可由IP多媒體系統(tǒng)(IMS)的代理呼叫會(huì)話控制 功能設(shè)備實(shí)現(xiàn),該媒體代理設(shè)備的功能可由IP多媒體系統(tǒng)的媒體資源設(shè)備實(shí)現(xiàn)。本發(fā)明通過信令代理設(shè)備對(duì)SIP消息進(jìn)行應(yīng)用層SIP協(xié)議解析,修改媒體通道信 息為媒體代理設(shè)備的媒體地址和端口,將該媒體通道信息發(fā)送到相應(yīng)的終端,使得終端通 過NAT設(shè)備利用該媒體通道信息進(jìn)行通信,實(shí)現(xiàn)了 SIP呼叫的NAT穿越,無需升級(jí)終端和 NAT設(shè)備,也不會(huì)增加NAT設(shè)備的負(fù)擔(dān)。本發(fā)明該信令代理設(shè)備的功能可由IMS網(wǎng)絡(luò)的代理呼叫會(huì)話控制功能設(shè)備P-CSCF實(shí)現(xiàn),該媒體代理設(shè)備的功能可由IMS網(wǎng)絡(luò)的媒體資源設(shè)備MRFP實(shí)現(xiàn),不需要增加 額外的設(shè)備。


圖1為實(shí)施例一私網(wǎng)用戶注冊(cè)sip信令流程圖;圖2為實(shí)施例二私網(wǎng)用戶呼叫公網(wǎng)用戶的網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖3為實(shí)施例二私網(wǎng)用戶呼叫公網(wǎng)用戶的SIP信令流程圖;圖4為實(shí)施例二私網(wǎng)用戶呼叫公網(wǎng)用戶的媒體通道信息示意圖;圖5為實(shí)施例三公網(wǎng)用戶呼叫私網(wǎng)用戶的網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖6為實(shí)施例三公網(wǎng)用戶呼叫私網(wǎng)用戶的SIP信令流程圖;圖7為實(shí)施例三公網(wǎng)用戶呼叫私網(wǎng)用戶的媒體通道信息示意圖;圖8為實(shí)施例四私網(wǎng)用戶呼叫私網(wǎng)用戶的網(wǎng)絡(luò)結(jié)構(gòu)示意圖;圖9為實(shí)施例四私網(wǎng)用戶呼叫私網(wǎng)用戶的SIP信令流程圖;圖10為實(shí)施例四私網(wǎng)用戶呼叫私網(wǎng)用戶的媒體通道信息示意圖。
具體實(shí)施例方式下面通過具體的實(shí)施例并結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)的描述。本發(fā)明實(shí)施例中增加支持信令代理(PROXY)功能的設(shè)備,對(duì)應(yīng)用層SIP信令修改 和轉(zhuǎn)發(fā);由媒體代理設(shè)備轉(zhuǎn)發(fā)媒體數(shù)據(jù)。信令代理設(shè)備(簡(jiǎn)稱網(wǎng)絡(luò)代理)用于維護(hù)SIP消 息中的媒體信息(用于承載的媒體通道信息),還支持?jǐn)U展SIP協(xié)議參數(shù),該擴(kuò)展SIP協(xié)議 參數(shù)包括SIP協(xié)議的路由信息。主叫與被叫終端之間的信令通過NAT、主叫信令代理和被 叫信令代理交互;主叫和被叫終端之間的語(yǔ)音和業(yè)務(wù)數(shù)據(jù)通過NAT和媒體資源處理(MRFP) 設(shè)備傳輸。該信令代理設(shè)備可以是單獨(dú)的設(shè)備,也可以在現(xiàn)有設(shè)備上增加該信令代理功能。 對(duì)于IP多媒體子系統(tǒng)(IMS)網(wǎng)絡(luò),該功能可由代理呼叫會(huì)話控制設(shè)備(P-CSCF)實(shí)現(xiàn),媒體 代理功能可由媒體資源處理設(shè)備(MRFP)實(shí)現(xiàn)。信令代理設(shè)備保存私網(wǎng)終端注冊(cè)時(shí)的網(wǎng)絡(luò)層源地址和傳輸層源端口,并與該終端 號(hào)碼綁定。私網(wǎng)用戶通過NAT設(shè)備和該私網(wǎng)用戶歸屬的信令代理設(shè)備進(jìn)行呼叫時(shí),該NAT 設(shè)備對(duì)呼叫消息進(jìn)行網(wǎng)絡(luò)層地址和傳輸層端口轉(zhuǎn)換,該信令代理設(shè)備對(duì)應(yīng)用層協(xié)議進(jìn)行解 析,根據(jù)解析得到的結(jié)果,判斷是否需要修改該SIP消息應(yīng)用層SIP協(xié)議的媒體通道信息, 是,則將媒體通道信息修改為網(wǎng)絡(luò)分配的媒體代理設(shè)備上與對(duì)端網(wǎng)元進(jìn)行通信的媒體地址 和端口,如該呼叫消息為NAT設(shè)備轉(zhuǎn)發(fā)的請(qǐng)求消息,則在該消息的原始控制通道信息Via頭 域第一行信息之前增加本信令代理設(shè)備的地址和端口以及該媒體地址和端口作為媒體附 加參數(shù),在原Via頭域第一行信息后增加該消息的傳輸層端口作為端口附加參數(shù);對(duì)于NAT 設(shè)備轉(zhuǎn)發(fā)的INVITE請(qǐng)求消息和200響應(yīng)消息,還在Contact頭域信息后增加該消息網(wǎng)絡(luò)層 IP地址和端口作為Contact域的附加參數(shù);然后將修改后的消息發(fā)送到對(duì)應(yīng)網(wǎng)元。下面對(duì) 本方法對(duì)私網(wǎng)用戶注冊(cè)、私網(wǎng)用戶呼叫公網(wǎng)用戶、公網(wǎng)用戶呼叫私網(wǎng)用戶和私網(wǎng)用戶呼叫 私網(wǎng)用戶的處理分別進(jìn)行詳細(xì)的說明。實(shí)施例一私網(wǎng)用戶注冊(cè)
本實(shí)施例中終端向信令代理進(jìn)行SIP注冊(cè)時(shí),信令代理收到該終端的注冊(cè)SIP消 息,如判斷該注冊(cè)SIP消息中網(wǎng)絡(luò)層源IP地址與應(yīng)用層SIP消息中控制通道(Via頭域) 地址不一致,則保存網(wǎng)絡(luò)層源IP地址和傳輸層源端口,并與該終端號(hào)碼綁定。如圖1所示, 該終端的地址為10. 1. 1. 2,NAT的公網(wǎng)地址為20. 0. 0. 1,該信令代理的地址為20. 0. 0. 3,本 實(shí)施例中該終端發(fā)起SIP注冊(cè)的處理包括以下步驟步驟SlOl 終端發(fā)起SIP注冊(cè),發(fā)送注冊(cè)(Register) SIP消息到NAT,攜帶本終端 的控制通道信息;該注冊(cè)消息的網(wǎng)絡(luò)層源IP地址是終端私網(wǎng)地址、傳輸層源端口為終端信令端口 ; 網(wǎng)絡(luò)層目的IP地址是信令代理的地址、傳輸層目的端口為信令代理的端口。該注冊(cè)消息應(yīng)用層攜帶的控制通道信息為Via :SIP/2. 0/UDP 10. 1. 1. 2 //終端地址,為私網(wǎng)地址,用于接收注冊(cè)響應(yīng)消息。Contact :<sip:10. 1. 1. 2> //終端地址,為私網(wǎng)地址,用于接收SIP請(qǐng)求或更
新消息。步驟S102 :NAT接收終端發(fā)送的注冊(cè)消息,修改該消息中網(wǎng)絡(luò)層地址和傳輸端口, 發(fā)送到信令代理;NAT將該消息中網(wǎng)絡(luò)層源IP地址10. 1. 1. 2修改為NAT自身的公網(wǎng)地址20. 0. 0. 1, 傳輸層源端口修改為NAT自身的端口,其它保持不變,將修改后的注冊(cè)SIP消息發(fā)送到信令代理。步驟S103 信令代理接收NAT發(fā)送的注冊(cè)消息,完成注冊(cè)處理后,返回200響應(yīng)消 息;該信令代理收到NAT發(fā)送的注冊(cè)消息,判斷該消息中網(wǎng)絡(luò)層源IP地址與應(yīng)用層 SIP控制通道(Via頭域)的網(wǎng)絡(luò)地址是否一致,如否,則保存該消息中的網(wǎng)絡(luò)層源IP地址 20. 0. 0. 1和傳輸層源端口,并與該終端號(hào)碼綁定。信令代理向該NAT返回200響應(yīng)消息,該200響應(yīng)消息的網(wǎng)絡(luò)層目的IP地址是 NAT的地址20. 0. 0. 1、傳輸層目的端口為NAT的端口 ;網(wǎng)絡(luò)層源IP地址是該信令代理的地 址20. 0. 0. 3、傳輸層源端口為信令代理的端口。步驟S104 =NAT接收信令代理發(fā)送的200響應(yīng)消息,修改該消息中網(wǎng)絡(luò)層地址和傳 輸端口,發(fā)送到終端。NAT將該200消息中網(wǎng)絡(luò)層目的IP地址修改為終端私網(wǎng)地址10. 1. 1.2、傳輸層目 的端口為終端端口,其它保持不變,發(fā)送200響應(yīng)消息到終端。實(shí)施例二私網(wǎng)用戶呼叫公網(wǎng)用戶如圖2所示的網(wǎng)絡(luò),私網(wǎng)用戶呼叫公網(wǎng)用戶,私網(wǎng)用戶通過NAT進(jìn)行地址轉(zhuǎn)換,利 用主叫的信令代理修改該呼叫的消息中應(yīng)用層攜帶的控制通道和媒體通道信息,通過被叫 信令代理直接轉(zhuǎn)發(fā)與該公網(wǎng)用戶之間的消息。該NAT進(jìn)行地址轉(zhuǎn)換時(shí),將網(wǎng)絡(luò)層地址和端 口分別修改為NAT的公網(wǎng)地址和端口。主叫的信令代理收到NAT發(fā)送的消息,保留原始控 制通道(Contact和Via頭域)信息,并在此基礎(chǔ)上添加該NAT網(wǎng)元信息,同時(shí)修改媒體通 道信息為媒體代理網(wǎng)元(媒體資源設(shè)備MRFP)的地址和端口。圖2中各網(wǎng)元的IP地址和 端口如表1所示 表 1該呼叫的SIP協(xié)議NAT穿越的處理方法如圖3所示,包括以下步驟步驟S301 主叫終端發(fā)起呼叫,發(fā)送初始INVITE消息到NAT ; 該INVITE消息的網(wǎng)絡(luò)層源IP地址和端口是主叫終端私網(wǎng)地址和信令端口 10. 1. 1. 1 49170 ;網(wǎng)絡(luò)層目的IP地址是主叫信令代理地址20. 0. 0. 2、傳輸層目的端口為主
叫信令代理端口。該INVITE消息中應(yīng)用層攜帶的控制通道信息為Via :SIP/2. 0/UDP 10. 1. 1. 1 //主叫終端地址,為私網(wǎng)地址,用于接收SIP響應(yīng)消息。Contact :<sip:10. 1. 1. 1> //主叫終端地址,為私網(wǎng)地址,用于接收SIP請(qǐng)求
或更新消息。該INVITE消息中應(yīng)用層攜帶的媒體通道信息為C = IN IP4 10. 1. 1. 1//主叫終端媒體通道IP地址m = audio 49170 RTP/AVP 0 //主叫終端的媒體通道端口步驟S302 :NAT接收主叫終端發(fā)送的初始INVITE消息,修改該消息中網(wǎng)絡(luò)層地址 和端口,將修改后的消息發(fā)送到主叫的信令代理;NAT將該消息中網(wǎng)絡(luò)層源IP地址和端口修改為自身的公網(wǎng)地址和端口 20. 0. 0. 1 9988,其它信息保持不變,如控制通道和媒體通道信息,然后將修改后的消息發(fā)送到主叫信 令代理。步驟S303 主叫信令代理收到NAT發(fā)送的INVITE消息,解析該消息應(yīng)用層SIP消 息的內(nèi)容,并進(jìn)行修改;主叫信令代理判斷該SIP消息網(wǎng)絡(luò)層源地址和傳輸層源端口與應(yīng)用層SIP協(xié)議的 控制通道信息Via頭域第一行信息的地址和端口不一致,且該SIP消息為請(qǐng)求消息,除按照 現(xiàn)有技術(shù)修改該消息應(yīng)用層SIP協(xié)議的控制通道信息在該消息的原始控制通道信息Via頭 域的第一行信息之前增加本信令代理設(shè)備的地址和端口外,還在該增加的行中加入媒體附 加參數(shù),該媒體附加參數(shù)為網(wǎng)絡(luò)分配的該媒體代理設(shè)備與對(duì)端網(wǎng)元進(jìn)行通信的網(wǎng)絡(luò)地址和 端口 ;在該控制通道信息的Contact頭域原有信息后增加該SIP消息的網(wǎng)絡(luò)層地址和傳輸 層端口(即NAT設(shè)備的地址和端口)作為Contact頭域的附加參數(shù),用于表示通過該地址 和端口訪問該私網(wǎng)用戶的直接方式;在原有控制通道信息Via頭域的第一行信息后增加該 傳輸層端口作為端口附加參數(shù),用于回送應(yīng)答消息。同時(shí)修改該媒體通道信息,將該消息應(yīng) 用層SIP協(xié)議的媒體通道信息修改為該媒體代理設(shè)備上與對(duì)端網(wǎng)元進(jìn)行通信的媒體地址 和端口,然后將修改后的消息通過相應(yīng)的網(wǎng)元發(fā)送到被叫終端。具體地,該主叫信令代理對(duì)該INVITE消息的修改包括
11
a.保留主叫終端發(fā)送的INVITE消息的原始控制通道信息(Contact和Via頭 域);b.在原控制通道信息(Via行和Contact行)中添加NAT網(wǎng)元信息作為附加參數(shù);c.獲取IMS網(wǎng)絡(luò)分配的媒體代理(媒體中繼設(shè)備)的轉(zhuǎn)發(fā)地址和端口,修改該SIP 消息中媒體通道信息為該媒體代理的地址和端口 ;d.在原有控制通道信息之前,添加新的控制通道信息(Via頭域),內(nèi)容為該主叫 信令代理自身的地址,用于作為該SIP消息對(duì)應(yīng)的響應(yīng)消息的返回地址,并在該添加的控 制通道信息中攜帶附加參數(shù),該附加參數(shù)包括該媒體代理地址和端口,用于向NAT返回響 應(yīng)消息時(shí),按照該附加參數(shù)的內(nèi)容填寫該響應(yīng)消息應(yīng)用層的媒體通道信息;e.添加控制通道信息(Record-Route頭域),內(nèi)容為主叫信令代理自身的地址,主 叫信令代理接收到該呼叫的后續(xù)SIP消息;f.保留其它控制通道內(nèi)容。主叫信令代理修改該INVITE消息中應(yīng)用層攜帶的控制通道信息和媒體通道信息 為Il主叫信令代理添加自身地址,作為接收該INVITE消息對(duì)應(yīng)的響應(yīng)消息的地址, 同時(shí)增加附加參數(shù),包括IMS網(wǎng)絡(luò)分配的媒體代理設(shè)備的媒體通道信息(IP地址和端口號(hào))Via :SIP/2. 0/UDP 20. 0. 0. 2 ;relaymedia = 20. 0. 0. 9 4000H主叫信令代理保留主叫終端發(fā)送的INVITE消息的原始控制通道信息,增加NAT 的IP地址和端口,用于主叫信令代理沿此路徑通過NAT向主叫終端返回SIP響應(yīng)消息Via :SIP/2. 0/UDP 10. 1. 1. 1 ;received = 20. 0. 0. 1 ;rport = 9988H保留主叫終端發(fā)送的INVITE消息的原始控制通道信息,增加NAT的地址和端 口,用于主叫信令代理沿此路徑通過NAT向主叫終端發(fā)送后續(xù)SIP請(qǐng)求消息Contact :<sip: 10. 1. 1. 1 ;nataddr = 20. 0. 0. 1 9988>H主叫信令代理添加自身地址,作為接收本呼叫后續(xù)SIP消息的地址Record-Route :<sip:20. 0. 0. 2>//修改媒體通道信息為IMS網(wǎng)絡(luò)分配的媒體代理(如媒體資源設(shè)備MRFP)的媒體 通道信息(IP地址和端口)C = IN IP4 20. 0. 0. 9m = audio 4000 RTP/AVP 0步驟304 被叫信令代理收到該主叫信令代理發(fā)送的INVITE消息,根據(jù)該消息中 的被叫號(hào)碼查詢終端注冊(cè)時(shí)保存的綁定信息,判斷該被叫是否是私網(wǎng)用戶,如否,則按照現(xiàn) 有技術(shù)向被叫終端轉(zhuǎn)發(fā)該INVITE消息,收到該被叫終端返回的200響應(yīng)消息后,向主叫信 令代理返回200響應(yīng)消息;被叫信令代理返回的200響應(yīng)消息攜帶的應(yīng)用層信息中,按照現(xiàn)有技術(shù)填寫相應(yīng) 的控制通道信息,同時(shí)保留該INVITE消息攜帶的應(yīng)用層控制通道信息,并添加控制通道信 息(Record-Route頭域),內(nèi)容為該被叫信令代理自身的地址,表示訪問該主叫用戶的直接 方式。將該媒體通道信息修改為被叫終端的媒體信息。該響應(yīng)消息中應(yīng)用層攜帶的關(guān)鍵控制通道信息為Via :SIP/2. 0/UDP 20. 0. 0. 2 ;relaymedia = 20. 0. 0. 9 4000 //主叫信令代理的地址以及媒體代理地址Via :SIP/2. 0/UDP 10. 1. 1. 1 ;received = 20. 0. 0. 1 ;rport = 9988 //主叫終端 的地址及NAT地址Contact :<sip 20. 0. 0. 100> //被叫終端地址,用于接收后續(xù)SIP請(qǐng)求消息, 為公網(wǎng)地址Record-Route :<sip:20. 0. 0. 2> //主叫信令代理地址。Record-Route :<sip:20. 0. 0. 3> //被叫信令代理地址。該響應(yīng)消息中應(yīng)用層攜帶的媒體通道信息為C = IN IP4 20. 0. 0. 100//被叫終端媒體通道IP地址m = audio 50100 RTP/AVP 0 //被叫終端的媒體通道端口步驟305 主叫信令代理接收被叫信令代理的200響應(yīng)消息,解析該消息應(yīng)用層 SIP消息的內(nèi)容,并修改200響應(yīng)消息的控制通道信息和媒體通道信息,然后發(fā)送到NAT ;主叫信令代理判斷該200響應(yīng)消息網(wǎng)絡(luò)層源地址和傳輸層源端口與應(yīng)用層SIP協(xié) 議的控制通道信息Via頭域第一行信息的地址和端口一致,但被叫用戶是歸屬于本信令代 理設(shè)備的私網(wǎng)用戶,然后檢查該響應(yīng)消息應(yīng)用層控制通道信息中Via頭域的第一行信息中 是否包含媒體附加參數(shù),如是,則該響應(yīng)消息攜帶的媒體通道信息沒有改變,則修改該200 響應(yīng)消息的控制通道信息和媒體通道信息,用刪除后該Via頭域第一行信息的媒體附加參 數(shù)中的媒體地址和端口替換該響應(yīng)消息攜帶的媒體通道信息的媒體地址和端口,然后刪除 該Via頭域的第一行。主叫信令代理對(duì)該200響應(yīng)消息的修改包括對(duì)網(wǎng)絡(luò)層地址和傳輸層端口的修改主叫信令代理將該200響應(yīng)消息的網(wǎng)絡(luò)層目的IP地址修改為NAT地址、傳輸層目 的端口修改為NAT端口 ;網(wǎng)絡(luò)層源IP地址修改為主叫信令代理地址、傳輸層源端口修改為 主叫信令代理端口。對(duì)應(yīng)用層控制通道和媒體通道信息的修改a.根據(jù)控制通道(第一個(gè)Via頭域)攜帶的擴(kuò)展參數(shù)內(nèi)容(媒體代理地址、端口) 替換媒體通道信息,并刪除該控制通道。b.根據(jù)控制通道(第二個(gè)Via頭域)攜帶的參數(shù)內(nèi)容(NAT地址、端口)作為響應(yīng) 消息的目的地,然后刪除參數(shù)內(nèi)容。c.保留其它控制通道內(nèi)容,如Contact頭域。主叫信令代理修改該200響應(yīng)消息中應(yīng)用層攜帶的控制通道信息和媒體通道信 息為Via :SIP/2. 0/UDP 10.1.1.1 //去掉第一個(gè) Via 頭域,保留第二個(gè) Via 頭域,并
去掉NAT信息Contact :<sip: 20. 0. 0. 100> //保留 Contact 頭域C = IN IP4 20. 0. 09//媒體通道替換為媒體代理地址m = audio 4000 RTP/AVP 0 //媒體通道替換為媒體代理端口步驟306 =NAT接收主叫信令代理發(fā)送的200響應(yīng)消息,修改消息中網(wǎng)絡(luò)層目的IP 地址為主叫終端地址、傳輸層目的端口為主叫終端控制通道端口,其它保持不變,發(fā)送消息
13到主叫終端。主叫終端接收到的200響應(yīng)消息中應(yīng)用層攜帶的控制通道信息和媒體通道信息 為Via :SIP/2. 0/UDP 10. 1. 1. 1 // 主叫終端自身地址m = audio 4000 RTP/AVP 0 //媒體代理端口步驟307 主叫終端返回200響應(yīng)消息的確認(rèn)ACK消息;該ACK消息的網(wǎng)絡(luò)層源IP地址是主叫終端私網(wǎng)地址、傳輸層源端口為主叫終端信 令端口 ;網(wǎng)絡(luò)層目的IP地址是主叫信令代理地址、傳輸層目的端口為主叫信令代理端口。該ACK消息應(yīng)用層不攜帶媒體通道信息,攜帶的控制通道信息為Ack sip 20. 0. 0. 100// 被叫終端地址Route :<sip:20. 0. 0. 2>// 主叫信令代理地址Route :<sip:20. 0. 0. 3>//被叫信令代理地址步驟308 =NAT接收主叫終端發(fā)送的ACK消息;NAT修改消息中網(wǎng)絡(luò)層源IP地址為NAT自身的公網(wǎng)地址、修改傳輸層源端口為 NAT自身的端口,其它保持不變,將修改后的消息發(fā)送到主叫信令代理。步驟309 主叫信令代理收到NAT發(fā)送的ACK消息,解析該消息應(yīng)用層SIP消息的 內(nèi)容,刪除代表自身內(nèi)容的第一個(gè)Route頭域,根據(jù)第二個(gè)Route頭域地址作為消息目的 地,發(fā)送ACK消息到被叫信令代理。該關(guān)鍵控制通道信息為Ack sip 20. 0. 0. 100// 被叫終端地址Route :<sip:20. 0. 0. 3>//被叫信令代理地址主叫終端和被叫終端利用該媒體通道信息通過主叫NAT設(shè)備和媒體代理設(shè)備進(jìn) 行語(yǔ)音或數(shù)據(jù)通信。圖4所示的是媒體通道傳輸?shù)拿襟w數(shù)據(jù)流程,主叫終端的數(shù)據(jù)通過主 叫NAT設(shè)備和媒體代理設(shè)備發(fā)送到被叫終端,被叫終端的數(shù)據(jù)沿此通路反向傳遞給主叫終端。實(shí)施例三公網(wǎng)用戶呼叫私網(wǎng)用戶如圖5所示的網(wǎng)絡(luò),公網(wǎng)用戶呼叫私網(wǎng)用戶,主被叫終端間通過主叫信令代理、被 叫信令代理和NAT設(shè)備進(jìn)行信令通信,通過媒體代理和NAT設(shè)備進(jìn)行媒體通信。NAT設(shè)備用 于網(wǎng)絡(luò)地址轉(zhuǎn)換,將被叫發(fā)送的消息的網(wǎng)絡(luò)層地址和端口分別修改為NAT的公網(wǎng)地址和端 口。被叫信令代理收到主叫信令代理發(fā)送的消息,根據(jù)被叫用戶號(hào)碼查找注冊(cè)時(shí)保存的綁 定關(guān)系,獲取對(duì)應(yīng)的NAT信息,判斷被叫終端是否是私網(wǎng)用戶,如是,則保留原始控制通道 (Contact和Via頭域)信息,并在此基礎(chǔ)上添加該NAT網(wǎng)元信息(該消息的網(wǎng)絡(luò)層地址和 傳輸層端口),同時(shí)修改媒體通道信息為媒體代理網(wǎng)元(媒體資源設(shè)備MRFP)的地址和端 口。圖5中各網(wǎng)元的IP地址和端口如表2所示Contact :<sip:20. 0. 0. 100>Record-Route :<sip:20.0.0.2>Record-Route :<sip:20. 0. 0. 3>C = IN IP4 20. 0. 0. 9
Il被叫終端地址 Il主叫信令代理地址 Il被叫信令代理地址 Il媒體代理地址 表2該呼叫的SIP協(xié)議NAT穿越的處理方法如圖6所示,包括以下步驟步驟S601 主叫信令代理收到主叫終端的呼叫請(qǐng)求,發(fā)送初始INVITE消息到被叫 信令代理;主叫信令代理按照現(xiàn)有技術(shù)的方法封裝該初始INVITE消息,該INVITE消息中應(yīng) 用層攜帶的控制通道信息為Via :SIP/2. 0/UDP 20. 0. 0. 2//主叫信令代理地址。Via :SIP/2. 0/UDP 20. 0. 0. 100 // 主叫終端地址,為公網(wǎng)地址。Contact :<sip:20. 0. 0. 100>// 主叫終端地址,為公網(wǎng)地址。該INVITE消息中應(yīng)用層攜帶的媒體通道信息為C = IN IP4 20. 0. 0. 100//主叫終端媒體通道IP地址m = audio 50100 RTP/AVP 1 //主叫終端的媒體通道端口步驟S602 被叫信令代理收到主叫信令代理發(fā)送的初始INVITE消息,解析該消息 應(yīng)用層SIP協(xié)議的內(nèi)容,修改該SIP消息的控制通道信息和媒體通道信息; 該INVITE消息的網(wǎng)絡(luò)層目的IP地址是NAT地址、傳輸層目的端口為NAT端口;網(wǎng) 絡(luò)層源IP地址是被叫信令代理地址、傳輸層源端口為被叫信令代理端口。該被叫信令代理設(shè)備判斷該消息網(wǎng)絡(luò)層源地址和傳輸層源端口與應(yīng)用層SIP協(xié) 議的控制通道信息Via頭域第一行信息的地址和端口一致,然后根據(jù)主叫信令代理發(fā)送的 初始INVITE消息中的被叫用戶號(hào)碼查找終端注冊(cè)時(shí)保存的綁定信息,判斷該被叫為歸屬 于本信令代理設(shè)備的私網(wǎng)用戶,然后獲取對(duì)應(yīng)的NAT信息,還判斷該請(qǐng)求消息應(yīng)用層控制 通道信息中Via頭域的第一行信息中是否包含媒體附加參數(shù),如是,則認(rèn)為該請(qǐng)求消息攜 帶的媒體通道信息已經(jīng)改變;否,則修改該INVITE消息,發(fā)送修改后的INVITE消息到該 NAT設(shè)備。被叫信令代理對(duì)該INVITE消息應(yīng)用層的修改包括a.保留主叫信令代理發(fā)送的INVITE消息中原始控制通道信息(Contact和Via頭 域);b.獲取IMS網(wǎng)絡(luò)分配的媒體代理(媒體中繼設(shè)備)的轉(zhuǎn)發(fā)地址和端口,修改SIP 消息中媒體通道信息,更換為該媒體代理地址和端口 ;c.在原始控制通道信息前添加控制通道信息(Via頭域),內(nèi)容為被叫信令代理自 身的地址,用于該INVITE消息的接收端NAT設(shè)備根據(jù)該地址返回SIP響應(yīng)消息,該被叫信 令代理還在該添加的控制通道信息中攜帶媒體附加參數(shù),該媒體附加參數(shù)包括該媒體代理 地址和端口,用于向主叫信令代理返回SIP響應(yīng)消息時(shí),根據(jù)該媒體附加參數(shù)修改媒體通 道信息;
d.添加控制通道信息(Record-Route頭域),內(nèi)容為被叫信令代理自身的地址,用 于接收后續(xù)的SIP消息;e.保留其它控制通道內(nèi)容。被叫信令代理修改該INVITE消息中應(yīng)用層攜帶的控制通道信息和媒體通道信息 為//被叫信令代理添加自身地址,作為該INVITE消息對(duì)應(yīng)的SIP響應(yīng)消息的返回地 址;攜帶附加參數(shù),包括IMS網(wǎng)絡(luò)分配的媒體代理設(shè)備的媒體通道信息(IP地址和端口號(hào))Via :SIP/2. 0/UDP 20. 0. 0. 3 ;relaymedia = 20. 0. 0. 9 4000H保留原始控制通道信息Via :SIP/2. 0/UDP 20. 0. 0. 2//主叫信令代理地址。Via :SIP/2. 0/UDP 20. 0. 0. 100 // 主叫終端地址,為公網(wǎng)地址。Contact :<sip:20. 0. 0. 100>// 主叫終端地址,為公網(wǎng)地址。H在Record-Route頭域添加被叫信令代理的地址,作為接收SIP消息的地址Record-Route :<sip:20.0.0.3>H修改媒體通道信息為IMS網(wǎng)絡(luò)分配的媒體代理的媒體通道信息(如媒體資源 設(shè)備MRFP的IP地址和端口 )C = IN IP4 20. 0. 0. 9m = audio 4000 RTP/AVP 0步驟603 =NAT接收被叫信令代理發(fā)送的INVITE消息,修改消息中網(wǎng)絡(luò)層目的IP 地址為被叫終端私網(wǎng)地址、傳輸層目的端口為被叫終端端口,其它保持不變,發(fā)送消息到被 叫終端;步驟604 被叫終端接收呼叫INVITE消息,發(fā)送200響應(yīng)消息到NAT ;該響應(yīng)消息中網(wǎng)絡(luò)層目的IP地址是被叫信令代理地址、傳輸層目的端口為被叫 信令代理端口 ;網(wǎng)絡(luò)層源IP地址是被叫終端私網(wǎng)地址、傳輸層源端口為被叫終端信令代理端□。該被叫終端按照現(xiàn)有技術(shù)封裝該響應(yīng)消息的控制通道和媒體通道信息,并保留接 收到的INVITE消息中的原始控制通道信息。該響應(yīng)消息中應(yīng)用層攜帶的關(guān)鍵控制通道信 息為Via :SIP/2. 0/UDP 20. 0. 0. 3 ;relaymedia = 20. 0. 0. 9 4000 //被叫信令代理的 地址以及媒體代理地址Via :SIP/2. 0/UDP 20. 0. 0. 2//主叫信令代理的地址Via SIP/2. 0/UDP 20. 0. 0. 100 // 主叫終端地址Contact :<sip:10. 1. 1. 2>//Contact頭域修改為被叫終端地址,為私網(wǎng) 地址,用于接收后續(xù)SIP消息Record-Route :<sip:20. 0. 0. 3> //被叫信令代理地址。該響應(yīng)消息中應(yīng)用層攜帶的媒體通道信息為C = IN IP4 10. 1. 1. 2//被叫終端媒體通道IP地址m = audio 47100 RTP/AVP 1 //叫終端的媒體通道端口步驟605 =NAT接收被叫終端發(fā)送的200消息,修改該消息的網(wǎng)絡(luò)層源IP地址為
16NAT自身的公網(wǎng)地址,修改傳輸層源端口為NAT自身的端口,其它保持不變,將修改后的消 息發(fā)送到被叫信令代理;步驟606 被叫信令代理接收NAT發(fā)送的200響應(yīng)消息,解析該消息應(yīng)用層內(nèi)容, 并修改控制通道信息和媒體通道信息,然后發(fā)送到主叫信令代理;被叫信令代理判斷該SIP消息網(wǎng)絡(luò)層源地址和傳輸層源端口與應(yīng)用層SIP協(xié)議的 控制通道信息Via頭域第一行信息的地址和端口不一致,檢查該響應(yīng)消息應(yīng)用層控制通道 信息中Via頭域的第一行信息中是否包含媒體附加參數(shù),如是,則認(rèn)為該響應(yīng)消息攜帶的 媒體通道信息沒有改變,用該消息應(yīng)用層控制通道信息中Via頭域的第一行信息的媒體附 加參數(shù)中的媒體地址和端口替換該響應(yīng)消息攜帶的媒體通道信息的媒體地址和端口,然后 刪除該Via頭域的第一行。還在該控制通道信息的Contact頭域原有信息后增加該網(wǎng)絡(luò)層 地址和傳輸層端口作為Contact頭域的附加參數(shù),用于表示通過該地址和端口訪問該私網(wǎng) 用戶的直接方式。被叫信令代理對(duì)該200響應(yīng)消息的修改包括對(duì)網(wǎng)絡(luò)層地址和傳輸層端口的修改修改該ACK消息的網(wǎng)絡(luò)層源IP地址為被叫信令代理地址、傳輸層源端口為被叫信 令代理端口 ;修改網(wǎng)絡(luò)層目的IP地址為NAT地址、傳輸層目的端口為NAT端口。對(duì)應(yīng)用層SIP協(xié)議內(nèi)容的修改a.根據(jù)控制通道(第一個(gè)Via頭域)攜帶的附加參數(shù)的內(nèi)容(媒體代理地址、端 口)替換媒體通道信息,并刪除該Via頭域;b.保留原始控制通道(Contact頭域)內(nèi)容,并在此基礎(chǔ)上添加NAT的地址,用于 表示主叫信令代理通過NAT設(shè)備訪問被叫信令代理的直接方式;c.保留其它控制通道內(nèi)容。主叫信令代理修改該200響應(yīng)消息中應(yīng)用層攜帶的控制通道信息和媒體通道信 息為//去掉第一個(gè)Via頭域,保留后續(xù)Via頭域Via :SIP/2. 0/UDP 20. 0. 0. 2Via :SIP/2. 0/UDP 20. 0. 0. 100//Contact頭域添加NAT信息Contact :<sip: 10. 1. 1. 1 ;nataddr = 20. 0. 0. 1 9988>Route :<sip: 20. 0. 0. 3>//被叫信令代理地址H媒體通道替換為媒體代理地址C = IN IP4 20. 0. 0. 9H媒體通道替換為媒體代理端口m = audio 4000 RTP/AVP 0步驟607 主叫信令代理向被叫信令代理返回200響應(yīng)消息的確認(rèn)ACK消息,該 ACK消息應(yīng)用層不攜帶媒體通道信息,僅攜帶控制通道信息,該控制通道信息為Ack sip 10. 1. 1. 2 ;nataddr = 20. 0. 0. 1 9988 // 被叫終端地址以及 NAT 地
址Route :<sip: 20. 0. 0. 3>//被叫信令代理地址
步驟608 被叫信令代理接收到主叫信令代理發(fā)送的ACK消息,對(duì)網(wǎng)絡(luò)層地址和端 口以及應(yīng)用層的控制通道信息進(jìn)行修改;被叫信令代理對(duì)該ACK消息網(wǎng)絡(luò)層地址和端口的修改與步驟602的處理相同。被 叫信令代理解析該消息應(yīng)用層SIP消息的內(nèi)容,修改控制通道信息刪除代表自身的Route 頭域,根據(jù)起始行 Ack sip 10. 1. 1. 2 ;nataddr = 20. 0. 0. 1 :9988 中 nataddr 參數(shù)內(nèi)容(NAT 信息)作為消息目的地,刪除nataddr參數(shù),發(fā)送消息到NAT。修改后的控制通道信息為Ack sip 10. 1. 1. 2 // 被叫終端地址步驟609 =NAT接收被叫信令代理發(fā)送的ACK消息,修改消息中網(wǎng)絡(luò)層目的IP地址 為被叫終端地址、傳輸層目的端口為被叫終端控制通道端口,其它保持不變,發(fā)送消息到被 叫終端。主叫終端和被叫終端利用該媒體通道信息通過媒體代理設(shè)備和被叫NAT設(shè)備進(jìn) 行語(yǔ)音或數(shù)據(jù)通信。圖7所示的是媒體通道傳輸?shù)拿襟w數(shù)據(jù)流程,主叫終端的數(shù)據(jù)通過媒 體代理設(shè)備和被叫NAT設(shè)備發(fā)送到被叫終端,被叫終端的數(shù)據(jù)沿此通路反向傳遞給主叫終端。實(shí)施例四主被叫均為私網(wǎng)用戶的場(chǎng)景如圖8所示的網(wǎng)絡(luò),私網(wǎng)用戶呼叫私網(wǎng)用戶,主被叫終端間通過主叫NAT設(shè)備、主 叫信令代理、被叫信令代理和被叫NAT設(shè)備進(jìn)行信令通信,通過主叫NAT設(shè)備、媒體代理設(shè) 備和被叫NAT設(shè)備進(jìn)行媒體通信。與實(shí)施例一和實(shí)施例二相同,NAT設(shè)備用于網(wǎng)絡(luò)地址轉(zhuǎn) 換,將終端發(fā)送的消息的網(wǎng)絡(luò)層地址和端口分別修改為NAT的公網(wǎng)地址和端口,將信令代 理設(shè)備發(fā)送的消息的網(wǎng)絡(luò)層地址和端口分別修改為私網(wǎng)地址和端口。如圖9所示,主叫信 令代理行為與實(shí)施例二場(chǎng)景(私網(wǎng)用戶呼叫公網(wǎng)用戶)完全一樣,都需修改應(yīng)用層控制通 道和媒體通道信息。被叫信令代理行為與實(shí)施例三的場(chǎng)景(公網(wǎng)用戶呼叫私網(wǎng)用戶)相比, 不需要修改應(yīng)用層媒體通道信息,只需修改應(yīng)用層控制通道信息。具體的,由于主叫信令代 理已經(jīng)修改主叫終端經(jīng)NAT設(shè)備轉(zhuǎn)發(fā)的INVITE消息中的媒體信息和控制通道信息,并將修 改后的消息發(fā)送到被叫信令代理,該被叫信令代理收到該INVITE消息,對(duì)該SIP消息進(jìn)行 解析,檢查該消息應(yīng)用層控制通道信息中Via頭域的第一行信息中包含了附加參數(shù),則認(rèn) 為該消息攜帶的媒體通道信息已經(jīng)改變,該被叫信令代理設(shè)備按照現(xiàn)有技術(shù),在原始控制 通道信息Via頭域中第一行信息前增加本信令代理的地址,同時(shí)在Record-Route域最后一 條記錄后添加本信令代理的地址,然后通過被叫NAT設(shè)備將修改后的INVITE消息發(fā)送到被 叫終端。該被叫信令代理收到終端返回的200響應(yīng)消息,刪除該消息應(yīng)用層控制通道信息 Via頭域的第一行(本信令代理的地址),檢查刪除后該Via頭域的第一行信息中是否包含 所述附加參數(shù),由于該200響應(yīng)消息保留了該被叫信令代理發(fā)送的INVITE消息中的控制通 道和媒體通道信息,因此,當(dāng)前該Via頭域的第一行信息中包含了該附加參數(shù),該被叫信令 代理直接轉(zhuǎn)發(fā)該響應(yīng)消息到主叫信令代理,該主叫信令代理按照與實(shí)施例一同樣的方式進(jìn) 行處理,主叫終端和被叫終端利用該媒體通道信息通過主被叫NAT設(shè)備和媒體代理設(shè)備進(jìn) 行語(yǔ)音或數(shù)據(jù)通信。圖10所示的是媒體通道傳輸?shù)拿襟w數(shù)據(jù)流程,主叫終端的數(shù)據(jù)通過主 叫NAT設(shè)備、媒體代理設(shè)備和被叫NAT設(shè)備發(fā)送到被叫終端,被叫終端的數(shù)據(jù)沿此通路反向 傳遞給主叫終端。
權(quán)利要求
一種會(huì)話初始協(xié)議(SIP)呼叫穿越網(wǎng)絡(luò)地址轉(zhuǎn)換的方法,其特征在于私網(wǎng)用戶進(jìn)行SIP呼叫,該私網(wǎng)用戶歸屬的信令代理設(shè)備對(duì)該SIP消息進(jìn)行應(yīng)用層SIP協(xié)議解析;該信令代理設(shè)備根據(jù)解析得到的結(jié)果,判斷是否需要修改該SIP消息應(yīng)用層SIP協(xié)議的媒體通道信息,是,則將媒體通道信息修改為網(wǎng)絡(luò)分配的媒體代理設(shè)備上與對(duì)端網(wǎng)元進(jìn)行通信的媒體地址和端口,并發(fā)送修改后的消息;該私網(wǎng)用戶通過所述媒體地址和端口與對(duì)端用戶建立媒體連接。
2.如權(quán)利要求1所述的方法,其特征在于該信令代理設(shè)備根據(jù)解析得到的結(jié)果,如判斷不需修改該SIP消息應(yīng)用層SIP協(xié)議的 媒體通道信息,則直接轉(zhuǎn)發(fā)該SIP消息;該私網(wǎng)用戶終端還通過網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)設(shè)備和該私網(wǎng)用戶歸屬的信令代理設(shè)備 通信,該NAT設(shè)備對(duì)該呼叫的SIP消息進(jìn)行網(wǎng)絡(luò)層地址和傳輸層端口轉(zhuǎn)換,該私網(wǎng)用戶還利 用該NAT設(shè)備通過所述媒體地址和端口與對(duì)端用戶建立媒體連接。
3.如權(quán)利要求1所述的方法,其特征在于該信令代理設(shè)備修改該SIP消息應(yīng)用層SIP 協(xié)議的媒體通道信息,包括如該SIP消息為請(qǐng)求消息,則將該SIP消息應(yīng)用層SIP協(xié)議的媒體通道信息修改為 媒體代理設(shè)備與對(duì)端網(wǎng)元進(jìn)行通信的網(wǎng)絡(luò)地址和端口,同時(shí)在該消息的原始控制通道信息 Via頭域的第一行信息之前增加本信令代理設(shè)備的地址和端口,還在該增加的行中加入媒 體附加參數(shù),該媒體附加參數(shù)為網(wǎng)絡(luò)分配的該媒體代理設(shè)備與對(duì)端網(wǎng)元進(jìn)行通信的網(wǎng)絡(luò)地 址和端口 ;如該SIP消息為響應(yīng)消息,則用該消息應(yīng)用層控制通道信息中Via頭域的第一行信息 的媒體附加參數(shù)中的媒體地址和端口替換該響應(yīng)消息攜帶的媒體通道信息的媒體地址和 端口,并刪除該Via頭域的第一行。
4.如權(quán)利要求1所述的方法,其特征在于該信令代理設(shè)備根據(jù)解析得到的結(jié)果,通過 以下方式判斷是否需要修改該SIP消息應(yīng)用層SIP協(xié)議的媒體通道信息該信令代理設(shè)備如判斷該消息網(wǎng)絡(luò)層源地址和傳輸層源端口與應(yīng)用層SIP協(xié)議的控 制通道信息Via頭域第一行信息的地址和端口不一致,或被叫用戶是歸屬于本信令代理設(shè) 備的私網(wǎng)用戶并且該SIP消息攜帶的媒體通道信息沒有改變,則需要修改該SIP消息應(yīng)用 層SIP協(xié)議的媒體通道信息。
5.如權(quán)利要求4所述的方法,其特征在于該信令代理設(shè)備通過如下方式判斷被叫用戶 是否是歸屬于本信令代理設(shè)備的私網(wǎng)用戶終端向該信令代理設(shè)備注冊(cè)時(shí),該信令代理設(shè)備對(duì)該終端的注冊(cè)SIP消息進(jìn)行解析, 如該消息的網(wǎng)絡(luò)層源地址與應(yīng)用層SIP協(xié)議的控制通道信息的地址不一致,則保存該終端 的用戶號(hào)碼、網(wǎng)絡(luò)層源IP地址和端口 ;該信令代理設(shè)備對(duì)用戶進(jìn)行呼叫的消息進(jìn)行解析,得到該呼叫消息中的被叫號(hào)碼,檢 查本地是否保存有該號(hào)碼,如有,則該被叫用戶是歸屬于本信令代理設(shè)備的私網(wǎng)用戶。
6.如權(quán)利要求4所述的方法,其特征在于該信令代理設(shè)備對(duì)該SIP消息進(jìn)行應(yīng)用層 SIP協(xié)議解析,通過以下方式判斷該SIP消息攜帶的媒體通道信息是否改變?cè)撔帕畲碓O(shè)備先檢查該SIP消息的類型,如該SIP消息為請(qǐng)求消息,再判斷該請(qǐng)求2消息應(yīng)用層控制通道信息中Via頭域的第一行信息中是否包含媒體附加參數(shù),如是,則該 請(qǐng)求消息攜帶的媒體通道信息已經(jīng)改變,如否,則該請(qǐng)求消息攜帶的媒體通道信息沒有改 變;如該SIP消息為響應(yīng)消息,則檢查該響應(yīng)消息應(yīng)用層控制通道信息中Via頭域第一 行的信息中是否包含媒體附加參數(shù),如是,則該響應(yīng)消息攜帶的媒體通道信息沒有改變,如 否,則該響應(yīng)消息攜帶的媒體通道信息已經(jīng)改變。
7.如權(quán)利要求3或4所述的方法,其特征在于該信令代理設(shè)備如判斷該SIP消息網(wǎng)絡(luò)層源地址和傳輸層源端口與應(yīng)用層SIP協(xié)議的 控制通道信息Via頭域第一行信息的地址和端口不一致,還在該控制通道信息的Contact 頭域原有信息后增加該網(wǎng)絡(luò)層地址和傳輸層端口作為Contact頭域的附加參數(shù),用于表示 通過該地址和端口訪問該私網(wǎng)用戶的直接方式,如該SIP消息為請(qǐng)求消息,還在原始控制 通道信息Via頭域的第一行信息后增加該傳輸層端口作為端口附加參數(shù),用于回送應(yīng)答消 肩、ο
8.一種SIP呼叫穿越網(wǎng)絡(luò)地址轉(zhuǎn)換的系統(tǒng),其特征在于包括私網(wǎng)用戶的終端、信令代 理設(shè)備和媒體代理設(shè)備,其中該私網(wǎng)用戶的終端,用于通過其歸屬的信令代理設(shè)備進(jìn)行SIP呼叫,通過該信令代理 設(shè)備提供的媒體地址和端口與對(duì)端用戶建立媒體連接;該媒體代理設(shè)備,用于提供網(wǎng)絡(luò)側(cè)媒體通道,包括媒體地址和端口 ;該信令代理設(shè)備,用于收到該終端進(jìn)行呼叫的SIP消息,對(duì)該消息進(jìn)行應(yīng)用層SIP協(xié) 議解析,根據(jù)解析得到的結(jié)果,判斷是否需要修改該SIP消息應(yīng)用層SIP協(xié)議的媒體通道信 息,是,則將該消息應(yīng)用層SIP協(xié)議的媒體通道信息修改為該媒體代理設(shè)備上與對(duì)端網(wǎng)元 進(jìn)行通信的媒體地址和端口,并發(fā)送修改后的消息。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于該系統(tǒng)還包括網(wǎng)絡(luò)地址轉(zhuǎn)換(NAT)設(shè)備,位于 該私網(wǎng)用戶終端和該信令代理設(shè)備之間,用于轉(zhuǎn)發(fā)該終端和對(duì)端之間通過該信令代理設(shè)備 交互的SIP消息,并對(duì)該SIP消息進(jìn)行網(wǎng)絡(luò)層地址和傳輸層端口轉(zhuǎn)換;該私網(wǎng)用戶的終端,還用于通過該NAT設(shè)備進(jìn)行SIP呼叫,利用該NAT設(shè)備通過該信令 代理設(shè)備提供的媒體地址和端口與對(duì)端用戶建立媒體連接;該信令代理設(shè)備還用于根據(jù)解析得到的結(jié)果,如判斷不需修改該SIP消息應(yīng)用層SIP 協(xié)議的媒體通道信息,則直接轉(zhuǎn)發(fā)該SIP消息。
10.如權(quán)利要求8所述的系統(tǒng),其特征在于該信令代理設(shè)備,還用于收到SIP消息,對(duì)該SIP消息進(jìn)行解析,如解析得到該SIP消 息為請(qǐng)求消息,將該SIP消息應(yīng)用層SIP協(xié)議的媒體通道信息修改為媒體代理設(shè)備與對(duì)端 網(wǎng)元進(jìn)行通信的網(wǎng)絡(luò)地址和端口,在該消息的原始控制通道信息Via頭域的第一行信息之 前增加本信令代理設(shè)備的地址和端口后,還在該增加的行中加入媒體附加參數(shù),該媒體附 加參數(shù)為網(wǎng)絡(luò)分配的該媒體代理設(shè)備與對(duì)端網(wǎng)元進(jìn)行通信的網(wǎng)絡(luò)地址和端口 ;如解析得到 該SIP消息為響應(yīng)消息,則用該響應(yīng)消息應(yīng)用層控制通道信息中Via頭域第一行信息的媒 體附加參數(shù)的媒體地址和端口替換該響應(yīng)消息攜帶的媒體通道信息的媒體地址和端口,并 刪除該Via頭域的第一行。
11.如權(quán)利要求8所述的系統(tǒng),其特征在于該信令代理設(shè)備根據(jù)解析的到的結(jié)果,判斷是否需要修改該SIP消息應(yīng)用層SIP協(xié)議的媒體通道信息,包括該信令代理設(shè)備,判斷該消息網(wǎng)絡(luò)層源地址和傳輸層源端口與應(yīng)用層SIP協(xié)議的控制 通道信息Via頭域第一行信息的地址和端口不一致,或被叫用戶是歸屬于本信令代理設(shè)備 的私網(wǎng)用戶并且該SIP消息攜帶的媒體通道信息沒有改變,則需要修改該SIP消息應(yīng)用層 SIP協(xié)議的媒體通道信息。
12.如權(quán)利要求11所述的系統(tǒng),其特征在于該信令代理設(shè)備,還用于接收終端的注冊(cè)請(qǐng)求,對(duì)該終端的注冊(cè)SIP消息進(jìn)行解析,檢 查并判斷該消息的網(wǎng)絡(luò)層源地址與應(yīng)用層SIP協(xié)議的控制通道信息的地址是否一致,如不 一致,則保存該終端的用戶號(hào)碼、網(wǎng)絡(luò)層源IP地址和端口 ;對(duì)用戶進(jìn)行呼叫的消息進(jìn)行解 析,得到該呼叫消息中的被叫號(hào)碼,檢查本地是否保存有該號(hào)碼,如有,則認(rèn)為該被叫用戶 是歸屬于本信令代理設(shè)備的私網(wǎng)用戶。
13.如權(quán)利要求11所述的系統(tǒng),其特征在于該信令代理設(shè)備,還用于收到該用戶呼叫的SIP消息,檢查該SIP消息的類型,如該SIP 消息為請(qǐng)求消息,再判斷該請(qǐng)求消息應(yīng)用層控制通道信息中Via頭域的第一行信息中是否 包含媒體附加參數(shù),如是,則認(rèn)為該請(qǐng)求消息攜帶的媒體通道信息已經(jīng)改變,如否,則該請(qǐng) 求消息攜帶的媒體通道信息沒有改變;如該SIP消息為響應(yīng)消息,則檢查該響應(yīng)消息應(yīng)用 層控制通道信息中Via頭域的第一行信息中是否包含媒體附加參數(shù),如是,則認(rèn)為該響應(yīng) 消息攜帶的媒體通道信息沒有改變,如否,則該響應(yīng)消息攜帶的媒體通道信息已經(jīng)改變。
14.如權(quán)利要求11所述的系統(tǒng),其特征在于該信令代理設(shè)備,還用于判斷該SIP消息網(wǎng)絡(luò)層源地址和傳輸層源端口與應(yīng)用層 SIP協(xié)議的控制通道信息Via頭域第一行信息的地址和端口不一致,在該控制通道信息的 Contact頭域原有信息后增加該網(wǎng)絡(luò)層地址和傳輸層端口作為Contact頭域的附加參數(shù), 用于表示通過該地址和端口訪問該私網(wǎng)用戶的直接方式,如該SIP消息為請(qǐng)求消息,還在 原始控制通道信息Via頭域的第一行信息后增加該傳輸層端口作為端口附加參數(shù),用于回 送應(yīng)答消息。
15.如權(quán)利要求11所述的系統(tǒng),其特征在于該信令代理設(shè)備的功能可由IP多媒體系統(tǒng)(IMS)的代理呼叫會(huì)話控制功能設(shè)備實(shí)現(xiàn), 該媒體代理設(shè)備的功能可由IP多媒體系統(tǒng)的媒體資源設(shè)備實(shí)現(xiàn)。
全文摘要
本發(fā)明公開了一種SIP呼叫穿越網(wǎng)絡(luò)地址轉(zhuǎn)換的方法和系統(tǒng),包括私網(wǎng)用戶進(jìn)行SIP呼叫,該私網(wǎng)用戶歸屬的信令代理設(shè)備對(duì)該SIP消息進(jìn)行應(yīng)用層SIP協(xié)議解析;該信令代理設(shè)備根據(jù)解析得到的結(jié)果,判斷是否需要修改該SIP消息應(yīng)用層SIP協(xié)議的媒體通道信息,是,則將媒體通道信息修改為網(wǎng)絡(luò)分配的媒體代理設(shè)備上與對(duì)端網(wǎng)元進(jìn)行通信的媒體地址和端口,并發(fā)送修改后的消息;該私網(wǎng)用戶通過所述媒體地址和端口與對(duì)端用戶建立媒體連接。本發(fā)明實(shí)現(xiàn)了SIP呼叫的NAT穿越,無需升級(jí)終端和NAT設(shè)備,也不會(huì)增加NAT設(shè)備的負(fù)擔(dān)。
文檔編號(hào)H04L29/12GK101902506SQ20101021768
公開日2010年12月1日 申請(qǐng)日期2010年6月21日 優(yōu)先權(quán)日2010年6月21日
發(fā)明者凌文杰, 左梅, 湯景柱, 黃永平 申請(qǐng)人:中興通訊股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1