專利名稱:實現(xiàn)h323協(xié)議穿透nat路由器或代理服務(wù)器通信的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信領(lǐng)域,特別涉及一種實現(xiàn)H323協(xié)議穿透NAT路由器或代理服務(wù)器進行通信的方法。
背景技術(shù):
H323協(xié)議是ITU-T(International Telecommunications Union-Telecom-munications Standardization section,國際電信聯(lián)盟電信標準部)制定的多媒體通信標準,該協(xié)議制定了無服務(wù)質(zhì)量(QOS)保證的分組網(wǎng)絡(luò)PBN(Packet Based Networks)上的多媒體通信系統(tǒng)標準。具體的H323協(xié)議參見ITU-T的H323協(xié)議文檔。
該H323協(xié)議實現(xiàn)VoIP(Voice on Internet Protocol,互聯(lián)網(wǎng)協(xié)議上的語音)通信的原理如圖1所示,其中網(wǎng)關(guān)Gateway(負責(zé)不同網(wǎng)絡(luò)之間信令和控制信息的轉(zhuǎn)換以及媒體信息變換和復(fù)用)和網(wǎng)守Gatekeeper(處于高層,提供對端點和呼叫的管理功能)是采用該協(xié)議的IP電話網(wǎng)絡(luò)中的重要組成實體,兩個網(wǎng)關(guān)Gateway所連接的電話Phone可以通過網(wǎng)關(guān)之間的H323協(xié)議實現(xiàn)VoIP的語音呼叫、通話以及傳真的功能。
然而現(xiàn)有的這種基于H323協(xié)議實現(xiàn)VoIP通信的方法只能應(yīng)用于無NAT路由器(Network Address Translation Router)或代理服務(wù)器(Proxy)隔離的網(wǎng)絡(luò)中,而不能應(yīng)用于被NAT路由器或者代理服務(wù)器隔離的網(wǎng)絡(luò)中。例如當(dāng)圖1中的某個網(wǎng)關(guān)處于被NAT路由器或者代理服務(wù)器隔離的局域網(wǎng)中,或者兩個網(wǎng)關(guān)均處于被NAT路由器或者代理服務(wù)器隔離的不同的局域網(wǎng)中,而網(wǎng)守處于廣域網(wǎng)中,則使用傳統(tǒng)的H323協(xié)議就不能夠?qū)崿F(xiàn)這兩個網(wǎng)關(guān)上的電話之間的呼叫。也就是說,H323協(xié)議不能夠穿透普通的NAT路由器或者代理服務(wù)器進行呼叫。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種實現(xiàn)H323協(xié)議穿透NAT路由器或代理服務(wù)器通信的方法,以解決H323協(xié)議不能夠穿透普通NAT路由器或代理服務(wù)器進行通信的問題。
為實現(xiàn)上述目的,本發(fā)明提供一種實現(xiàn)H323協(xié)議穿透NAT路由器或代理服務(wù)器通信的方法,其特點是在被NAT路由器或代理服務(wù)器隔離的局域網(wǎng)和廣域網(wǎng)中分別設(shè)置子代理和主代理,在該子代理與主代理之間建立TCP連接,將H323協(xié)議呼叫信令封裝后穿透NAT路由器或代理服務(wù)器,在子代理和主代理之間進行信令的中繼,并由主代理實現(xiàn)媒體流的轉(zhuǎn)發(fā)。
所述呼叫信令的封裝是將呼叫的H225、H245信令采用擴展TPKT方式封裝,其封裝格式是在RFC1006協(xié)議中的TPKT封裝之前增加報文類型、呼叫索引兩個變量。
所述信令的中繼是由主代理用自己的地址替換呼叫信令的H245信令中的打開邏輯信道(OpenLogicChannel)和打開邏輯信道確認(OpenLogicChannelAck)兩信令報文中通知對方的主被叫的媒體流地址。
所述主代理在中繼信令的過程中記錄主被叫的媒體流地址,用于將接收到的一方的媒體流向另外一方轉(zhuǎn)發(fā)。
經(jīng)封裝的呼叫信令以隧道方式透明的穿透NAT路由器或代理服務(wù)器。
所述主代理集成于廣域網(wǎng)的網(wǎng)守上。
所述子代理集成于局域網(wǎng)的網(wǎng)關(guān)上,也可以為一獨立服務(wù)器。
所述子代理與主代理之間可進行TCP斷鏈的自動檢測和自動重新連接。
所述子代理與主代理為復(fù)數(shù)個時,可自動通過負載均衡策略來選擇適合的呼叫中繼路由,該負載均衡策略是通過子代理和主代理之間定時互相通知各自當(dāng)前的負載情況來實現(xiàn)。
本發(fā)明實現(xiàn)H323協(xié)議穿透NAT路由器或代理服務(wù)器進行通信,即可以使處于局域網(wǎng)中的網(wǎng)關(guān)與廣域網(wǎng)或者其它局域網(wǎng)中的網(wǎng)關(guān)透明地穿透NAT路由器或代理服務(wù)器實現(xiàn)VoIP或視頻通信。采用本發(fā)明,對于現(xiàn)有的使用NAT路由器或代理服務(wù)器進行通信的網(wǎng)絡(luò)幾乎不用進行改動就可以方便的實現(xiàn)VoIP或視頻通信,實現(xiàn)方便,安全性好。
以下結(jié)合附圖與實施例對本發(fā)明作進一步的說明。
圖1為H323協(xié)議實現(xiàn)VoIP通信的原理圖。
圖2為本發(fā)明實施例1的網(wǎng)絡(luò)拓撲圖。
圖3為本發(fā)明實施例2的網(wǎng)絡(luò)拓撲圖。
圖4為本發(fā)明實施例3的網(wǎng)絡(luò)拓撲圖。
具體實施例方式
本發(fā)明用于使H323協(xié)議透明地穿透普通NAT路由器或代理服務(wù)器實現(xiàn)VoIP通信時,在被NAT路由器或代理服務(wù)器隔離的局域網(wǎng)和廣域網(wǎng)中分別設(shè)置子代理和主代理,其中主代理集成于廣域網(wǎng)的網(wǎng)守上,子代理可以集成于局域網(wǎng)的網(wǎng)關(guān)上,也可以使用一臺獨立服務(wù)器實現(xiàn)。本發(fā)明通過在主代理與子代理之間建立TCP(Transmission Control Protocol,傳輸控制協(xié)議)連接將H323協(xié)議呼叫信令封裝后穿透NAT路由器或代理服務(wù)器,在子代理和主代理之間進行信令的中繼,并由主代理實現(xiàn)媒體流的轉(zhuǎn)發(fā)。其具體方式如下所述。
首先在子代理與主代理之間建立TCP連接。呼叫時,先將呼叫的H225、H245信令采用擴展TPKT(The information exchanged between TSAP-peersis in the form of TCP packets termed TPKT,參RFC983,即TPKT是兩端點通過TCP報文交換信息的一種封裝格式)方式封裝,其封裝格式是在RFC 1006的基礎(chǔ)上進行的擴展,即在RFC 1006中定義的TPKT封裝之前增加信令報文類型(H225、H245和Keepalive三種類型)和呼叫索引值兩個變量(具體的TPKT封裝可以參考RFC 1006),這樣可以實現(xiàn)呼叫的快速檢索;再將封裝后的呼叫信令以隧道(tunneling)方式透明的穿透NAT路由器或代理服務(wù)器(亦可以采用具有NAT for H323功能的NAT設(shè)備或者代理設(shè)備實現(xiàn),但是需要改動已有網(wǎng)絡(luò)的NAT或代理設(shè)備),在子代理和主代理之間進行信令的中繼,該中繼是由主代理用自己的地址替換呼叫信令的H245(多媒體通信控制協(xié)議)信令中的OpenLogicChannel(打開邏輯信道)和OpenLogicChannelAck(打開邏輯信道確認)兩信令報文中通知對方的主被叫的媒體流地址實現(xiàn)的,以保證對呼叫信令進行準確轉(zhuǎn)發(fā)。主代理在中繼信令的過程中記錄主被叫的媒體流地址,用于將接收到的一方呼叫的媒體流向另外一方轉(zhuǎn)發(fā),即對于主被叫,其向主代理的地址發(fā)送媒體流,并接收該地址轉(zhuǎn)發(fā)的媒體流。
圖2、3、4是使用本發(fā)明實現(xiàn)被NAT路由器隔離的局域網(wǎng)中的網(wǎng)關(guān)與廣域網(wǎng)中的網(wǎng)關(guān)或其它局域網(wǎng)中的網(wǎng)關(guān)之間VoIP通信的網(wǎng)絡(luò)拓撲圖。
如圖2所示,實施例1實現(xiàn)了被NAT路由器隔離的、分別位于第一、第二局域網(wǎng)LAN1、LAN2及廣域網(wǎng)WAN中的第一、第二、第三網(wǎng)關(guān)GW1、GW2、GW3兩兩之間的VoIP通信。
該實施例1分別于第一、第二局域網(wǎng)LAN1、LAN2中設(shè)置有第一子代理Subproxy1、第二子代理Subproxy2,于廣域網(wǎng)WAN中設(shè)一主代理Mainproxy,其中兩子代理Subproxy1、Subproxy2各自用一臺專門的設(shè)備來實現(xiàn),主代理Mainproxy則集成于廣域網(wǎng)WAN的網(wǎng)守GK3上。子代理與主代理之間建立TCP連接,將H323協(xié)議呼叫信令封裝后穿透NAT路由器或代理服務(wù)器,在子代理和主代理之間進行信令的中繼,并由主代理實現(xiàn)媒體流的轉(zhuǎn)發(fā)。該實施例1實現(xiàn)H323協(xié)議穿透普通NAT路由器進行呼叫時典型的呼叫流程如下所描述。
第一局域網(wǎng)LAN1的第一網(wǎng)關(guān)GW1發(fā)起呼叫時,向其第一網(wǎng)守GK1尋址,第一網(wǎng)守GK1發(fā)現(xiàn)本地網(wǎng)絡(luò)LAN1中沒有匹配的被叫網(wǎng)關(guān),返回其第一子代理SubProxy1的中繼呼叫地址,第一網(wǎng)關(guān)GW1則向該第一子代理SubProxy1的中繼呼叫地址發(fā)起呼叫,該第一子代理SubProxy1通過其與廣域網(wǎng)WAN中主代理MainProxy建立的TCP連接把呼叫信令中繼到主代理MainProxy。
該主代理MainProxy收到開始呼叫的信令后向其所在廣域網(wǎng)WAN的第三網(wǎng)守GK3尋址,如果該第三網(wǎng)守GK3匹配被叫號碼成功,說明被叫網(wǎng)關(guān)在廣域網(wǎng)WAN中,例如第三網(wǎng)關(guān)GW3,這時就向該網(wǎng)關(guān)GW3發(fā)起呼叫并轉(zhuǎn)發(fā)呼叫信令;如果第三網(wǎng)守GK3匹配到另一個網(wǎng)絡(luò),如第二局域網(wǎng)LAN2的技術(shù)前綴,則通過其與該局域網(wǎng)的第二子代理SubProxy2建立的TCP連接把呼叫信令中繼到該第二子代理SubProxy2;如果第三網(wǎng)關(guān)GK3匹配失敗則說明呼叫尋址失敗,釋放該呼叫。
第二子代理SubProxy2收到開始呼叫的信令后向其第二網(wǎng)守GK2尋址,該第二網(wǎng)守GK2匹配被叫號碼成功則返回被叫網(wǎng)關(guān)(例如第二網(wǎng)關(guān)GW2)的呼叫信令地址,這時第二子代理SubProxy2就向該網(wǎng)關(guān)發(fā)起呼叫并轉(zhuǎn)發(fā)呼叫信令;這樣就成功的建立了一次呼叫的路由。
若呼叫來自廣域網(wǎng)WAN或第二局域網(wǎng)LAN2,其實現(xiàn)H323協(xié)議穿透普通NAT路由器進行呼叫的過程也是類似的。
如圖3所示,本發(fā)明實施例2實現(xiàn)了被NAT路由器隔離的、分別位于兩局域網(wǎng)中的兩網(wǎng)關(guān)(GW1和GW2)之間的呼叫。與實施例1的不同之處在于實施例2的兩局域網(wǎng)中所設(shè)子代理SubProxy1、SubProxy2是分別集成于其各自網(wǎng)關(guān)GW1、GW2中的。其呼叫流程可參照實施例1所述。
如圖4所示,本發(fā)明實施例3實現(xiàn)了被NAT路由器隔離的、分別位于局域網(wǎng)和廣域網(wǎng)中的兩網(wǎng)關(guān)(GW1與GW3)之間的呼叫。其中局域網(wǎng)中所設(shè)子代理SubProxy集成在其網(wǎng)關(guān)GW1中,廣域網(wǎng)中主代理MainProxy集成在網(wǎng)守GK3中。其呼叫流程亦可參照實施例1所述。
本發(fā)明所設(shè)子代理與主代理之間還可進行TCP斷鏈的自動檢測和自動重新連接。當(dāng)子代理與主代理為多個時,可自動通過負載均衡策略來選擇適合的呼叫中繼路由,該負載均衡策略是通過子代理和主代理之間定時互相通知各自當(dāng)前的負載情況來實現(xiàn)。
本發(fā)明除了用于VoIP的通信,還可以應(yīng)用于視頻通信。
權(quán)利要求
1.一種實現(xiàn)H323協(xié)議穿透NAT路由器或代理服務(wù)器通信的方法,其特征在于在被NAT路由器或代理服務(wù)器隔離的局域網(wǎng)和廣域網(wǎng)中分別設(shè)置子代理和主代理,在該子代理與主代理之間建立TCP連接,將H323協(xié)議呼叫信令封裝后穿透NAT路由器或代理服務(wù)器,在子代理和主代理之間進行信令的中繼,并由主代理實現(xiàn)媒體流的轉(zhuǎn)發(fā)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于所述呼叫信令的封裝是將呼叫的H225、H245信令采用擴展TPKT方式封裝,其封裝格式是在RFC1006協(xié)議中的TPKT封裝之前增加信令報文類型、呼叫索引值兩個變量。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于所述信令的中繼是由主代理用自己的地址替換呼叫信令的H245信令中的打開邏輯信道(OpenLogicChannel)和打開邏輯信道確認(OpenLogicChannelAck)兩信令報文中通知對方的主被叫的媒體流地址。
4.根據(jù)權(quán)利要求1或3所述的方法,其特征在于所述主代理在中繼信令的過程中記錄主被叫的媒體流地址,用于將接收到的一方的媒體流向另外一方轉(zhuǎn)發(fā)。
5.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于經(jīng)封裝的呼叫信令以隧道方式透明的穿透NAT路由器或代理服務(wù)器。
6.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于所述主代理集成于廣域網(wǎng)的網(wǎng)守上。
7.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于所述子代理集成于局域網(wǎng)的網(wǎng)關(guān)上。
8.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于所述子代理為一獨立服務(wù)器。
9.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于所述子代理與主代理之間可進行TCP斷鏈的自動檢測和自動重新連接。
10.根據(jù)權(quán)利要求1、2或3所述的方法,其特征在于所述子代理與主代理為復(fù)數(shù)個時,可自動通過負載均衡策略來選擇適合的呼叫中繼路由,該負載均衡策略是通過子代理和主代理之間定時互相通知各自當(dāng)前的負載情況來實現(xiàn)。
全文摘要
本發(fā)明涉及一種實現(xiàn)H323協(xié)議穿透NAT路由器或代理服務(wù)器通信的方法,在被NAT路由器或代理服務(wù)器隔離的局域網(wǎng)和廣域網(wǎng)中分別設(shè)置子代理和主代理,在該子代理與主代理之間建立TCP連接,將H323協(xié)議呼叫信令封裝后穿透NAT路由器或代理服務(wù)器,在子代理和主代理之間進行信令的中繼,并由主代理實現(xiàn)媒體流的轉(zhuǎn)發(fā)。本發(fā)明實現(xiàn)H323協(xié)議穿透NAT路由器或代理服務(wù)器進行通信,即可以使處于局域網(wǎng)中的網(wǎng)關(guān)與廣域網(wǎng)或者其它局域網(wǎng)中的網(wǎng)關(guān)透明地穿透NAT路由器或代理服務(wù)器實現(xiàn)VoIP或視頻通信,對現(xiàn)有的使用NAT路由器或代理服務(wù)器Proxy進行通信的網(wǎng)絡(luò)改動小,實現(xiàn)方便,安全性好。
文檔編號H04L29/06GK1780288SQ200410084630
公開日2006年5月31日 申請日期2004年11月26日 優(yōu)先權(quán)日2004年11月26日
發(fā)明者汪革, 王斌, 趙永剛 申請人:上海博達數(shù)據(jù)通信有限公司