專利名稱:一種媒體旁路的方法、系統(tǒng)和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明實(shí)施例涉及網(wǎng)絡(luò)通信技術(shù)領(lǐng)域,特別涉及一種媒體旁路的方法、 系統(tǒng)和裝置。
背景技術(shù):
在下一代網(wǎng)絡(luò)基于IP (Internet Protocol,網(wǎng)絡(luò)協(xié)議)的多媒體通信中, 為了解決NAT (Network Address Translation,網(wǎng)絡(luò)地址轉(zhuǎn)換)/FW (FireWall, 防火墻)等網(wǎng)絡(luò)穿越問題,普遍采用在網(wǎng)絡(luò)邊界上部署SBC (Session Border Controllers,會(huì)話邊界控制器)設(shè)備,通過SBC進(jìn)行信令和媒體全代理的方案。 處于公網(wǎng)或者同一個(gè)私網(wǎng)內(nèi)的終端設(shè)備,如果通過SBC進(jìn)行信令代理,那么一 般SBC也會(huì)進(jìn)行媒體代理。如果所有的媒體都由SBC代理,那么SBC設(shè)備的處 理能力和帶寬限制將成為這種星形網(wǎng)絡(luò)的瓶頸。
在SBC組網(wǎng)方式下,終端發(fā)起的建立媒體會(huì)話的會(huì)話初始化信令是通過 SBC代理的。SBC把主叫終端發(fā)送的請(qǐng)求中的SDP ( Session Description Protocol,會(huì)話描述協(xié)議)參數(shù)中的主叫媒體地址和端口修改為SBC分配的地 址和端口,傳給被叫終端,使得后續(xù)建立媒體會(huì)話時(shí),被叫終端與SBC之間建 立媒體會(huì)話。SBC用同樣的方式把被叫終端發(fā)送的響應(yīng)中攜帶的SDP參數(shù)中的 媒體地址和端口修改為SBC分配的地址和端口, ^使得后續(xù)建立媒體會(huì)話時(shí),主 叫也與SBC建立媒體通信。SBC在分配的兩對(duì)地址/端口之間進(jìn)行媒體會(huì)話的 相互轉(zhuǎn)發(fā),從而實(shí)現(xiàn)i某體代理的功能。
由于SBC組網(wǎng)方式下,終端是注冊(cè)到SBC的,通過這種注冊(cè)機(jī)制,SBC可 以獲取并記錄終端NAT轉(zhuǎn)換后的地址和端口。當(dāng)主叫終端發(fā)起呼叫時(shí),SBC 可以通過被叫終端的賬號(hào)查詢到被叫終端NAT轉(zhuǎn)換后的地址和端口 ,從而可 以判斷出主被叫是否處于同一個(gè)私網(wǎng)內(nèi),因此SBC可以檢測(cè)出單出口 (私網(wǎng)內(nèi) 的IP地址都映射到同一個(gè)公網(wǎng)IP上)NAT網(wǎng)絡(luò)內(nèi)的終端。對(duì)于多出口 (私網(wǎng)內(nèi) 的IP地址映射到一個(gè)地址池)NAT網(wǎng)絡(luò)則需要通過在SBC上進(jìn)行旁路媒體地址
5池(IP地址集合)設(shè)置,從而使SBC可以檢測(cè)出同一NAT私網(wǎng)內(nèi)的終端。
對(duì)于SBC部署在私網(wǎng)內(nèi)部的情況,以上通過在SBC上進(jìn)行地址段、地址池 配置的情況也同樣適用。
在實(shí)現(xiàn)本發(fā)明的過程中,發(fā)明人發(fā)現(xiàn)現(xiàn)有技術(shù)至少存在以下問題 基于SBC實(shí)現(xiàn)的媒體旁路技術(shù),配置繁瑣,需預(yù)先做好網(wǎng)絡(luò)規(guī)劃,了解 能夠旁路的IP地址網(wǎng)段,配置SBC,網(wǎng)絡(luò)更改維護(hù)后需要更新SBC配置。 并且,SBC無法區(qū)分同一網(wǎng)絡(luò)內(nèi)網(wǎng)絡(luò)隔離的情況。同一網(wǎng)絡(luò)內(nèi)的終端注冊(cè)到 不同SBC時(shí),注冊(cè)數(shù)據(jù)共享較困難,需要提供公用的注冊(cè)數(shù)據(jù)查詢服務(wù),成 本較高。
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種媒體旁路的方法、系統(tǒng)和裝置,以實(shí)現(xiàn)在終端可 以直接媒體互通時(shí),進(jìn)行SBC旁路,使可以直接媒體互通的終端直接進(jìn)行媒 體連接。
為達(dá)到上述目的,本發(fā)明實(shí)施例一方面提供一種媒體旁路的方法,包括 第二終端獲取第一終端的信息;
在所述第二終端支持終端互通性探測(cè)時(shí),根據(jù)所述信息中的互通性探測(cè) 標(biāo)識(shí)確定所述第 一終端支持終端互通性探測(cè)之后,所述第二終端根據(jù)所述信 息中的第 一終端地址和端口與所述第 一終端進(jìn)行協(xié)商;
在所述協(xié)商成功之后,所述第二終端根據(jù)所述協(xié)商后的第一終端地址和 端口與所述第 一終端進(jìn)行媒體連接。
另一方面,本發(fā)明實(shí)施例還提供一種媒體旁路的系統(tǒng),包括
第一終端,用于發(fā)送所述第一終端的信息;
第二終端,用于獲取所述第一終端的信息,在所述第二終端支持終端互 通性探測(cè)時(shí),根據(jù)所述信息中的互通性探測(cè)標(biāo)識(shí)確定所述第一終端支持終端 互通性探測(cè)之后,所述第二終端根據(jù)所述信息中的第 一終端地址和端口與所 述第一終端進(jìn)行協(xié)商,在所述協(xié)商成功之后,第二終端根據(jù)所述協(xié)商后的第 一終端地址和端口與所述第一終端進(jìn)行媒體連接。
6再一方面,本發(fā)明實(shí)施例還提供一種終端,包括 信息獲取模塊,用于獲取另一終端的信息;
判斷模塊,用于在所述終端支持終端互通性探測(cè)時(shí),根據(jù)所述信息獲取 模塊接收的信息中的互通性探測(cè)標(biāo)識(shí)確定所述另一終端是否支持終端互通性 探測(cè);
握手模塊,用于當(dāng)所述判斷模塊確定所述另 一終端支持終端互通性探測(cè) 時(shí),根據(jù)所述信息中的所述另 一終端地址和端口與所述另 一終端進(jìn)行協(xié)商;
媒體模塊,用于在所述握手模塊協(xié)商成功之后,根據(jù)所述協(xié)商后的第一 終端地址和端口與所述第 一終端進(jìn)行媒體連接。
與現(xiàn)有技術(shù)相比,本發(fā)明實(shí)施例具有以下優(yōu)點(diǎn)通過本發(fā)明實(shí)施例,在 第二終端支持終端互通性探測(cè)時(shí),在確定第一終端也支持終端互通性探測(cè)之 后,與該第一終端進(jìn)行協(xié)商,在協(xié)商成功之后,第二終端根據(jù)協(xié)商后的第一 終端地址和端口與第一終端進(jìn)行媒體連接。本發(fā)明實(shí)施例實(shí)現(xiàn)了同 一網(wǎng)絡(luò)內(nèi) 的兩個(gè)終端在進(jìn)行媒體通信時(shí)不需要由SBC進(jìn)行媒體代理,減輕了 SBC媒體 處理的負(fù)擔(dān),節(jié)約了網(wǎng)絡(luò)帶寬,提高了SBC利用率。
為了更清楚地說明本發(fā)明實(shí)施例的技術(shù)方案,下面將對(duì)實(shí)施例描述中所 需要使用的附圖作簡(jiǎn)單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā) 明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前 提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例同一網(wǎng)絡(luò)內(nèi)媒體旁路示意圖2為本發(fā)明實(shí)施例媒體旁路的方法的流程圖3為本發(fā)明實(shí)施例終端互通性探測(cè)的流程圖4為本發(fā)明實(shí)施例媒體旁路的系統(tǒng)的結(jié)構(gòu)圖5為本發(fā)明實(shí)施例終端的一種結(jié)構(gòu)圖6為本發(fā)明實(shí)施例終端的另一種結(jié)構(gòu)圖。
具體實(shí)施例方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行 清楚、完整地描述,顯然,所描述的實(shí)施例僅僅是本發(fā)明的一部分實(shí)施例, 而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有 做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
本發(fā)明實(shí)施例提供一種媒體旁路的方法,實(shí)現(xiàn)了準(zhǔn)確檢測(cè)同一網(wǎng)絡(luò)中兩 個(gè)終端之間是否可以進(jìn)行媒體互通,對(duì)于檢測(cè)出來可以直接媒體互通的終端
間的媒體會(huì)話,進(jìn)行SBC旁路。本發(fā)明實(shí)施例中的同一網(wǎng)絡(luò)可以為同一私網(wǎng), 也可以為公網(wǎng)。在實(shí)現(xiàn)SBC^某體旁路時(shí),SBC僅需簡(jiǎn)單配置(僅一個(gè)開關(guān)控制 功能)或零配置,不需要SBC間共享注冊(cè)信息數(shù)據(jù)。
多媒體通信中只要終端之間的網(wǎng)絡(luò)可以互通,那么媒體流在終端之間就 可以繞開SBC直接互通,減輕SBC的負(fù)擔(dān)。而網(wǎng)絡(luò)是否可以直接互通的探測(cè) 可以由參與士某體會(huì)話的兩個(gè)終端之間完成。這種方式適用于7>網(wǎng)或同 一私網(wǎng) 內(nèi)的終端探測(cè)。
本發(fā)明實(shí)施例適用于同 一 網(wǎng)絡(luò)中的終端進(jìn)行媒體會(huì)話,需要進(jìn)行SBC媒體 旁路的情形,當(dāng)兩個(gè)終端不在同一網(wǎng)絡(luò)內(nèi)時(shí),就認(rèn)為這兩個(gè)終端不能直接互 通,還是由SBC進(jìn)行媒體代理。如圖l所示,終端A與終端B建立媒體會(huì)話時(shí), 可以采用本發(fā)明實(shí)施例提供的媒體旁路的方法進(jìn)行SBC媒體旁路,而終端A與 終端C建立媒體會(huì)話時(shí)還是由SBC進(jìn)行代理。
如圖2所示,為本發(fā)明實(shí)施例士某體旁路的方法的流程圖,具體包括
步驟S201,第二終端獲取第一終端的信息。
其中,該第一終端的信息包括第一終端創(chuàng)建的握手對(duì)話的對(duì)話標(biāo)識(shí)、第 一終端的IP地址、第一終端的握手端口信息、第一終端的音頻i某體端口信息 和視頻媒體端口信息。第一終端發(fā)送的呼叫請(qǐng)求通過SIP (Session Initiation Protocol,會(huì)話初始化協(xié)議)invite信令的Call-Info頭域攜帶。并且本發(fā)明實(shí) 施例在Call-Info頭域中增加了探測(cè)信息,例如purpose = detection。
步驟S202,在第二終端支持終端互通性探測(cè)時(shí),根據(jù)該信息中的互通性 探測(cè)標(biāo)識(shí)確定第 一終端支持終端互通性探測(cè)之后,第二終端根據(jù)所述信息中的第一終端地址和端口與所述第一終端進(jìn)行協(xié)商。
其中,第二終端根據(jù)該信息中的互通性探測(cè)標(biāo)識(shí)確定第 一終端支持終端
互通性探測(cè)具體可以為
第二終端判斷該信息中是否包含互通性探測(cè)標(biāo)識(shí),如果該信息中包含互
通性探測(cè)標(biāo)識(shí),則第二終端確定第 一終端支持終端互通性#:測(cè)。
在第二終端確定第一終端支持終端互通性探測(cè)之后,第二終端創(chuàng)建握手 對(duì)話,發(fā)送握手請(qǐng)求至第一終端,根據(jù)所述信息中的第一終端地址和端口與 所述第一終端進(jìn)行協(xié)商。其中,在第二終端創(chuàng)建握手對(duì)話時(shí),第二終端以第 一終端創(chuàng)建的握手對(duì)話的對(duì)話標(biāo)識(shí)作為該第二終端創(chuàng)建的握手對(duì)話的對(duì)話標(biāo) 識(shí)。
在第二終端發(fā)送給第一終端的握手請(qǐng)求中包括:操作類型、第二終端創(chuàng)建
的握手對(duì)話的對(duì)話標(biāo)識(shí)、第二終端的IP地址、第二終端的握手端口信息、第 二終端的音頻4某體端口信息和視頻媒體端口信息。
在第 一終端接收到握手請(qǐng)求后,該第 一終端判斷握手請(qǐng)求中攜帶的第二 終端創(chuàng)建的握手對(duì)話的對(duì)話標(biāo)識(shí)與第一終端創(chuàng)建的握手對(duì)話的對(duì)話標(biāo)識(shí)是否 匹配,當(dāng)?shù)诙K端創(chuàng)建的握手對(duì)話的對(duì)話標(biāo)識(shí)與第一終端創(chuàng)建的握手對(duì)話的 對(duì)話標(biāo)識(shí)匹配時(shí),第一終端判斷握手請(qǐng)求中攜帶的第二終端的IP地址與第一 終端接收握手請(qǐng)求的源IP地址是否相同。
當(dāng)?shù)?一終端確定握手請(qǐng)求中攜帶的第二終端的IP地址與第 一終端接收握 手請(qǐng)求的源IP地址相同時(shí),第一終端確定可以與第二終端直接々某體互通,向 第二終端發(fā)送協(xié)商成功響應(yīng)消息。
步驟S203,在協(xié)商成功之后,第二終端根據(jù)協(xié)商后的第一終端地址和端 口與第一終端進(jìn)行々某體連接。具體可以為
本發(fā)明實(shí)施例中,在獲取第一終端的信息之后,第二終端根據(jù)第一終端 的音頻媒體端口信息和視頻媒體端口信息,與第一終端進(jìn)行SDP協(xié)商。然后, 第二終端使用第一終端的IP地址,以及該第一終端的音頻媒體端口信息和視 頻媒體端口信息替換SDP協(xié)商結(jié)果中的對(duì)端IP地址,以及對(duì)端的音頻媒體端 口信息和視頻媒體端口信息,進(jìn)行媒體對(duì)話。并且,第一終端也使用第二終端的IP地址,以及第二終端的音頻媒體端口
信息和視頻媒體端口信息替換SDP協(xié)商結(jié)果中的對(duì)端IP地址,以及對(duì)端的音頻 媒體端口信息和視頻媒體端口信息,進(jìn)行媒體對(duì)話。從而第一終端可以與第 二終端直接進(jìn)行媒體對(duì)話。
上述媒體旁路的方法,在第二終端支持終端互通性探測(cè)時(shí),在確定第一 終端也支持終端互通性探測(cè)之后,與該第一終端進(jìn)行協(xié)商,在協(xié)商成功之后, 第二終端根據(jù)協(xié)商后的第 一終端地址和端口與第 一終端進(jìn)行媒體連接。本發(fā) 明實(shí)施例實(shí)現(xiàn)了同一 網(wǎng)絡(luò)內(nèi)的兩個(gè)終端在進(jìn)行媒體通信時(shí)不需要由SBC進(jìn)行 媒體代理,減輕了SBC媒體處理的負(fù)擔(dān),節(jié)約了網(wǎng)絡(luò)帶寬,提高了SBC利用率。 并且,提高了私網(wǎng)內(nèi)的網(wǎng)絡(luò)質(zhì)量,減少了媒體流的延遲、抖動(dòng),減少了媒體 流誤碼率,從而提高了々某體通話的質(zhì)量。SBC媒體旁路由終端之間完成,無需 SBC做繁瑣的配置,也不需要SBC之間共享注冊(cè)數(shù)據(jù)。通過終端之間的終端互 通性探測(cè),可以判斷出同一網(wǎng)絡(luò)內(nèi)網(wǎng)絡(luò)隔離的情況,對(duì)不能互通的終端不進(jìn) 行SBC媒體旁路。
在本發(fā)明實(shí)施例中,以第一終端為主叫終端,第二終端為被叫終端為例 進(jìn)行說明,但本發(fā)明實(shí)施例并不局限于此。
一般情況下,經(jīng)過SBC服務(wù)器、SIP服務(wù)器,AS (Advanced Server,業(yè)務(wù) 服務(wù)器)等網(wǎng)絡(luò)設(shè)備后,主叫終端信息(如主叫終端IP地址、SIP監(jiān)聽端口、 媒體收發(fā)地址/端口等信息)都無法透?jìng)鞯奖唤薪K端設(shè)備。同樣,被叫終端的 信息也無法透?jìng)鞯街鹘薪K端。因此終端間在探測(cè)是否能夠互通時(shí),必須要傳 遞信息給對(duì)方終端。以SIP呼叫為例,本發(fā)明實(shí)施例擴(kuò)展SIP信令的頭域 Call-Info,在Call-Info中增加探測(cè)信息purpose = detection,并在Call-Info中填入 主叫終端的信息,這些信息包括對(duì)話標(biāo)識(shí)、主叫終端IP地址、握手端口 (探 測(cè)端口 )和纟某體端口。
其中,對(duì)話標(biāo)識(shí)由主叫終端在創(chuàng)建對(duì)話請(qǐng)求時(shí)產(chǎn)生,可以是一個(gè)隨機(jī)字 符串,產(chǎn)生規(guī)則同SIP消息中的Call-ID的產(chǎn)生規(guī)則,只要能保證對(duì)話標(biāo)識(shí)的唯 一性即可。對(duì)話標(biāo)識(shí)用于后續(xù)主^t叫終端間握手時(shí)匹配對(duì)話。
主叫終端IP地址由主叫終端獲取本機(jī)IP地址,作為被叫終端探測(cè)的目的地址,也是后續(xù)媒體會(huì)話建立時(shí)媒體收發(fā)的地址。
握手端口又叫探測(cè)端口,是監(jiān)聽握手請(qǐng)求和發(fā)送后續(xù)響應(yīng)的端口,這里
與SIP端口一致。媒體端口是會(huì)話建立時(shí),終端接收和發(fā)送媒體的端口,也是 終端在SDP中填寫的々某體端口 。這里的媒體端口包括音頻和視頻兩個(gè)端口 。 上述參數(shù)使用T'分隔符分隔,具體形式如下
Call-Info:〈對(duì)話標(biāo)識(shí)IIP!握手端口 |音頻端口 |視頻端口 > ; purpose=detection Call-Info: <AS234234LK|10.10.10.1|5060|10500|10510> ; purpose=detection 在發(fā)起SIP會(huì)話時(shí),主叫終端在invite信令中帶上具有探測(cè)信息的Call-Info 頭域,SBC服務(wù)器、SIP服務(wù)器和AS透?jìng)髦鹘薪K端設(shè)置的Call-Info信息,被叫 終端收到主叫終端設(shè)置的Call-Info信息。如果被叫終端不支持終端探測(cè)機(jī)制, 則Call-Info信息將被忽略;如果被叫終端支持終端探測(cè)機(jī)制,那么被叫終端從 收到的invite信令中獲取Call-Info頭域,通過判斷該invite信令是否帶有purpose =detection參數(shù)來判斷主叫終端是否具備握手能力。如果主叫終端也是支持探 測(cè)機(jī)制的終端,被叫終端在收到invite信令以后就可以開始發(fā)起^:測(cè)了 。
本發(fā)明實(shí)施例中,終端實(shí)現(xiàn)的終端互通性探測(cè)是通過終端之間握手的方 式實(shí)現(xiàn)的,因此也稱為握手機(jī)制。
如圖3所示,為本發(fā)明實(shí)施例終端互通性探測(cè)的流程圖。其中
(1) UA (User Agent,用戶代理)指的是終端原有的信令、業(yè)務(wù)邏輯處 理模塊以及UI (UserInterface,用戶界面)展現(xiàn)部分,包括信息獲取模塊,主 要完成SIP呼叫的信令流程處理,界面展現(xiàn)及媒體控制功能。在本發(fā)明實(shí)施例 對(duì)UA進(jìn)行了 一些修改,增加了探測(cè)發(fā)起功能以及探測(cè)成功以后的媒體切換邏 輯處理。
(2) 媒體模塊主要完成媒體流的采集、播放、編碼、解碼、發(fā)送、接 收以及媒體處理等功能。
(3) 握手模塊為本發(fā)明實(shí)施例中的新增模塊,主要處理終端之間握手 協(xié)商信令流程。
(4 )SIP協(xié)議棧握手請(qǐng)求信令和確認(rèn)請(qǐng)求信令使用SIP協(xié)議標(biāo)準(zhǔn)的Option 信令,并沿用了SIP協(xié)議棧的事務(wù)處理和重傳等機(jī)制,SIP協(xié)議棧需要進(jìn)行一些
ii改造,使得應(yīng)用能夠指定SIP消息的發(fā)送目的地址和端口,以便直接把握手請(qǐng) 求消息直接發(fā)送給對(duì)方終端。同時(shí),SIP協(xié)議棧也要能夠支持這種直接終端與
終端之間發(fā)送的信令,能夠上拋給應(yīng)用。
在圖3中,UAA、媒體模塊A、握手模塊A、 SIP協(xié)議棧A組成主叫終端, UAB、媒體模塊B、握手模塊B、 SIP協(xié)議棧B組成被叫終端,兩終端都支持終 端探測(cè)機(jī)制,該終端互通性探測(cè)的流程具體包括
步驟S301,主叫終端發(fā)起invite呼叫請(qǐng)求后調(diào)用握手模塊接口,傳入對(duì)話 標(biāo)識(shí),創(chuàng)建握手對(duì)話,握手對(duì)話以對(duì)話標(biāo)識(shí)為唯一標(biāo)識(shí)和索引。置對(duì)話為初 始化狀態(tài)。
步驟S302,被叫終端UA B收到UA A的invite請(qǐng)求后,通過檢測(cè)Call-Info 頭域中的purpose參數(shù)是否等于detection,判斷出主叫終端支持終端探測(cè)機(jī)制。 解析并保存Call-Info頭域的信息。
步驟S303, UA B向握手模塊B發(fā)握手請(qǐng)求命令,在命令中把從Call-Info 中獲取的對(duì)話標(biāo)識(shí)、主叫終端IP地址、握手端口信息傳到握手模塊。
步驟S304,握手模塊B創(chuàng)建握手對(duì)話,以對(duì)話標(biāo)識(shí)為唯一標(biāo)識(shí)和索引,置 會(huì)話狀態(tài)為初始化狀態(tài)。
步驟S305,握手模塊B調(diào)用SIP協(xié)議棧接口,構(gòu)造和發(fā)送握手請(qǐng)求。 步驟S306, SIP協(xié)議棧B使用對(duì)話外的Option請(qǐng)求向SIP協(xié)議棧A發(fā)送握手 請(qǐng)求。該Option請(qǐng)求攜帶消息體,消息體類型(Content-type )為application/xml, 以XML (extensible Markup Language,可擴(kuò)展標(biāo)識(shí)i吾言)的方式進(jìn)4亍組織。 消息體主要包括操作類型、對(duì)話標(biāo)識(shí)、被叫終端IP地址,握手端口,音頻媒體 端口,視頻媒體端口信息。組織方式如下 <detection>
<action>request</action> <tag>LA23LKJLJ</tag> <ip>192.168.U</ip> <d-port>5060</d-port> <a-port> 10500</a-port>
12〈v畫port〉 10510</v-port> </detection>
步驟S307,主叫終端SIP協(xié)議棧A收到Option請(qǐng)求后,將該Option請(qǐng)求上拋 給握手模塊A。
步驟S308,握手模塊A判斷該Option消息體類型及解析消息體內(nèi)容,通 過action判斷出這是一個(gè)握手請(qǐng)求,用Option中的對(duì)話標(biāo)識(shí)(tag)匹配本地的 握手對(duì)話。對(duì)話匹配成功后,在握手對(duì)話中保存消息體中的信息。同時(shí),用 消息體中被叫終端地址(ip)與SIP協(xié)議棧實(shí)際接收Option消息的源地址進(jìn)行 比較,如果這兩個(gè)地址不相同則說明主被叫終端之間存在NAT,認(rèn)為兩終端 不能直接互通,主叫終端置握手狀態(tài)為inactive;如果這兩個(gè)地址相同,則認(rèn) 為被叫終端發(fā)送的包主叫終端可以收到,但是還不能確定主叫終端發(fā)送的包 被叫終端是否可以收到,這時(shí)主叫終端置握手狀態(tài)為recvonly。
步驟S309,握手模塊A發(fā)送握手請(qǐng)求響應(yīng)。如果主叫終端的握手狀態(tài)為 inactive,握手模塊A通過SIP協(xié)議棧A向被叫終端SIP協(xié)議棧B發(fā)送403失敗響 應(yīng);如果主叫終端的握手狀態(tài)為recvonly,握手才莫塊A通過SIP協(xié)議棧A向被叫 終端SIP協(xié)議棧B發(fā)送Option請(qǐng)求的200響應(yīng),該200響應(yīng)中同樣攜帶消息體。消 息體中包含對(duì)話ID,結(jié)構(gòu)如下 <detection>
<tag>LA23LKJLJ</tag> </detection>
步驟S310,如果被叫終端收到403失敗響應(yīng),則置握手對(duì)話狀態(tài)為inactive, 結(jié)束握手過程。如果被叫終端收到200成功響應(yīng),SIP協(xié)議棧B向握手模塊B上 報(bào)握手成功事件。
步驟S311 ,握手一莫塊B確認(rèn)對(duì)話標(biāo)識(shí)正確后置握手對(duì)話狀態(tài)為sendrecv。 步驟S312,握手模塊B向UAB上報(bào)握手成功事件。 步驟S313,被叫終端UAB進(jìn)行媒體切換決策。 步驟S314,被叫終端UAB向媒體模塊B發(fā)送切換媒體。 步驟S315,被叫終端握手模塊B發(fā)送確認(rèn)請(qǐng)求。步驟S316, SIP協(xié)議棧B使用Option請(qǐng)求向SIP協(xié)議棧A發(fā)送確認(rèn)請(qǐng)求。該 確認(rèn)請(qǐng)求攜帶消息體,消息體如下 <detection>
<action>ack</action> <tag>LA23LKJLJ</tag> </detection>
步驟S317 ,主叫終端SIP協(xié)議棧A收到Option確認(rèn)請(qǐng)求后上拋給握手模塊A 處理。
步驟S318,握手才莫塊A匹配對(duì)話標(biāo)識(shí)成功后置握手對(duì)話狀態(tài)為sendrecv。
步驟S319,握手模塊A上拋握手成功事件給UAA。
步驟S320, UAA進(jìn)行媒體切換決策。
步驟S321, UA A發(fā)送切換媒體至媒體模塊A。
步驟S322,握手模塊A回復(fù)確認(rèn)請(qǐng)求響應(yīng)至SIP協(xié)議棧A。
步驟S323, SIP協(xié)議棧A向SIP協(xié)議棧B發(fā)送200響應(yīng)。
步驟S324, SIP協(xié)議棧B上拋請(qǐng)求結(jié)果給握手模塊B。
在被叫終端收到主叫終端發(fā)起的invite呼叫請(qǐng)求發(fā)起終端握手以后,握手 協(xié)商過程與呼叫信令協(xié)商過程就是一個(gè)異步的過程,這兩個(gè)過程完成的先后 順序是不確定的,因此在士某體控制方面需要進(jìn)行以下幾方面的處理
在發(fā)起SIP會(huì)話的過程中,主叫終端發(fā)送invite信令后收到的180響應(yīng)可能 帶有SDP,此時(shí)終端需要開媒體處理。這時(shí)只需要按照SDP協(xié)商結(jié)果處理即可。
在主叫終端的invite請(qǐng)求被確認(rèn)后,主被叫終端需要進(jìn)行打開媒體或媒體 更新處理。這時(shí)需要通過握手模塊查詢一下握手協(xié)商結(jié)果。如果此時(shí)握手對(duì) 話狀態(tài)不為sendrecv,則4姿照SDP協(xié)商結(jié)果打開或更新纟某體;如果握手對(duì)話狀 態(tài)為sendrecv,則使用握手模塊中的被叫終端的IP地址、媒體端口替換SDP協(xié) 商結(jié)果中的對(duì)端地址和媒體端口,開啟或更新媒體。
在終端互通性探測(cè)過程中,主被叫終端UA收到握手成功事件后也需要進(jìn) 行媒體切換決策。如果此時(shí)invite請(qǐng)求還沒被確認(rèn),或者^ 某體會(huì)話處于保持狀 態(tài),UA僅需記錄協(xié)商狀態(tài)即可,不需做媒體處理。如果此時(shí)invite請(qǐng)求已經(jīng)被確認(rèn)并且主被叫處于正常通話狀態(tài),則主被叫需要使用握手模塊中的被叫終
端IP地址、媒體端口替換SDP協(xié)商結(jié)果中的對(duì)端地址和媒體端口更新媒體。
由于在音頻通話過程中,終端并不是只跟終端進(jìn)行J(某體交互,終端也會(huì)跟媒體資源服務(wù)器等實(shí)體進(jìn)行交互,比如在聽回鈴音時(shí)、通話被保持時(shí)。而媒體資源服務(wù)器并不在網(wǎng)絡(luò)內(nèi)部,終端與媒體資源服務(wù)器的媒體流需要由SBC代理,這就需要終端能夠在正確的時(shí)機(jī)進(jìn)行切換,在本發(fā)明實(shí)施例中,進(jìn)行判斷切換時(shí)機(jī)的條件主要是通話狀態(tài),具體分為以下幾種情況
(1) 當(dāng)通話狀態(tài)為非正常通話狀態(tài)和hold狀態(tài)時(shí),認(rèn)為終端的會(huì)話還處于初始化狀態(tài)。初始化狀態(tài)時(shí)終端的媒體交互都是與媒體資源服務(wù)器的交互,比如聽回鈴音。因此,此時(shí)終端打開媒體時(shí)不用判斷握手協(xié)商是否成功,以SDP協(xié)商結(jié)果為準(zhǔn)打開々某體。
(2) 當(dāng)通話狀態(tài)為正常通話時(shí),如果握手協(xié)商已經(jīng)成功,則按照握手協(xié)商結(jié)果切換媒體,進(jìn)行SBC媒體旁路。否則以SDP協(xié)商結(jié)果為準(zhǔn)進(jìn)行媒體會(huì)話。
(3) 當(dāng)通話狀態(tài)為保持或被保持時(shí),按照SDP協(xié)商結(jié)果進(jìn)行媒體會(huì)話。
(4) 當(dāng)通話狀態(tài)從保持或被保持中恢復(fù)為通話狀態(tài)時(shí),如果握手協(xié)商已經(jīng)成功,則按照握手協(xié)商結(jié)果切換媒體,進(jìn)行SBC媒體旁路。否則以SDP協(xié)商結(jié)果為準(zhǔn)進(jìn)行媒體會(huì)話。
在以上實(shí)施例的描述中,以握手(探測(cè))的發(fā)起方為被叫終端為例進(jìn)行說明,但是也可以由主叫終端發(fā)起探測(cè),這就要求被叫終端4e^皮叫終端的相關(guān)信息先發(fā)送給主叫終端。
在以上實(shí)施例的描述中,主叫終端的信息通過invite信令傳遞給被叫終端,如果由主叫終端發(fā)起探測(cè),則被叫終端可以在180或者200信令中攜帶被叫終端的信息傳遞給主叫終端。另外,無論主叫終端還是被叫終端發(fā)起探測(cè),都可以通過對(duì)話內(nèi)的update、 option、 info等信令把自身的信息發(fā)送給對(duì)方,還可以通過對(duì)話外的message, option等信令發(fā)送給對(duì)方。
在信令傳遞使用的頭域上,終端也可以借用其他SIP頭域進(jìn)行傳遞,或者使用終端擴(kuò)展的SIP頭域進(jìn)行傳遞,還可以使用SDP中的a行攜帶信息,傳遞給對(duì)方終端。在信息的組織格式上也可以采用其他的分隔符,如空格,逗號(hào),
15分號(hào),單引號(hào),雙引號(hào),斜杠,反斜杠等。
在以上實(shí)施例的描述中,握手(探測(cè))信息是由主叫終端執(zhí)行獲取并填
入指定的位置。也可以通過改造一下SBC,由SBC獲取終端的私網(wǎng)地址,媒體端口等信息,填到信令中的指定位置。
在以上實(shí)施例的描述中,主被叫終端握手使用SIP信令實(shí)現(xiàn),這里也可以不使用SIP信令,借助RTP/RTCP實(shí)現(xiàn),只需將握手端口修改為對(duì)方的媒體端口即可。也可以使用私有的協(xié)議,這時(shí)握手端口為私有協(xié)議的發(fā)送和接收端口。私有協(xié)議用于實(shí)現(xiàn)UDP包的發(fā)送,接收,請(qǐng)求和響應(yīng)的事務(wù)和重傳機(jī)制,類似一個(gè)簡(jiǎn)化的SIP協(xié)議棧,或者實(shí)現(xiàn)一個(gè)三次握手的簡(jiǎn)化協(xié)議。
握手采用的信令也可以不用Option信令,使用對(duì)話外的message, Info等信令也可以實(shí)現(xiàn)。握手信息的攜帶除了可以使用消息體攜帶以外,也可以通過頭域來攜帶。
握手信令中的信息組織方式也不一定要使用XML的方式,可以采用任意可拼裝和解析的方式。
如圖4所示,為本發(fā)明實(shí)施例媒體旁路的系統(tǒng)的結(jié)構(gòu)圖,包括第一終端41,用于發(fā)送第一終端41的信息;
第二終端42,用于獲取第一終端41的信息,在第二終端42支持終端互通性探測(cè)時(shí),根據(jù)所述信息中的互通性探測(cè)標(biāo)識(shí)確定第一終端41支持終端互通性探測(cè)之后,第二終端42根據(jù)所述信息中的第一終端41的地址和端口與第一終端41進(jìn)行協(xié)商,在協(xié)商成功之后,第二終端42才艮據(jù)協(xié)商后的第一終端41的地址和端口與第一終端41進(jìn)行媒體連接。
上述4某體旁路的系統(tǒng),在第二終端42支持終端互通性探測(cè)時(shí),在確定第一終端41也支持終端互通性探測(cè)之后,與該第一終端41進(jìn)行協(xié)商,在協(xié)商成功之后,第二終端42#4居協(xié)商后的第一終端41的地址和端口與第一終端41進(jìn)行媒體連接。本發(fā)明實(shí)施例實(shí)現(xiàn)了同一網(wǎng)絡(luò)內(nèi)的兩個(gè)終端在進(jìn)行媒體通信時(shí)不需要由SBC進(jìn)行媒體代理,減輕了 SBC媒體處理的負(fù)擔(dān),節(jié)約了網(wǎng)絡(luò)帶寬,提高了 SBC利用率。
如圖5所示,為本發(fā)明實(shí)施例終端的一種結(jié)構(gòu)圖,包括信息獲^^莫塊51,用于獲取另一終端的信息;
判斷模塊52,用于在終端支持終端互通性探測(cè)時(shí),根據(jù)信息獲取模塊51接收的信息中的互通性探測(cè)標(biāo)識(shí)確定另 一終端是否支持終端互通性探測(cè);
協(xié)商模塊53 ,用于當(dāng)判斷模塊52確定另 一終端支持終端互通性探測(cè)時(shí),根據(jù)所述信息中的另 一終端地址和端口與另 一終端進(jìn)^f亍協(xié)商;
媒體模塊54,用于在協(xié)商模塊53協(xié)商成功之后,根據(jù)協(xié)商后的另一終端地址和端口與另 一終端進(jìn)行々某體連接。
其中,如圖6所示,判斷模塊52可以包括
信息檢測(cè)子模塊521,用于判斷所述信息中是否包含互通性探測(cè)標(biāo)識(shí);
互通確定子模塊522,用于在信息檢測(cè)子模塊521確定該信息中包含互通性探測(cè)標(biāo)識(shí)時(shí),確定另一終端支持終端互通性探測(cè)。
其中,信息獲耳J^莫塊51具體可以用于獲取SIP invite信令攜帶的另 一終端的信息,該終端還可以包括SDP協(xié)商模塊55,用于根據(jù)另一終端的音頻媒體端口信息和視頻々某體端口信息,與另一終端進(jìn)行SDP協(xié)商,該另一終端的音頻媒體端口信息和視頻媒體端口信息包含在上述另 一終端的信息中。
上述媒體模塊54具體可以用于使用另 一終端的IP地址,以及另 一終端的音頻媒體端口信息和視頻媒體端口信息替換SDP協(xié)商模塊55的協(xié)商結(jié)果中的對(duì)端IP地址,以及對(duì)端的音頻媒體端口信息和視頻媒體端口信息,進(jìn)行媒體連接。
上述終端,判斷模塊52在該終端支持終端互通性探測(cè)時(shí),確定另一終端是否也支持終端互通性探測(cè),在判斷模塊52確定另一終端也支持終端互通性探測(cè)之后,協(xié)商模塊53與另一終端進(jìn)行協(xié)商,在協(xié)商成功之后,媒體模塊54根據(jù)協(xié)商后的另一終端地址和端口與另一終端進(jìn)行士某體連接。從而實(shí)現(xiàn)了同一網(wǎng)絡(luò)內(nèi)的兩個(gè)終端在進(jìn)行媒體通信時(shí)不需要由SBC進(jìn)行媒體代理,減輕了SBC媒體處理的負(fù)擔(dān),節(jié)約了網(wǎng)絡(luò)帶寬,提高了SBC利用率。
通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通過硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺(tái)的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲(chǔ)在一個(gè)非易失性存儲(chǔ)介質(zhì)(可以是CD-ROM, U盤,移動(dòng)硬盤等)中,包括若干指令用以使得一臺(tái)計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述的方法。
本領(lǐng)域技術(shù)人員可以理解附圖只是一個(gè)優(yōu)選實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。
本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個(gè)或多個(gè)裝置中。上述實(shí)施例的模塊可以合并為一個(gè)模塊,也可以進(jìn)一步拆分成多個(gè)子模塊。
上述本發(fā)明實(shí)施例序號(hào)僅僅為了描述,不代表實(shí)施例的優(yōu)劣。
以上公開的僅為本發(fā)明的幾個(gè)具體實(shí)施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。
權(quán)利要求
1、一種媒體旁路的方法,其特征在于,包括第二終端獲取第一終端的信息;在所述第二終端支持終端互通性探測(cè)時(shí),根據(jù)所述信息中的互通性探測(cè)標(biāo)識(shí)確定所述第一終端支持終端互通性探測(cè)之后,所述第二終端根據(jù)所述信息中的第一終端地址和端口與所述第一終端進(jìn)行協(xié)商;在所述協(xié)商成功之后,所述第二終端根據(jù)所述協(xié)商后的第一終端地址和端口與所述第一終端進(jìn)行媒體連接。
2、 如權(quán)利要求1所述媒體旁路的方法,其特征在于,所述根據(jù)所述信息 中的互通性探測(cè)標(biāo)識(shí)確定所述第 一終端支持終端互通性探測(cè)具體包括判斷所述信息中是否包含互通性探測(cè)標(biāo)識(shí);如果所述信息中包含所述互通性探測(cè)標(biāo)識(shí),則第二終端確定所述第一終端支持終端互通性#:測(cè)。
3、 如權(quán)利要求1所述々某體旁路的方法,其特征在于,所述第二終端根據(jù) 所述信息中的第 一終端地址和端口與所述第 一終端進(jìn)行協(xié)商具體包括第二終端創(chuàng)建握手對(duì)話,根據(jù)所述信息中的第 一終端地址和端口發(fā)送握 手請(qǐng)求至所述第一終端,與所述第一終端進(jìn)行握手協(xié)商。
4、 如權(quán)利要求3所述媒體旁路的方法,其特征在于,所述第一終端的信 息包括所述第一終端創(chuàng)建的握手對(duì)話的對(duì)話標(biāo)識(shí),在所述第二終端創(chuàng)建握手 對(duì)話時(shí),所述第二終端以所述第一終端創(chuàng)建的握手對(duì)話的對(duì)話標(biāo)識(shí)作為所述 第二終端創(chuàng)建的握手對(duì)話的對(duì)話標(biāo)識(shí)。
5、 如權(quán)利要求3所述媒體旁路的方法,其特征在于,所述握手請(qǐng)求中包 括第二終端創(chuàng)建的握手對(duì)話的對(duì)話標(biāo)識(shí)和所述第二終端的ip地址,所述與第 一終端進(jìn)行協(xié)商具體包括所述第一終端接收到所述握手請(qǐng)求后,判斷所述握手請(qǐng)求中攜帶的所述 第二終端創(chuàng)建的握手對(duì)話的對(duì)話標(biāo)識(shí)與所述第一終端創(chuàng)建的握手對(duì)話的對(duì)話 標(biāo)識(shí)是否匹配;如果匹配,則所述第一終端判斷所述握手請(qǐng)求中攜帶的所述第二終端的 IP地址與所述第 一終端接收握手請(qǐng)求的源IP地址是否相同;當(dāng)所述第 一終端確定所述握手請(qǐng)求中攜帶的所述第二終端的IP地址與所 述第一終端接收握手請(qǐng)求的源IP地址相同時(shí),所述第一終端確定與所述第二 終端互通,向所述第二終端發(fā)送握手協(xié)商成功響應(yīng)消息。
6、 如權(quán)利要求1所述媒體旁路的方法,其特征在于,所述第二終端獲取 第一終端的信息具體包括所述第二終端獲取會(huì)話初始化協(xié)議SIP invite信令攜帶的第一終端的信自
7、 如權(quán)利要求6所述媒體旁路的方法,其特征在于,所述第一終端的信 息包括所述第 一終端的音頻媒體端口信息和視頻媒體端口信息,所述第二終 端根據(jù)所述第 一終端的音頻媒體端口信息和視頻媒體端口信息,與所述第一 終端進(jìn)行會(huì)話描述協(xié)議SDP協(xié)商,所述第二終端根據(jù)所述信息中的第一終端地址和端口與所述第一終端進(jìn) 行媒體連接具體包括所述第二終端使用所述第一終端的IP地址,以及所述第一終端的音頻媒 體端口信息和視頻媒體端口信息替換所述SDP協(xié)商結(jié)果中的對(duì)端IP地址,以 及對(duì)端的音頻纟某體端口信息和視頻媒體端口信息,進(jìn)行媒體連接。
8、 一種終端,其特征在于,包括 信息獲取^^莫塊,用于獲取另一終端的信息;判斷模塊,用于在所述終端支持終端互通性探測(cè)時(shí),根據(jù)所述信息獲取 模塊接收的信息中的互通性探測(cè)標(biāo)識(shí)確定所述另一終端是否支持終端互通性 探測(cè);協(xié)商模塊,用于當(dāng)所述判斷模塊確定所述另 一終端支持終端互通性探測(cè) 時(shí),才艮據(jù)所述信息中的所述另 一終端地址和端口與所述另 一終端進(jìn)行協(xié)商;媒體模塊,用于在所述握手模塊協(xié)商成功之后,根據(jù)所述協(xié)商后的另一 終端地址和端口與所述另 一終端進(jìn)行媒體連接。
9、 如權(quán)利要求8所述終端,其特征在于,所述判斷模塊包括 信息檢測(cè)子模塊,用于判斷所述信息中是否包含互通性探測(cè)標(biāo)識(shí); 互通確定子模塊,用于在所述信息檢測(cè)子模塊確定所述信息中包含所述互通性探測(cè)標(biāo)識(shí)時(shí),確定所述另 一終端支持終端互通性探測(cè)。
10、 如權(quán)利要求8所述終端,其特征在于,所述信息獲取模塊具體用于 獲取SIPinvite信令攜帶的另一終端的信息。
11、 如權(quán)利要求10所述終端,其特征在于,還包括SDP協(xié)商模塊,用于根據(jù)所述另一終端的音頻媒體端口信息和視頻媒體 端口信息,與所述另一終端進(jìn)行SDP協(xié)商,所述另一終端的音頻媒體端口信 息和視頻媒體端口信息包含在所述另 一終端的信息中。
12、 如權(quán)利要求ll所述終端,其特征在于,所述媒體模塊具體用于使用 所述另一終端的IP地址,以及所述另一終端的音頻々某體端口信息和視頻媒體 端口信息替換所述SDP協(xié)商模塊的協(xié)商結(jié)果中的對(duì)端IP地址,以及對(duì)端的音 頻媒體端口信息和視頻媒體端口信息,進(jìn)行媒體連接。
13、 一種i某體旁3各的系統(tǒng),其特征在于,包括 第一終端,用于發(fā)送所述第一終端的信息;第二終端,用于獲取所述第一終端的信息,在所述第二終端支持終端互 通性探測(cè)時(shí),根據(jù)所述信息中的互通性探測(cè)標(biāo)識(shí)確定所述第一終端支持終端 互通性探測(cè)之后,所述第二終端根據(jù)所述信息中的第 一終端地址和端口與所 述第一終端進(jìn)行協(xié)商,在所述協(xié)商成功之后,第二終端根據(jù)所述協(xié)商后的第 一終端地址和端口與所述第一終端進(jìn)行媒體連接。
全文摘要
本發(fā)明實(shí)施例公開了一種媒體旁路的方法、系統(tǒng)和裝置,所述媒體旁路的方法包括第二終端獲取第一終端的信息;在所述第二終端支持終端互通性探測(cè)時(shí),根據(jù)所述信息中的互通性探測(cè)標(biāo)識(shí)確定所述第一終端支持終端互通性探測(cè)之后,所述第二終端根據(jù)所述信息中的第一終端地址和端口與所述第一終端進(jìn)行協(xié)商;在所述協(xié)商成功之后,所述第二終端根據(jù)所述協(xié)商后的第一終端地址和端口與所述第一終端進(jìn)行媒體連接。本發(fā)明實(shí)施例實(shí)現(xiàn)了同一網(wǎng)絡(luò)內(nèi)的兩個(gè)終端在進(jìn)行媒體通信時(shí)不需要由SBC進(jìn)行媒體代理,減輕了SBC媒體處理的負(fù)擔(dān),節(jié)約了網(wǎng)絡(luò)帶寬,提高了SBC利用率。
文檔編號(hào)H04L29/06GK101656715SQ20081014715
公開日2010年2月24日 申請(qǐng)日期2008年8月21日 優(yōu)先權(quán)日2008年8月21日
發(fā)明者進(jìn) 徐, 陳建鋒, 黃蓉軍 申請(qǐng)人:華為技術(shù)有限公司