專利名稱:即時通訊中媒體數(shù)據(jù)傳輸通道切換的方法
技術領域:
本發(fā)明涉及即時通訊中的媒體數(shù)據(jù)傳輸,更具體地說,涉及一種即時通訊中媒體數(shù)據(jù)傳輸通道切換的方法。
背景技術:
隨著Internet網(wǎng)絡普及和廣泛應用,很多即時通訊終端(包括硬終端和軟終端),給用戶進行實時交流帶來了很大的方便。
實時傳送協(xié)議(Real-time Transport Protocol,簡稱RTP)數(shù)據(jù)提供了具有實時特征的端對端傳送服務,如在組播或單播網(wǎng)絡服務下的交互式視頻音頻或模擬數(shù)據(jù)。應用程序通常在用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol,簡稱UDP)上運行RTP以便使用其多路結(jié)點和校驗服務;這兩種協(xié)議都提供了傳輸層協(xié)議的功能。但是RTP可以與其它適合的底層網(wǎng)絡或傳輸協(xié)議一起使用。如果底層網(wǎng)絡提供組播方式,那么RTP可以使用該組播表傳輸數(shù)據(jù)到多個目的地。
網(wǎng)絡地址轉(zhuǎn)換(簡稱為NAT)穿越技術這種技術實現(xiàn)方法對于一個私網(wǎng)中的所有設備,共用一個或多個合法的IP地址作為出口地址,只有在設備請求連接外部網(wǎng)絡時,才為這個請求分配一個合法IP地址和一個端口號,來進行外部連接;當這個請求結(jié)束時,端口號和IP地址也就隨即被收回。NAT與端口地址轉(zhuǎn)換(簡稱為PAT)經(jīng)常被同時使用,稱為網(wǎng)絡地址端口轉(zhuǎn)換(簡稱為NAPT)。NAPT的運用,為IP網(wǎng)絡帶來了很多好處,緩解了IPv4構架下Internet網(wǎng)絡的IP地址緊張問題,提高了私有網(wǎng)絡內(nèi)部的安全性和管理性。
現(xiàn)有的即時通訊在進行點對點通訊時,一般采取以下兩種方法進行媒體數(shù)據(jù)傳輸一種方法就是節(jié)點之間通過媒體服務器來中轉(zhuǎn)媒體數(shù)據(jù)。這種方法的優(yōu)點在于通訊節(jié)點之間接通時間較短;缺點在于媒體數(shù)據(jù)都需要經(jīng)過媒體服務器進行中轉(zhuǎn),增加實時媒體數(shù)據(jù)的傳輸時延和媒體服務器的處理能力。
另一種方法就是先進行點對點穿越處理,在穿越成功后再使用直接連接的點對點媒體通道。但是,如果點對點穿越失敗,則需要通過媒體服務器來中轉(zhuǎn)媒體數(shù)據(jù),同時還需要有一個專門的穿越服務器來負責節(jié)點間穿越信息傳輸?shù)奶幚怼?br>
這種方法的優(yōu)點在于如果穿越成功,那么兩個即時通訊終端能夠直接通訊,不用通過媒體服務器中轉(zhuǎn)媒體數(shù)據(jù),在一定程度上減輕了媒體服務器的壓力,而且也減少了實時媒體數(shù)據(jù)的傳輸時延;缺點在于增加節(jié)點之間呼叫建立的時間,因為判斷兩個節(jié)點之間是否可以直接通訊需要5-30s的時間,同時還需要增加一個穿越服務器和UDP包簡單穿越網(wǎng)絡地址轉(zhuǎn)換(Simple Traversalof UDP over NAT,簡稱STUN)服務器,增加了投資成本。
發(fā)明內(nèi)容
本發(fā)明要解決的技術問題在于,針對現(xiàn)有技術的上述兩種方法的缺陷,提供一種即時通訊中媒體數(shù)據(jù)傳輸通道切換的方法,在保證呼叫接通時間較短的前提下減輕了媒體服務器的處理能力,提高媒體數(shù)據(jù)傳輸?shù)膶崟r性和減少了穿越服務器和STUN服務器這兩個設備,降低了投資成本。
本發(fā)明解決其技術問題所采用的技術方案是構造一種即時通訊中媒體數(shù)據(jù)傳輸通道切換的方法,包括以下步驟a.主被叫雙方通過中轉(zhuǎn)的媒體服務器建立通訊后,使用所述中轉(zhuǎn)的媒體服務器通道傳輸媒體數(shù)據(jù),并在通訊的同時進行NAT穿越嘗試;b.如果穿越成功,則將所述主被叫雙方直接通訊的新媒體通道替換原來中轉(zhuǎn)的媒體通道;否則執(zhí)行步驟c;c.繼續(xù)使用原來中轉(zhuǎn)的媒體通道進行通訊。
在本發(fā)明所述的方法中,所述步驟a具體包括a1.主叫方通過所述媒體服務器獲取即時通訊終端經(jīng)過NAT設備映射后的穿越地址和中轉(zhuǎn)端口地址的信息,并通過SIP代理服務器將所述獲取到的信息發(fā)送給被叫方;a2.所述被叫方通過所述SIP代理服務器接收到所述主叫方的邀請后,向所述媒體服務器獲取自身的穿越地址和中轉(zhuǎn)端口地址的信息,并同樣通過所述SIP代理服務器將所述獲取到的信息發(fā)送給所述主叫方。
在本發(fā)明所述的方法中,所述步驟a中,所述主被叫穿越協(xié)商過程具體包括以下步驟a3.所述主叫方向所述被叫方發(fā)送命令請求穿越;a4.如果所述主叫方在預設時間內(nèi)收到所述被叫方返回的響應消息后,繼續(xù)向所述被叫方發(fā)送命令通知對方本節(jié)點穿越成功;否則在預設時間內(nèi),繼續(xù)向所述被叫方發(fā)送命令請求穿越;a5.如果所述被叫方在預設時間內(nèi)收到所述被叫方返回的響應消息后,在預設時間內(nèi)上報穿越結(jié)果;否則,繼續(xù)向所述被叫方發(fā)送命令通知對方本節(jié)點穿越成功。
在本發(fā)明所述的方法中,當穿越結(jié)果已成功地通知對方節(jié)點并且收到了對方的穿越結(jié)果時,穿越協(xié)商過程才成功完成。
在本發(fā)明所述的方法中,在執(zhí)行所述步驟b之前,還包括判斷所述NAT穿越嘗試的時間值是否超過預設時間值。
在本發(fā)明所述的方法中,若在所述NAT穿越嘗試的時間值超過所述預設時間值,則執(zhí)行所述步驟c;否則執(zhí)行所述步驟b。
實施本發(fā)明的即時通訊中媒體數(shù)據(jù)傳輸通道切換的方法,在保證呼叫接通時間較短的前提下減輕了媒體服務器的處理能力,提高媒體數(shù)據(jù)傳輸?shù)膶崟r性和減少了穿越服務器和STUN服務器這兩個設備,降低了投資成本。
下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中圖1是本發(fā)明所述即時通訊中媒體數(shù)據(jù)傳輸通道切換的流程圖;圖2是本發(fā)明所述即時通訊中媒體數(shù)據(jù)傳輸中穿越協(xié)商的流程圖;圖3是圖2的穿越協(xié)商命令交互過程示意圖;
圖4是本發(fā)明所述即時通訊中媒體數(shù)據(jù)傳輸通道切換完成的示意圖。
具體實施例方式
本發(fā)明主要是在呼叫雙方建立起來后先通過中轉(zhuǎn)的媒體通道傳輸媒體數(shù)據(jù),同時在兩個節(jié)點之間進行穿越嘗試,如果穿越成功則切換新的媒體通道,使用節(jié)點之間直接通訊的媒體通道,否則不作任何處理,即依舊使用原來中轉(zhuǎn)的媒體通道傳輸媒體數(shù)據(jù)。以下參照圖1、圖2,將作詳細說明。
如圖1所示,步驟1主叫方UA1向媒體服務器發(fā)CRCX(CRCX建立連接,從呼叫代理到網(wǎng)關,呼叫代理用該命令將某端點與指定的IP地址和UDP端口關聯(lián),另外還向遠端端點發(fā)送創(chuàng)建連接命令,建立兩個端點間的連接。)命令請求即時通訊終端經(jīng)過網(wǎng)絡地址轉(zhuǎn)換(稱為NAT)設備映射后的穿越地址和中轉(zhuǎn)端口。
現(xiàn)有的“NAT穿越”技術允許網(wǎng)絡應用程序檢測是否存在本地NAT設備。檢測到后,應用程序隨即對NAT進行配置,定義相應的映射來解決兼容性問題。
步驟2媒體服務器接收到主叫方UA1的請求后,向主叫方UA1發(fā)送CRCX-ACK(CRCX-ACK通訊建立連接確認,在數(shù)據(jù)通訊傳輸中,接收站發(fā)給發(fā)送站的一種傳輸控制字符。它表示確認發(fā)來的數(shù)據(jù)已經(jīng)接受無誤)響應信息。該響應信息中包含中轉(zhuǎn)端口地址、主叫方UA1的穿越IP地址、Port地址和媒體服務器的標識地址。
步驟3主叫方UA1接收到媒體服務器返回的響應消息后,向SIP(SessionInitiation Protocol,簡稱SIP,是一種“應用層”的通訊協(xié)議)代理服務器發(fā)送呼叫請求。該呼叫請求的信息包含了通過擴展SIP協(xié)議中的Invite消息頭攜帶了上述步驟2中媒體服務器響應給主叫方UA1的所有信息。
步驟4SIP代理服務器接收到主叫方UA1的呼叫請求后,對主叫方UA1的呼叫請求進行響應,并向主叫方UA1返回應答。
步驟5SIP代理服務器根據(jù)上述接收到的呼叫請求的信息,同樣以擴展SIP協(xié)議中的Invite消息頭攜帶的方式將上述呼叫請求的信息發(fā)送給被叫方UA2。
步驟6被叫方UA2接收到SIP代理服務器的請求后,對SIP代理服務器的呼叫請求進行響應,并向SIP代理服務器返回應答。這時,被叫方UA2就可以獲知中轉(zhuǎn)端口地址、UA1的IP地址、Port地址信息。
步驟7同時,被叫方UA2向SIP代理服務器其發(fā)送振鈴信息。
步驟8SIP代理服務器接收被叫方UA2的振鈴信息后,向主叫方UA1發(fā)送振鈴的響應信息。
步驟9被叫方UA2通過穿越通道向媒體服務器發(fā)送修改建立連接MDCX(MDCX修改連接,呼叫方向代理網(wǎng)關(也可以是主叫方)發(fā)送的修改請求,修改以前建立的連接)請求。
步驟10多媒體服務器接收到被叫方UA2的請求后,向被叫方UA2發(fā)送響應修改建立連接MDCX-ACK(MDCX-ACK修改連接確認,代理網(wǎng)關向發(fā)送修改連接請求方發(fā)送修改確認控制字符。)信息,該信息包含了中轉(zhuǎn)端口地址、UA2的IP地址、Port地址信息。
步驟11被叫方UA2接收到上述連接信息后,并將該信息發(fā)送給SIP代理服務器。
步驟12SIP代理服務器接收到上述連接信息后,并將該信息發(fā)送給主叫方UA1。
步驟13主叫方UA1接收到上述信息后,向SIP代理服務器發(fā)送已經(jīng)收到的確認信息。這時,主叫方UA1就可以獲知中轉(zhuǎn)端口地址、UA2的IP地址、Port地址信息。
步驟14SIP代理服務器接收到UA1的確認信息后,向被叫方UA2轉(zhuǎn)發(fā)UA1的確認信息。這時主叫方UA1和被叫方UA2通過中轉(zhuǎn)的媒體服務器建立RTP連接,主叫方UA1和被叫方UA2可以進行語音和視頻通訊。
步驟15在呼叫建立后,先使用中轉(zhuǎn)的媒體通道傳輸媒體數(shù)據(jù),同時讓主叫方UA1和被叫方UA2進行穿越嘗試。在進行穿越嘗試過程中,主叫方UA1和被叫方UA2通過四次握手來保證雙方穿越同步(詳細補充如何進行穿越嘗試,包括什么內(nèi)容、步驟)。如果穿越成功,主叫方UA1和被叫方UA2直接建立RTP連接;否則依舊使用原來中轉(zhuǎn)的媒體通道進行通訊。
需要說明的是在本次的通話或通訊沒有結(jié)束的情況下,主叫和被叫是不能進行穿越嘗試的,只有當再次的通訊時,才會進行穿越嘗試,也就是說如果在通訊的開始可以設置一定時間內(nèi)進行穿越嘗試,如果穿越嘗試的時間已經(jīng)到了預設時間,但還沒有穿越成功,那么該次通訊就不能夠進行通道的智能切換。
成功穿越的協(xié)商過程如圖2、3所示。在穿越嘗試過程中,可以設置ns的定時穿越時間,如果在ns內(nèi)還沒有穿越成功,則向服務器上報穿越結(jié)果;如果在ns內(nèi)穿越成功,主叫方UA1向被叫方UA2發(fā)送TRAV_REQ請求穿越命令。當主叫方UA1收到被叫方UA2返回的TRAV_RSP穿越響應命令,如果主叫方UA1在預設時間內(nèi)(例如1s)沒有收到該TRAV_RSP命令,則繼續(xù)向被叫方UA2發(fā)送TRAV_REQ命令請求穿越;如果主叫方UA1在預設時間內(nèi)(例如1s)收到該TRAV_RSP命令,則再向被叫方UA2發(fā)送TRAV_RESULT_NOTIFY命令通知對方本節(jié)點穿越成功。如果主叫方UA1在預設時間內(nèi)(例如3s)沒有收到被叫方UA2返回的TRAV_RESULT_NOTIFY_ACK命令,就上報穿越結(jié)果;否則在預設時間內(nèi)(例如3s)繼續(xù)等待對方節(jié)點返回的穿越結(jié)果。
應當指出的是只有在收到了TRAV_RESULT_NOTIFY、TRAV_RESULT_NOTIFY_ACK消息后,即本節(jié)點的穿越結(jié)果已成功通知對方節(jié)點且收到了對方的穿越結(jié)果的情況下才認為穿越成功。
這里,主叫方UA1和被叫方UA2的穿越請求命令是獨立,不存在相互的依賴關系,各自的相應命令是根據(jù)請求命令來分別響應的。
步驟16主叫方UA1向媒體服務器發(fā)送刪除中轉(zhuǎn)的媒體通道的DLCX(DLCX刪除連接,從呼叫代理到網(wǎng)關(也可從網(wǎng)關到呼叫代理),刪除以前建立的連接)請求。
步驟17被叫方UA2也向媒體服務器發(fā)送刪除中轉(zhuǎn)的媒體通道的DLCX請求。
步驟18媒體服務器接收到主叫方UA1和被叫方UA2的請求后,分別向主叫方UA1和被叫方UA2發(fā)送確認的DLCX-ACK(DLCX-ACK刪除連接的確認控制字符)信息,至此通道切換完成。
如圖2所示,穿越成功,通道完成后,主被叫雙方就可以直接通訊,而不需要通過中轉(zhuǎn)的媒體服務器。
因此,采用本發(fā)明可以保證呼叫接通時間較短的前提下,減輕媒體服務器的處理能力,提高媒體數(shù)據(jù)傳輸?shù)膶崟r性和減少了穿越服務器和STUN服務器這兩個設備,降低了投資成本。
權利要求
1.一種即時通訊中媒體數(shù)據(jù)傳輸通道切換的方法,其特征在于,包括以下步驟a.主被叫雙方通過中轉(zhuǎn)的媒體服務器建立通訊后,使用所述中轉(zhuǎn)的媒體服務器通道傳輸媒體數(shù)據(jù),并在通訊的同時進行NAT穿越嘗試;b.如果穿越成功,則將所述主被叫雙方直接通訊的新媒體通道替換原來中轉(zhuǎn)的媒體通道;否則執(zhí)行步驟c;c.繼續(xù)使用原來中轉(zhuǎn)的媒體通道進行通訊。
2.根據(jù)權利要求1所述的方法,其特征在于,所述步驟a具體包括a1.主叫方通過所述媒體服務器獲取即時通訊終端經(jīng)過網(wǎng)絡地址轉(zhuǎn)換(NAT)設備映射后的穿越地址和中轉(zhuǎn)端口地址的信息,并通過SIP代理服務器將所述獲取到的信息發(fā)送給被叫方;a2.所述被叫方通過所述SIP代理服務器接收到所述主叫方的邀請后,向所述媒體服務器獲取自身的穿越地址和中轉(zhuǎn)端口地址的信息,并同樣通過所述SIP代理服務器將所述獲取到的信息發(fā)送給所述主叫方。
3.根據(jù)權利要求1或2所述的方法,其特征在于,所述步驟a中,所述主被叫穿越協(xié)商過程具體包括以下步驟a3.所述主叫方向所述被叫方發(fā)送命令請求穿越;a4.如果所述主叫方在預設時間內(nèi)收到所述被叫方返回的響應消息后,繼續(xù)向所述被叫方發(fā)送命令通知對方本節(jié)點穿越成功;否則在預設時間內(nèi),繼續(xù)向所述被叫方發(fā)送命令請求穿越;a5.如果所述被叫方在預設時間內(nèi)收到所述被叫方返回的響應消息后,在預設時間內(nèi)上報穿越結(jié)果;否則,繼續(xù)向所述被叫方發(fā)送命令通知對方本節(jié)點穿越成功。
4.根據(jù)權利要求3所述的方法,其特征在于,當穿越結(jié)果已成功地通知對方節(jié)點并且收到了對方的穿越結(jié)果時,穿越協(xié)商過程才成功完成。
5.根據(jù)權利要求1所述的方法,其特征在于,在執(zhí)行所述步驟b之前,還包括判斷所述NAT穿越嘗試的時間值是否超過預設時間值。
6.根據(jù)權利要求5所述的方法,其特征在于,若在所述NAT穿越嘗試的時間值超過所述預設時間值,則執(zhí)行所述步驟c;否則執(zhí)行所述步驟b。
全文摘要
本發(fā)明涉及一種即時通訊中媒體數(shù)據(jù)傳輸通道切換的方法,包括以下步驟a.主被叫雙方通過中轉(zhuǎn)的媒體服務器建立通訊后,使用所述中轉(zhuǎn)的媒體服務器通道傳輸媒體數(shù)據(jù),并在通訊的同時進行NAT穿越嘗試;b.如果穿越成功,則將所述主被叫雙方直接通訊的新媒體通道替換原來中轉(zhuǎn)的媒體通道;否則執(zhí)行步驟c;c.繼續(xù)使用原來中轉(zhuǎn)的媒體通道進行通訊。實施本發(fā)明的即時通訊中媒體數(shù)據(jù)傳輸通道切換的方法,在保證呼叫接通時間較短的前提下減輕了媒體服務器的處理能力,提高媒體數(shù)據(jù)傳輸?shù)膶崟r性和減少了穿越服務器和STUN服務器這兩個設備,降低了投資成本。
文檔編號H04L29/06GK1946055SQ200610063299
公開日2007年4月11日 申請日期2006年10月24日 優(yōu)先權日2006年10月24日
發(fā)明者楊錦琨 申請人:深圳市瑞福特信息技術有限公司