專利名稱:一種實時流協(xié)議代理轉發(fā)數(shù)據(jù)的方法、裝置及系統(tǒng)的制作方法
技術領域:
本發(fā)明涉及通信技術領域,特別是涉及一種實時流協(xié)議代理轉發(fā)數(shù)據(jù)的方法、裝 置及系統(tǒng)。
背景技術:
實時流協(xié)議(Real Time Streaming Protocol,RTSP)是專用于媒體點播控制的協(xié) 議,基于服務器/客戶端架構。客戶端、服務器都可以主動向對方發(fā)送消息??蛻舳朔掌?之間要先建立一個TCP連接,以后的會話控制的消息交換都發(fā)生在這條連接上。實時流協(xié) 議2.0定義了幾個主要的消息method,用以表示控制所需的主要功能,通過使用這些消息 來對媒體流傳輸進行控制,例如所述消息有描述查詢DESCRIBE,獲取參數(shù)GET_PARAMETER, 選項OPTIONS,暫停PAUSE,播放PLAY,重定向REDIRECT,建會話SETUP,設置參數(shù)SET_ PARAMETER,結束會話 TEARD0WN。實時流協(xié)議代理RTSP Proxy是介于RTSP協(xié)議的客戶端RTSP Client (下面簡稱 Client)與RTSP協(xié)議的服務器RTSP Server (下面簡稱Server)之間的網(wǎng)絡設備,如圖1所 示為實時流協(xié)議代理架構圖,RTSP Proxy具有轉發(fā)RTSP信令和轉發(fā)Server到Client的 RTP媒體流的功能。RTSP Proxy同時擔當服務器和客戶端的角色,如圖IJ^RTSP Client 而言,RTSP Proxy就是它的服務器,對RTSP Server而言,RTSP Proxy就是它的客戶端。當 RTSP Client向RTSP Server發(fā)送RTSP請求消息時,RTSP Proxy收到該請求消息后,轉發(fā) 給 RTSP Server;當 RTSP Server 返回響應消息給 RTSPClient,RTSP Proxy 收到 Server 的 響應消息后轉發(fā)給RTSP Client。在對現(xiàn)有技術的研究和實踐過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術存在以下問題當一個 RTSP Proxy接入多個RTSP Client時,會收到多個RTSP Client的多個RTSP請求消息,但是 由于一個RTSP Proxy與RTSP Server之間的消息承載在同一條網(wǎng)絡鏈路(TCP鏈接或UDP 鏈接)上,因此RTSP Proxy將該多個請求消息轉發(fā)給RTSP Server時,RTSP Server無法 區(qū)分這些消息所歸屬的RTSP Client,無法為每個RTSP Client創(chuàng)建會話,同時RTSPProxy 也無法將RTSP Server返回的響應消息發(fā)送給相應的請求端RTSPClient,導致客戶端無法 接收到該響應消息,影響信令消息的交互。
發(fā)明內容
本發(fā)明實施例提供一種實時流協(xié)議代理RTSP Proxy轉發(fā)數(shù)據(jù)的方法、裝置及系 統(tǒng),用于解決RTSP Proxy接入多個RTSP協(xié)議客戶端,RTSP Proxy無法將RTSP Server返 回的響應消息發(fā)送給相應的請求端RTSP Client,從而導致客戶端無法接收到該響應消息 的問題。本發(fā)明實施例提供的一種實時流協(xié)議代理RTSP Proxy轉發(fā)數(shù)據(jù)的方法,包括接收來自多個實時流協(xié)議客戶端的第一實時流協(xié)議RTSP請求;根據(jù)所述RTSP請求,為所述實時流協(xié)議客戶端分配客戶端標識和業(yè)務標識,并生成所述客戶端標識和業(yè)務標識的關聯(lián)關系表;將攜帶所述業(yè)務標識的RTSP請求轉發(fā)給實時流協(xié)議服務器;接收所述實時流協(xié)議服務器的第一 RTSP響應消息,所述第一 RTSP響應消息中攜 帶所述業(yè)務標識,并以所述業(yè)務標識為索引,通過查找所述關聯(lián)關系表獲得客戶端標識,將 所述第一 RTSP響應消息轉發(fā)給與所述客戶端標識對應的實時流協(xié)議客戶端。本發(fā)明實施例提供的一種實時流協(xié)議代理RTSP Proxy轉發(fā)數(shù)據(jù)的裝置,包括第一接收單元,用于接收來自多個實時流協(xié)議客戶端的第一實時流協(xié)議RTSP請 求;關聯(lián)關系表生成單元,用于根據(jù)所述RTSP請求,為所述實時流協(xié)議客戶端分配所 述客戶端標識和業(yè)務標識,并生成所述客戶端標識和業(yè)務標識的關聯(lián)關系表;第一發(fā)送單元,用于將攜帶所述業(yè)務標識的RTSP請求轉發(fā)給實時流協(xié)議服務器;第二接收單元,用于接收所述實時流協(xié)議服務器的第一 RTSP響應消息,所述RTSP 響應消息中攜帶所述業(yè)務標識;第二發(fā)送單元,用于以所述第二接收單元接收的RTSP響應消息中攜帶的業(yè)務標 識為索引,通過查找所述關聯(lián)關系表獲得客戶端標識,將所述RTSP響應消息轉發(fā)給與所述 客戶端標識對應的實時流協(xié)議客戶端。本發(fā)明實施例提供的一種實時流協(xié)議代理RTSP Proxy轉發(fā)數(shù)據(jù)的系統(tǒng),包括多 個實時流協(xié)議客戶端、實時流協(xié)議代理和實時流協(xié)議服務器所述實時流協(xié)議客戶端,與所述實時流協(xié)議代理相連接,用于發(fā)送第一實時流協(xié) 議RTSP請求給所述實時流協(xié)議代理,并接收所述實時流協(xié)議代理返回的RTSP響應消息;所述實時流協(xié)議代理,分別與所述實時流協(xié)議客戶端和所述實時流協(xié)議服務器相 連接,用于接收來自多個實時流協(xié)議客戶端的第一實時流協(xié)議RTSP請求;根據(jù)所述RTSP請 求,為所述實時流協(xié)議客戶端分配所述客戶端標識和業(yè)務標,并生成所述實時流協(xié)議客戶 端標識和業(yè)務標識的關聯(lián)關系表;將攜帶所述業(yè)務標識的RTSP請求轉發(fā)給實時流協(xié)議服 務器;并接收所述服務器的RTSP響應消息,所述RTSP響應消息中攜帶所述業(yè)務標識,并以 所述業(yè)務標識為索引,通過查找所述關聯(lián)關系表獲得于所述業(yè)務標識對應的所述客戶端標 識,將所述RTSP響應消息轉發(fā)給與所述客戶端標識對應的所述實時流協(xié)議客戶端。所述實時流協(xié)議服務器,與所述實時流協(xié)議代理相連接,用于接收所述實時流協(xié) 議代理發(fā)送的第一 RTSP請求,根據(jù)不同的所述業(yè)務標識,為所述實時流協(xié)議客戶端建立不 同的會話,并返回所述RTSP響應消息給所述實時流協(xié)議代理,其中,所述RTSP響應消息中 攜帶所述業(yè)務標識。本發(fā)明實施例提供一種實時流協(xié)議代理轉發(fā)數(shù)據(jù)的方法,裝置及系統(tǒng),通過接收 來自多個實時流協(xié)議客戶端的第一實時流協(xié)議RTSP請求;根據(jù)所述RTSP請求,為所述實 時流協(xié)議客戶端分配客戶端標識和業(yè)務標識,并生成所述客戶端標識和業(yè)務標識的關聯(lián)關 系表;將攜帶所述業(yè)務標識的RTSP請求轉發(fā)給實時流協(xié)議服務器;接收所述實時流協(xié)議服 務器的第一 RTSP響應消息,所述第一 RTSP響應消息中攜帶所述業(yè)務標識,并以所述業(yè)務標 識為索引,通過查找所述關聯(lián)關系表獲得客戶端標識,將所述第一 RTSP響應消息轉發(fā)給與 所述客戶端標識對應的實時流協(xié)議客戶端,解決了 RTSP Proxy接入多個RTSP協(xié)議客戶端, RTSP Proxy無法將RTSP Server返回的響應消息發(fā)送給相應的請求端RTSP Client,從而導致客戶端無法接收到該響應消息的問題,完善了 RTSP Proxy的功能,簡化了 RTSP Proxy 的處理流程。
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn) 有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本 發(fā)明的一些實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動性的前提下,還可 以根據(jù)這些附圖獲得其他的附圖。圖1為本發(fā)明現(xiàn)有技術中的一種實時流協(xié)議代理架構圖;圖2為本發(fā)明實施例中的一種實時流協(xié)議代理轉發(fā)數(shù)據(jù)的方法流程圖;圖3為本發(fā)明實施例中一種實時流協(xié)議代理轉發(fā)數(shù)據(jù)的具體實現(xiàn)方式流程圖;圖4為本發(fā)明實施例中一種會話關聯(lián)關系表;圖5為本發(fā)明實施例中另一種會話關聯(lián)關系表;圖6為本發(fā)明實施例中另一種實時流協(xié)議代理轉發(fā)數(shù)據(jù)的具體實現(xiàn)方式流程圖;圖7為本發(fā)明實施例中一種事務關聯(lián)關系表;圖8為本發(fā)明實施例中一種實時流協(xié)議代理轉發(fā)數(shù)據(jù)的裝置結構圖;圖9為本發(fā)明實施例中的一種實時流協(xié)議代理轉發(fā)數(shù)據(jù)的系統(tǒng)結構圖。
具體實施例方式下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完 整地描述,顯然,所描述的實施例是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā) 明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施 例,都屬于本發(fā)明保護的范圍。如圖2所示,為本發(fā)明實施例中的一種實時流協(xié)議代理RTSP Proxy轉發(fā)數(shù)據(jù)的方 法流程圖,包括以下步驟步驟S202,接收來自多個實時流協(xié)議客戶端RTSP Client的第一實時流協(xié)議RTSP 請求。具體為RTSP Proxy接收多個RTSP Client發(fā)送的不同的RTSP請求。步驟S204,根據(jù)所述實時流協(xié)議RTSP請求,為所述多個RTSP Client分別分配客 戶端標識和業(yè)務標識,并生成所述實時流協(xié)議客戶端標識和業(yè)務標識的關聯(lián)關系表,其中 所述客戶端標識包括所述客戶端的事務標識,或者所述客戶端的會話標識。當所述客戶端標識為所述客戶端的事務標識時,所述為所述RTSPClient分配所 述客戶端標識和業(yè)務標識,并生成所述實時流協(xié)議客戶端標識和業(yè)務標識的關聯(lián)關系表具 體包括RTSP Proxy為所述RTSP Client分配所述客戶端事務標識和業(yè)務標識,并生成所 述客戶端事務標識和業(yè)務標識的關聯(lián)關系表。當所述Client ID為所述客戶端的會話標識時,所述為所述RTSPClient分配所述 客戶端標識和業(yè)務標識,并生成所述實時流協(xié)議客戶端標識和業(yè)務標識的關聯(lián)關系表具體 包括
RTSP Proxy為所述RTSP Client分配所述客戶端的會話標識和業(yè)務標識;生成所述客戶端會話標識、業(yè)務標識和所述服務器為所述客戶端分配的所述服務 器會話標識的關聯(lián)關系表,其中所述服務器會話標識通過接收所述Server的RTSP響應消 息獲得。其中,所述RTSP Server服務器側在處理會話的RTSP請求時,同時存儲關于業(yè)務 標識和所述RTSP Server為所述客戶端分配的所述服務器會話標識的關聯(lián)關系表,以便下 次進行會話處理的時候進行使用,當然也可以在服務器側對該關聯(lián)關系表不進行存儲,可 以通過RTSP請求消息中攜帶的業(yè)務標識和服務器會話標識對會話進行進一步處理。步驟S206,將攜帶所述業(yè)務標識的RTSP請求轉發(fā)給實時流協(xié)議服務器RTSP Server。步驟S208,接收所述RTSP Server的第一 RTSP響應消息,所述第一 RTSP響應消息 中攜帶所述業(yè)務標識,并以所述業(yè)務標識為索引,通過查找所述關聯(lián)關系表獲得相應的客 戶端會話標識,將所述第一 RTSP響應消息轉發(fā)給與所述客戶端會話標識對應的所述RTSP Client。當所述客戶端標識為所述客戶端的會話標識時,所述方法還包括RTSP Proxy接收來自所述RTSP Client的第二實時流協(xié)議RTSP請求,所述第二實 時流協(xié)議RTSP請求中攜帶所述客戶端會話標識;以所述客戶端會話標識為索引,通過查找所述關聯(lián)關系表,獲得與所述客戶端對 應的所述服務器會話標識和業(yè)務標識;將所述服務器會話標識和業(yè)務標識攜帶在所述第二 RTSP請求中,轉發(fā)給與所述 服務器會話標識對應的RTSP Server,使得所述RTSP Server根據(jù)所述服務器會話標識進行 會話處理;接收所述RTSP Server返回的第二 RTSP響應消息,所述RTSP響應消息中攜帶所 述業(yè)務標識,并以所述業(yè)務標識為索引,通過查找所述關聯(lián)關系表,將所述RTSP響應消息 轉發(fā)給與所述客戶端標識對應的所述RTSPClient。其中所述第一 RTSP請求消息和所述第二 RTSP請求消息可以為查詢DESCRIBE, 獲取參數(shù)GET_PARAMETER,選項OPTIONS,暫停PAUSE,播放PLAY,重定向REDIRECT,建會話 SETUP,設置參數(shù)SET_PARAMETER,結束會話TEARD0WN的任意一種或幾種消息,且當?shù)谝淮?RTSP請求消息為會話時,所述第二 RTSP請求消息可以為第二次或者第三次等依次向RTSP Rroxy進行請求,且不限于次數(shù)。上述步驟描述的流程可以應用于會話交互流程和事務交互流程中,例如典型的 播放和結束的會話交互流程,在下面的實施例中會詳細進行描述。本發(fā)明實施例通過接收來自多個實時流協(xié)議客戶端RTSP Client的第一實時流 協(xié)議RTSP請求;根據(jù)所述RTSP請求,生成所述實時流協(xié)議客戶端標識和業(yè)務標識的關聯(lián) 關系表;將攜帶所述業(yè)務標識的RTSP請求轉發(fā)給實時流協(xié)議服務器RTSP Server ;通過接 收所述RTSP Server的RTSP響應消息,并以RTSP響應消息中攜帶的所述業(yè)務標識為索 引,查找所述關聯(lián)關系表,將所述RTSP響應消息轉發(fā)給與所述客戶端會話標識對應的所 述RTSPClient,解決了 RTSP Proxy接入多個RTSP協(xié)議客戶端,,RTSP Proxy無法將RTSP Server返回的響應消息發(fā)送給相應的請求端RTSP Client,從而導致客戶端無法接收到該響應消息的問題,完善了 RTSP Proxy的功能,簡化了 RTSP Proxy的處理流程。如圖3所示,為本發(fā)明實施例中一種實時流協(xié)議代理RTSP Proxy轉發(fā)數(shù)據(jù)的具體 實現(xiàn)方式流程圖,包括以下步驟下面的實施例具體描述當實時流協(xié)議客戶端RTSP Client發(fā)送第一實時流協(xié)議 RTSP請求消息為會話請求消息,且所述實時流協(xié)議客戶端標識Client ID為所述客戶端的 會話標識Client Session ID的情況,但不僅僅限制于會話的應用場景,還可以應用與其它 的請求消息中。步驟S300,實時流協(xié)議客戶端RTSP Client發(fā)送實時流協(xié)議RTSP請求給實時流協(xié) 議代理 RTSP Proxy。其中,與所述RTSP Proxy連接的RTSP Client有多個,所述RTSP請求是指RTSP Client第一次發(fā)送給RTSP Proxy的請求消息,所述請求消息可以為會話請求消息,也可以 為其它請求消息。步驟S302,RTSP Proxy接收多個RTSP Client發(fā)送的第一 RTSP請求,為所述RTSP Client分配所述客戶端會話標識和業(yè)務標識,并生成所述實時流協(xié)議客戶端會話標識、業(yè) 務標識和服務器會話標識的關聯(lián)關系表,其中,所述服務器會話標識從返回的第一 RTSP響 應消息中獲取。具體所述客戶端會話標識、業(yè)務標識和服務器會話標識的關聯(lián)關系表如圖4所示。
圖4為本發(fā)明實施例中一種會話關聯(lián)關系表,表中包括客戶端會話標識,是 RTSP Proxy為所述RTSP Client分配的客戶端會話標識,對于多個RTSP Client中各個 RTSP Client發(fā)送的不同的RTSP請求,RTSP Proxy通過客戶端會話標識來區(qū)分是哪個 RTSP Client發(fā)送的RTSP請求;所述服務器會話標識,是所述RTSP Server為所述RTSP Client分配的,具體通過RTSP Server返回的響應消息中攜帶返回的,用于RTSP Server 區(qū)分RTSPClient ;所述業(yè)務標識,用于RTSP Proxy區(qū)分RTSP Server返回的響應消息對應 的業(yè)務數(shù)據(jù)區(qū),也用于RTSP Server區(qū)分來之同一個RTSP Proxy的不同會話請求。RTSP Proxy為一次會話分配一個業(yè)務標識,在一次會話交互過程中,業(yè)務標識保持不變。例如 RTSP Proxy生成客戶端的會話標識為“ 1”則可以表示為客戶端的會話標識_1 ;業(yè)務標識 為“X”,則表示為業(yè)務標識-χ ;根據(jù)RTSP響應消息返回的服務器端的會話標識為“A”,則 表示為服務器端的會話標識-A。其中,所述會話關聯(lián)關系表中還可以包括會話信息Session-Info選項,用于將 所述Client的會話信息、Server的會話信息、Client的地址或者消息參數(shù)等信息記錄在該 選項中,這一點為目前會話中都需要進行描述的,在此就不再具體描述。步驟S304,RTSP Proxy將攜帶所述業(yè)務標識的第一 RTSP請求轉發(fā)給實時流協(xié)議 服務器 RTSP Server0具體為通過擴展所述RTSP請求消息,在所述消息中攜帶所述ServicelD,將所述 消息發(fā)送給相應的RTSP Server進行處理,其中所述可以RTSPServer為多個,但是具體接 收該RTSP請求為RTSP Proxy根據(jù)請求的內容決定選擇多個RTSP Server中的具體一個 RTSP Server來進行處理。步驟S306,RTSP Server接收所述RTSP請求,根據(jù)所述請求,為來自同一 Proxy的不同業(yè)務標識的請求消息,建立不同的會話。步驟S308,RTSP Server為所述RTSP Client分配服務器會話標識,并返回第一 RTSP響應請求給所述RTSP Proxy,所述RTSP響應請求中攜帶所述服務器會話標識和業(yè)務 標識。步驟S310,RTSP Server存儲為所述RTSP Client分配的服務器會話標識和業(yè)務 標識的關聯(lián)關系表。具體服務器會話標識和業(yè)務標識的關聯(lián)關系表為圖5所示。圖5為本發(fā)明實施例中另一種會話關聯(lián)關系表,存儲于RTSP Server側,所述關聯(lián) 關系表包括服務器會話標識和業(yè)務標識;該服務器會話標識,用于RTSP Server對該客戶 端已經(jīng)建立了會話,以便下次該RTSP Client再次請求時,對該會話繼續(xù)進行處理,避免重 復建立會話;所述業(yè)務標識,用于RTSP Proxy區(qū)分RTSP Server返回的響應消息對應的業(yè) 務數(shù)據(jù)區(qū),也用于RTSP Server區(qū)分來之同一個RTSP Proxy的不同會話請求。RTSPProxy 為一次會話分配一個業(yè)務標識,在一次會話交互過程中,業(yè)務標識保持不變。例如RTSP Proxy生成客戶端的會話標識為“1”則可以表示為客戶端的會話標識_1 ;業(yè)務標識為 “X”,則表示為業(yè)務標識-χ ;根據(jù)RTSP響應消息返回的服務器端的會話標識為“A”,則表 示為服務器端的會話標識-A。具體可以參見下面實例的詳細說明。應該注意的是,該步驟310為可選步驟,即在RTSP Server側可以存儲為所述RTSP Client分配的服務器會話標識和業(yè)務標識的關聯(lián)關系表,也可以不進行存儲。若RTSP Server不存儲該關聯(lián)關系表時,也可以根據(jù)RTSP請求中攜帶的服務器會話標識進行會話處理。其中,步驟S308和步驟S310無先后順序的限制。步驟S312, RTSP Proxy接收RTSP Server返回的RTSP響應消息,將所述RTSP響 應消息中攜帶的服務器會話標識寫入所述關聯(lián)關系表中的服務器會話標識選項中步驟S313,RTSP Proxy根據(jù)所述RTSP響應消息中攜帶的業(yè)務標識為索引,通過 RTSP Proxy中存儲的所述關聯(lián)關系表找到所述業(yè)務標識對應的客戶端標識,將所述RTSP 響應消息轉發(fā)給與所述客戶端標識對應的所述RTSP Client。步驟S314,RTSP Client發(fā)送第二 RTSP請求消息給RTSP Proxy,所述第二請求中 攜帶所述客戶端會話標識。步驟S316,RTSP Proxy接收所述第二 RTSP請求消息,根據(jù)所述請求消息中攜帶的 客戶端會話標識,查找自身存儲的會話關聯(lián)關系表,獲得與所述客戶端對應的所述服務器 會話標識和業(yè)務標識。其中,所述自身存儲的關聯(lián)關系表為所述客戶端會話標識、業(yè)務標識和所述服務 器為所述客戶端分配的所述服務器會話標識的關聯(lián)關系表,即圖4所示。步驟S318,RTSP Proxy將所述服務器會話標識和業(yè)務標識攜帶在所述RTSP請求 中,轉發(fā)給與所述服務器會話標識對應的RTSP Server0步驟S320,RTSP Server接收所述第二請求消息,根據(jù)所述請求消息中攜帶的服務 器會話標識,對所述會話進行處理。步驟S322,返回第二 RTSP響應消息給所述RTSP Proxy,所述第二 RTSP響應消息中攜帶所述業(yè)務標識。其中,RTSP Server也根據(jù)業(yè)務標識的值確定是否需要生成多個業(yè)務,比如, Server收到同一個Proxy的業(yè)務請求時,如果有不同業(yè)務標識,Server將視為不同業(yè)務請 求,會生成多個業(yè)務數(shù)據(jù)區(qū)。步驟S324,RTSP Proxy接收所述第二 RTSP響應消息,以所述響應消息中攜帶的所 述業(yè)務標識為索引,通過查找所述關聯(lián)關系表,獲取所述客戶端會話標識。步驟S326,將所述第二 RTSP響應消息轉發(fā)給與所述客戶端會話標識對應的所述 RTSP Client,使得RTSP Client接收所述RTSP響應消息。其中,根據(jù)所述業(yè)務標識,可以更新該會話相應的信息,將所述更新后的會話信息 寫入自身存儲的關聯(lián)關系表中的會話信息Session-Info選項中。上述的交互流程也適用于一個RTSP Proxy需要與多個Server連接的應用場景, 只需要在RTSP Proxy與多個RTSP Server之間的信令交互消息中攜帶業(yè)務標識字段即可。下面結合一個典型的播放和結束的會話交互流程進行具體描述,所述關于RTSP 請求包括建會話Setup、播放Play、暫停Pause以及結束會話Teardown。例如RTSP Client向RTSP Proxy發(fā)送的RTSP請求為SETUP消息,消息舉例如下C- > P =SETUP rtsp ://foo/twister/video RTSO/1. 0CSeq 1Transport :RTP/AVP ;unicast ;client—port = 8002-8003RTSP Proxy生成客戶端會話標識Client Session ID 客戶端會話標識Client Session ID-I和業(yè)務標識ServiceID 業(yè)務標識ServiceID-χ,并轉發(fā)該消息給RTSP Server,消息中攜帶業(yè)務標識ServiceID-χ字段或選項,消息舉例如下(下面用ServiceID 來表示業(yè)務標識,但并不是表示唯一使用Service ID表示業(yè)務標識,僅以此為例進行說明。 所述業(yè)務標識,用于RTSP Proxy區(qū)分RTSP Server返回的響應消息對應的業(yè)務數(shù)據(jù)區(qū),也 用于RTSP Server區(qū)分來之同一個RTSP Proxy的不同會話請求的。RTSPProxy為一次會 話分配一個業(yè)務標識,在一次會話交互過程中,業(yè)務標識保持不變的均可以代表該業(yè)務標 識)P- > S =SETUP rtsp ://foo/twister/video RTSP/1. 0CSeq 1Transport :RTP/AVP ;unicast ;client_port = 10000-10001Service-ID 1234RTSP Server為所述客戶端分配的所述服務器會話標識ServerSession ID: Server Session ID-A,并記錄收到的業(yè)務標識ServicelD-x,處理后返回給RTSP Proxy的 響應消息中需要攜帶ServicelD-x,舉例如下S- > P :RTSP/1. 0 200 OKCSeq 1Transport :RTP/AVP ;unicast ;client—port = 10000—10001 ;server_port = 12004-12005Session 22345679Service-ID 1234
RTSP Proxy把根據(jù)業(yè)務標識ServiceID-χ,查找自身存儲的關聯(lián)關系表,找到對應 的 Client Session ID-1,并記錄 RTSP Server 生成的會話標識Server Session ID-A,根 據(jù)該會話標識Server Session ID_A,把響應消息轉發(fā)給Client,舉例如下P- > C :RTSP/1. 0 200 OKRTSP Proxy根據(jù)客戶端的會話標識Client Session ID-1找到對應的業(yè)務標識 ServiceID-χ 和服務器會話標識 Server Session ID-A,在轉發(fā)給 RTSP Server 的 Play 消 息中,攜帶服務器會話標識Server SessionID-A和業(yè)務標識=ServiceID-X字段,消息舉例 如下P- > S =PLAY rtsp ://foo/twister RTSP/1. 0CSeq 2Range :npt = 0-Session 22345679Service-ID 1234RTSP Server根據(jù)會話標識Server Session ID-A找到對應的數(shù)據(jù)區(qū),處理后返回 給RTSP Proxy的響應消息中需要攜帶業(yè)務標識=ServiceID-X字段,舉例如下S- > P :RTSP/1. 0 200 OKCSeq 2Session 22345679RTP-Info :url = rtsp ://foo/twister/video ;seq = 10092 ;rtptime = 1120089Service-ID 1234RTSP Proxy根據(jù)業(yè)務標識ServiceID_x找到對應的客戶端的會話標識Client Session ID-1,根據(jù)該客戶端的會話標識Client Session ID-1把響應消息轉發(fā)給RTSP Client,舉例如下P- > C :RTSP/1. 0 200 OKCSeq 2Session 12345678RTP-Info :url = rtsp ://foo/twister/video ;seq = 40023 ;rtptime = 3450012當RTSP Client向RTSP Proxy發(fā)送PAUSE消息以及teardown的流程如上述描述
server_port = 9004-9005
Session 12345678 當RTSP Client向Proxy發(fā)送PLAY消息,消息舉例如下 C- > P =PLAY rtsp ://foo/twister RTSP/1. 0
CSeq 1
Transport :RTP/AVP ;unicast ;client—port = 8002-8003 ;
CSeq 2
Range :npt = 0-Session 12345678的流程相同,在此不再贅述。本發(fā)明實施例提供一種實時流協(xié)議代理RTSP Proxy轉發(fā)數(shù)據(jù)的具體實施方法,通 過接收來自多個實時流協(xié)議客戶端RTSP Client的實時流協(xié)議RTSP請求;根據(jù)所述RTSP 請求,生成所述實時流協(xié)議客戶端標識ClientSession ID和業(yè)務標識Service ID的關聯(lián) 關系表;將攜帶所述Service ID的RTSP請求轉發(fā)給實時流協(xié)議服務器RTSP Server ;通過 接收所述RTSPServer的RTSP響應消息,并以RTSP響應消息中攜帶的所述Service ID為 索引,查找所述關聯(lián)關系表,將所述RTSP響應消息轉發(fā)給與所述ClientSessionID對應的 所述RTSP Client,解決了 RTSP Proxy接入多個RTSP協(xié)議客戶端,RTSP Proxy無法將RTSP Server返回的響應消息發(fā)送給相應的請求端RTSP Client,從而導致客戶端無法接收到該 響應消息的問題,完善了 RTSP Proxy的功能,簡化了 RTSP Proxy的處理流程。圖6為本發(fā)明實施例中另一種實時流協(xié)議代理RTSP Proxy轉發(fā)數(shù)據(jù)的具體實現(xiàn) 方式流程圖,下面結合圖6對本發(fā)明實施例中另一種實時流協(xié)議代理RTSP Proxy轉發(fā)數(shù)據(jù) 的具體實現(xiàn)方式流程圖做具體描述。下面描述實時流協(xié)議代理RTSP Proxy不僅可以接收實時流協(xié)議客戶端關于會話 的RTSP消息外,還可以接收關于事務的RTSP消息,比如選項OPTIONS、查詢DESCRIBE、通告 ANNOUNCE等消息的應用場景,消息流程只由一對請求和響應消息完成,這類消息稱之為事 務類消息。Proxy只需要為這類消息創(chuàng)建事務。關于事務的關聯(lián)關系表中包含客戶端事務 標識和業(yè)務標識,與實時流協(xié)議服務器RTSP Server的交互消息攜帶該業(yè)務標識,收到RTSP Server的響應消息,根據(jù)業(yè)務標識定位關聯(lián)關系表,把響應消息轉發(fā)給client,整個事務 即結束,具體如下步驟S600,實時流協(xié)議客戶端RTSP Client發(fā)送實時流協(xié)議RTSP請求給實時流協(xié) 議代理 RTSP Proxy。其中,與所述RTSP Proxy連接的RTSP Client有多個,所述請求消息可以為事務 請求消息。步驟S602,所述RTSP Proxy接收多個RTSP Client發(fā)送的RTSP請求,為所述RTSP Client分配所述客戶端的事務標識和業(yè)務標識,并生成所述實時流協(xié)議客戶端標識和業(yè)務 標識的關聯(lián)關系表。具體關于所述客戶端標識為客戶端事務標識時,生成所述客戶端事務標識和業(yè)務 標識的事務關聯(lián)關系表如圖7所示。圖7為本發(fā)明實施例中一種事務關聯(lián)關系表,存儲在RTSP Proxy中,表中包括客 戶端事務標識,是RTSP Proxy為所述RTSP Client分配的客戶端事務標識,對于多個RTSP Client中各個RTSP Client發(fā)送的不同的RTSP請求,RTSP Proxy通過客戶端事務標識來區(qū) 分是哪個RTSP Client發(fā)送的RTSP請求;所述業(yè)務標識,用于RTSP Proxy區(qū)分RTSP Server 返回的響應消息對應的業(yè)務數(shù)據(jù)區(qū),也用于RTSP Server區(qū)分來之同一個RTSP Proxy的不 同會話請求。RTSP Proxy為一次會話分配一個業(yè)務標識,在一次會話交互過程中,業(yè)務標 識保持不變。例如RTSP Proxy生成客戶端事務標識為“1”則可以表示為客戶端事務標 識-1 ;業(yè)務標識為“Y”,則表示為業(yè)務標識-Y,下面的具體的實例中進行了詳細的說明。步驟S604,RTSP Proxy將攜帶所述Service ID的RTSP請求轉發(fā)給實時流協(xié)議服 務器 RTSP Server。
具體為RTSP Proxy所述RTSP請求消息中通過擴展的字段,攜帶所述業(yè)務標識, 將所述消息發(fā)送給相應的RTSP Server進行處理,其中所述RTSP Server為多個,但是具體 接收該RTSP請求為RTSP Proxy根據(jù)請求的內容決定選擇多個RTSP Server中的具體一個 RTSP Server來進行處理。步驟S606,RTSP Server接收所述RTSP請求,根據(jù)所述請求,RTSPServer為來之 同一 Proxy的不同Service ID的請求消息進行消息處理。步驟S607,返回RTSP響應消息給響應的RTSP Proxy,所述響應消息中攜帶所述業(yè) 務標識。步驟S608,RTSP Proxy接收RTSP Server返回的RTSP響應消息,根據(jù)所述RTSP 響應消息中攜帶的業(yè)務標識為索引,通過查找RTSP Proxy中存儲的所述事務關聯(lián)關系表, 獲取客戶端事務標識。步驟S610,RTSP Proxy將所述RTSP響應消息轉發(fā)給與所述客戶端事務標識對應 的RTSP Client,使得所述RTSP Client接收所述RTSP Proxy返回的RTSP響應消息。上述的交互流程也適用于一個RTSP Proxy需要與多個Server連接的應用場景, 只需要在RTSP Proxy與多個RTSP Server之間的信令交互消息中攜帶所述業(yè)務標識字段 即可。下面結合一個典型事務交互流程進行具體描述,以RTSP請求消息為選項OPTIONS 消息為例該RTSP Client向RTSP Proxy發(fā)送Options消息,消息舉例如下C- > P OPT 10NS*RTSP/1. 0CSeq 0Require implicit-playProxy-Require :gzipped_messagesRTSP Proxy 首先生成客戶端事務標識Client Transaction ID: ClientTransaction ID-1 和關聯(lián)的業(yè)務標識 ServiceID :ServiceID_x,RTSP Proxy 轉發(fā) options消息給RTSP Server,消息中增加ServiceID字段,消息舉例如下(這里的所述客戶 端事務標識用Client Transaction ID表示,業(yè)務標識用ServiceID表示,但并不是表示唯 一使用Service ID表示業(yè)務標識,僅以此為例進行說明。所述業(yè)務標識,用于RTSP Proxy 區(qū)分RTSPServer返回的響應消息對應的業(yè)務數(shù)據(jù)區(qū),也用于RTSP Server區(qū)分來之同一個 RTSP Proxy的不同會話請求的。RTSP Proxy為一次會話分配一個業(yè)務標識,在一次會話交 互過程中,業(yè)務標識保持不變的均可以代表該業(yè)務標識)P- > S OPT I ONS^RTSP/1. 0CSeq 0Require implicit-playProxy-Require :gzipped_messagesService-ID 1235RTSP Server處理后返回給RTSP Proxy的響應消息中需要攜帶來自RTSP Proxy 的業(yè)務標識ServiceID-x,舉例如下S- > P :RTSP/1. 0 200 OK
CSeq 0Public :DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSEService-ID : 1235RTSP Proxy根據(jù)業(yè)務標識ServiceID-χ,查找事務關聯(lián)關系表,找到對應的事務標 識Client Transaction ID-I,根據(jù)事務標識把響應消息轉發(fā)給對應的RTSP Client,消息 舉例如下P- > C :RTSP/1. 0 200 OKCSeq 0Public :DESCRIBE, SETUP, TEARDOWN, PLAY, PAUSE同樣,當所述RTSP消息為DESCRIBE消息等其它事務消息時,也可以通過上述流程 進行處理,這里就不再贅述。本發(fā)明實施例提供另一種實時流協(xié)議代理RTSP Proxy轉發(fā)數(shù)據(jù)的具體實施方 法,通過接收來自多個實時流協(xié)議客戶端RTSP Client的實時流協(xié)議RTSP請求;根據(jù)所述 RTSP請求,生成所述實時流協(xié)議客戶端的事務標識Client Transaction ID和業(yè)務標識 Service ID的關聯(lián)關系表;將攜帶所述Service ID的RTSP請求轉發(fā)給實時流協(xié)議服務器 RTSP Server ;通過接收所述RTSP Server的RTSP響應消息,并以RTSP響應消息中攜帶的 所述Service ID為索引,查找所述關聯(lián)關系表,將所述RTSP響應消息轉發(fā)給與所述Client Transaction ID對應的所述RTSP Client,解決了 RTSPProxy接入多個RTSP協(xié)議客戶端, RTSP Proxy無法將RTSP Server返回的響應消息發(fā)送給相應的請求端RTSP Client,從而 導致客戶端無法接收到該響應消息的問題,完善了 RTSP Proxy的功能,簡化了 RTSP Proxy 的處理流程。如圖8所示,圖8為本發(fā)明實施例中一種實時流協(xié)議代理RTSP Proxy轉發(fā)數(shù)據(jù)的 裝置結構圖,包括第一接收單元800,用于接收來自多個實時流協(xié)議客戶端的第一實時流協(xié)議RTSP 請求;關聯(lián)關系表生成單元802,用于根據(jù)所述RTSP請求,為所述實時流協(xié)議客戶端分 配所述客戶端標識和業(yè)務標識,并生成所述客戶端標識和業(yè)務標識的關聯(lián)關系表;第一發(fā)送單元804,用于將攜帶所述業(yè)務標識的RTSP請求轉發(fā)給實時流協(xié)議服務 器;第二接收單元806,用于接收所述實時流協(xié)議服務器的第一 RTSP響應消息,所述 RTSP響應消息中攜帶所述業(yè)務標識;第二發(fā)送單元808,用于以所述第二接收單元接收的RTSP響應消息中攜帶的業(yè)務 標識為索引,通過查找所述關聯(lián)關系表獲得客戶端標識,將所述RTSP響應消息轉發(fā)給與所 述客戶端標識對應的實時流協(xié)議客戶端。其中,當所述客戶端標識為所述客戶端事務標識時,所述關聯(lián)關系表生成單元802 具體用于為所述實時流協(xié)議客戶端分配客戶端事務標識和業(yè)務標識,并生成所述客戶端事 務標識和所述業(yè)務標識的關聯(lián)關系表。當所述客戶端標識為所述客戶端的會話標識時,所述關聯(lián)關系表生成單元具體用 于為所述實時流協(xié)議客戶端分配所述客戶端的會話標識和業(yè)務標識;生成所述客戶端會話標識、業(yè)務標識和所述實時流協(xié)議服務器為所述實時流協(xié)議客戶端分配的服務器會話標識 的關聯(lián)關系表,其中所述服務器會話標識通過接收所述實時流協(xié)議服務器的RTSP響應消
息獲得。并且,當所述客戶端標識為所述客戶端的會話標識時,所述裝置還包括所述第一接收單元800,還用于接收來自所述實時流協(xié)議客戶端的第二實時流協(xié) 議RTSP請求,所述請求中攜帶所述客戶端會話標識;獲取單元810,用于以所述第一接收單元的所述客戶端會話標識為索引,過查找所 述關聯(lián)關系表,獲得與所述客戶端對應的所述服務器會話標識和業(yè)務標識;所述第一發(fā)送單元804,還用于將所述服務器會話標識和業(yè)務標識攜帶在所述第 二 RTSP請求中,轉發(fā)給與所述服務器會話標識對應的實時流協(xié)議服務器,使得所述實時流 協(xié)議服務器根據(jù)所述服務器會話標識進行會話處理;所述第二接收單元806,還用于接收所述實時流協(xié)議服務器返回的第二 RTSP響應 消息,所述第二 RTSP響應消息中攜帶所述業(yè)務標識;所述第二發(fā)送單元808,還用于以所述第二接收單元接收的所述事務標識為索引, 通過查找所述關聯(lián)關系表獲得與所述業(yè)務標識對應的客戶端標識,將所述第二 RTSP響應 消息轉發(fā)給與所述客戶端標識對應的所述實時流協(xié)議客戶端。需要說明的是該實時流協(xié)議代理RTSP Proxy轉發(fā)數(shù)據(jù)的裝置中的各個模塊可 以內置于一種實時流協(xié)議代理RTSP Proxy中,也可以為獨立的裝置,該裝置的各部分的交 互過程可以參見對圖3和圖6的實施例的描述,這里就不再贅述。本發(fā)明實施例提供一種實時流協(xié)議代理RTSP Proxy轉發(fā)數(shù)據(jù)的裝置,通過該裝置 各個模塊的相互交互,將RTSP服務器返回的RTSP響應消息通過所述實時流協(xié)議客戶端標 識和業(yè)務標識的關聯(lián)關系表轉發(fā)給與所述客戶端標識對應的所述RTSP Client,解決了實 時流協(xié)議代理無法區(qū)分服務器返回的響應消息所歸屬的實時流協(xié)議客戶端,從而導致客戶 端無法接收到該響應消息的問題,完善了 RTSP Proxy的功能,簡化了實時流協(xié)議代理的處 理流程。如圖9所示,圖9為本發(fā)明實施例中的一種實時流協(xié)議代理RTSP Proxy轉發(fā)數(shù)據(jù) 的系統(tǒng)結構圖,包括多個實時流協(xié)議客戶端RTSP Client902、實時流協(xié)議代理RTSPProxy904和實時 流協(xié)議服務器RTSP Server906 ;所述RTSP Client902,與所述實時流協(xié)議代理相連接,用于發(fā)送第一實時流協(xié)議 RTSP請求給所述實時流協(xié)議代理,并接收所述實時流協(xié)議代理返回的RTSP響應消息;所述實時流協(xié)議代理RTSP Proxy904,分別與所述實時流協(xié)議客戶端和所述實時 流協(xié)議服務器相連接,用于接收來自多個實時流協(xié)議客戶端的第一實時流協(xié)議RTSP請求; 根據(jù)所述RTSP請求,為所述實時流協(xié)議客戶端分配所述客戶端標識和業(yè)務標,并生成所述 實時流協(xié)議客戶端標識和業(yè)務標識的關聯(lián)關系表;將攜帶所述業(yè)務標識的RTSP請求轉發(fā) 給實時流協(xié) 議服務器;并接收所述服務器的RTSP響應消息,所述RTSP響應消息中攜帶所述 業(yè)務標識,并以所述業(yè)務標識為索引,通過查找所述關聯(lián)關系表獲得于所述業(yè)務標識對應 的所述客戶端標識,將所述RTSP響應消息轉發(fā)給與所述客戶端標識對應的所述實時流協(xié) 議客戶端;
所述實時流協(xié)議服務器RTSP Server906,與所述實時流協(xié)議代理相連接,用于接 收所述實時流協(xié)議代理發(fā)送的第一 RTSP請求,根據(jù)不同的所述業(yè)務標識,為所述實時流協(xié) 議客戶端建立不同的會話,并返回所述RTSP響應消息給所述實時流協(xié)議代理,其中,所述 RTSP響應消息中攜帶所述業(yè)務標識。當所述客戶端標識為客戶端會話標識時,所述實時流協(xié)議代理具體用于根據(jù)所述RTSP請求,為所述實時流協(xié)議客戶端分 配所述客戶端標識和業(yè)務標識,并生成所述客戶端標識和業(yè)務標識的關聯(lián)關系表;所述實時流協(xié)議服務器還用于獲取并存儲所述服務器為所述客戶端分配的所述 服務器會話標識和所述業(yè)務標識的關聯(lián)關系表,其中,所述業(yè)務標識從所述RTSP請求消息 中獲取。當所述客戶端標識為所述客戶端會話標識時,所述實時流協(xié)議客戶端,還用于發(fā)送第二實時流協(xié)議RTSP請求給所述實時流協(xié) 議代理,所述請求中攜帶所述客戶端會話標識,以及接收所述實時流協(xié)議代理返回的第二 RTSP響應;所述實時流協(xié)議代理,還用于接收所述第二 RTSP請求,將所述客戶端會話標識為 索引,過查找所述關聯(lián)關系表,獲得與客戶端會話標識對應的所述服務器會話標識和業(yè)務 標識,將所述服務器會話標識和業(yè)務標識攜帶在所述第二 RTSP請求中,轉發(fā)給與所述服務 器會話標識對應的實時流協(xié)議服務器;并接收所述實時流協(xié)議服務器返回的第二 RTSP響 應消息,所述第二 RTSP響應消息中攜帶所述業(yè)務標識;以所述業(yè)務標識為索引,通過查找 所述關聯(lián)關系表獲取與所述業(yè)務標識對應的客戶端會話標識,將所述RTSP響應消息轉發(fā) 給與所述客戶端會話標識對應的所述實時流協(xié)議客戶端;所述實時流協(xié)議服務器,還用于接收所述實時流協(xié)議代理轉發(fā)的所述第二 RTSP 請求,根據(jù)所述請求中攜帶的所述服務器會話標識對所述會話進行處理,并返回第二 RTSP 響應消息給所述實時流協(xié)議代理,所述第二 RTSP響應消息中攜帶所述業(yè)務標識。當所客戶端標識為所述客戶端事務標識時,所述實時流協(xié)議代理具體用于根據(jù)所述RTSP請求,為所述實時流協(xié)議客戶端分 配客戶端事務標識和業(yè)務標識,并生成所述客戶端事務標識和所述業(yè)務標識的關聯(lián)關系表。本發(fā)明實施例提供一種實時流協(xié)議代理RTSP Proxy轉發(fā)數(shù)據(jù)的系統(tǒng),通過系統(tǒng) 中的RTSP Client、RTSP Proxy和RTSP Server之間的相互交互,將RTSP服務器返回的 RTSP響應消息通過所述實時流協(xié)議客戶端標識和業(yè)務標識D的關聯(lián)關系表轉發(fā)給與所述 客戶端標識對應的所述RTSP Client,解決了實時流協(xié)議代理無法區(qū)分服務器返回的響應 消息所歸屬的實時流協(xié)議客戶端,從而導致客戶端無法接收到該響應消息的問題,完善了 RTSPProxy的功能,簡化了實時流協(xié)議代理的處理流程。通過以上的實施方式的描述,本領域的 技術人員可以清楚地了解到本發(fā)明可借助 軟件加必需的通用硬件平臺的方式來或通過硬件來實現(xiàn),基于這樣的理解,本發(fā)明的技術 方案本質上或者說對現(xiàn)有技術做出貢獻的部分可以以軟件產品的形式體現(xiàn)出來,該計算機 軟件產品存儲在一個存儲介質中,包括若干指令用以使一臺終端設備(可以是手機,個人 計算機,服務器,或者網(wǎng)絡設備等)執(zhí)行本發(fā)明各個實施例所述的方法。
以上所述僅是本發(fā)明的優(yōu)選實施方式,應當指出,對于本技術領域的普通技術人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進和潤飾,這些改進和潤飾也應 視本發(fā)明的保護范圍。
權利要求
一種實時流協(xié)議代理轉發(fā)數(shù)據(jù)的方法,其特征在于,包括接收來自多個實時流協(xié)議客戶端的第一實時流協(xié)議RTSP請求;根據(jù)所述RTSP請求,為所述實時流協(xié)議客戶端分配客戶端標識和業(yè)務標識,并生成所述客戶端標識和業(yè)務標識的關聯(lián)關系表;將攜帶所述業(yè)務標識的RTSP請求轉發(fā)給實時流協(xié)議服務器;接收所述實時流協(xié)議服務器的第一RTSP響應消息,所述第一RTSP響應消息中攜帶所述業(yè)務標識,并以所述業(yè)務標識為索引,通過查找所述關聯(lián)關系表獲得客戶端標識,將所述第一RTSP響應消息轉發(fā)給與所述客戶端標識對應的實時流協(xié)議客戶端。
2.根據(jù)權利要求1所述的方法,其特征在于,當所述客戶端標識為客戶端事務標識時, 所述為所述實時流協(xié)議客戶端分配所述客戶端標識和業(yè)務標識,并生成所述客戶端標識和 業(yè)務標識的關聯(lián)關系表具體包括為所述實時流協(xié)議客戶端分配客戶端事務標識和業(yè)務標識,并生成所述客戶端事務標 識和所述業(yè)務標識的關聯(lián)關系表。
3.根據(jù)權利要求1所述的方法,其特征在于,當所述客戶端標識為所述客戶端的會話 標識時,所述為所述實時流協(xié)議客戶端分配所述客戶端標識和業(yè)務標識,并生成所述客戶 端標識和業(yè)務標識的關聯(lián)關系表具體包括為所述實時流協(xié)議客戶端分配所述客戶端的會話標識和業(yè)務標識; 生成所述客戶端會話標識、業(yè)務標識和所述實時流協(xié)議服務器為所述實時流協(xié)議客戶 端分配的服務器會話標識的關聯(lián)關系表,其中所述服務器會話標識通過接收所述實時流協(xié) 議服務器的RTSP響應消息獲得。
4.根據(jù)權利要求3所述的方法,其特征在于,所述方法還包括接收來自所述實時流協(xié)議客戶端的第二實時流協(xié)議RTSP請求,所述請求中攜帶所述 客戶端會話標識;以所述客戶端會話標識為索引,過查找所述關聯(lián)關系表,獲得與所述客戶端對應的所 述服務器會話標識和業(yè)務標識;將所述服務器會話標識和業(yè)務標識攜帶在所述第二 RTSP請求中,轉發(fā)給與所述服務 器會話標識對應的實時流協(xié)議服務器,使得所述實時流協(xié)議服務器根據(jù)所述服務器會話標 識進行會話處理;接收所述實時流協(xié)議服務器返回的第二 RTSP響應消息,所述第二 RTSP響應消息中攜 帶所述業(yè)務標識,并以所述業(yè)務標識為索引,通過查找所述關聯(lián)關系表獲得與所述業(yè)務標 識對應的客戶端標識,將所述第二 RTSP響應消息轉發(fā)給與所述客戶端標識對應的所述實 時流協(xié)議客戶端。
5.一種實時流協(xié)議代理轉發(fā)數(shù)據(jù)的裝置,其特征在于,包括第一接收單元,用于接收來自多個實時流協(xié)議客戶端的第一實時流協(xié)議RTSP請求; 關聯(lián)關系表生成單元,用于根據(jù)所述RTSP請求,為所述實時流協(xié)議客戶端分配所述客 戶端標識和業(yè)務標識,并生成所述客戶端標識和業(yè)務標識的關聯(lián)關系表;第一發(fā)送單元,用于將攜帶所述業(yè)務標識的RTSP請求轉發(fā)給實時流協(xié)議服務器; 第二接收單元,用于接收所述實時流協(xié)議服務器的第一 RTSP響應消息,所述RTSP響應 消息中攜帶所述業(yè)務標識;第二發(fā)送單元,用于以所述第二接收單元接收的RTSP響應消息中攜帶的業(yè)務標識為 索引,通過查找所述關聯(lián)關系表獲得客戶端標識,將所述RTSP響應消息轉發(fā)給與所述客戶 端標識對應的實時流協(xié)議客戶端。
6.根據(jù)權利要求5所述的裝置,其特征在于,當所戶端標識為所述客戶端事務標識時, 所述關聯(lián)關系表生成單元具體用于為所述實時流協(xié)議客戶端分配客戶端事務標識和業(yè)務 標識,并生成所述客戶端事務標識和所述業(yè)務標識的關聯(lián)關系表。
7.根據(jù)權利要求5所述的裝置,其特征在于,當所述客戶端標識為所述客戶端的會話 標識時,所述關聯(lián)關系表生成單元具體用于為所述實時流協(xié)議客戶端分配所述客戶端的會 話標識和業(yè)務標識;生成所述客戶端會話標識、業(yè)務標識和所述實時流協(xié)議服務器為所述 實時流協(xié)議客戶端分配的服務器會話標識的關聯(lián)關系表,其中所述服務器會話標識通過接 收所述實時流協(xié)議服務器的RTSP響應消息獲得。
8.根據(jù)權利要求7所述的裝置,其特征在于,當所述客戶端標識為所述客戶端的會話 標識時,所述裝置還包括所述第一接收單元,還用于接收來自所述實時流協(xié)議客戶端的第二實時流協(xié)議RTSP 請求,所述請求中攜帶所述客戶端會話標識;獲取單元,用于以所述第一接收單元的所述客戶端會話標識為索引,過查找所述關聯(lián) 關系表,獲得與所述客戶端對應的所述服務器會話標識和業(yè)務標識;所述第一發(fā)送單元,還用于將所述服務器會話標識和業(yè)務標識攜帶在所述第二 RTSP 請求中,轉發(fā)給與所述服務器會話標識對應的實時流協(xié)議服務器,使得所述實時流協(xié)議服 務器根據(jù)所述服務器會話標識進行會話處理;所述第二接收單元,還用于接收所述實時流協(xié)議服務器返回的第二 RTSP響應消息,所 述第二 RTSP響應消息中攜帶所述業(yè)務標識;所述第二發(fā)送單元,還用于以所述第二接收單元接收的所述業(yè)務標識為索引,通過查 找所述關聯(lián)關系表獲得與所述業(yè)務標識對應的客戶端標識,將所述第二 RTSP響應消息轉 發(fā)給與所述客戶端標識對應的所述實時流協(xié)議客戶端。
9.一種實時流協(xié)議代理轉發(fā)數(shù)據(jù)的系統(tǒng),其特征在于,包括多個實時流協(xié)議客戶端、 實時流協(xié)議代理和實時流協(xié)議服務器;所述實時流協(xié)議客戶端,與所述實時流協(xié)議代理相連接,用于發(fā)送第一實時流協(xié)議 RTSP請求給所述實時流協(xié)議代理,并接收所述實時流協(xié)議代理返回的RTSP響應消息;所述實時流協(xié)議代理,分別與所述實時流協(xié)議客戶端和所述實時流協(xié)議服務器相連 接,用于接收來自多個實時流協(xié)議客戶端的第一實時流協(xié)議RTSP請求;根據(jù)所述RTSP請 求,為所述實時流協(xié)議客戶端分配所述客戶端標識和業(yè)務標,并生成所述實時流協(xié)議客戶 端標識和業(yè)務標識的關聯(lián)關系表;將攜帶所述業(yè)務標識的RTSP請求轉發(fā)給實時流協(xié)議服 務器;并接收所述服務器的RTSP響應消息,所述RTSP響應消息中攜帶所述業(yè)務標識,并以 所述業(yè)務標識為索引,通過查找所述關聯(lián)關系表獲得于所述業(yè)務標識對應的所述客戶端標 識,將所述RTSP響應消息轉發(fā)給與所述客戶端標識對應的所述實時流協(xié)議客戶端;所述實時流協(xié)議服務器,與所述實時流協(xié)議代理相連接,用于接收所述實時流協(xié)議代 理發(fā)送的第一 RTSP請求,根據(jù)不同的所述業(yè)務標識,為所述實時流協(xié)議客戶端建立不同的 會話,并返回所述RTSP響應消息給所述實時流協(xié)議代理,其中,所述RTSP響應消息中攜帶所述業(yè)務標識。
10.根據(jù)權利要求9所述的系統(tǒng),其特征在于,當所述客戶端標識為客戶端會話標識時,所述實時流協(xié)議代理具體用于根據(jù)所述RTSP請求,為所述實時流協(xié)議客戶端分配所 述客戶端標識和業(yè)務標識,并生成所述客戶端標識和業(yè)務標識的關聯(lián)關系表;所述實時流協(xié)議服務器還用于獲取并存儲所述服務器為所述客戶端分配的所述服務 器會話標識和所述業(yè)務標識的關聯(lián)關系表,其中,所述業(yè)務標識從所述RTSP請求消息中獲取。
11.根據(jù)權利要求9所述的系統(tǒng),其特征在于,當所述客戶端標識為所述客戶端會話標 識時,所述實時流協(xié)議客戶端,還用于發(fā)送第二實時流協(xié)議RTSP請求給所述實時流協(xié)議代 理,所述請求中攜帶所述客戶端會話標識,以及接收所述實時流協(xié)議代理返回的第二 RTSP 響應;所述實時流協(xié)議代理,還用于接收所述第二 RTSP請求,將所述客戶端會話標識為索 引,過查找所述關聯(lián)關系表,獲得與客戶端會話標識對應的所述服務器會話標識和業(yè)務標 識,將所述服務器會話標識和業(yè)務標識攜帶在所述第二 RTSP請求中,轉發(fā)給與所述服務器 會話標識對應的實時流協(xié)議服務器;并接收所述實時流協(xié)議服務器返回的第二 RTSP響應 消息,所述第二 RTSP響應消息中攜帶所述業(yè)務標識;以所述業(yè)務標識為索引,通過查找所 述關聯(lián)關系表獲取與所述業(yè)務標識對應的客戶端會話標識,將所述RTSP響應消息轉發(fā)給 與所述客戶端會話標識對應的所述實時流協(xié)議客戶端;所述實時流協(xié)議服務器,還用于接收所述實時流協(xié)議代理轉發(fā)的所述第二 RTSP請求, 根據(jù)所述請求中攜帶的所述服務器會話標識對所述會話進行處理,并返回第二 RTSP響應 消息給所述實時流協(xié)議代理,所述第二 RTSP響應消息中攜帶所述業(yè)務標識。
12.根據(jù)權利要求9所述的系統(tǒng),其特征在于,當所客戶端標識為所述客戶端事務標識時,所述實時流協(xié)議代理具體用于根據(jù)所述RTSP請求,為所述實時流協(xié)議客戶端分配客 戶端事務標識和業(yè)務標識,并生成所述客戶端事務標識和所述業(yè)務標識的關聯(lián)關系表。
全文摘要
本發(fā)明實施例公開了一種實時流協(xié)議代理轉發(fā)數(shù)據(jù)的方法、裝置和系統(tǒng),該方法包括通過實時流協(xié)議代理接收實時流協(xié)議客戶端的實時流協(xié)議RTSP請求;根據(jù)所述RTSP請求,生成客戶端標識和業(yè)務標識的關聯(lián)關系表;根據(jù)該關聯(lián)關系表,將所述RTSP響應消息轉發(fā)給與所述客戶端標識對應的實時流協(xié)議客戶端,解決了實時流協(xié)議代理無法區(qū)分服務器返回的響應消息所歸屬的實時流協(xié)議客戶端,從而導致客戶端無法接收到該響應消息的問題,完善了RTSP Proxy的功能,簡化了實時流協(xié)議代理的處理流程。
文檔編號H04L12/56GK101989978SQ200910109558
公開日2011年3月23日 申請日期2009年8月5日 優(yōu)先權日2009年8月5日
發(fā)明者宋偉, 殷悅, 韓磊 申請人:華為技術有限公司