语音通道建立方法、装置及系统转让专利

申请号 : CN201510363777.9

文献号 : CN105100523B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 侯俊杰辛显龙金峰

申请人 : 小米科技有限责任公司

摘要 :

本公开揭示了一种语音通道建立方法、装置及系统,属于网络电话领域。语音通道建立方法包括:接收第一客户端发送的第一语音通话请求;查询与被叫号码绑定的在线的第二客户端;确定出与第二客户端对应的第三方服务器的第二媒体引擎;按照第二媒体引擎所对应的第二协议封装第二语音通话请求;在接收到第三方服务器反馈的第二客户端返回的确认信令后,通知第一客户端建立与第二客户端之间的语音通道。因此解决了在不同VOIP提供商的服务器注册的两个账号之间无法实现网络通话,从而使得VOIP的通话比较局限的问题;达到了各个VOIP提供商的用户群可以共享,不同的VOIP提供商的用户可以彼此拨打网络电话的效果。

权利要求 :

1.一种语音通道建立方法,其特征在于,应用于中转服务器中,所述方法包括:接收第一客户端发送的第一语音通话请求,所述第一语音通话请求是所述第一客户端利用选用的第一媒体引擎根据第一协议封装后得到的,所述第一语音通话请求中包括被叫号码,所述第一媒体引擎是从所述第一客户端的多个媒体引擎中选出的时延最小的媒体引擎;

查询与所述被叫号码绑定的在线的第二客户端,所述第二客户端为当前在线的第二客户端中联网时延最小的第二客户端;

确定出与所述第二客户端对应的第三方服务器的第二媒体引擎;

按照所述第二媒体引擎所对应的第二协议封装第二语音通话请求,所述第二语音通话请求中包含所述第二客户端的标识,所述第二语音通话请求用于触发所述第三方服务器通知所述第二客户端存在通话请求,接收所述第二客户端返回的允许通话的确认信令;

在接收到所述第三方服务器反馈的所述第二客户端返回的所述确认信令后,通知所述第一客户端建立与所述第二客户端之间的语音通道。

2.根据权利要求1所述的方法,其特征在于,所述通知所述第一客户端建立与所述第二客户端之间的语音通道,包括:向所述第一客户端发送用于指示所述第一客户端建立与所述第二客户端之间的语音通道的通知,所述通知中携带有与所述第三方服务器对应的第二媒体引擎的信息。

3.根据权利要求1所述的方法,其特征在于,所述查询与所述被叫号码绑定的在线的第二客户端,包括:查询与所述被叫号码绑定的各个第二客户端以及所述各个第二客户端的在线状态,所述第二客户端的在线状态是由与所述第二客户端对应的服务器提供的;

从当前在线的所述第二客户端中确定出一个第二客户端。

4.根据权利要求1至3中任一所述的方法,其特征在于,所述方法还包括:对于每个第三方服务器,查询与被叫号码绑定的且与所述第三方服务器对应的各个第二客户端;

向所述第三方服务器发送包含有所述各个第二客户端的标识的在线状态获取请求;

接收所述第三方服务器回复的所述各个第二客户端的在线状态。

5.一种语音通道建立方法,其特征在于,应用于第一客户端中,所述方法包括:在接收到拨打被叫号码的拨打指令后,选取第一媒体引擎,所述第一媒体引擎是从多个媒体引擎中选出的时延最小的媒体引擎;

利用所述第一媒体引擎根据第一协议对第一语音通话请求进行封装,所述第一语音通话请求中包含所述被叫号码;

将封装后的所述第一语音通话请求发送至中转服务器,所述第一语音通话请求用于触发所述中转服务器在查询到与所述被叫号码绑定的在线的第二客户端后,确定出与所述第二客户端对应的第三方服务器的第二媒体引擎,按照所述第二媒体引擎所对应的第二协议封装第二语音通话请求,并所述第二语音通话请求发送至与所述第三方服务器,所述第二语音通话请求用于触发所述第三方服务器通知所述第二客户端存在通话请求,所述中转服务器接收所述第三方服务器返回的所述第二客户端允许通话的确认信令,通知所述第一客户端建立与所述第二客户端之间的语音通道,所述第二客户端为当前在线的第二客户端中联网时延最小的第二客户端;

接收所述中转服务器发送的用于建立与所述第二客户端之间的语音通道的通知,建立与所述第二客户端之间的语音通道。

6.根据权利要求5所述的方法,其特征在于,所述选取第一媒体引擎,包括:获取与各个客户端对应的媒体引擎,所述客户端与所述第一客户端不同,每个媒体引擎用于按照与所述媒体引擎对应的协议封装将要发送的信令,每个媒体引擎限定了用于传递语音数据包时的语音数据包格式;

从各个媒体引擎中选取出时延最小的媒体引擎,将所述媒体引擎确定为所述第一媒体引擎。

7.根据权利要求5或6所述的方法,其特征在于,所述通知中携带有与所述第二媒体引擎的信息,所述建立与所述第二客户端之间的语音通道,包括:获取所述第一媒体引擎限定的语音数据包格式;

若所述第一媒体引擎限定的语音数据包格式与所述第二媒体引擎限定的语音数据包格式相同,则向所述第三方服务器发送语音数据包,以触发所述第三方服务器将所述语音数据包发送至所述第二客户端,开启所述第一客户端与所述第二客户端之间的语音通道;

若所述第一媒体引擎限定的语音数据包格式与所述第二媒体引擎限定的语音数据包格式不同,则向所述中转服务器发送所述语音数据包,由所述中转服务器将所述语音数据包转换成所述第三方服务器能够识别的格式,并将转换后的所述语音数据包发送至所述第三方服务器,以触发所述第三方服务器将所述语音数据包发送至所述第二客户端,开启所述第一客户端与所述第二客户端之间的语音通道。

8.一种语音通道建立装置,其特征在于,应用于中转服务器中,所述装置包括:接收模块,被配置为接收第一客户端发送的第一语音通话请求,所述第一语音通话请求是所述第一客户端利用选用的第一媒体引擎根据第一协议封装后得到的,所述第一语音通话请求中包括被叫号码,所述第一媒体引擎是从所述第一客户端的多个媒体引擎中选出的时延最小的媒体引擎;

第一查询模块,被配置为查询与所述被叫号码绑定的在线的第二客户端,所述第二客户端为当前在线的第二客户端中联网时延最小的第二客户端;

确定模块,被配置为确定出与所述第一查询模块查询出的所述第二客户端对应的第三方服务器的第二媒体引擎;

封装模块,被配置为按照所述确定模块确定出的所述第二媒体引擎所对应的第二协议封装第二语音通话请求,所述第二语音通话请求中包含所述第二客户端的标识,所述第二语音通话请求用于触发所述第三方服务器通知所述第二客户端存在通话请求,接收所述第二客户端返回的允许通话的确认信令;

通知模块,被配置为在接收到所述第三方服务器反馈的所述第二客户端返回的所述确认信令后,通知所述第一客户端建立与所述第二客户端之间的语音通道。

9.根据权利要求8所述的装置,其特征在于,所述通知模块,还被配置为:向所述第一客户端发送用于指示所述第一客户端建立与所述第二客户端之间的语音通道的通知,所述通知中携带有与所述第三方服务器对应的第二媒体引擎的信息。

