基于移动互联网的语音通信方法
【专利摘要】公开了一种基于移动互联网的语音通信方法,客户端与信令服务器通讯采用websocket通信协议的长连接,客户端与服务器都可以主动传送数据给对方,且避免频繁创建TCP请求及销毁请求,减少网络带宽资源的占用,同时也节省服务器资源。同时,客户端与服务器通讯消息采用高效的序列化库msgpack打包,减少传输消息的大小。客户端发起与谁通话,由服务器直接对需要通话的各方创建一个会话,并将该会话标志发送给会话中的所有客户端,各客户端收到会话标志再在服务器注册,注册成功即可通过服务器通话,减少了通话接通中的协议交互。
【专利说明】基于移动互联网的语音通信方法
【技术领域】
[0001]本发明属于移动互联网语音通讯领域,具体地涉及一种基于移动互联网的语音通/[目方法。
【背景技术】
[0002]随着即时通讯技术的发展,即时通讯系统除具备基本的即时通讯功能外,还具有其他诸多附加功能,如语音通话功能。使用即时通讯系统进行语音通话已经成为一般社会大众所使用的沟通工具之一,但是现有的语音通话,接通过程中客户端与服务器间交互次数多,TCP连接建立与销毁次数比较多,且发送的消息未经压缩,造成网络带宽资源和服务器资源的浪费。
【发明内容】
[0003]本发明的目的在于提供一种基于移动互联网的语音通信方法。
[0004]根据本发明,提供一种基于移动互联网的语音通信方法,包括:客户端与信令服务器建立第一通信通道,使得客户端和信令服务器中的任一个主动传送数据给客户端和信令服务器中的另一个;客户端与媒体服务器建立第二通信通道,使得媒体服务器根据客户端的请求传送数据。
[0005]优选地,在所述语音通信方法中,所述第一通信通道基于WebSocket协议。
[0006]优选地,在所述语音通信方法中,所述第二通信通道基于UDP协议。
[0007]优选地,在所述语音通信方法中,在建立第一通信通道和第二通信通道之间,还包括:客户端通过第一通信通道向信令服务器发送通话请求;信令服务器通过第一通信通道为客户端创建一个会话,并将该会话标识发送给会话中的所有客户端。
[0008]优选地,在所述语音通信方法中,在建立第二通信通道之后,还包括:客户端收到会话标识,并向媒体服务器发送注册信息,所述注册信息包括会话标识和用户标识;媒体服务器接收注册消息,并向客户端返回注册成功标识;客户端通过媒体服务器转发语音消息,所述语音消息包括语音内容、会话标识和用户标识。
[0009]优选地,在所述语音通信方法中,媒体服务器接收注册消息,并向客户端返回注册成功标识包括:媒体服务器接收注册消息,建立会话列表;媒体服务器获取客户端对应的网络地址,并加入会话列表;媒体服务器向客户端返回注册成功标识。
[0010]优选地,在所述语音通信方法中,客户端通过媒体服务器转发语音消息包括:客户端接收到注册成功标识后,向媒体服务器发送语音消息;媒体服务器将语音消息发送给会话列表中的其他客户端;客户端接收并播放媒体服务器发送的语音消息。
[0011]优选地,在所述语音通信方法中,所述客户端与信令服务器间传输的消息采用高效的序列化库打包。
[0012]根据本发明的基于移动互联网的语音通信方法,客户端与信令服务器通讯采用websocket通信协议的长连接,客户端与服务器都可以主动传送数据给对方,且避免频繁创建TCP请求及销毁请求,减少网络带宽资源的占用,同时也节省服务器资源。同时,客户端与服务器通讯消息采用高效的序列化库msgpack打包,减少传输消息的大小。客户端发起与谁通话,由服务器直接对需要通话的各方创建一个会话,并将该会话标志发送给会话中的所有客户端,各客户端收到会话标志再在服务器注册,注册成功即可通过服务器通话,减少了通话接通中的协议交互。
【专利附图】
【附图说明】
[0013]图1为根据本发明实施例的基于移动互联网的语音通信方法的流程图,
[0014]图2是根据本发明实施例的基于移动互联网的语音通信方法的数据控制示意图。
【具体实施方式】
[0015]以下公开为实施本申请的不同特征提供了许多不同的实施方式或实例。下面描述了部件或者布置的具体实施例以简化本发明。当然,这些仅仅是实例并不旨在限制本发明。
[0016]此外,在说明书和权利要求书中,术语“第一”、“第二”等用于在类似元素之间进行区分,而未必描述时间顺序、空间顺序、等级顺序或者任何其他方式的顺序、应当理解,如果使用的这些术语在适当的环境下可互换,并且此处描述的本发明的实施例能够以本文描述或示出以外的其他顺序来操作。
[0017]应当注意,在权利要求书中使用的术语“包括”不应被解释为限于下文所列出的手段,它并不排除其他元件或步骤。由此,它应当被解释为指定如涉及的所述特征、数字、步骤或部件的存在,但是并不排除一个或多个其他特征、数字、步骤或部件、或者其组合的存在或添加。因此,措词“包括装置A和B的设备”的范围不应当仅限于仅由组件A和B构成的装置。这意味着相对于本发明而言,设备的相关组件是A和B。
[0018]在本说明书通篇中对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性包括在本发明的至少一个实施例中。由此,在说明书的各处出现的短语“在一个实施例中”或者“在实施例中”不一定都指同一实施例,但是可能如此。此外,根据本发明公开对本领域技术人员而言显而易见的是,在一个或多个实施例中,特定特征、结构或特性可以任何合适的方式组合。
[0019]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0020]在下面所述的实施例中,描述的是两个客户端之间的会话,但是本发明不仅限于两个客户端,可以是多个客户端同时会话。本实施例以客户端A和客户端B作为客户端详细描述本发明。客户端例如是智能手机、平板电脑、笔记本计算机和台式计算机任一个上的应用。
[0021]图1为根据本发明实施例的基于移动互联网的语音通信方法的流程图,所述方法包括:
[0022]S1、客户端与信令服务器建立第一通信通道,使得客户端和信令服务器中的任一个主动传送数据给客户端和信令服务器中的另一个;
[0023]S2、客户端通过第一通信通道向信令服务器发送通话请求;
[0024]S3、信令服务器通过第一通信通道为客户端创建一个会话,并将该会话标识发送给会话中的所有客户端。
[0025]S4、客户端与媒体服务器建立第二通信通道,使得媒体服务器根据客户端的请求传送数据。
[0026]在本实施例中,客户端与信令服务器间通过建立的第一通信通道基于WebSocket协议。WebSocket协议是HTML5 —种新的协议(protocol)。基于WebSocket协议,客户端和服务器只需要要做一个握手的动作,然后,客户端和服务器之间就形成了一条快速通道,两者之间就直接可以实现数据互相实时传送。WebSocket协议可以使客户端与服务器全双工通信,即客户端可以主动传送数据给服务器,服务器也可以主动传送数据给客户端。客户端与媒体服务器建立的第二通信通道基于UDP协议。
[0027]信令服务器通过第一通信通道为客户端创建一个会话,具体地,客户端A和客户端B向信令服务器发送通话请求,信令服务器接收通话请求,并为客户端A和客户端B建立一个会话,并将该会话标识callid发送给客户端A和客户端B。媒体服务器根据客户端的请求通过第二通信通道传送数据。
[0028]S5、客户端收到会话标识,并向媒体服务器发送注册信息,所述注册信息包括会话标识和用户标识。
[0029]S6、媒体服务器接收注册消息,并向客户端返回注册成功标识。
[0030]在本实施例中,媒体服务器接收客户端发送注册消息后,获取注册消息中客户端对应的会话标识和用户标识,根据该注册消息建立会话列表,然后向客户端返回注册成功消息。具体包括:媒体服务器接收注册消息,建立会话列表;媒体服务器获取客户端对应的网络地址,并加入会话列表;媒体服务器向客户端返回注册成功标识。
[0031]具体地,客户端A和客户端B接收到信令服务器发送的会话标识callid后,向媒体服务器发送注册消息,该注册消息包括会话标识callid和用户标识userid。媒体服务器接收注册消息后,建立客户端的会话列表,并获取客户端A和客户端B对应的网络地址,一并记录在会话列表中,注册成功后,向客户端A和客户端B返回注册成功标识。
[0032]S7、客户端通过媒体服务器转发语音消息,所述语音消息包括语音内容、会话标识和用户标识。
[0033]在本实施例中,客户端接收到注册成功标识后,向媒体服务器发送语音消息;媒体服务器将语音消息发送给会话列表中的其他客户端;客户端接收并播放媒体服务器发送的语音消息。
[0034]在上述实施例的基础上,所述客户端与信令服务器和媒体服务器间传输的消息采用高效的序列化库打包。
[0035]图2是根据本发明实施例的基于移动互联网的语音通信方法的数据控制示意图,具体的,客户端A和客户端B向信令服务器发送会话请求,信令服务器为客户端A和客户端B建立一个共同会话,该会话有一个会话标识callid,将该会话标识返回给客户端A和客户端B,客户端A和客户端B将会话标识和本身的用户标识userid打包成为注册消息发送给媒体服务器进行注册,媒体服务器获取注册消息中的会话标识和用户标识,以及客户端A和客户端B的网络地址,将会话标识、用户标识、网络地址一一对应建立会话列表。此时注册成功,客户端A和客户端B可以进行通话,通过媒体服务器转发各终端发送的语音消息。该语音消息包括语音内容、会话标识和用户标识。
[0036]根据本发明的基于移动互联网的语音通信方法,客户端与信令服务器通讯采用websocket通信协议的长连接,客户端与服务器都可以主动传送数据给对方,且避免频繁创建TCP请求及销毁请求,减少网络带宽资源的占用,同时也节省服务器资源。同时,客户端与服务器通讯消息采用高效的序列化库msgpack打包,减少传输消息的大小。客户端发起与谁通话,由服务器直接对需要通话的各方创建一个会话,并将该会话标志发送给会话中的所有客户端,各客户端收到会话标志再在服务器注册,注册成功即可通过服务器通话,减少了通话接通中的协议交互。
[0037]上述实施例只是本发明的举例,尽管为说明目的公开了本发明的实施例和附图,但是本领域的技术人员可以理解:在不脱离本发明及所附的权利要求的精神和范围内,各种替换、变化和修改都是可能的。因此,本发明不应局限于实施例和附图所公开的内容。
【权利要求】
1.一种基于移动互联网的语音通信方法,包括: 客户端与信令服务器建立第一通信通道,使得客户端和信令服务器中的任一个主动传送数据给客户端和信令服务器中的另一个; 客户端与媒体服务器建立第二通信通道,使得媒体服务器根据客户端的请求传送数据。
2.根据权利要求1所述的语音通信方法,其中所述第一通信通道基于WebSocket协议。
3.根据权利要求1所述的语音通信方法,其中所述第二通信通道基于UDP协议。
4.根据权利要求1所述的语音通信方法,其中,在建立第一通信通道和第二通信通道之间,所述方法还包括: 客户端通过第一通信通道向信令服务器发送通话请求; 信令服务器通过第一通信通道为客户端创建一个会话,并将该会话标识发送给会话中的所有客户端。
5.根据权利要求1所述的语音通信方法,其中,在建立第二通信通道之后,所述方法还包括: 客户端收到会话标识,并向媒体服务器发送注册信息,所述注册信息包括会话标识和用户标识; 媒体服务器接收注册消息,并向客户端返回注册成功标识; 客户端通过媒体服务器转发语音消息,所述语音消息包括语音内容、会话标识和用户标识。
6.根据权利要求5所述的语音通信方法,其中,媒体服务器接收注册消息,并向客户端返回注册成功标识包括: 媒体服务器接收注册消息,建立会话列表; 媒体服务器获取客户端对应的网络地址,并加入会话列表; 媒体服务器向客户端返回注册成功标识。
7.根据权利要求5所述的语音通信方法,其中,客户端通过媒体服务器转发语音消息包括: 客户端接收到注册成功标识后,向媒体服务器发送语音消息; 媒体服务器将语音消息发送给会话列表中的其他客户端; 客户端接收并播放媒体服务器发送的语音消息。
8.根据权利要求1所述的语音通信方法,其中,所述客户端与信令服务器间传输的消息采用高效的序列化库打包。
【文档编号】H04L29/06GK104243281SQ201410412680
【公开日】2014年12月24日 申请日期:2014年8月20日 优先权日:2014年8月20日
【发明者】郑俊鑫 申请人:北京比邻在线信息技术有限公司