專利名稱:一種使媒體流穿越網絡地址轉換器的方法
技術領域:
本發明涉及軟交換技術領域,尤其涉及公網、私網對通技術領域。
背景技術:
傳統的通訊業務是采用電路交換技術,通話雙方通過建立一條固定帶寬的電路實現提供業務,這種方式下帶寬利用率底,通訊的成本高,而且增值業務的開發、推廣比較困難。
目前,許多新開發的多媒體通訊業務采用分組交換技術,承載網絡是IP分組交換網絡,比如因特網。分組交換的優點是網絡利用率高,通訊的成本低,而且由于使用了開放式的架構,新業務的開發、推廣比較快速。
當使用IP網絡作為承載網絡時,通常使用NAT(網絡地址轉換器)連接私網(或稱內網、局域網)和公網(或稱外網、因特網)。NAT即網絡地址轉換器或網絡地址代理器,用來實現私有地址與公有地址的轉換;私有地址是指內部局域網絡的IP地址;公有地址是指局域網的外部IP地址。私有網絡內的用戶要使用外部網絡的服務時,需要通過NAT得到一個公有地址和端口號,這個轉換的對應關系記錄在NAT(網絡地址轉換器)地址端口對應表中,包括私有的IP地址和發往外部的源端口號、以及由NAT分配的一個公有地址和端口號。在公網的節點看來,這個私網用戶的地址就是NAT轉換后的公網地址,如果要向這個私網用戶發送數據,就直接發給這個公網地址和端口,NAT設備通過查詢地址端口對應表中存儲的對應關系,將數據轉發給私網用戶。
當用戶使用IP網絡提供的多媒體通訊業務時,如果主被叫用戶在同一網絡內,則不需要通過NAT設備,由于信令和媒體使用的IP地址和端口號在呼叫過程中可以確定的,所以主被叫用戶都可以準確得到對端的IP地址和端口號,媒體流交互不存在問題。但是當主被叫用戶不在同一網絡內時,由于在公網中無法尋址到私網地址,因此需要通過NAT設備進行IP地址公私網轉換。但是由于多媒體呼叫所采取的協議幾乎都是在呼叫中動態協商對端IP地址和端口,因此當有NAT設備存在時,由于NAT只能轉換包頭的IP地址,不可能更換包凈荷中的相關內容(其中包涵了私網的地址信息),因此會遇到以下問題私網用戶向公網用戶發起呼叫時,可能會出現單通或無法通話;公網用戶向私網用戶發起呼叫時,通話無法建立。
原因在于當私網用戶向公網用戶發起呼叫時,由于信令通道所使用的IP地址和端口一般是固定不變的,而且信令是一直存在的,因此通過NAT轉換,轉換為公網IP地址和端口后,私網用戶的呼叫信令可以正確發到公網,但由于呼叫信令在每次呼叫時才動態協商媒體端口,并在信令包中攜帶,因此信令包的數據部分中包含的媒體信息中的源地址和源端口號是屬于私網的,NAT設備只能對IP包的源地址和源端口號進行轉換,無法修改數據部分,所以被叫方無法獲知主叫方的媒體信息,造成不通或單通;當公網用戶向私網用戶發起呼叫時,服務器查詢到的被叫的呼叫信令使用的地址是私網地址,無法建立呼叫連接。
相關現有技術文獻有標題為“私有網絡的IP語音業務實現方法及系統”的第01135610.3號中國專利申請,該專利文獻描述的方法是通過增加地址代理服務器,并在私網終端登錄階段與地址代理服務器建立TCP/UDP(傳輸控制協議/用戶數據包協議)數據連接,把私網終端和公網設備之間完成通話所需要建立的通道,包括呼叫信令通道和媒體通道,在登錄階段就預先建立,并用每個通道在經過NAT轉換之后的源地址源端口號(公網地址)代替相應的私網地址,實際起到了預先建立呼叫信令通道和媒體通道的作用,來解決信令、媒體互通問題。該方法的缺點是私網中的終端只要向公網中服務器注冊,即使不進行呼叫也會占用大量的NAT公網資源,這會造成資源的浪費;另外,該方法為了彌補NAT協議中只能修改IP地址不能修改信令內容的缺點,對標準的呼叫協議(指MGCP媒體網關控制協議)進行了修改,不利于對通。
另外,也有的現有技術是通過一個BGW(邊界網關設備)進行公私網地址轉換和信令處理,而不僅僅通過NAT設備進行IP地址轉換。BGW可以修改呼叫信令的數據部分中包含的媒體信息(包括IP地址和端口號)。BGW可以直接攜帶私網內的MG(媒體網關)設備,也可以通過NAT將私網中的MG進行一次轉換后再接入。在BGW(邊界網關設備)上存儲了私網設備的IP地址和端口和公網的IP地址和端口的映射關系。呼叫信令的數據部分中的媒體信息經過NAT設備后,盡管其中的IP凈荷部分沒有被替換,但發給BGW時將替換為經過公網的IP地址和端口號,公網內的設備如果需要向私網設備發送包,將使用這個轉換后的IP地址和端口號作為目的IP地址和端口號,映射關系在呼叫過程中建立,呼叫完成后,當來自公網設備的媒體流到來時,由BGW根據地址、端口映射關系將媒體流發到合適的NAT端口,再發到私網設備上,當需要把媒體流發到公網上時,媒體流首先發到NAT,再發到BGW設備上,BGW設備根據地址、端口映射關系使用合適的公網地址和端口號將媒體流發到公網上。不過,該現有技術存在以下缺陷BGW只有在私網內的設備通過NAT發送過媒體包之后才能獲得完整的主被叫用戶的IP地址信息。如果私網設備狀態始終不發媒體包(包括“只收不發”狀或“不收不發”狀態),那么NAT就無法為這個媒體地址轉換為一個對外的地址,BGW也就無法建立這種“映射關系”,那來自對端的媒體流將由于找不到地址而被丟棄,則私網設備將無法收到來自公網設備的媒體包,造成通話單通。
發明內容
本發明的目的是為了解決現有技術中公網、私網媒體流互通困難的問題,使媒體流在所有情況下都能夠順利穿越網絡地址轉換器。
本發明技術方案如下第一步用戶發起經過公網、私網的呼叫,多媒體呼叫控制器將遠端媒體信息帶給私網設備;第二步私網設備通過標準的協議交互流程獲得遠端媒體信息和本地媒體信息;第三步若私網設備的媒體流狀態是允許發送,則媒體流正常交互;第四步若私網設備的媒體流狀態是不允許發送,則通過獲得的遠端IP地址和端口,向遠端用戶發送包;第五步NAT收到這些包后,在呼叫建立階段動態分配公網的地址和端口;第六步BGW獲得公、私網IP地址和UDP端口的“映射關系”,在后續的信令交互過程中,使用經過NAT轉換過的IP地址和端口號替換掉呼叫信令的數據部分中的IP地址和端口號;第七步當呼叫成功建立后,BGW根據公、私網IP地址和UDP端口的“映射關系”進行媒體包轉發;第八步當呼叫過程中,如果本端媒體流的狀態沒有被修改為允許發送狀態,則定期重復第四步,以保持NAT設備中的映射。
本發明技術方案還包括第九步當呼叫釋放后,本端設備停止向NAT設備發送包,NAT設備將自動釋放內部映射。
其中第七步中當屬于私網設備呼叫公網設備或其他私網設備流程時,媒體包到來時,BGW根據公、私網IP地址和UDP端口的“映射關系”,把媒體包轉發到NAT設備的適當的端口,再轉發到私網設備上;當屬于公網設備呼叫私網設備流程時,發送媒體包時,媒體包首先發到NAT設備上,再轉發到BGW,BGW根據公、私網IP地址和UDP端口的“映射關系”,把媒體包填上公網的IP地址和端口號,再轉發到公網上。
其中第二步中所述標準的協議包括H.248、MGCP、SIP、H.323等協議。
本發明通過私網設備在獲得了遠端媒體信息和本地媒體信息后就向對端用戶設備發送包,從而促使NAT設備對該媒體流創建對應的對外地址,為通話建立起“映射關系”,實現媒體順利收發,解決了現有技術中存在的公網、私網媒體流互通困難的問題。
另外本方法中,媒體流使用NAT,外網IP地址和端口是隨著呼叫動態分配的,呼叫結束后會釋放掉,不存在資源占用和浪費問題。
本方法可以適用于現有的標準協議中,如H.248、MGCP、SIP、H.323等,不需要對標準呼叫控制協議作任何修改,有利于不同廠家的設備互通。
圖1是本發明方法流程圖;圖2是應用本發明方法的一個實施例的系統示意圖。
具體實施例方式
本發明特點在于MG設備或IP電話終端在呼叫過程中,當本地、遠端媒體信息完備,即本地IP、本地UDP端口、遠端IP、遠端UDP端口都存在時,就發出若干媒體包,促使NAT設備創建私網地址的映射關系,使BGW能夠獲得公、私網IP地址和UDP端口的映射關系,有足夠的信息收發包。
請參照圖1,本發明方法流程如下第一步私網內的設備(即私網設備)經過NAT設備、BGW設備呼叫其它公網或私網的用戶,多媒體呼叫控制器找到被叫用戶,并將被叫用戶的媒體信息(遠端媒體信息)帶給私網內的設備;或者是公網的用戶在多媒體呼叫控制器的控制下,經過BGW設備、NAT設備呼叫私網內的設備上的用戶,多媒體呼叫控制器找到被叫的用戶并將主叫用戶的媒體信息(遠端媒體信息)帶給私網內的設備;第二步私網內的設備通過標準的協議交互流程(如H.248、MGCP、SIP、H.323等)獲得遠端媒體信息和本地媒體信息(私網內的設備所知道的自身的媒體信息);第三步如果私網中的設備的媒體流的狀態是允許發送,則媒體流可以正常交互;第四步如果私網內的設備的媒體流的狀態是不允許發送,則通過獲得的遠端IP地址和端口,向遠端用戶發送包;第五步NAT收到這些包后,在呼叫建立階段動態分配公網的地址和端口第六步BGW獲得公、私網IP地址和UDP端口的“映射關系”,在后續的信令交互過程中,使用經過NAT轉換過的IP地址和端口號替換掉呼叫信令的數據部分中的IP地址和端口號;第七步當呼叫成功建立后,媒體包到來時,BGW根據公、私網IP地址和UDP端口的“映射關系”,把媒體包轉發到NAT設備的適當的端口,再轉發到私網設備上;或者是發送媒體包時,媒體包首先發到NAT設備上,再轉發到BGW,BGW根據公、私網IP地址和UDP端口的“映射關系”,把媒體包填上公網的IP地址和端口號,再轉發到公網上;第八步當呼叫過程中,如果本端媒體流的狀態沒有被修改為允許發送狀態,則定期重復第四步,以保持NAT設備中的映射;第九步當呼叫釋放后,本端設備停止向NAT設備發送包,NAT設備將會自動釋放內部映射,這樣NAT可以將資源留給其它多媒體呼叫使用。
圖2為應用本發明方法的一個實施例的系統示意圖,誠然,本發明還可以應用于除IAD(綜合接入設備)外的其它媒體網關設備或IP多媒體終端設備。
步驟一內網中的IAD上的用戶摘機,信令通過NAT,再通過BGW被送到多媒體呼叫控制器;步驟二用戶聽撥號音,撥號,被叫號碼被送到多媒體呼叫控制器;步驟三多媒體呼叫控制器找到被叫,發現是公網上的一個MG上的用戶;步驟四多媒體呼叫控制器告知IAD媒體信息,IAD通過媒體端口發送包,包首先到達NAT;步驟五NAT為包動態創建外網地址和端口;步驟六包通過NAT被送到BGW;步驟七BGW提取包中的IP地址和端口信息,刷新數據映射關系;步驟八多媒體呼叫控制器對被叫振鈴,通過MG向IAD用戶發送回鈴音,回鈴音以媒體流的形式發送,首先被發送到BGW,再由BGW把媒體流發到合適的NAT端口;步驟九NAT將媒體流轉發給IAD。
步驟十IAD上的用戶(主叫用戶)聽到回鈴音;步驟十一MG上的用戶(被叫用戶)摘機,雙方通話。
在步驟八之前,如果沒有步驟四、步驟五、步驟六、步驟七等操作,BGW將無法知道把來自MG的媒體流發到NAT的哪個端口,而在本實施例中,BGW由于已經獲得了正確的映射關系,NAT上的媒體通路已經打通,BGW將把媒體流發到合適的NAT端口。
權利要求
1.一種使媒體流穿越網絡地址轉換器的方法,其特征在于包括以下步驟第一步用戶發起經過公網、私網的呼叫,多媒體呼叫控制器將遠端媒體信息帶給私網設備;第二步私網設備通過標準的協議交互流程獲得遠端媒體信息和本地媒體信息;第三步若私網設備的媒體流狀態是允許發送,則媒體流正常交互;第四步若私網設備的媒體流狀態是不允許發送,則通過獲得的遠端IP地址和端口,向遠端用戶發送包;第五步NAT收到這些包后,在呼叫建立階段動態分配公網的地址和端口;第六步BGW獲得公、私網IP地址和UDP端口的“映射關系”,在后續的信令交互過程中,使用經過NAT轉換過的IP地址和端口號替換掉呼叫信令的數據部分中的IP地址和端口號;第七步當呼叫成功建立后,BGW根據公、私網IP地址和UDP端口的“映射關系”進行媒體包轉發;第八步當呼叫過程中,如果本端媒體流的狀態沒有被修改為允許發送狀態,則定期重復第四步,以保持NAT設備中的映射。
2.根據權利要求1所述的方法,其特征在于還包括第九步當呼叫釋放后,本端設備停止向NAT設備發送包,NAT設備將自動釋放內部映射。
3.根據權利要求1所述的方法,其特征在于第七步中當屬于私網設備呼叫公網設備或其他私網設備流程時,媒體包到來時,BGW根據公、私網IP地址和UDP端口的“映射關系”,把媒體包轉發到NAT設備的適當的端口,再轉發到私網設備上。
4.根據權利要求1所述的方法,其特征在于第七步中當屬于公網設備呼叫私網設備流程時,發送媒體包時,媒體包首先發到NAT設備上,再轉發到BGW,BGW根據公、私網IP地址和UDP端口的“映射關系”,把媒體包填上公網的IP地址和端口號,再轉發到公網上。
5.根據權利要求1所述的方法,其特征在于第二步中所述標準的協議包括H.248、MGCP、SIP、H.323協議。
全文摘要
一種使媒體流穿越網絡地址轉換器的方法用戶發起經過公網、私網的呼叫,多媒體呼叫控制器將遠端媒體信息帶給私網設備;私網設備通過協議交互流程獲得遠端媒體信息和本地媒體信息;若私網設備的媒體流狀態是不允許發送,則通過獲得的遠端IP地址和端口,向遠端用戶發送包;NAT收到這些包后,在呼叫建立階段動態分配公網地址和端口;BGW獲得公、私網IP地址和UDP端口的“映射關系”,在后續的信令交互過程中,使用經過NAT轉換過的IP地址和端口號替換掉呼叫信令的數據部分中的IP地址和端口號;當呼叫成功建立后,BGW根據“映射關系”進行媒體包轉發。本發明可為公、私網設備通話建立起“映射關系”,實現媒體順利收發。
文檔編號H04L12/46GK1516409SQ0314036
公開日2004年7月28日 申請日期2003年8月26日 優先權日2003年8月26日
發明者林檳, 王羿, 果振波, 林 檳 申請人:中興通訊股份有限公司