10.根据权利要求8所述的装置,其特征在于,所述第一查询模块,包括:查询子模块,被配置为查询与所述被叫号码绑定的各个第二客户端以及所述各个第二客户端的在线状态,所述第二客户端的在线状态是由与所述第二客户端对应的服务器提供的;

确定子模块,被配置为从所述查询子模块查询出的当前在线的所述第二客户端中确定出一个第二客户端。

11.根据权利要求8至10中任一所述的装置,其特征在于,所述装置还包括:第二查询模块,被配置为对于每个第三方服务器,查询与被叫号码绑定的且与所述第三方服务器对应的各个第二客户端;

发送模块,被配置为向所述第三方服务器发送包含有所述第二查询模块查询出的所述各个第二客户端的标识的在线状态获取请求;

接收模块,被配置为接收所述第三方服务器回复的所述各个第二客户端的在线状态。

12.一种语音通道建立装置,其特征在于,应用于第一客户端中,所述装置包括:选取模块,被配置为在接收到拨打被叫号码的拨打指令后,选取第一媒体引擎,所述第一媒体引擎是从多个媒体引擎中选出的时延最小的媒体引擎;

封装模块,被配置为利用所述选取模块选取的所述第一媒体引擎根据第一协议对第一语音通话请求进行封装,所述第一语音通话请求中包含所述被叫号码;

发送模块,被配置为将所述封装模块封装后的所述第一语音通话请求发送至中转服务器,所述第一语音通话请求用于触发所述中转服务器在查询到与所述被叫号码绑定的在线的第二客户端后,确定出与所述第二客户端对应的第三方服务器的第二媒体引擎,按照所述第二媒体引擎所对应的第二协议封装第二语音通话请求,并所述第二语音通话请求发送至与所述第三方服务器,所述第二语音通话请求用于触发所述第三方服务器通知所述第二客户端存在通话请求,所述中转服务器接收所述第三方服务器返回的所述第二客户端允许通话的确认信令,通知所述第一客户端建立与所述第二客户端之间的语音通道,所述第二客户端为当前在线的第二客户端中联网时延最小的第二客户端;

建立模块,被配置为接收所述中转服务器发送的用于建立与所述第二客户端之间的语音通道的通知,建立与所述第二客户端之间的语音通道。

13.根据权利要求12所述的装置,其特征在于,所述选取模块,包括:

第一获取子模块,被配置为获取与各个客户端对应的媒体引擎,所述客户端与所述第一客户端不同,每个媒体引擎用于按照与所述媒体引擎对应的协议封装将要发送的信令,每个媒体引擎限定了用于传递语音数据包时的语音数据包格式;

选取子模块,被配置为从所述第一获取子模块获取的各个媒体引擎中选取出时延最小的媒体引擎,将所述媒体引擎确定为所述第一媒体引擎。

14.根据权利要求12或13所述的装置,其特征在于,所述通知中携带有与所述第二媒体引擎的信息,所述建立模块,包括:第二获取子模块,被配置为获取所述第一媒体引擎限定的语音数据包格式;

第一发送子模块,被配置为当所述第二获取子模块获取的所述第一媒体引擎限定的语音数据包格式与所述第二媒体引擎限定的语音数据包格式相同时,向所述第三方服务器发送语音数据包,以触发所述第三方服务器将所述语音数据包发送至所述第二客户端,开启所述第一客户端与所述第二客户端之间的语音通道;

第二发送子模块,被配置为当所述第二获取子模块获取的所述第一媒体引擎限定的语音数据包格式与所述第二媒体引擎限定的语音数据包格式不同时,向所述中转服务器发送所述语音数据包,由所述中转服务器将所述语音数据包转换成所述第三方服务器能够识别的格式,并将转换后的所述语音数据包发送至所述第三方服务器,以触发所述第三方服务器将所述语音数据包发送至所述第二客户端,开启所述第一客户端与所述第二客户端之间的语音通道。

15.一种语音通道建立系统,其特征在于,所述系统包括中转服务器和第一客户端;

所述中转服务器包括如权利要求8至11中任一所述的语音通道建立装置;

所述第一客户端包括如权利要求12至14中任一所述的语音通道建立装置。

16.一种语音通道建立装置,其特征在于,应用于中转服务器中,所述装置包括:处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为:

接收第一客户端发送的第一语音通话请求,所述第一语音通话请求是所述第一客户端利用选用的第一媒体引擎根据第一协议封装后得到的,所述第一语音通话请求中包括被叫号码,所述第一媒体引擎是从所述第一客户端的多个媒体引擎中选出的时延最小的媒体引擎;

查询与所述被叫号码绑定的在线的第二客户端,所述第二客户端为当前在线的第二客户端中联网时延最小的第二客户端;

确定出与所述第二客户端对应的第三方服务器的第二媒体引擎;

按照所述第二媒体引擎所对应的第二协议封装第二语音通话请求,所述第二语音通话请求中包含所述第二客户端的标识,所述第二语音通话请求用于触发所述第三方服务器通知所述第二客户端存在通话请求,接收所述第二客户端返回的允许通话的确认信令;

在接收到所述第三方服务器反馈的所述第二客户端返回的所述确认信令后,通知所述第一客户端建立与所述第二客户端之间的语音通道。

17.一种语音通道建立装置,其特征在于,应用于第一客户端中,所述装置包括:处理器;

用于存储所述处理器可执行指令的存储器;

其中,所述处理器被配置为:

在接收到拨打被叫号码的拨打指令后,选取第一媒体引擎,所述第一媒体引擎是从多个媒体引擎中选出的时延最小的媒体引擎;

利用所述第一媒体引擎根据第一协议对第一语音通话请求进行封装,所述第一语音通话请求中包含所述被叫号码;

将封装后的所述第一语音通话请求发送至中转服务器,所述第一语音通话请求用于触发所述中转服务器在查询到与所述被叫号码绑定的在线的第二客户端后,确定出与所述第二客户端对应的第三方服务器的第二媒体引擎,按照所述第二媒体引擎所对应的第二协议封装第二语音通话请求,并所述第二语音通话请求发送至与所述第三方服务器,所述第二语音通话请求用于触发所述第三方服务器通知所述第二客户端存在通话请求,所述中转服务器接收所述第三方服务器返回的所述第二客户端允许通话的确认信令,通知所述第一客户端建立与所述第二客户端之间的语音通道,所述第二客户端为当前在线的第二客户端中联网时延最小的第二客户端;

接收所述中转服务器发送的用于建立与所述第二客户端之间的语音通道的通知,建立与所述第二客户端之间的语音通道。

说明书 :

语音通道建立方法、装置及系统

技术领域

[0001] 本公开涉及网络电话领域,特别涉及一种语音通道建立方法、装置及系统。

背景技术

[0002] 随着网络技术的发展,大量基于网络的客户端之间可以实现语音通话。
[0003] 现阶段的各种网络电话(英文:Voice Over Internet Protocol,简称:VOIP)的提供商在提供语音通话时,需要用户在该提供商提供的服务器上注册账号,当在同一个服务器上注册有第一账号和第二账号时,可以利用登录有第一账号的第一客户端拨打登录有第二账号的第二客户端,实现第一账号和第二账号之间的网络通话。
[0004] 由于不同VOIP提供商提供的信令不一致,在不同VOIP提供商的服务器注册的两个账号之间无法实现网络通话,从而使得VOIP的通话比较局限。

