專利名稱:網絡可視電話跨網關解決方法
技術領域:
本發明涉及網絡可視電話通訊,具體涉及網絡可視電話的跨網關多媒體通訊領域。
背景技術:
可視電話在通信系統中用來提供雙向的音頻和視頻通信鏈路,能使用戶達到視覺和聽覺的雙重通訊效果,較普通電話具有不可比擬的優勢,已經表現出了廣闊的發展前景。隨著國際電信聯盟組織(ITU)針對多媒體可視電話系統的ITU-H.32X系列國際標準的公布,可視電話在國內外被紛紛開發出來并很快投入了使用,其發展迅速,日趨普及。隨著因特網和寬帶技術的發展,網絡可視電話也得到了迅猛的發展。然而,由于網絡發展初期技術上的短視,也產生了一些問題,嚴重影響了網絡可視電話的發展。
現行的IPV4的IP地址是32位的,根據頭幾位再劃分為A、B、C三類地址;但由于因特網的迅猛發展,IP資源日漸枯竭,可供分配的IP地址越來越少,跟一日千里的因特網發展嚴重沖突,在IPV6還遠未能全面升級的情況下,惟有以代理服務器的方式,實行內部網地址跟公網地址進行轉化而實現接入因特網,中介作用的代理服務器就是一個網關(NAT網絡地址翻譯)。
在IP資源可憐的情況下,惟有以網關甚至多層網關的方式接入寬帶網。但是由于多媒體通訊系統的協議如H.323、SIP等要求進行業務的雙方必須有一方有公網的IP地址,但是現在的寬帶中很少有用戶能符合這個要求,這個問題主要是當初技術可是發展的時候未能預料長遠而造成的。
問題產生的原因主要是H.323協議只考慮同一IP地址域,而媒體的RTP(實時傳輸協議)端口不固定,需要通過協商確定;終端的RAS(遠程訪問服務)地址、Q931地址、H.245地址和RTP地址封裝在消息包內,告訴對端,對端得到的是設備的本機地址和本機端口;如果終端在局網內部,對端將得到局網的址址,無法路由。
這就產生了公網呼NAT和NAT呼NAT時候的信令通道問題從NAT到公網的呼叫,有不少方法可以解決,當呼叫一個在NAT后的用戶時,無法尋找被叫地址;GK(網守)地址解釋有誤當一個在NAT后的用戶連接到GK,GK得到的用戶地址是錯誤的;以及NAT內固定端口號的Q931(TCP)穿越問題等。
此外在媒體流的傳輸上也存在這樣的問題在NAT內的終端無法收到媒體流;NAT內非固定端口號的RTP(UDP)穿越問題。
現在微軟公司的網絡會議等多媒體通訊系統就是處于這種尷尬的景況~跨網關成為頭疼的難題。
現有技術中有通過H.323協議的擴展字段來對其進行解決的方法,但是并不完美,存在很多缺點如果不增加流程,單通過對H.323消息進行擴展,是不能解決的;NAT內的終端不知道NAT的地址映射關系,NAT的地址映射對它而言是透明的;改變/增加H.323協議的流程是不可取,不應改動呼叫的有限狀態機FSM;H.323協議格式為嚴格的ASN.1,不容易進行擴展,并在擴展之后,不易進行修改。
本發明的目的便是提供一種網絡可視電話的跨網關多媒體通訊解決方案,來解決目前存在的無法穿越網關進行多媒體通訊的問題。
發明內容
在因特網上,解決網絡電話跨NAT問題的關鍵是如何在連入因特網的兩臺主機間建立UDP雙向通道。
本發明的實施方案是這樣實現的在因特網上設立一臺udp server(命名為connect type check server,簡稱CTC Server),來確定一臺主機的接入方式。在因特網上建立一臺user server,每個客戶機都連接到user server,客戶機可以通過user server做控制數據交換,客戶機通過CTC Server得到了自己的接入方式。
打開CTC Server的兩個端口x、y,在端口x不停的接收客戶機發來的udp包,收到一個udp包后,取出udp包的源地址,從端口x、y分別回送一個包含了源地址的udp包給客戶機,來判斷客戶機連入網絡的方式。
對比現有技術,本發明所述方法的優點在于
通過私有協議很容易地實現了跨網關的網絡可視電話通訊問題,通過NAT穿越協議,獲得NAT地址映射關系,由于采用的是文本的方式,比二進制的ASN.1在協議的制定和修改上,具有更大的靈活性。
另外,使用于其它非H.323協議,例如Megaco(媒體網關協議)、SIP(會話初始化協議),其對立于H.323協議,易于兼容標準H.323設備。
結合附圖閱讀下面的詳細描述,可以更明顯地理解本發明的目的、特征及其優點,其中圖1是本發明所述嚴格NAT和不嚴格NAT的工作原理圖。
具體實施例方式
以下將參照附圖來說明本發明的優選實施方案。下面的描述中,那些眾所周知的功能或結構將不再詳細說明,以免將會混擾本發明的實質性內容。
NAT在做地址翻譯時會動態建立一張地址映射表Lan_ipLan_port|Nat_ipNat_port|Des_ipDes_port其中Lan_ipLan_port代表內部網絡的私有地址Nat_ipNat_port代表NAT上對應的地址和端口Des_ipDes_port代表因特網上的目標地址以下,舉例說明NAT的工作原理,假設內部網絡的地址段為私有地址段192.168.0.x,其中一臺計算機的IP地址為192.168.0.1,NAT的因特網地址202.1.1.1。
當192.168.0.1發出一個UDP包給Des_ipDes_port時(假設端口為5080),NAT分配202.1.1.1的一個端口,假設為2222,分配給該用戶;NAT在地址映射表中為該通道建立一個表項,表項中的內容為源地址192.168.0.15080、已分配資源202.1.1.12222、目標地址Des_ipDes_port;NAT將該UDP包源地址替換為202.1.1.12222,并將數據包發出;當由數據返回到NAT時,返回的數據包的目的地址為202.1.1.12222,NAT根據這個地址在地址映射表中查出對應的地址/端口192.168.0.15080;NAT將返回的數據包中的目的地址/端口改為192.168.0.15080,并將IP包發出。整個地址翻譯過程完成。
需要說明的是,有兩種類型的NAT。
第一類NAT從因特網收到UDP包后,在地址映射表中查出對應的表項,檢驗UDP包的源地址是否與表項中的Des_ipDes_port匹配。如果匹配,替換目的地址后,發送到內部網;否則拋棄。簡稱為嚴格NAT。如附圖1所示,嚴格NAT將從CTC(連接類型校驗)模塊5081發來的UDP包拋棄了。
第二類NAT從因特網收到UDP包后,在地址映射表中查出對應的表項,不做檢驗,直接替換目的地址,發送到內部網。簡稱為不嚴格NAT。如附圖1所示,不嚴格NAT將從CTC模塊5081發來的UDP包發送到內部網。
此外,還有一種NAT過濾了所有UDP包,這種情況不予考慮。
在因特網上設立一臺udp server(命名為connect type check server,簡稱CTC Server),打開兩個端口x、y,在端口x不停的接收客戶機發來的udp包,收到一個udp包后,取出udp包的源地址,從端口x、y分別回送一個包含了源地址的udp包給客戶機。
如果客戶機不能收到回送的udp包,就說明客戶機沒有連入因特網的UDP通道,這種情況不予考慮。如果客戶機收到的udp包中包含的地址和客戶機本機地址一致,說明客戶機直接連入因特網。如果地址不一致,說明客戶機通過NAT連入因特網如果只能收到端口x發出的udp包,說明NAT屬于嚴格NAT;如果端口x、y發出的udp包都能收到,說明NAT屬于不嚴格NAT,同時得到了客戶機在NAT上映射的地址。
其中在公網上放置的解決地址映射問題相關服務器,可以和GK捆綁,也可以獨立。
在因特網上建立一臺user server,每個客戶機都連接到user server,客戶機可以通過user server做控制數據交換,客戶機通過CTC Server得到了自己的接入方式,如果通過不嚴格NAT接入的,記錄下自己在NAT上映射的地址。假設客戶機A通過user server呼叫客戶機B,有9種情況,下面分別就每種情況說明怎樣實現跨NAT的網絡電話,也就是如何在連入因特網的兩臺主機間建立UDP雙向通道。
1.A直接連入因特網,B直接連入因特網A、B交換地址,發送音視頻媒體數據時直接使用交換得到的地址。UDP雙向通道建立。
2.A直接連入因特網,B通過嚴格NAT連入因特網A傳送自己的地址給B,B接受呼叫,同時發送音視頻數據給A,A收到B的數據包中可以得到B在NAT上映射的地址,A發送數據到此地址,NAT收到后,發送給B。UDP雙向通道建立。
3.A直接連入因特網,B通過不嚴格NAT連入因特網A傳送自己的地址給B,B傳送自己在NAT上映射的地址給A,發送音視頻媒體數據時直接使用交換得到的地址。UDP雙向通道建立。
4.A通過嚴格NAT連入因特網,B直接連入因特網A呼叫B,B傳送自己的地址給A,A收到B的地址后發送音視頻數據給B,B收到A的數據包中可以得到A在NAT上映射的地址,B發送數據到此地址,NAT收到后,發送給A。UDP雙向通道建立。
5.A通過嚴格NAT連入因特網,B通過嚴格NAT連入因特網A呼叫B,B請求user server,user server在udp transmit server得到一個空閑的因特網udp agent address(簡稱IUAA)回送給B,B將IUAA發送給A,A、B同時發送音視頻數據到IUAA,IUAA交換A、B的音視頻數據。UDP雙向通道建立。
6.A通過嚴格NAT連入因特網,B通過不嚴格NAT連入因特網A呼叫B,B傳送自己在NAT上映射的地址給A,A收到B的映射地址后發送音視頻數據給NAT,B的NAT收到后發給B,B收到A的數據包中可以得到A在NAT上映射的地址,B發送數據到此地址,A的NAT收到后發送給A。UDP雙向通道建立。
7.A通過不嚴格NAT連入因特網,B直接連入因特網A傳送自己在NAT上映射的地址給B,B傳送自己的地址給A,發送音視頻媒體數據時直接使用交換得到的地址。UDP雙向通道建立。
8.A通過不嚴格NAT連入因特網,B通過嚴格NAT連入因特網A傳送自己在NAT上映射的地址給B,B接受呼叫,同時發送音視頻數據到此地址,A的NAT收到后發給A,A收到B的數據包中可以得到B在NAT上映射的地址,A發送數據到此地址,B的NAT收到后發送給B。UDP雙向通道建立。
9.A通過不嚴格NAT連入因特網,B通過不嚴格NAT連入因特網A、B交換各自在NAT上映射的地址,發送音視頻媒體數據時直接使用交換得到的地址。UDP雙向通道建立。
至此,9種情況下建立兩臺主機間的UDP雙向通道,都提供了解決方案,也就是說解決了網絡電話跨NAT的問題。
顯而易見,本發明所述的網絡可視電話的跨網關多媒體通訊解決方法,不僅僅限于說明書和實施方式中所列運用,它完全可以被適用于各種適合本發明之領域,對于熟悉本領域的人員而言可容易地實現另外的優點和進行修改,因此在不背離權利要求及等同范圍所限定的一般概念的精神和范圍的情況下,本發明并不限于特定的細節、代表性的設備和這里示出與描述的圖示示例。
權利要求
1.一種網絡可視電話的跨網關多媒體通訊解決方法,通過在連入因特網的兩臺主機間建立UDP雙向通道來實現跨網關多媒體通訊,其特征在于在因特網上設立一臺udp server(命名為connect type check server,簡稱CTC Server),來確定一臺主機的接入方式;在因特網上建立一臺userserver,每個客戶機都連接到user server,客戶機可以通過user server做控制數據交換,客戶機通過CTC Server得到了自己的接入方式;打開所述CTCServer的兩個端口x、y,在端口x不停的接收客戶機發來的udp包,收到一個udp包后,取出udp包的源地址,從端口x、y分別回送一個包含了源地址的udp包給客戶機,來判斷客戶機連入網絡的方式,進而得到客戶機的地址。
2.根據權利要求1所述的網絡可視電話的跨網關多媒體通訊解決方法,其特征在于如果客戶機不能收到回送的udp包,就說明客戶機沒有連入因特網的UDP通道,這種情況不予考慮;如果客戶機收到的udp包中包含的地址和客戶機本機地址一致,說明客戶機直接連入因特網;如果地址不一致,說明客戶機通過NAT連入因特網如果只能收到端口x發出的udp包,說明NAT屬于嚴格NAT;如果端口x、y發出的udp包都能收到,說明NAT屬于不嚴格NAT,同時得到了客戶機在NAT上映射的地址。
3.根據權利要求1所述的網絡可視電話的跨網關多媒體通訊解決方法,其特征在于其中在公網上放置的解決地址映射問題相關服務器,可以和GK捆綁,也可以獨立。
4.根據權利要求1所述的網絡可視電話的跨網關多媒體通訊解決方法,其特征在于其中所述在因特網上建立一臺user server,每個客戶機都連接到user server,客戶機可以通過user server做控制數據交換,客戶機通過CTC Server得到了自己的接入方式,如果是通過不嚴格NAT接入的,則記錄下自己在NAT上映射的地址。
5.根據權利要求2所述的網絡可視電話的跨網關多媒體通訊解決方法,其特征在于如果客戶機A通過user server呼叫客戶機B時,客戶機A是直接連入因特網的,則當B直接連入因特網時A、B交換地址,發送音視頻媒體數據時直接使用交換得到的地址,UDP雙向通道建立;當B通過嚴格NAT連入因特網時A傳送自己的地址給B,B接受呼叫,同時發送音視頻數據給A,A收到B的數據包中可以得到B在NAT上映射的地址,A發送數據到此地址,NAT收到后,發送給B,UDP雙向通道建立;當B通過不嚴格NAT連入因特網時A傳送自己的地址給B,B傳送自己在NAT上映射的地址給A,發送音視頻媒體數據時直接使用交換得到的地址,UDP雙向通道建立。
6.根據權利要求2所述的網絡可視電話的跨網關多媒體通訊解決方法,其特征在于如果客戶機A通過user server呼叫客戶機B,客戶機A是通過嚴格NAT連入因特網的,則當B直接連入因特網時A呼叫B,B傳送自己的地址給A,A收到B的地址后發送音視頻數據給B,B收到A的數據包中可以得到A在NAT上映射的地址,B發送數據到此地址,NAT收到后,發送給A,UDP雙向通道建立;當B通過嚴格NAT連入因特網時A呼叫B,B請求user server,userserver在udp transmit server得到一個空閑的因特網udp agentaddress(簡稱IUAA)回送給B,B將IUAA發送給A,A、B同時發送音視頻數據到IUAA,IUAA交換A、B的音視頻數據,UDP雙向通道建立;當B通過不嚴格NAT連入因特網時A呼叫B,B傳送自己在NAT上映射的地址給A,A收到B的映射地址后發送音視頻數據給NAT,B的NAT收到后發給B,B收到A的數據包中可以得到A在NAT上映射的地址,B發送數據到此地址,A的NAT收到后發送給A,UDP雙向通道建立。
7.根據權利要求2所述的網絡可視電話的跨網關多媒體通訊解決方法,其特征在于如果客戶機A通過user server呼叫客戶機B,客戶機A是通過不嚴格NAT連入因特網的,則當B直接連入因特網時A傳送自己在NAT上映射的地址給B,B傳送自己的地址給A,發送音視頻媒體數據時直接使用交換得到的地址,UDP雙向通道建立;當B通過嚴格NAT連入因特網時A傳送自己在NAT上映射的地址給B,B接受呼叫,同時發送音視頻數據到此地址,A的NAT收到后發給A,A收到B的數據包中可以得到B在NAT上映射的地址,A發送數據到此地址,B的NAT收到后發送給B,UDP雙向通道建立;當B通過不嚴格NAT連入因特網時A、B交換各自在NAT上映射的地址,發送音視頻媒體數據時直接使用交換得到的地址,UDP雙向通道建立。
全文摘要
一種網絡可視電話的跨網關解決方法,涉及網絡可視電話的多媒體通訊領域。本發明的目的在于來解決目前存在的無法穿越網關進行多媒體通訊的問題。本發明采用如下技術方案來實現該技術目的在因特網上設立一臺udp server,來確定一臺主機的接入方式;在因特網上建立一臺user server,每個客戶機都連接到user server,客戶機可以通過user server做控制數據交換,客戶機通過CTC Server得到了自己的接入方式;打開所述CTC Server的兩個端口x、y,在端口x不停的接收客戶機發來的udp包,收到一個udp包后,取出udp包的源地址,從端口x、y分別回送一個包含了源地址的udp包給客戶機,來判斷客戶機連入網絡的方式,進而得到客戶機的地址。
文檔編號H04N7/14GK1492680SQ02146340
公開日2004年4月28日 申請日期2002年10月24日 優先權日2002年10月24日
發明者匡學慶, 薛天雄, 鄧中翰 申請人:北京中星微電子有限公司