最新的毛片基地免费,国产国语一级毛片,免费国产成人高清在线电影,中天堂国产日韩欧美,中国国产aa一级毛片,国产va欧美va在线观看,成人不卡在线

一種融合通信系統(tǒng)中rtp媒體流的代理方法

文檔序號:7886968閱讀:355來源:國知局

專利名稱::一種融合通信系統(tǒng)中rtp媒體流的代理方法
技術(shù)領(lǐng)域
:本發(fā)明涉及數(shù)據(jù)處理領(lǐng)域,特別是涉及一種融合通信系統(tǒng)中,高效代理RTP媒體流的方法。
背景技術(shù)
:融合通信,UnifiedCommunication,簡稱UC,也常翻譯為統(tǒng)一通信。融合通信是指,把計算機(jī)技術(shù)與傳統(tǒng)通信技術(shù)融合一體的新通信模式,融合計算機(jī)網(wǎng)絡(luò)與傳統(tǒng)通信網(wǎng)絡(luò)在一個網(wǎng)絡(luò)平臺上,實(shí)現(xiàn)電話、傳真、數(shù)據(jù)傳輸、音視頻會議、呼叫中心、即時通信等眾多應(yīng)用服務(wù)。融合通信中,媒體流(語音、視頻流)采用RTP協(xié)議(實(shí)時傳送協(xié)議)進(jìn)行傳送。RTP基于UDP傳輸協(xié)議實(shí)現(xiàn)。一般情況下,融合通信的終端間可以讓媒體流直通,如圖1所7J\ο當(dāng)需要對通話進(jìn)行錄音或穿透防火墻時,需要對RTP媒體流進(jìn)行代理,如圖2所7J\οRTP代理服務(wù)器是NTX系統(tǒng)中提供呼叫媒體流代理的服務(wù)器軟件。當(dāng)NTX呼叫控制服務(wù)器接收到呼叫,并確定主被叫終端所處的網(wǎng)絡(luò)位置不能滿足媒體流點(diǎn)點(diǎn)互通時,呼叫控制服務(wù)器就會通過RTP代理服務(wù)器的服務(wù)接口創(chuàng)建一個媒體代理實(shí)體,該媒體代理實(shí)體的作用是接收主被叫終端的媒體數(shù)據(jù)(語音包),并將其轉(zhuǎn)發(fā)到主被叫終端中的另一方。一般的RTP代理服務(wù)器的實(shí)現(xiàn)方法是在應(yīng)用層讀取網(wǎng)絡(luò)層的UDP數(shù)據(jù)包,然后在應(yīng)用層按照指定的目的進(jìn)行轉(zhuǎn)發(fā),實(shí)現(xiàn)邏輯如圖3所示,應(yīng)用層沒有修改RTP數(shù)據(jù)包即媒體數(shù)據(jù)包中的任何內(nèi)容,僅僅是對RTP包進(jìn)行了一個重定向(轉(zhuǎn)發(fā)),但是RTP數(shù)據(jù)包卻需要經(jīng)過鏈路層一系統(tǒng)網(wǎng)絡(luò)層一應(yīng)用層一系統(tǒng)網(wǎng)絡(luò)層一鏈路層的多次拷貝操作,這對RTP代理服務(wù)器的性能提出了較高的要求。
發(fā)明內(nèi)容本發(fā)明所要解決的問題是提供一種RTP媒體流的代理方法,以減少在應(yīng)用層代理RTP數(shù)據(jù)包造成的性能開銷,提高RTP數(shù)據(jù)包轉(zhuǎn)發(fā)的效率。為解決上述問題,本發(fā)明提供了融合通信系統(tǒng)中一種RTP媒體流的代理方法,該方法利用操作系統(tǒng)的網(wǎng)絡(luò)層直接轉(zhuǎn)發(fā)RTP媒體流(UDP數(shù)據(jù)包),以達(dá)到提高轉(zhuǎn)發(fā)效率的目的。本發(fā)明是通過以下技術(shù)方案實(shí)現(xiàn)的一種融合通信系統(tǒng)中RTP媒體流的代理方法,其包括以下步驟主叫終端的媒體流進(jìn)入RTP代理服務(wù)器的鏈路層,再從鏈路層進(jìn)入系統(tǒng)網(wǎng)絡(luò)層;應(yīng)用層通過對系統(tǒng)網(wǎng)絡(luò)層的控制命令,直接控制系統(tǒng)網(wǎng)絡(luò)層將RTP媒體流數(shù)據(jù)的目的地修改后,返還給鏈路層,最終發(fā)送到被叫終端。作為優(yōu)化,所述應(yīng)用層對所述系統(tǒng)網(wǎng)絡(luò)層的控制是通過對IPTABLES的控制完成的,所述IPTABLES用于對Linux內(nèi)核網(wǎng)絡(luò)棧收到的數(shù)據(jù)包進(jìn)行相關(guān)處理。3如上所述,本發(fā)明使用系統(tǒng)的網(wǎng)絡(luò)層實(shí)現(xiàn)收發(fā)器的功能,而控制網(wǎng)絡(luò)層去轉(zhuǎn)發(fā)媒體數(shù)據(jù)包,是通過控制IPTABLES來實(shí)現(xiàn)的。IPTABLES用于對Linux內(nèi)核網(wǎng)絡(luò)棧收到的媒體數(shù)據(jù)包進(jìn)行相關(guān)處理,其中包括NAT。這些處理邏輯由一些IPTABLES規(guī)則來描述,而這些規(guī)則是可以由應(yīng)用層軟件(譬如媒體代理實(shí)體)通過IPTABLES命令來定義的。本發(fā)明提供一種使用IPTABLES配置NAT功能中的PRER0UTING表的方法,包括以下步驟Si、提供收發(fā)器A和收發(fā)器B,收發(fā)器A用于接收主叫終端的媒體數(shù)據(jù),并將自收發(fā)器B接收到的發(fā)自被叫終端的媒體數(shù)據(jù)發(fā)送到主叫終端;收發(fā)器B用于接收被叫終端的媒體數(shù)據(jù),并將自收發(fā)器A接收到的發(fā)自主叫終端的媒體數(shù)據(jù)發(fā)送到被叫終端;收發(fā)器A和B分別打開一個UDP網(wǎng)絡(luò)套接字,并將各自的網(wǎng)絡(luò)地址綁定到各自打開的套接字,收發(fā)器A和收發(fā)器B使用各自打開的UDP套接字進(jìn)行收與發(fā)的操作;S2、收發(fā)器A和B開始偵聽各自的UDP套接字,當(dāng)一個收發(fā)器接收到其套接字的第一個RTP數(shù)據(jù)包時,該收發(fā)器提取并記錄該數(shù)據(jù)包的源地址,此時該收發(fā)器與該終端網(wǎng)絡(luò)地址建立了關(guān)聯(lián);當(dāng)兩個收發(fā)器都收到一個媒體數(shù)據(jù)包,并建立了到終端的網(wǎng)絡(luò)地址關(guān)聯(lián)后,執(zhí)行下一步;S3、通過iptables命令設(shè)置來自主叫終端的媒體數(shù)據(jù)包的NAT規(guī)則對經(jīng)過PRER0UTING鏈源地址為主叫終端收發(fā)器網(wǎng)絡(luò)地址的媒體數(shù)據(jù)包進(jìn)行DNAT操作,將該數(shù)據(jù)包的目的地址轉(zhuǎn)換為被叫終端收發(fā)器的網(wǎng)絡(luò)地址;對經(jīng)過P0STR0UTING鏈目的源地址為主叫終端收發(fā)器網(wǎng)絡(luò)地址的媒體進(jìn)行SNAT操作,將該數(shù)據(jù)包的源地址轉(zhuǎn)換為媒體代理實(shí)體收發(fā)器B的網(wǎng)絡(luò)地址;S4、媒體代理實(shí)體通過iptables命令自動設(shè)置來自被叫終端的媒體數(shù)據(jù)包的NAT規(guī)則通過iptables命令設(shè)置來自被叫終端的媒體數(shù)據(jù)包的NAT規(guī)則對經(jīng)過PRER0UTING鏈源地址為被叫終端收發(fā)器網(wǎng)絡(luò)地址的媒體數(shù)據(jù)包進(jìn)行DNAT操作,將該數(shù)據(jù)包的目的地址轉(zhuǎn)換為主叫終端收發(fā)器的網(wǎng)絡(luò)地址對經(jīng)過P0STR0UTING鏈目的源地址為主叫終端收發(fā)器網(wǎng)絡(luò)地址的媒體數(shù)據(jù)包進(jìn)行SNAT操作,將該數(shù)據(jù)包的源地址轉(zhuǎn)換為媒體代理實(shí)體收發(fā)器A的網(wǎng)絡(luò)地址S5、呼叫結(jié)束,通過iptables命令刪除S4和S5設(shè)置的NAT規(guī)則。所述PRER0UTING鏈?zhǔn)穷A(yù)路由鏈,其為IPTABLES內(nèi)建鏈之一;默認(rèn)情況下,IPTABLES將IP包的處理過程分為5個階段,每個階段稱為一個鏈,每個鏈可設(shè)置不同的包處理規(guī)則,PRER0UTING是IPTABLES處理IP包的第一個鏈,在該鏈中對IP包進(jìn)行IP地址變換操作,從而設(shè)置NAT規(guī)則。與現(xiàn)有技術(shù)相比,本發(fā)明具備如下優(yōu)點(diǎn)由于RTP代理服務(wù)器對RTP數(shù)據(jù)進(jìn)行的拷貝行為減少了,RTP數(shù)據(jù)包僅需要經(jīng)過鏈路層一系統(tǒng)網(wǎng)絡(luò)層一鏈路層,大大提高了RTP數(shù)據(jù)包的轉(zhuǎn)發(fā)效率,減低了對代理服務(wù)器硬件的要求。在X86800MHZCPU的處理能力下,采用舊方法最多能進(jìn)行30路的RTP媒體流代理,采用新的方法則可提高到100路。圖1是現(xiàn)有技術(shù)的兩臺多媒體話機(jī)間端到端的媒體流流向4圖2是現(xiàn)有技術(shù)的使用了“RTP代理服務(wù)器”時的兩臺多媒體話機(jī)間的媒體流流向圖;圖3是現(xiàn)有技術(shù)的一般的“RTP代理服務(wù)器”實(shí)現(xiàn)方法下的兩臺多媒體話機(jī)間的媒體流流向圖;圖4是采用本發(fā)明的“RTP代理服務(wù)器”實(shí)現(xiàn)方法下的兩臺多媒體話機(jī)間的媒體流流向圖;圖5是本發(fā)明媒體代理實(shí)體與主、被叫終端的信息連通關(guān)系示意圖;圖6本發(fā)明使用IPTABLES配置NAT功能中的PRER0UTING表的方法一個具體實(shí)施例的流程圖。具體實(shí)施例方式如圖4所示,假設(shè)話機(jī)A的媒體流需要經(jīng)過RTP媒體代理發(fā)送到話機(jī)B,本發(fā)明實(shí)施例之融合通信系統(tǒng)中RTP媒體流的代理方法為話機(jī)A的媒體流首先進(jìn)入RTP代理服務(wù)器的鏈路層,再從鏈路層進(jìn)入系統(tǒng)網(wǎng)絡(luò)層;此時應(yīng)用層并不會把RTP數(shù)據(jù)從系統(tǒng)網(wǎng)絡(luò)層復(fù)制到應(yīng)用層,而是通過對系統(tǒng)網(wǎng)絡(luò)層的控制命令,直接控制系統(tǒng)網(wǎng)絡(luò)層將RTP媒體流數(shù)據(jù)的目的地修改后,返還給鏈路層,最終發(fā)送到話機(jī)B。以上方法中,使用系統(tǒng)的網(wǎng)絡(luò)層實(shí)現(xiàn)收發(fā)器的功能,而控制網(wǎng)絡(luò)層去轉(zhuǎn)發(fā)媒體數(shù)據(jù)包,是通過控制IPTABLES(IP信息包過濾系統(tǒng))來實(shí)現(xiàn)的。IPTABLES用于對Linux內(nèi)核網(wǎng)絡(luò)棧收到的媒體數(shù)據(jù)包進(jìn)行相關(guān)處理,其中包括NAT。這些處理邏輯由一些IPTABLES規(guī)則來描述,而這些規(guī)則是可以由應(yīng)用層軟件(譬如媒體代理實(shí)體)通過IPTABLES命令來定義的。本發(fā)明主要使用了IPTABLES來配置NAT功能中的ROUTING表,以此達(dá)到轉(zhuǎn)發(fā)媒體數(shù)據(jù)包的功能,具體步驟如下Si、提供一媒體代理實(shí)體,其包括收發(fā)器A和收發(fā)器B,收發(fā)器A用于接收主叫終端的媒體數(shù)據(jù),并將自收發(fā)器B接收到的發(fā)自被叫終端的媒體數(shù)據(jù)發(fā)送到主叫終端;收發(fā)器B用于接收被叫終端的媒體數(shù)據(jù),并將自收發(fā)器A接收到的發(fā)自主叫終端的媒體數(shù)據(jù)發(fā)送到被叫終端;收發(fā)器A和B分別打開一個UDP網(wǎng)絡(luò)套接字,并將各自的網(wǎng)絡(luò)地址綁定到各自打開的UDP網(wǎng)絡(luò)套接字,收發(fā)器A和收發(fā)器B使用各自打開的UDP套接字進(jìn)行收與發(fā)的操作;S2、收發(fā)器A和B開始偵聽各自的UDP套接字,當(dāng)一個收發(fā)器接收到其套接字的第一個RTP數(shù)據(jù)包時,該收發(fā)器提取并記錄數(shù)據(jù)包的源地址,此時該收發(fā)器與該終端網(wǎng)絡(luò)地址建立了關(guān)聯(lián);當(dāng)兩個收發(fā)器都收到一個媒體數(shù)據(jù)包,并建立了到終端的網(wǎng)絡(luò)地址關(guān)聯(lián)后,執(zhí)行下一步;S3、媒體代理實(shí)體通過IPTABLES命令自動設(shè)置來自主叫終端的媒體數(shù)據(jù)包的NAT規(guī)則對經(jīng)過PRER0UTING鏈源地址為主叫終端收發(fā)器網(wǎng)絡(luò)地址的媒體數(shù)據(jù)包進(jìn)行DNAT操作(DNAT操作是設(shè)置IP包的目的網(wǎng)絡(luò)地址變換規(guī)則),將媒體數(shù)據(jù)包的目的地址(轉(zhuǎn)換前的目的地址為媒體代理實(shí)體的地址)轉(zhuǎn)換為被叫終端收發(fā)器的網(wǎng)絡(luò)地址,所述PRER0UTING鏈?zhǔn)穷A(yù)路由鏈,其為IPTABLES內(nèi)建鏈之一;默認(rèn)情況下,IPTABLES將IP包的處理過程分為5個階段,每個階段稱為一個鏈,每個鏈可設(shè)置不同的包處理規(guī)則,PRER0UTING是IPTABLES處理IP包的第一個鏈,在該鏈中可以設(shè)置NAT規(guī)則(即對包進(jìn)行IP地址變換操作);對經(jīng)過P0STR0UTING鏈目的源地址為主叫終端收發(fā)器網(wǎng)絡(luò)地址的媒體數(shù)據(jù)包進(jìn)行SNAT操作(SNAT操作是設(shè)置IP包的源網(wǎng)絡(luò)地址變換規(guī)則),將媒體數(shù)據(jù)包的源地址(轉(zhuǎn)換前為主叫終端的網(wǎng)絡(luò)地址)轉(zhuǎn)換為媒體代理實(shí)體收發(fā)器B的網(wǎng)絡(luò)地址;S4、媒體代理實(shí)體通過IPTABLES命令自動設(shè)置來自被叫終端的媒體數(shù)據(jù)包的NAT規(guī)則對經(jīng)過PRER0UTING鏈源地址為被叫終端收發(fā)器網(wǎng)絡(luò)地址的媒體數(shù)據(jù)包進(jìn)行DNAT操作,將媒體數(shù)據(jù)包的目的地址(轉(zhuǎn)換前為媒體代理實(shí)體的網(wǎng)絡(luò)地址)轉(zhuǎn)換為主叫終端收發(fā)器的網(wǎng)絡(luò)地址;對經(jīng)過P0STR0UTING鏈目的源地址為主叫終端收發(fā)器網(wǎng)絡(luò)地址的媒體數(shù)據(jù)包進(jìn)行SNAT操作,將媒體數(shù)據(jù)包的源地址(轉(zhuǎn)換前為被叫終端的網(wǎng)絡(luò)地址)轉(zhuǎn)換為媒體代理實(shí)體收發(fā)器A的網(wǎng)絡(luò)地址;S5、呼叫結(jié)束,通過IPTABLES命令刪除S3和S4設(shè)置的NAT規(guī)則。如圖5所示,其為本發(fā)明的RTP媒體流的代理轉(zhuǎn)發(fā)過程的一個具體應(yīng)用實(shí)施例的流程圖,包括以下步驟媒體代理實(shí)體的收發(fā)器A與收發(fā)器B分別打開一個UDP套接字用于接收與發(fā)送;主叫終端發(fā)送RTP數(shù)據(jù),源地址為主叫終端網(wǎng)絡(luò)地址,目的地址為媒體代理實(shí)體;收發(fā)器A的接收器收到了第一個RTP數(shù)據(jù),源地址為主叫終端網(wǎng)絡(luò)地址,目的地址為媒體代理實(shí)體網(wǎng)絡(luò)地址,此時媒體代理實(shí)體知道了主叫終端的網(wǎng)絡(luò)地址;被叫終端發(fā)送RTP數(shù)據(jù),源地址為被叫終端網(wǎng)絡(luò)地址,目的地址為媒體代理實(shí)體;收發(fā)器B的接收器收到了第一個RTP數(shù)據(jù),源地址為被叫終端網(wǎng)絡(luò)地址,目的地址為媒體代理實(shí)體網(wǎng)絡(luò)地址。此時媒體代理實(shí)體知道了被叫終端的網(wǎng)絡(luò)地址;媒體代理實(shí)體通過IPTABLES對主叫終端發(fā)來的媒體數(shù)據(jù)包進(jìn)行了兩項(xiàng)操作進(jìn)行DNAT操作將媒體數(shù)據(jù)包的目的地址轉(zhuǎn)換為被叫終端,進(jìn)行SNAT操作將媒體數(shù)據(jù)包的源地址轉(zhuǎn)換為媒體代理實(shí)體,然后通過收發(fā)器B的發(fā)送器發(fā)送出去;媒體代理實(shí)體通過IPTABLES對被叫終端發(fā)來的媒體數(shù)據(jù)包進(jìn)行了兩項(xiàng)操作進(jìn)行DNAT操作將媒體數(shù)據(jù)包的目的地址轉(zhuǎn)換為主叫終端,進(jìn)行SNAT操作將媒體數(shù)據(jù)包的源地址轉(zhuǎn)換為媒體代理實(shí)體,然后通過收發(fā)器A的發(fā)送器發(fā)送出去。權(quán)利要求1.一種融合通信系統(tǒng)中RTP媒體流的代理方法,其特征在于,其包括以下步驟主叫終端的媒體流進(jìn)入RTP代理服務(wù)器的鏈路層,再從鏈路層進(jìn)入系統(tǒng)網(wǎng)絡(luò)層;應(yīng)用層通過對系統(tǒng)網(wǎng)絡(luò)層的控制命令,直接控制系統(tǒng)網(wǎng)絡(luò)層將RTP媒體流數(shù)據(jù)的目的地修改后,返還給鏈路層,最終發(fā)送到被叫終端。2.一種使用IPTABLES配置NAT功能中的PRER0UTING表的方法,其特征在于,包括以下步驟.51、提供收發(fā)器A和收發(fā)器B,收發(fā)器A用于接收主叫終端的媒體數(shù)據(jù),并將自收發(fā)器B接收到的發(fā)自被叫終端的媒體數(shù)據(jù)發(fā)送到主叫終端;收發(fā)器B用于接收被叫終端的媒體數(shù)據(jù),并將自收發(fā)器A接收到的發(fā)自主叫終端的媒體數(shù)據(jù)發(fā)送到被叫終端;收發(fā)器A和B分別打開一個UDP網(wǎng)絡(luò)套接字,并將各自的網(wǎng)絡(luò)地址綁定到各自打開的套接字,收發(fā)器A和收發(fā)器B使用各自打開的UDP套接字進(jìn)行收與發(fā)的操作;.52、收發(fā)器A和B開始偵聽各自的UDP套接字,當(dāng)一個收發(fā)器接收到其套接字的第一個媒體數(shù)據(jù)包時,該收發(fā)器提取并記錄該數(shù)據(jù)包的源地址,此時該收發(fā)器與該終端網(wǎng)絡(luò)地址建立了關(guān)聯(lián);當(dāng)兩個收發(fā)器都收到一個媒體數(shù)據(jù)包,并建立了到終端的網(wǎng)絡(luò)地址關(guān)聯(lián)后,執(zhí)行下一步;.53、通過iptables命令設(shè)置來自主叫終端的媒體數(shù)據(jù)包的NAT規(guī)則對經(jīng)過PRER0UTING鏈源地址為主叫終端收發(fā)器網(wǎng)絡(luò)地址的媒體數(shù)據(jù)包進(jìn)行DNAT操作,將該媒體數(shù)據(jù)包的目的地址轉(zhuǎn)換為被叫終端收發(fā)器的網(wǎng)絡(luò)地址;對經(jīng)過P0STR0UTING鏈目的源地址為主叫終端收發(fā)器網(wǎng)絡(luò)地址的媒體數(shù)據(jù)包進(jìn)行SNAT操作,將該媒體數(shù)據(jù)包的源地址轉(zhuǎn)換為媒體代理實(shí)體收發(fā)器B的網(wǎng)絡(luò)地址;.54、媒體代理實(shí)體通過iptables命令自動設(shè)置來自被叫終端的媒體數(shù)據(jù)包的NAT規(guī)則通過iptables命令設(shè)置來自被叫終端的媒體數(shù)據(jù)包的NAT規(guī)則對經(jīng)過PRER0UTING鏈源地址為被叫終端收發(fā)器網(wǎng)絡(luò)地址的媒體數(shù)據(jù)包進(jìn)行DNAT操作,將媒體數(shù)據(jù)包的目的地址轉(zhuǎn)換為主叫終端收發(fā)器的網(wǎng)絡(luò)地址;對經(jīng)過P0STR0UTING鏈目的源地址為主叫終端收發(fā)器網(wǎng)絡(luò)地址的媒體數(shù)據(jù)包進(jìn)行SNAT操作,將媒體數(shù)據(jù)包的源地址轉(zhuǎn)換為媒體代理實(shí)體收發(fā)器A的網(wǎng)絡(luò)地址;.55、呼叫結(jié)束,通過iptables命令刪除S4和S5設(shè)置的NAT規(guī)則。全文摘要本發(fā)明提供一種融合通信系統(tǒng)中RTP媒體流的代理方法,其特征在于,其包括以下步驟主叫終端的媒體流進(jìn)入RTP代理服務(wù)器的鏈路層,再從鏈路層進(jìn)入系統(tǒng)網(wǎng)絡(luò)層;應(yīng)用層通過對系統(tǒng)網(wǎng)絡(luò)層的控制命令,直接控制系統(tǒng)網(wǎng)絡(luò)層將RTP媒體流數(shù)據(jù)的目的地修改后,返還給鏈路層,最終發(fā)送到被叫終端。本發(fā)明還提供一種使用IPTABLES配置NAT功能中的PREROUTING表的方法。本發(fā)明大大提高了RTP數(shù)據(jù)包的轉(zhuǎn)發(fā)效率,減低了對代理服務(wù)器硬件的要求。在X86800MHzCPU的處理能力下,采用舊方法最多能進(jìn)行30路的RTP媒體流代理。采用新的方法則可提高到100路。文檔編號H04L12/56GK102420835SQ20121000667公開日2012年4月18日申請日期2012年1月10日優(yōu)先權(quán)日2012年1月10日發(fā)明者吳天勇申請人:廣東佳和通信技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1