的編解碼類型進(jìn)行編碼操作;
[0054] 步驟S405,將媒體流發(fā)送到對(duì)端。
[0055] 在WebRTC系統(tǒng)與MS系統(tǒng)中,基于WebRTC系統(tǒng)到MS系統(tǒng)的呼叫業(yè)務(wù)流程或者 基于MS系統(tǒng)到WebRTC系統(tǒng)的呼叫業(yè)務(wù)流程均可以實(shí)現(xiàn)WebRTC系統(tǒng)與MS系統(tǒng)的媒體互 通,下面分別說(shuō)明。
[0056] 圖5為本發(fā)明基于WebRTC系統(tǒng)到MS系統(tǒng)的呼叫業(yè)務(wù)流程實(shí)現(xiàn)WebRTC系統(tǒng)與 MS系統(tǒng)的媒體互通的流程示意圖。
[0057]步驟S501,WebRTC服務(wù)器同信令網(wǎng)關(guān)建立連接,媒體網(wǎng)關(guān)同信令網(wǎng)關(guān)建立連接;
[0058] 步驟S502,WebRTC系統(tǒng)用戶上線,WebRTC客戶端同WebRTC服務(wù)器建立連接;
[0059] 步驟S503,WebRTC客戶端向MS客戶端發(fā)送offer(呼叫請(qǐng)求)消息,offer消息 途經(jīng)WebRTC服務(wù)器,offer消息中攜帶有描述WebRTC客戶端支持的媒體編解碼信息、用于 私網(wǎng)穿越的候選地址信息以及SRTP和RTP轉(zhuǎn)換用的密鑰信息;
[0060] 步驟S504,WebRTC服務(wù)器根據(jù)被叫標(biāo)識(shí)判斷被叫為MS用戶,將offer消息轉(zhuǎn)發(fā) 給信令網(wǎng)關(guān);信令網(wǎng)關(guān)將offer消息轉(zhuǎn)發(fā)給媒體網(wǎng)關(guān);
[0061] 在一個(gè)實(shí)施例中,WebRTC服務(wù)器可以根據(jù)被叫標(biāo)識(shí)所處的域判斷被叫是否為IMS用戶,例如,open-ims.com為一個(gè)IMS域,如果被叫標(biāo)識(shí)為alice@open-ims.com,那么被叫 就是一個(gè)IMS用戶。
[0062] 步驟S505,媒體網(wǎng)關(guān)從offer消息中獲取密鑰信息并保存下來(lái),以便于對(duì)后續(xù)來(lái) 自WebRTC客戶端的媒體流進(jìn)行解密;
[0063] 步驟S506,媒體網(wǎng)關(guān)創(chuàng)建兩個(gè)代理實(shí)例,也叫ICEagent(交互式連接建立代理), 即WebRTC客戶端代理和MS客戶端代理,分別用于同WebRTC客戶端和MS客戶端建立P2P 連接,每個(gè)代理都可以當(dāng)做相應(yīng)客戶端的對(duì)等實(shí)體;
[0064] 步驟S507,媒體網(wǎng)關(guān)從offer消息中獲取WebRTC客戶端用于建立P2P連接的候選 地址信息,保存在對(duì)應(yīng)WebRTC客戶端代理中;
[0065] 步驟S508,媒體網(wǎng)關(guān)獲取MS客戶端代理的候選地址,替換掉offer消息中的候選 地址,并監(jiān)聽(tīng)相應(yīng)的第一端口,該第一端口用來(lái)同MS客戶端建立P2P連接;
[0066] 步驟S509,媒體網(wǎng)關(guān)將offer消息中的媒體編解碼信息替換為MS客戶端支持且 媒體網(wǎng)關(guān)能夠進(jìn)行編解碼的媒體編解碼信息;
[0067] 步驟S510,媒體網(wǎng)關(guān)將offer消息返回給信令網(wǎng)關(guān);
[0068] 其中,步驟S503、S504、S510中的offer消息均為roap協(xié)議的offer消息。
[0069] 步驟S511,信令網(wǎng)關(guān)將roap協(xié)議的offer消息轉(zhuǎn)換為sip協(xié)議的invite(呼叫 請(qǐng)求)消息,并最終路由給頂S客戶端;
[0070] 步驟S512,MS用戶收到呼叫請(qǐng)求并應(yīng)答后,頂S客戶端通過(guò)MS網(wǎng)絡(luò)向信令網(wǎng)關(guān) 返回200ok(確認(rèn))響應(yīng)消息,消息中攜帶MS客戶端用于建立P2P連接的候選地址信息;
[0071] 步驟S513,信令網(wǎng)關(guān)將sip協(xié)議的200ok消息轉(zhuǎn)換成roap協(xié)議的answer消息,并 路由給媒體網(wǎng)關(guān);
[0072]步驟S514,媒體網(wǎng)關(guān)從answer消息中獲取MS客戶端用于建立P2P連接的候選地 址信息,保存在頂S客戶端代理中,此時(shí),由于MS客戶端以及MS客戶端代理都具有對(duì)方 的候選地址信息,二者若連通性檢驗(yàn)通過(guò)則P2P連接建立成功;
[0073]步驟S515,媒體網(wǎng)關(guān)獲取WebRTC客戶端代理的候選地址,替換掉answer消息中的 候選地址,并監(jiān)聽(tīng)相應(yīng)的第二端口,該第二端口用來(lái)同WebRTC客戶端建立P2P連接;
[0074] 步驟S516,媒體網(wǎng)關(guān)將answer消息中的媒體編解碼信息替換為WebRTC客戶端支 持且媒體網(wǎng)關(guān)能夠進(jìn)行編解碼的媒體編解碼信息;
[0075] 步驟S517,媒體網(wǎng)關(guān)將answer信息返回給信令網(wǎng)關(guān);
[0076] 步驟S518,信令網(wǎng)關(guān)將answer消息發(fā)送給WebRTC服務(wù)器,最終路由給WebRTC客 戶端;
[0077]步驟S519,WebRTC客戶端收到answer消息,此時(shí),由于WebRTC客戶端以及WebRTC 客戶端代理都具有對(duì)方的候選地址信息,二者若連通性檢驗(yàn)通過(guò)則P2P連接建立成功;
[0078] 步驟S520,WebRTC客戶端發(fā)送roap協(xié)議的ok消息給WebRTC服務(wù)器,經(jīng)由信令網(wǎng) 關(guān)轉(zhuǎn)換成sip協(xié)議的ACK消息,最終路由給IMS客戶端,WebRTC客戶端與IMS客戶端媒體 協(xié)商完成。
[0079] 媒體協(xié)商完成后,二者可以按照協(xié)商好的媒體格式通過(guò)建立的P2P連接向媒體網(wǎng) 關(guān)發(fā)送本地媒體流。例如,媒體網(wǎng)關(guān)收到WebRTC客戶端發(fā)送的媒體流后,會(huì)根據(jù)密鑰信息 將SRTP媒體流解密成RTP媒體流,并按照同WebRTC客戶端協(xié)商的媒體編解碼對(duì)媒體流進(jìn) 行解碼,按照同MS客戶端協(xié)商的媒體編解碼對(duì)媒體流進(jìn)行編碼,最后發(fā)送給MS客戶端。 或者,媒體網(wǎng)關(guān)收到MS客戶端發(fā)送的媒體流后,會(huì)按照同MS客戶端協(xié)商的媒體編解碼對(duì) 媒體流進(jìn)行解碼,按照同WebRTC客戶端協(xié)商的媒體編解碼對(duì)媒體流進(jìn)行編碼,然后根據(jù)密 鑰信息將RTP媒體流轉(zhuǎn)換成SRTP媒體流,最后發(fā)送給WebRTC客戶端。
[0080] 圖6為本發(fā)明基于IMS系統(tǒng)到WebRTC系統(tǒng)的呼叫業(yè)務(wù)流程實(shí)現(xiàn)WebRTC系統(tǒng)與 MS系統(tǒng)的媒體互通的流程示意圖。
[0081]步驟S601,WebRTC服務(wù)器同信令網(wǎng)關(guān)建立連接,媒體網(wǎng)關(guān)同信令網(wǎng)關(guān)建立連接;
[0082] 步驟S602,WebRTC系統(tǒng)用戶上線,WebRTC客戶端同WebRTC服務(wù)器建立連接;
[0083] 步驟S603,MS客戶端向WebRTC客戶端發(fā)送invite(呼叫請(qǐng)求)消息,消息中攜 帶有描述頂S客戶端支持的媒體編解碼信息、用于私網(wǎng)穿越的候選地址信息;
[0084] 步驟S604,信令網(wǎng)關(guān)將sip協(xié)議的invite消息轉(zhuǎn)換為roap協(xié)議的offer消息;
[0085] 步驟S605,信令網(wǎng)關(guān)將roap協(xié)議的offer消息中發(fā)送給媒體網(wǎng)關(guān);
[0086] 步驟S606,媒體網(wǎng)關(guān)創(chuàng)建兩個(gè)代理實(shí)例,也叫ICEagent(交互式連接建立代理), 即WebRTC客戶端代理和MS客戶端代理,分別用于同WebRTC客戶端和MS客戶端建立P2P 連接,每個(gè)代理都可以當(dāng)做相應(yīng)客戶端的對(duì)等實(shí)體;
[0087] 步驟S607,媒體網(wǎng)關(guān)從offer消息中獲取MS客戶端用于建立P2P連接的候選地 址信息,保存在對(duì)應(yīng)IMS客戶端代理中;
[0088] 步驟S608,媒體網(wǎng)關(guān)獲取WebRTC客戶端代理的候選地址,替換掉offer消息中的 候選地址,并監(jiān)聽(tīng)相應(yīng)的第二端口,該第二端口用來(lái)同WebRTC客戶端建立P2P連接;
[0089] 步驟S609,媒體網(wǎng)關(guān)將offer消息中的媒體編解碼信息替換為WebRTC客戶端支持 且媒體網(wǎng)關(guān)能夠進(jìn)行編解碼的媒體編解碼信息;
[0090] 步驟S610,媒體網(wǎng)關(guān)產(chǎn)生隨機(jī)的SRTP密鑰信息添加到offer消息中,該密鑰用來(lái) 加密來(lái)自IMS客戶端的RTP媒體流,并便于WebRTC客戶端對(duì)收到的媒體流進(jìn)行解密;媒體 網(wǎng)關(guān)將offer消息返回給信令網(wǎng)關(guān);
[0091]步驟S611,信令網(wǎng)關(guān)將offer消息路發(fā)送給WebRTC服務(wù)器,最終路由到WebRTC客 戶端;
[0092]步驟S612,WebRTC用戶收到呼叫請(qǐng)求并應(yīng)答后,WebRTC客戶端返回?cái)y帶有WebRTC 客戶端支持的媒體編解碼信息以及WebRTC客戶端用于建立P2P連接的候選地址的answer 消息,并經(jīng)由WebRTC服務(wù)器發(fā)送給信令網(wǎng)關(guān);
[0093] 步驟S613,信令網(wǎng)關(guān)將roap協(xié)議的answer消息路由給媒體網(wǎng)關(guān);
[0094] 步驟S614,媒體網(wǎng)關(guān)從answer消息中獲取WebRTC客戶端用于建立P2P連接的候 選地址信息,保存在WebRTC客戶端代理中,此時(shí),由于WebRTC客戶端以及WebRTC客戶端代 理都具有對(duì)方的候選地址信息,二者若連通性檢驗(yàn)通過(guò)則P2P連接建立成功;
[009