发明内容

[0005] 为了解决在不同VOIP提供商的服务器注册的两个账号之间无法实现网络通话,从而使得VOIP的通话比较局限的问题,本公开提供语音通道建立方法、装置及系统。所述技术方案如下:
[0006] 根据本公开实施例的第一方面,提供一种语音通道建立方法,应用于中转服务器中,所述方法包括:
[0007] 接收第一客户端发送的第一语音通话请求,所述第一语音通话请求是所述第一客户端利用选用的第一媒体引擎根据第一协议封装后得到的,所述第一语音通话请求中包括被叫号码;
[0008] 查询与所述被叫号码绑定的在线的第二客户端;
[0009] 确定出与所述第二客户端对应的第三方服务器的第二媒体引擎;
[0010] 按照所述第二媒体引擎所对应的第二协议封装第二语音通话请求,所述第二语音通话请求中包含所述第二客户端的标识,所述第二语音通话请求用于触发所述第三方服务器通知所述第二客户端存在通话请求,接收所述第二客户端返回的允许通话的确认信令;
[0011] 在接收到所述第三方服务器反馈的所述第二客户端返回的所述确认信令后,通知所述第一客户端建立与所述第二客户端之间的语音通道。
[0012] 可选的,所述通知所述第一客户端建立与所述第二客户端之间的语音通道,包括:
[0013] 向所述第一客户端发送用于指示所述第一客户端建立与所述第二客户端之间的语音通道的通知,所述通知中携带有与所述第三方服务器对应的第二媒体引擎的信息。
[0014] 可选的,所述通知所述第一客户端建立与所述第二客户端之间的语音通道,包括:
[0015] 查询与所述被叫号码绑定的各个第二客户端以及所述各个第二客户端的在线状态,所述第二客户端的在线状态是由与所述第二客户端对应的服务器提供的;
[0016] 从当前在线的所述第二客户端中确定出一个第二客户端。
[0017] 可选的,所述方法还包括:
[0018] 对于每个第三方服务器,查询与被叫号码绑定的且与所述第三方服务器对应的各个第二客户端;
[0019] 向所述第三方服务器发送包含有所述各个第二客户端的标识的在线状态获取请求;
[0020] 接收所述第三方服务器回复的所述各个第二客户端的在线状态。
[0021] 根据本公开实施例的第二方面,提供一种语音通道建立方法,应用于第一客户端中,所述方法包括:
[0022] 在接收到拨打被叫号码的拨打指令后,选取第一媒体引擎;
[0023] 利用所述第一媒体引擎根据第一协议对第一语音通话请求进行封装,所述第一语音通话请求中包含所述被叫号码;
[0024] 将封装后的所述第一语音通话请求发送至中转服务器,所述第一语音通话请求用于触发所述中转服务器在查询到与所述被叫号码绑定的在线的第二客户端后,确定出与所述第二客户端对应的第三方服务器的第二媒体引擎,按照所述第二媒体引擎所对应的第二协议封装第二语音通话请求,并所述第二语音通话请求发送至与所述第三方服务器,所述第二语音通话请求用于触发所述第三方服务器通知所述第二客户端存在通话请求,所述中转服务器接收所述第三方服务器返回的所述第二客户端允许通话的确认信令,通知所述第一客户端建立与所述第二客户端之间的语音通道;
[0025] 接收所述中转服务器发送的用于建立与所述第二客户端之间的语音通道的通知,建立与所述第二客户端之间的语音通道。
[0026] 可选的,所述选取第一媒体引擎,包括:
[0027] 获取与各个客户端对应的媒体引擎,所述客户端与所述第一客户端不同,每个媒体引擎用于按照与所述媒体引擎对应的协议封装将要发送的信令,每个媒体引擎限定了用于传递语音数据包时的语音数据包格式;
[0028] 从各个媒体引擎中选取出时延最小的媒体引擎,将所述媒体引擎确定为所述第一媒体引擎。
[0029] 可选的,所述通知中携带有与所述第二媒体引擎的信息,所述建立与所述第二客户端之间的语音通道,包括:
[0030] 获取所述第一媒体引擎限定的语音数据包格式;
[0031] 若所述第一媒体引擎限定的语音数据包格式与所述第二媒体引擎限定的语音数据包格式相同,则向所述第三方服务器发送语音数据包,以触发所述第三方服务器将所述语音数据包发送至所述第二客户端,开启所述第一客户端与所述第二客户端之间的语音通道;
[0032] 若所述第一媒体引擎限定的语音数据包格式与所述第二媒体引擎限定的语音数据包格式不同,则向所述中转服务器发送所述语音数据包,由所述中转服务器将所述语音数据包转换成所述第三方服务器能够识别的格式,并将转换后的所述语音数据包发送至所述第三方服务器,以触发所述第三方服务器将所述语音数据包发送至所述第二客户端,开启所述第一客户端与所述第二客户端之间的语音通道。
[0033] 根据本公开实施例的第三方面,提供一种语音通道建立装置,应用于中转服务器中,所述装置包括:
[0034] 接收装置,被配置为接收第一客户端发送的第一语音通话请求,所述第一语音通话请求是所述第一客户端利用选用的第一媒体引擎根据第一协议封装后得到的,所述第一语音通话请求中包括被叫号码;
[0035] 第一查询模块,被配置为查询与所述被叫号码绑定的在线的第二客户端;
[0036] 确定模块,被配置为确定出与所述第一查询模块查询出的所述第二客户端对应的第三方服务器的第二媒体引擎;
[0037] 封装模块,被配置为按照所述确定模块确定出的所述第二媒体引擎所对应的第二协议封装第二语音通话请求,所述第二语音通话请求中包含所述第二客户端的标识,所述第二语音通话请求用于触发所述第三方服务器通知所述第二客户端存在通话请求,接收所述第二客户端返回的允许通话的确认信令;
[0038] 通知模块,被配置为在接收到所述第三方服务器反馈的所述第二客户端返回的所述确认信令后,通知所述第一客户端建立与所述第二客户端之间的语音通道。
[0039] 可选的,所述通知模块,还被配置为:
[0040] 向所述第一客户端发送用于指示所述第一客户端建立与所述第二客户端之间的语音通道的通知,所述通知中携带有与所述第三方服务器对应的第二媒体引擎的信息。
[0041] 可选的,所述第一查询模块,包括:
[0042] 查询子模块,被配置为查询与所述被叫号码绑定的各个第二客户端以及所述各个第二客户端的在线状态,所述第二客户端的在线状态是由与所述第二客户端对应的服务器提供的;
[0043] 确定子模块,被配置为从所述查询子模块查询出的当前在线的所述第二客户端中确定出一个第二客户端。
[0044] 可选的,所述装置还包括:
[0045] 第二查询模块,被配置为对于每个第三方服务器,查询与被叫号码绑定的且与所述第三方服务器对应的各个第二客户端;
[0046] 发送模块,被配置为向所述第三方服务器发送包含有所述第二查询模块查询出的所述各个第二客户端的标识的在线状态获取请求;
[0047] 接收模块,被配置为接收所述第三方服务器回复的所述各个第二客户端的在线状态。
[0048] 根据本公开实施例的第四方面,提供一种语音通道建立装置,应用于第一客户端中,所述装置包括:
[0049] 选取模块,被配置为在接收到拨打被叫号码的拨打指令后,选取第一媒体引擎;
[0050] 封装模块,被配置为利用所述选取模块选取的所述第一媒体引擎根据第一协议对第一语音通话请求进行封装,所述第一语音通话请求中包含所述被叫号码;
[0051] 发送模块,被配置为将所述封装模块封装后的所述第一语音通话请求发送至中转服务器,所述第一语音通话请求用于触发所述中转服务器在查询到与所述被叫号码绑定的在线的第二客户端后,确定出与所述第二客户端对应的第三方服务器的第二媒体引擎,按照所述第二媒体引擎所对应的第二协议封装第二语音通话请求,并所述第二语音通话请求发送至与所述第三方服务器,所述第二语音通话请求用于触发所述第三方服务器通知所述第二客户端存在通话请求,所述中转服务器接收所述第三方服务器返回的所述第二客户端允许通话的确认信令,通知所述第一客户端建立与所述第二客户端之间的语音通道;
[0052] 建立模块,被配置为接收所述中转服务器发送的用于建立与所述第二客户端之间的语音通道的通知,建立与所述第二客户端之间的语音通道。
[0053] 可选的,所述选取模块,包括:
[0054] 第一获取子模块,被配置为获取与各个客户端对应的媒体引擎,所述客户端与所述第一客户端不同,每个媒体引擎用于按照与所述媒体引擎对应的协议封装将要发送的信令,每个媒体引擎限定了用于传递语音数据包时的语音数据包格式;
[0055] 选取子模块,被配置为从所述第一获取子模块获取的各个媒体引擎中选取出时延最小的媒体引擎,将所述媒体引擎确定所述第一媒体引擎。
[0056] 可选的,所述通知中携带有与所述第二媒体引擎的信息,所述建立模块,包括:
[0057] 第二获取子模块,被配置为获取所述第一媒体引擎限定的语音数据包格式;
[0058] 第一发送子模块,被配置为当所述第二获取子模块获取的所述第一媒体引擎限定的语音数据包格式与所述第二媒体引擎限定的语音数据包格式相同时,向所述第三方服务器发送语音数据包,以触发所述第三方服务器将所述语音数据包发送至所述第二客户端,开启所述第一客户端与所述第二客户端之间的语音通道;
[0059] 第二发送子模块,被配置为当所述第二获取子模块获取的所述第一媒体引擎限定的语音数据包格式与所述第二媒体引擎限定的语音数据包格式不同时,向所述中转服务器发送所述语音数据包,由所述中转服务器将所述语音数据包转换成所述第三方服务器能够识别的格式,并将转换后的所述语音数据包发送至所述第三方服务器,以触发所述第三方服务器将所述语音数据包发送至所述第二客户端,开启所述第一客户端与所述第二客户端之间的语音通道。
[0060] 根据本公开实施例的第五方面,提供一种语音通道建立系统,所述系统包括中转服务器和第一客户端:
[0061] 所述中转服务器包括如第三方面以及第三方面各种可选的实现方式中所描述的语音通道建立装置;
[0062] 所述第一客户端包括如第四方面以及第四方面各种可选的实现方式中所描述的语音通道建立装置。
[0063] 根据本公开实施例的第六方面,提供一种语音通道建立装置,所述装置应用于中转服务器中,所述装置包括:
[0064] 处理器;
[0065] 用于存储所述处理器可执行指令的存储器;
[0066] 其中,所述处理器被配置为:
[0067] 接收第一客户端发送的第一语音通话请求,所述第一语音通话请求是所述第一客户端利用选用的第一媒体引擎根据第一协议封装后得到的,所述第一语音通话请求中包括被叫号码;
[0068] 查询与所述被叫号码绑定的在线的第二客户端;
[0069] 确定出与所述第二客户端对应的第三方服务器的第二媒体引擎;
[0070] 按照所述第二媒体引擎所对应的第二协议封装第二语音通话请求,所述第二语音通话请求中包含所述第二客户端的标识,所述第二语音通话请求用于触发所述第三方服务器通知所述第二客户端存在通话请求,接收所述第二客户端返回的允许通话的确认信令;
[0071] 在接收到所述第三方服务器反馈的所述第二客户端返回的所述确认信令后,通知所述第一客户端建立与所述第二客户端之间的语音通道。
[0072] 根据本公开实施例的第七方面,提供一种语音通道建立装置,所述装置应用于第一客户端中,所述装置包括:
[0073] 处理器;
[0074] 用于存储所述处理器可执行指令的存储器;
[0075] 其中,所述处理器被配置为:
[0076] 在接收到拨打被叫号码的拨打指令后,选取第一媒体引擎;
[0077] 利用所述第一媒体引擎根据第一协议对第一语音通话请求进行封装,所述第一语音通话请求中包含所述被叫号码;
[0078] 将封装后的所述第一语音通话请求发送至中转服务器,所述第一语音通话请求用于触发所述中转服务器在查询到与所述被叫号码绑定的在线的第二客户端后,确定出与所述第二客户端对应的第三方服务器的第二媒体引擎,按照所述第二媒体引擎所对应的第二协议封装第二语音通话请求,并所述第二语音通话请求发送至与所述第三方服务器,所述第二语音通话请求用于触发所述第三方服务器通知所述第二客户端存在通话请求,所述中转服务器接收所述第三方服务器返回的所述第二客户端允许通话的确认信令,通知所述第一客户端建立与所述第二客户端之间的语音通道;
[0079] 接收所述中转服务器发送的用于建立与所述第二客户端之间的语音通道的通知,建立与所述第二客户端之间的语音通道。
[0080] 本公开的实施例提供的技术方案可以包括以下有益效果:
[0081] 通过第一客户端向中转服务器发送第一语音通话请求,利用中转服务器查询被叫号码所绑定的第二客户端,利用第二协议封装第二语音通话请求,与第二客户端建立语音通道,实现和第二客户端之间的网络通话;由于可以提供一个信令网关,通过协议互转的方式解决通讯信令协议不一致的问题,因此解决了在不同VOIP提供商的服务器注册的两个账号之间无法实现网络通话,从而使得VOIP的通话比较局限的问题;达到了各个VOIP提供商的用户群可以共享,不同的VOIP提供商的用户可以彼此拨打网络电话的效果。
[0082] 应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本公开。

