語音通道建立方法、裝置及系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本公開涉及網(wǎng)絡(luò)電話領(lǐng)域,特別涉及一種語音通道建立方法、裝置及系統(tǒng)。
【背景技術(shù)】
[0002]隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,大量基于網(wǎng)絡(luò)的客戶端之間可以實(shí)現(xiàn)語音通話。
[0003]現(xiàn)階段的各種網(wǎng)絡(luò)電話(英文:Voice Over Internet Protocol,簡稱:VOIP)的提供商在提供語音通話時(shí),需要用戶在該提供商提供的服務(wù)器上注冊(cè)賬號(hào),當(dāng)在同一個(gè)服務(wù)器上注冊(cè)有第一賬號(hào)和第二賬號(hào)時(shí),可以利用登錄有第一賬號(hào)的第一客戶端撥打登錄有第二賬號(hào)的第二客戶端,實(shí)現(xiàn)第一賬號(hào)和第二賬號(hào)之間的網(wǎng)絡(luò)通話。
[0004]由于不同VOIP提供商提供的信令不一致,在不同VOIP提供商的服務(wù)器注冊(cè)的兩個(gè)賬號(hào)之間無法實(shí)現(xiàn)網(wǎng)絡(luò)通話,從而使得VOIP的通話比較局限。
【發(fā)明內(nèi)容】
[0005]為了解決在不同VOIP提供商的服務(wù)器注冊(cè)的兩個(gè)賬號(hào)之間無法實(shí)現(xiàn)網(wǎng)絡(luò)通話,從而使得VOIP的通話比較局限的問題,本公開提供語音通道建立方法、裝置及系統(tǒng)。所述技術(shù)方案如下:
[0006]根據(jù)本公開實(shí)施例的第一方面,提供一種語音通道建立方法,應(yīng)用于中轉(zhuǎn)服務(wù)器中,所述方法包括:
[0007]接收第一客戶端發(fā)送的第一語音通話請(qǐng)求,所述第一語音通話請(qǐng)求是所述第一客戶端利用選用的第一媒體引擎根據(jù)第一協(xié)議封裝后得到的,所述第一語音通話請(qǐng)求中包括被叫號(hào)碼;
[0008]查詢與所述被叫號(hào)碼綁定的在線的第二客戶端;
[0009]確定出與所述第二客戶端對(duì)應(yīng)的第三方服務(wù)器的第二媒體引擎;
[0010]按照所述第二媒體引擎所對(duì)應(yīng)的第二協(xié)議封裝第二語音通話請(qǐng)求,所述第二語音通話請(qǐng)求中包含所述第二客戶端的標(biāo)識(shí),所述第二語音通話請(qǐng)求用于觸發(fā)所述第三方服務(wù)器通知所述第二客戶端存在通話請(qǐng)求,接收所述第二客戶端返回的允許通話的確認(rèn)信令;
[0011 ] 在接收到所述第三方服務(wù)器反饋的所述第二客戶端返回的所述確認(rèn)信令后,通知所述第一客戶端建立與所述第二客戶端之間的語音通道。
[0012]可選的,所述通知所述第一客戶端建立與所述第二客戶端之間的語音通道,包括:
[0013]向所述第一客戶端發(fā)送用于指示所述第一客戶端建立與所述第二客戶端之間的語音通道的通知,所述通知中攜帶有與所述第三方服務(wù)器對(duì)應(yīng)的第二媒體引擎的信息。
[0014]可選的,所述通知所述第一客戶端建立與所述第二客戶端之間的語音通道,包括:
[0015]查詢與所述被叫號(hào)碼綁定的各個(gè)第二客戶端以及所述各個(gè)第二客戶端的在線狀態(tài),所述第二客戶端的在線狀態(tài)是由與所述第二客戶端對(duì)應(yīng)的服務(wù)器提供的;
[0016]從當(dāng)前在線的所述第二客戶端中確定出一個(gè)第二客戶端。
[0017]可選的,所述方法還包括:
[0018]對(duì)于每個(gè)第三方服務(wù)器,查詢與被叫號(hào)碼綁定的且與所述第三方服務(wù)器對(duì)應(yīng)的各個(gè)第二客戶端;
[0019]向所述第三方服務(wù)器發(fā)送包含有所述各個(gè)第二客戶端的標(biāo)識(shí)的在線狀態(tài)獲取請(qǐng)求;
[0020]接收所述第三方服務(wù)器回復(fù)的所述各個(gè)第二客戶端的在線狀態(tài)。
[0021]根據(jù)本公開實(shí)施例的第二方面,提供一種語音通道建立方法,應(yīng)用于第一客戶端中,所述方法包括:
[0022]在接收到撥打被叫號(hào)碼的撥打指令后,選取第一媒體引擎;
[0023]利用所述第一媒體引擎根據(jù)第一協(xié)議對(duì)第一語音通話請(qǐng)求進(jìn)行封裝,所述第一語音通話請(qǐng)求中包含所述被叫號(hào)碼;
[0024]將封裝后的所述第一語音通話請(qǐng)求發(fā)送至中轉(zhuǎn)服務(wù)器,所述第一語音通話請(qǐng)求用于觸發(fā)所述中轉(zhuǎn)服務(wù)器在查詢到與所述被叫號(hào)碼綁定的在線的第二客戶端后,確定出與所述第二客戶端對(duì)應(yīng)的第三方服務(wù)器的第二媒體引擎,按照所述第二媒體引擎所對(duì)應(yīng)的第二協(xié)議封裝第二語音通話請(qǐng)求,并所述第二語音通話請(qǐng)求發(fā)送至與所述第三方服務(wù)器,所述第二語音通話請(qǐng)求用于觸發(fā)所述第三方服務(wù)器通知所述第二客戶端存在通話請(qǐng)求,所述中轉(zhuǎn)服務(wù)器接收所述第三方服務(wù)器返回的所述第二客戶端允許通話的確認(rèn)信令,通知所述第一客戶端建立與所述第二客戶端之間的語音通道;
[0025]接收所述中轉(zhuǎn)服務(wù)器發(fā)送的用于建立與所述第二客戶端之間的語音通道的通知,建立與所述第二客戶端之間的語音通道。
[0026]可選的,所述選取第一媒體引擎,包括:
[0027]獲取與各個(gè)客戶端對(duì)應(yīng)的媒體引擎,所述客戶端與所述第一客戶端不同,每個(gè)媒體引擎用于按照與所述媒體引擎對(duì)應(yīng)的協(xié)議封裝將要發(fā)送的信令,每個(gè)媒體引擎限定了用于傳遞語音數(shù)據(jù)包時(shí)的語音數(shù)據(jù)包格式;
[0028]從各個(gè)媒體引擎中選取出時(shí)延最小的媒體引擎,將所述媒體引擎確定為所述第一媒體引擎。
[0029]可選的,所述通知中攜帶有與所述第二媒體引擎的信息,所述建立與所述第二客戶端之間的語音通道,包括:
[0030]獲取所述第一媒體引擎限定的語音數(shù)據(jù)包格式;
[0031]若所述第一媒體引擎限定的語音數(shù)據(jù)包格式與所述第二媒體引擎限定的語音數(shù)據(jù)包格式相同,則向所述第三方服務(wù)器發(fā)送語音數(shù)據(jù)包,以觸發(fā)所述第三方服務(wù)器將所述語音數(shù)據(jù)包發(fā)送至所述第二客戶端,開啟所述第一客戶端與所述第二客戶端之間的語音通道;
[0032]若所述第一媒體引擎限定的語音數(shù)據(jù)包格式與所述第二媒體引擎限定的語音數(shù)據(jù)包格式不同,則向所述中轉(zhuǎn)服務(wù)器發(fā)送所述語音數(shù)據(jù)包,由所述中轉(zhuǎn)服務(wù)器將所述語音數(shù)據(jù)包轉(zhuǎn)換成所述第三方服務(wù)器能夠識(shí)別的格式,并將轉(zhuǎn)換后的所述語音數(shù)據(jù)包發(fā)送至所述第三方服務(wù)器,以觸發(fā)所述第三方服務(wù)器將所述語音數(shù)據(jù)包發(fā)送至所述第二客戶端,開啟所述第一客戶端與所述第二客戶端之間的語音通道。
[0033]根據(jù)本公開實(shí)施例的第三方面,提供一種語音通道建立裝置,應(yīng)用于中轉(zhuǎn)服務(wù)器中,所述裝置包括:
[0034]接收裝置,被配置為接收第一客戶端發(fā)送的第一語音通話請(qǐng)求,所述第一語音通話請(qǐng)求是所述第一客戶端利用選用的第一媒體引擎根據(jù)第一協(xié)議封裝后得到的,所述第一語音通話請(qǐng)求中包括被叫號(hào)碼;
[0035]第一查詢模塊,被配置為查詢與所述被叫號(hào)碼綁定的在線的第二客戶端;
[0036]確定模塊,被配置為確定出與所述第一查詢模塊查詢出的所述第二客戶端對(duì)應(yīng)的第三方服務(wù)器的第二媒體引擎;
[0037]封裝模塊,被配置為按照所述確定模塊確定出的所述第二媒體引擎所對(duì)應(yīng)的第二協(xié)議封裝第二語音通話請(qǐng)求,所述第二語音通話請(qǐng)求中包含所述第二客戶端的標(biāo)識(shí),所述第二語音通話請(qǐng)求用于觸發(fā)所述第三方服務(wù)器通知所述第二客戶端存在通話請(qǐng)求,接收所述第二客戶端返回的允許通話的確認(rèn)信令;
[0038]通知模塊,被配置為在接收到所述第三方服務(wù)器反饋的所述第二客戶端返回的所述確認(rèn)信令后,通知所述第一客戶端建立與所述第二客戶端之間的語音通道。
[0039]可選的,所述通知模塊,還被配置為:
[0040]向所述第一客戶端發(fā)送用于指示所述第一客戶端建立與所述第二客戶端之間的語音通道的通知,所述通知中攜帶有與所述第三方服務(wù)器對(duì)應(yīng)的第二媒體引擎的信息。
[0041]可選的,所述第一查詢模塊,包括:
[0042]查詢子模塊,被配置為查詢與所述被叫號(hào)碼綁定的各個(gè)第二客戶端以及所述各個(gè)第二客戶端的在線狀態(tài),所述第二客戶端的在線狀態(tài)是由與所述第二客戶端對(duì)應(yīng)的服務(wù)器提供的;
[0043]確定子模塊,被配置為從所述查詢子模塊查詢出的當(dāng)前在線的所述第二客戶端中確定出一個(gè)第二客戶端。
[0044]可選的,所述裝置還包括:
[0045]第二查詢模塊,被配置為對(duì)于每個(gè)第三方服務(wù)器,查詢與被叫號(hào)碼綁定的且與所述第三方服務(wù)器對(duì)應(yīng)的各個(gè)第二客戶端;
[0046]發(fā)送模塊,被配置為向所述第三方服務(wù)器發(fā)送包含有所述第二查詢模塊查詢出的所述各個(gè)第二客戶端的標(biāo)識(shí)的在線狀態(tài)獲取請(qǐng)求;
[0047]接收模塊,被配置為接收所述第三方服務(wù)器回復(fù)的所述各個(gè)第二客戶端的在線狀
??τ O
[0048]根據(jù)本公開實(shí)施例的第四方面,提供一種語音通道建立裝置,應(yīng)用于第一客戶端中,所述裝置包括:
[0049]選取模塊,被配置為在接收到撥打被叫號(hào)碼的撥打指令后,選取第一媒體引擎;
[0050]封裝模塊,被配置為利用所述選取模塊選取的所述第一媒體引擎根據(jù)第一協(xié)議對(duì)第一語音通話請(qǐng)求進(jìn)行封裝,所述第一語音通話請(qǐng)求中包含所述被叫號(hào)碼;
[0051]發(fā)送模塊,被配置為將所述封裝模塊封裝后的所述第一語音通話請(qǐng)求發(fā)送至中轉(zhuǎn)服務(wù)器,所述第一語音通話請(qǐng)求用于觸發(fā)所述中轉(zhuǎn)服務(wù)器在查詢到與所述被叫號(hào)碼綁定的在線的第二客戶端后,確定出與所述第二客戶端對(duì)應(yīng)的第三方服務(wù)器的第二媒體引擎,按照所述第二媒體引擎所對(duì)應(yīng)的第二協(xié)議封裝第二語音通話請(qǐng)求,并所述第二語音通話請(qǐng)求發(fā)送至與所述第三方服務(wù)器,所述第二語音通話請(qǐng)求用于觸發(fā)所述第三方服務(wù)器通知所述第二客戶端存在通話請(qǐng)求,所述中轉(zhuǎn)服務(wù)器接收所述第三方服務(wù)器返回的所述第二客戶端允許通話的確認(rèn)信令,通知所述第一客戶端建立與所述第二客戶端之間的語音通道;
[0052]建立模塊,被配置為接收所述中轉(zhuǎn)服務(wù)器發(fā)送的用于建立與所述第二客戶端之間的語音通道的通知,建立與所述第二客戶端之間的語音通道。
[0053]可選的,所述選取模塊,包括:
[0054]第一獲取子模塊,被配置為獲取與各個(gè)客戶端對(duì)應(yīng)的媒體引擎,所述客戶端與所述第一客戶端不同,每個(gè)媒體引擎用于按照與所述媒體引擎對(duì)應(yīng)的協(xié)議封裝將要發(fā)送的信令,每個(gè)媒體引擎限定了用于傳遞語音數(shù)據(jù)包時(shí)的語音數(shù)據(jù)包格式;
[0055]選取子模塊,被配置為從所述第一獲取子模塊獲取的各個(gè)媒體引擎中選取出時(shí)延最小的媒體引擎,將所述媒體引擎確定所述第一媒體引擎。
[0056]可選的,所述通知中攜帶有與所述第二媒體引擎的信息,所述建立模塊,包括:
[0057]第二獲取子模塊,被配置為獲取所述第一媒體引擎限定的語音數(shù)據(jù)包格式;
[0058]第一發(fā)送子模塊,被配置為當(dāng)所述第二獲取子模塊獲取的所述第一媒體引擎限定的語音數(shù)據(jù)包