附图说明

[0083] 此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并于说明书一起用于解释本公开的原理。
[0084] 图1是根据部分示例性实施例示出的一种语音通道建立方法所涉及的实施环境的示意图;
[0085] 图2是根据一示例性实施例示出的一种语音通道建立方法的流程图;
[0086] 图3是根据另一示例性实施例示出的一种语音通道建立方法的流程图;
[0087] 图4A是根据再一示例性实施例示出的一种语音通道建立方法的流程图;
[0088] 图4B是根据一示例性实施例示出的选取第一媒体引擎的流程图;
[0089] 图4C是根据一示例性实施例示出的查询与被叫号码绑定的在线的第二客户端的流程图;
[0090] 图4D是根据一示例性实施例示出的建立与第二客户端之间的语音通道的流程图;
[0091] 图5A是根据一示例性实施例示出的一种语音通道建立装置的框图;
[0092] 图5B是根据另一示例性实施例示出的一种语音通道建立装置的框图;
[0093] 图6A是根据一示例性实施例示出的一种语音通道建立装置的框图;
[0094] 图6B根据另一示例性实施例示出的一种语音通道建立装置的框图;
[0095] 图7是根据一示例性实施例示出的一种语音通道建立系统的框图;
[0096] 图8是根据一示例性实施例示出的用于建立语音通道的装置的框图。
[0097] 图9是根据另一示例性实施例示出的用于建立语音通道的装置的框图。

具体实施方式

[0098] 这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。
[0099] 图1是根据部分示例性实施例示出的一种语音通道建立方法所涉及的实施环境的示意图,如图1所示,该实施环境可以包括第一客户端10、中转服务器11、第三方服务器12和第二客户端13。
[0100] 第一客户端10可以通过有线或无线方式与中转服务器11相连。
[0101] 中转服务器11可以通过有线或无线方式与第三方服务器12相连。
[0102] 第三方服务器12可以通过有线或无线方式与第二客户端13相连,在第二客户端13上登录的账号一般是在第三方服务器12上成功注册过的账号。
[0103] 第一客户端10登录的账号可以不是在第三方服务器12成功注册过的账号,也即登录在第一客户端10的账号与登录在第二客户端13的账号可以不为同一个账号体系。
[0104] 图2是根据一示例性实施例示出的一种语音通道建立方法的流程图,如图2所示,该语音通道建立方法应用于图1所示的实施环境中的中转服务器11中,包括以下步骤。
[0105] 在步骤201中,接收第一客户端发送的第一语音通话请求。
[0106] 在步骤202中,查询与被叫号码绑定的在线的第二客户端。
[0107] 在步骤203中,确定出与第二客户端对应的第三方服务器的第二媒体引擎。
[0108] 在步骤204中,按照第二媒体引擎所对应的第二协议封装第二语音通话请求。
[0109] 在步骤205中,在接收到第三方服务器反馈的第二客户端返回的确认信令后,通知第一客户端建立与第二客户端之间的语音通道。
[0110] 综上所述,本公开实施例中提供的语音通道建立方法,通过第一客户端向中转服务器发送第一语音通话请求,利用中转服务器查询被叫号码所绑定的第二客户端,利用第二协议封装第二语音通话请求,与第二客户端建立语音通道,实现和第二客户端之间的网络通话;由于可以提供一个信令网关,通过协议互转的方式解决通讯信令协议不一致的问题,因此解决了在不同VOIP提供商的服务器注册的两个账号之间无法实现网络通话,从而使得VOIP的通话比较局限的问题;达到了各个VOIP提供商的用户群可以共享,不同的VOIP提供商的用户可以彼此拨打网络电话的效果。
[0111] 图3是根据另一示例性实施例示出的一种语音通道建立方法的流程图,如图3所示,该语音通道建立方法应用于图1所示的实施环境中的第一客户端10中,包括以下步骤。
[0112] 在步骤301中,在接收到拨打被叫号码的拨打指令后,选取第一媒体引擎。
[0113] 在步骤302中,利用第一媒体引擎根据第一协议对第一语音通话请求进行封装,第一语音通话请求中包含被叫号码。
[0114] 在步骤303中,将封装后的第一语音通话请求发送至中转服务器。
[0115] 在步骤304中,接收中转服务器发送的用于建立与第二客户端之间的语音通道的通知,建立与第二客户端之间的语音通道。
[0116] 综上所述,本公开实施例中提供的语音通道建立方法,通过第一客户端向中转服务器发送第一语音通话请求,利用中转服务器查询被叫号码所绑定的第二客户端,利用第二协议封装第二语音通话请求,与第二客户端建立语音通道,实现和第二客户端之间的网络通话;由于可以提供一个信令网关,通过协议互转的方式解决通讯信令协议不一致的问题,因此解决了在不同VOIP提供商的服务器注册的两个账号之间无法实现网络通话,从而使得VOIP的通话比较局限的问题;达到了各个VOIP提供商的用户群可以共享,不同的VOIP提供商的用户可以彼此拨打网络电话的效果。
[0117] 在一种可能的实现方式中,第一客户端通过中转服务器与第二客户端建立语音通道时,可以参见如图4A所示,其是根据再一示例性实施例示出的一种语音通道建立方法的流程图,如图4A所示,该语音通道建立方法可以包括如下步骤:
[0118] 步骤401,第一客户端在接收到拨打被叫号码的拨打指令后,选取第一媒体引擎。
[0119] 当第一客户端接收到用户的拨打请求后,确定向中转服务器发送信息的第一媒体引擎。
[0120] 在一种可能的实现方式中,可以将图4A中的步骤401进一步替换为步骤401a至步骤401b。请参见图4B所示,其是根据一示例性实施例示出的选取第一媒体引擎的流程图,如图4B所示,语音通道建立方法可以包括以下步骤。
[0121] 在步骤401a中,获取与各个客户端对应的媒体引擎,各个客户端与第一客户端不同,每个媒体引擎用于按照与媒体引擎对应的协议封装将要发送的信令,每个媒体引擎限定了用于传递语音数据包时的语音数据包格式。
[0122] 一般来讲,第一客户端的底层可以有多个媒体引擎,每一种媒体引擎具有对应的标准协议,也即每一种媒体引擎均会利用对应的标准协议打包将要发送的信息,并将打包后的信息发送至中转服务器。
[0123] 举例来讲,对应于米聊客户端的媒体引擎,可以利用米聊对应的协议封装将要发送的信令。
[0124] 在步骤401b中,从各个媒体引擎中选取出时延最小的媒体引擎,将媒体引擎确定为第一媒体引擎。
[0125] 时延最小意味着通话连接更容易成功,语音质量更好,故可以选择时延最小的媒体引擎。
[0126] 步骤402,第一客户端利用第一媒体引擎根据第一协议对第一语音通话请求进行封装。
[0127] 第一客户端利用第一媒体引擎将发送给中转服务器的通话请求进行封装,封装协议为中转服务器接收消息的消息封装协议。
[0128] 步骤403,第一客户端将封装后的第一语音通话请求发送至中转服务器。
[0129] 步骤404,中转服务器接收第一客户端发送的第一语音通话请求后,查询与被叫号码绑定的在线的第二客户端。
[0130] 在实际应用中,由于不同账号体系下传输信令的协议是不同的,为了能够实现不同账号体系下的客户端之间进行语音通话,可以利用中转服务器进行中转。为了能够接通两种协议下的客户端,本公开利用了中间账号,即电话号码,来实现两个客户端的对接。
[0131] 这种情况下,中转服务器可以预先存储各个电话号码绑定的客户端。当第一客户端准备拨打被叫号码时,中转服务器则可以查询与该被叫号码对应的第二客户端,并可以获取这些第二客户端中在线的客户端。
[0132] 在一种可能的实现方式中,可以将图4中的步骤404进一步替换为步骤404a至步骤404b。请参见图4C,其是根据一示例性实施例示出的查询与被叫号码绑定的在线的第二客户端的流程图,如图4C所示,语音通道建立方法可以包括以下步骤。
[0133] 在步骤404a中,查询与被叫号码绑定的各个第二客户端以及各个第二客户端的在线状态,第二客户端的在线状态是由与第二客户端对应的服务器提供的。
[0134] 中转服务器依次查询与被叫号码绑定的各个第二客户端是否在线或处于通话空闲状态,当被查询的第二客户端处于离线或通话占线状态,则认为该客户端未处于空闲状态(也即不具备通话条件),继而查询下一个与该被叫号码绑定的第二客户端。
[0135] 这里所讲的第二客户端可以为安装在手机、电脑、平板等移动终端上的客户端,这些客户端通常已经被用户账号进行了登录,本公开各个实施例对第二客户端的种类不作限定。
[0136] 一般来讲,当中转服务器与预定的第三方服务器建立了这种将不同账号体系下的客户端进行对接的业务时,中转服务器可以分别向各个第三方服务器查询电话号码所绑定的各个第二客户端的在线状态,第三方服务器则会反馈自身账号体系下的第二客户端的在线状态。
[0137] 在实际实现时,中转服务器获取各个电话号码所绑定的第二客户端的在线状态时,可以包括如下步骤:
[0138] 第一,中转服务器对于每个第三方服务器,查询与被叫号码绑定的且与第三方服务器对应的各个第二客户端。
[0139] 第二,中转服务器向第三方服务器发送包含有各个第二客户端的标识的在线状态获取请求。
[0140] 中转服务器向不同的第三方服务器发送用于查询第二客户端与第三方服务器是否处于联网状态的指令。
[0141] 第三,中转服务器接收第三方服务器回复的各个第二客户端的在线状态。
[0142] 举例来讲,当某个被叫号码绑定了米聊号为123456的第二客户端,此时,中转服务器则可以向与米聊对应的第三方服务器请求获取该米聊号为123456的第二客户端的在线状态,第三方服务器则会向中转服务器反馈该该米聊号为123456的第二客户端的在线状态。
[0143] 显然,当被请求过的第二客户端的在线状态发生变化后,第三方服务器可以自动向中转服务器上报这些在线状态发生变化的第二客户端的在线状态。
[0144] 在步骤404b中,从当前在线的第二客户端中确定出一个第二客户端。
[0145] 如果当前在线的第二客户端有两个或两个以上,中转服务器可以随机选择一个在线的第二客户端,或者,对第二客户端的联网状态进行筛选,优先选择处于Wi-Fi联网状态下的第二客户端,或者,还可以对第二客户端的联网时延进行统计,优先选择联网时延最小的第二客户端。
[0146] 如果第二客户端与第三方服务器处于联网状态,则该第三方服务器回复中转服务器第二客户端的在线状态,其中在线状态可以包括空闲、忙碌等,如果第二客户端与第三方服务器处于断网状态,则该第三方服务器不回复中转服务器发送的查询指令。
[0147] 步骤405,中转服务器确定出与第二客户端对应的第三方服务器的第二媒体引擎。
[0148] 当在线的第二客户端确定出之后,则可以确定出与该第二客户端对应的第三方服务器的第二媒体引擎,
[0149] 步骤406,中转服务器按照第二媒体引擎所对应的第二协议封装第二语音通话请求。
[0150] 中转服务器根据第二媒体引擎所对应的第二协议,封装第二语音通话请求。
[0151] 其中,该第二语音通话请求中包含第二客户端的标识,该第二语音通话请求用于触发第三方服务器通知第二客户端存在通话请求,接收第二客户端返回的允许通话的确认信令。
[0152] 步骤407,中转服务器将封装后的第二语音通话请求发送至第三方服务器。
[0153] 也即,经过上述步骤404至步骤406实现了将利用第一协议封装的第一语音通话请求转换为了利用第二协议封装的第二语音通话请求,该第二语音通话请求可提供给第三方服务器进行识别,且将第一客户端想要通话的被叫号码转换为了与该被叫号码绑定的在线的第二客户端。
[0154] 步骤408,第三方服务器在接收到第二语音通话请求后,通知第二客户端存在通话请求。
[0155] 第三方服务器通知第二客户端的方式可以是发起响铃、语音提示、发起震动等,此处对第三方服务器通知第二客户端的方式不做限定。
[0156] 步骤409,第三方服务器接收第二客户端返回的允许通话的确认信令。
[0157] 当第二客户端的用户确定允许通话时,第二客户端则会向第三方服务器返回允许通话的确认信令,对应的,第三方服务器则可以接收到第二客户端返回的该确认信令。
[0158] 步骤410,第三方服务器向中转服务器反馈第二客户端允许通话的确认信令。
[0159] 步骤411,中转服务器在接收到第三方服务器反馈的第二客户端返回的确认信令后,向第一客户端发送用于指示第一客户端建立与第二客户端之间的语音通道的通知,通知中携带有与第三方服务器对应的第二媒体引擎的信息。
[0160] 也即,通过上述步骤408至步骤411,则可以实现:在第二客户端允许接听该通话时,发送允许通话的确认信令至第三方服务器,第三方服务再将该确认信令发送至中转服务器,由中转服务器进行协议转换,并通知第一客户端建立与第二客户端之间的语音通道。
[0161] 步骤412,第一客户端接收中转服务器发送的用于建立与第二客户端之间的语音通道的通知,建立与第二客户端之间的语音通道。
[0162] 第一客户端接收到中转服务器发送建立与第二客户端之间的语音通道的通知,则按照第二媒体引擎所对应的语音数据包格式建立语音通道,与第二客户端进行语音连接。
[0163] 在一种可能的实现方式中,可以将图4A中的步骤412进一步替换为步骤412a至步骤412c。请参见图4D所示,其是根据一示例性实施例示出的建立与第二客户端之间的语音通道的流程图,如图4D所示,语音通道建立方法可以包括以下步骤。
[0164] 在步骤412a中,获取第一媒体引擎限定的语音数据包格式。
[0165] 在步骤412b中,若第一媒体引擎限定的语音数据包格式与第二媒体引擎限定的语音数据包格式相同,则向第三方服务器发送语音数据包,以触发第三方服务器将语音数据包发送至第二客户端,开启第一客户端与第二客户端之间的语音通道。
[0166] 第一客户端将获取的第一媒体引擎和第二媒体引擎进行对比,如果第一媒体引擎限定的语音数据包格式与第二媒体引擎限定的语音数据包格式相同,意味着第一媒体引擎与第二媒体引擎为同一媒体引擎,第一客户端根据第一媒体引擎进行协议转换后,可直接发送语音数据包至第三服务器,通过第三服务器与第二客户端建立语音通道,进行通话。
[0167] 在步骤412c中,若第一媒体引擎限定的语音数据包格式与第二媒体引擎限定的语音数据包格式不同,则向中转服务器发送语音数据包,由中转服务器将语音数据包转换成第三方服务器能够识别的格式,并将转换后的语音数据包发送至第三方服务器,以触发第三方服务器将语音数据包发送至第二客户端,开启第一客户端与第二客户端之间的语音通道。
[0168] 如果第一媒体引擎限定的语音数据包格式与第二媒体引擎限定的语音数据包格式不同,意味着第一媒体引擎与第二媒体引擎不是同一媒体引擎,第一客户端根据第一媒体引擎进行协议转换后,还需对第二媒体引擎进行协议转换,并发送语音数据包至中转服务器,由中转服务器将语音数据包转换成第三方服务器能够识别的格式,再通过第三方服务器与第二客户端建立语音通道,进行通话。
[0169] 上述步骤401至步骤403和步骤412可以单独实施成为以第一客户端为执行主体的语音通道建立方法,步骤404至步骤407和步骤411可以单独实施成为以中转服务器为执行主体的语音通道建立方法。
[0170] 综上所述,本公开实施例中提供的语音通道建立方法,通过第一客户端向中转服务器发送第一语音通话请求,利用中转服务器查询被叫号码所绑定的第二客户端,利用第二协议封装第二语音通话请求,与第二客户端建立语音通道,实现和第二客户端之间的网络通话;由于可以提供一个信令网关,通过协议互转的方式解决通讯信令协议不一致的问题,因此解决了在不同VOIP提供商的服务器注册的两个账号之间无法实现网络通话,从而使得VOIP的通话比较局限的问题;达到了各个VOIP提供商的用户群可以共享,不同的VOIP提供商的用户可以彼此拨打网络电话的效果。
[0171] 另外,中转服务器通过查询第三方服务器所对应的第二客户端的在线状态,来确定第二媒体引擎,并向第一客户端发送第二媒体引擎信息,通知第一客户端建立语音通道;第一客户端利用第一媒体引擎向中转服务器发送通话请求,将获取的第一媒体引擎和第二媒体引擎进行对比,如果二者相同,则将语音数据包直接发送至第三方服务器,如果不同则将语音数据包发送至中转服务器进行协议转换,实现语音连接。
[0172] 下述为本公开设备实施例,可以用于执行本公开方法实施例。对于本公开设备实施例中未披露的细节,请参照本公开方法实施例。
[0173] 图5A是根据一示例性实施例示出的一种语音通道建立装置的框图,如图5A所示,该语音通道建立装置应用于中转服务器中,该语音通道建立装置包括但不限于:第一接收模块501、第一查询模块502、确定模块503、封装模块504、通知模块505。
[0174] 第一接收模块501,被配置为接收第一客户端发送的第一语音通话请求;
[0175] 第一查询模块502,被配置为查询与被叫号码绑定的在线的第二客户端;
[0176] 确定模块503,被配置为确定出与第一查询模块501查询出的第二客户端对应的第三方服务器的第二媒体引擎;
[0177] 封装模块504,被配置为按照确定模块503确定出的第二媒体引擎所对应的第二协议封装第二语音通话请求;
[0178] 通知模块505,被配置为在接收到第三方服务器反馈的第二客户端返回的确认信令后,通知第一客户端建立与第二客户端之间的语音通道。
[0179] 在一种可能的实现方式中,请参见图5B,其是根据另一示例性实施例示出的一种用于建立语音通道装置的框图,该连接模块501包括:查询子模块501a和确定子模块501b。
[0180] 查询子模块501a,被配置为查询与被叫号码绑定的各个第二客户端以及各个第二客户端的在线状态,第二客户端的在线状态是由与第二客户端对应的服务器提供的;
[0181] 确定子模块501b,被配置为从查询子模块501a查询出的当前在线的第二客户端中确定出一个第二客户端。
[0182] 在一种可能的实现方式中,仍旧参见图5B所示,该语音通道建立装置还可以包括:第二查询模块506、发送模块507和第二接收模块508。
[0183] 第二查询模块506,被配置为对于每个第三方服务器,查询与被叫号码绑定的且与第三方服务器对应的各个第二客户端;
[0184] 发送模块507,被配置为向第三方服务器发送包含有第二查询模块506查询出的各个第二客户端的标识的在线状态获取请求;
[0185] 第二接收模块508,被配置为接收第三方服务器回复的各个第二客户端的在线状态。
[0186] 综上所述,本公开实施例中提供的语音通道建立装置,通过第一客户端向中转服务器发送第一语音通话请求,利用中转服务器查询被叫号码所绑定的第二客户端,利用第二协议封装第二语音通话请求,与第二客户端建立语音通道,实现和第二客户端之间的网络通话;由于可以提供一个信令网关,通过协议互转的方式解决通讯信令协议不一致的问题,因此解决了在不同VOIP提供商的服务器注册的两个账号之间无法实现网络通话,从而使得VOIP的通话比较局限的问题;达到了各个VOIP提供商的用户群可以共享,不同的VOIP提供商的用户可以彼此拨打网络电话的效果。
[0187] 另外,中转服务器通过查询第三方服务器所对应的第二客户端的在线状态,来确定第二媒体引擎,并向第一客户端发送第二媒体引擎信息,通知第一客户端建立语音通道。
[0188] 请参见图6A,其是根据一示例性实施例示出的一种语音通道建立装置的框图,如图6A所示,该语音通道建立装置应用于第一客户端中,该语音通道建立装置包括但不限于:选取模块601、封装模块602、发送模块603和建立模块604。
[0189] 选取模块601,被配置为在接收到拨打被叫号码的拨打指令后,选取第一媒体引擎;
[0190] 封装模块602,被配置为利用选取模块601选取的第一媒体引擎根据第一协议对第一语音通话请求进行封装,第一语音通话请求中包含被叫号码;
[0191] 发送模块603,被配置为将封装模块602封装后的第一语音通话请求发送至中转服务器。
[0192] 建立模块604,被配置为接收中转服务器发送的用于建立与第二客户端之间的语音通道的通知,建立与第二客户端之间的语音通道。
[0193] 在一种可能的实现方式中,请参见图6B,其是根据另一示例性实施例示出的一种语音通道建立装置的框图,该选取模块601,包括:第一获取子模块601a和选取子模块601b。
[0194] 第一获取子模块601a,被配置为获取与各个客户端对应的媒体引擎,客户端与第一客户端不同,每个媒体引擎用于按照与媒体引擎对应的协议封装将要发送的信令,每个媒体引擎限定了用于传递语音数据包时的语音数据包格式;
[0195] 选取子模块601b,被配置为从第一获取子模块601a获取的各个媒体引擎中选取出时延最小的媒体引擎,将媒体引擎确定为第一媒体引擎。
[0196] 在一种可能的实现方式中,仍旧参见图6B所示,该建立模块604还可以包括:第二获取子模块604a、第一发送子模块604b和第二发送子模块604c。
[0197] 第二获取子模块604a,被配置为获取第一媒体引擎限定的语音数据包格式;
[0198] 第一发送子模块604b,被配置为第二获取子模块604a获取的第一媒体引擎限定的语音数据包格式与第二媒体引擎限定的语音数据包格式相同时,向第三方服务器发送语音数据包,以触发第三方服务器将语音数据包发送至第二客户端,开启第一客户端与第二客户端之间的语音通道;
[0199] 第二发送子模块604c,被配置为当第二获取子模块604a获取的第一媒体引擎限定的语音数据包格式与第二媒体引擎限定的语音数据包格式不同时,向中转服务器发送语音数据包,由中转服务器将语音数据包转换成第三方服务器能够识别的格式,并将转换后的语音数据包发送至第三方服务器,以触发第三方服务器将语音数据包发送至第二客户端,开启第一客户端与第二客户端之间的语音通道。
[0200] 综上所述,本公开实施例中提供的语音通道建立装置,通过第一客户端向中转服务器发送第一语音通话请求,利用中转服务器查询被叫号码所绑定的第二客户端,利用第二协议封装第二语音通话请求,与第二客户端建立语音通道,实现和第二客户端之间的网络通话;由于可以提供一个信令网关,通过协议互转的方式解决通讯信令协议不一致的问题,因此解决了在不同VOIP提供商的服务器注册的两个账号之间无法实现网络通话,从而使得VOIP的通话比较局限的问题;达到了各个VOIP提供商的用户群可以共享,不同的VOIP提供商的用户可以彼此拨打网络电话的效果。
[0201] 另外,第一客户端利用第一媒体引擎向中转服务器发送通话请求,将获取的第一媒体引擎和第二媒体引擎进行对比,如果二者相同,则将语音数据包直接发送至第三方服务器,如果不同则将语音数据包发送至中转服务器进行协议转换,实现语音连接。
[0202] 图7是根据一示例性实施例示出的一种语音通道建立系统的框图,如图7所示,该语音通道建立系统应用于图1所示实施环境中。该语音通道建立系统可以包括:第一客户端701和中转服务器702。
[0203] 第一客户端701包括如图5A和图5B中所描述的语音通道建立装置,具体可以参见图5A和图5B中的描述,这里就不再赘述。
[0204] 中转服务器702可以包括如图6A和图6B中所描述的语音通道建立装置,具体可以参见图6A和图6B中的描述,这里就不再赘述。
[0205] 综上所述,本公开实施例中提供的语音通道建立系统,通过第一客户端向中转服务器发送第一语音通话请求,利用中转服务器查询被叫号码所绑定的第二客户端,利用第二协议封装第二语音通话请求,与第二客户端建立语音通道,实现和第二客户端之间的网络通话;由于可以提供一个信令网关,通过协议互转的方式解决通讯信令协议不一致的问题,因此解决了在不同VOIP提供商的服务器注册的两个账号之间无法实现网络通话,从而使得VOIP的通话比较局限的问题;达到了各个VOIP提供商的用户群可以共享,不同的VOIP提供商的用户可以彼此拨打网络电话的效果。
[0206] 关于上述实施例中的设备,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
[0207] 本公开一示例性实施例提供了一种语音通道建立装置,能够实现本公开提供的语音通道建立方法,该外接设备包括:处理器、用于存储处理器可执行指令的存储器;
[0208] 其中,处理器被配置为:
[0209] 接收第一客户端发送的第一语音通话请求,该第一语音通话请求是第一客户端利用选用的第一媒体引擎根据第一协议封装后得到的,第一语音通话请求中包括被叫号码;
[0210] 查询与被叫号码绑定的在线的第二客户端;
[0211] 确定出与第二客户端对应的第三方服务器的第二媒体引擎;
[0212] 按照第二媒体引擎所对应的第二协议封装第二语音通话请求,第二语音通话请求中包含第二客户端的标识,第二语音通话请求用于触发第三方服务器通知第二客户端存在通话请求,接收第二客户端返回的允许通话的确认信令;
[0213] 在接收到第三方服务器反馈的第二客户端返回的确认信令后,通知第一客户端建立与第二客户端之间的语音通道。
[0214] 本公开一示例性实施例提供了语音通道建立装置,能够实现本公开提供的语音通道建立方法,该移动设备包括:处理器、用于存储处理器可执行指令的存储器;
[0215] 其中,处理器被配置为:
[0216] 在接收到拨打被叫号码的拨打指令后,选取第一媒体引擎;
[0217] 利用第一媒体引擎根据第一协议对第一语音通话请求进行封装,第一语音通话请求中包含被叫号码;
[0218] 将封装后的第一语音通话请求发送至中转服务器,第一语音通话请求用于触发中转服务器在查询到与被叫号码绑定的在线的第二客户端后,确定出与第二客户端对应的第三方服务器的第二媒体引擎,按照第二媒体引擎所对应的第二协议封装第二语音通话请求,并第二语音通话请求发送至与第三方服务器,第二语音通话请求用于触发第三方服务器通知第二客户端存在通话请求,中转服务器接收第三方服务器返回的第二客户端允许通话的确认信令,通知第一客户端建立与第二客户端之间的语音通道;
[0219] 接收中转服务器发送的用于建立与第二客户端之间的语音通道的通知,建立与第二客户端之间的语音通道。
[0220] 图8是根据一示例性实施例示出的用于建立语音通道的装置的框图。例如,装置800可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
[0221] 参照图8,装置800可以包括以下一个或多个组件:处理组件802,存储器804,电源组件806,多媒体组件808,音频组件810,输入/输出(I/O)接口812,传感器组件814,以及通信组件816。
[0222] 处理组件802通常控制装置800的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件802可以包括一个或多个处理器818来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件802可以包括一个或多个模块,便于处理组件802和其他组件之间的交互。例如,处理组件802可以包括多媒体模块,以方便多媒体组件808和处理组件802之间的交互。
[0223] 存储器804被配置为存储各种类型的数据以支持在装置800的操作。这些数据的示例包括用于在装置800上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器804可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
[0224] 电源组件806为装置800的各种组件提供电力。电源组件806可以包括电源管理系统,一个或多个电源,及其他与为装置800生成、管理和分配电力相关联的组件。
[0225] 多媒体组件808包括在装置800和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件808包括一个前置摄像头和/或后置摄像头。当装置800处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
[0226] 音频组件810被配置为输出和/或输入音频信号。例如,音频组件810包括一个麦克风(MIC),当装置800处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器804或经由通信组件816发送。在一些实施例中,音频组件810还包括一个扬声器,用于输出音频信号。
[0227] I/O接口812为处理组件802和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
[0228] 传感器组件814包括一个或多个传感器,用于为装置800提供各个方面的状态评估。例如,传感器组件814可以检测到装置800的打开/关闭状态,组件的相对定位,例如组件为装置800的显示器和小键盘,传感器组件814还可以检测装置800或装置800一个组件的位置改变,用户与装置800接触的存在或不存在,装置800方位或加速/减速和装置800的温度变化。传感器组件814可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件814还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件814还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
[0229] 通信组件816被配置为便于装置800和其他设备之间有线或无线方式的通信。装置800可以接入基于通信标准的无线网络,如Wi-Fi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件816经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,通信组件816还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
[0230] 在示例性实施例中,装置800可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述语音通道建立方法。
[0231] 在示例性实施例中,还提供了包括指令的非临时性计算机可读存储介质,例如包括指令的存储器804,上述指令可由装置800的处理器818执行以完成上述语音通道建立方法。例如,非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
[0232] 图9是根据另一示例性实施例示出的用于建立语音通道的装置的框图。例如,装置900可以被提供为一网络侧设备。参照图9,装置900包括处理组件902,其进一步包括一个或多个处理器,以及由存储器904所代表的存储器资源,用于存储可由处理组件902的执行的指令,例如应用程序。存储器904中存储的应用程序可以包括一个或一个以上的每一个对应于一组指令的模块。此外,处理组件902被配置为执行指令,以执行上述语音通道建立方法。
[0233] 装置900还可以包括一个电源组件906被配置为执行装置900的电源管理,一个有线或无线网络接口908被配置为将装置900连接收网络,和一个输入输出(I/O)接口910。装置900可以操作基于存储在存储器904的操作系统,例如Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM或类似。
[0234] 本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。
[0235] 应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。