一种视频通讯会话异常的检测方法及系统的制作方法_2

文档序号:9755088阅读:来源:国知局
时间向所述网络侧服务器发送心跳消息,所述网络侧服务器根据是否接收到所述心跳消息判断所述第一终端以及所述第二终端的网络状态是否出现异常。
[0026]具体实施时,如图2所示。A终端和B终端进行正常视频通讯时,每个终端的会话通讯底层(Lib jingle)提供回报机制,S卩A终端和B终端分别根据自身与对端的丢包率判断所述通信链路是否出现异常,从而可以回报连线状况(连线、断线、连线失败),供终端的应用层进行监听异常并处理,当出现连线异常及时告知頂服务器。在通讯过程中,A终端和B终端建立P2P视频通讯,或是P2P穿透失败,则通过网络引擎ICE服务器进行中继通信。
[0027]在判断网络状态时,A终端、B终端在视频通讯中间以每隔几秒向IM服务器发送心跳消息,让頂服务器更快感知某一方终端的网络是否存在异常。此时,由于是A终端以及B终端主动向IM服务器发送心跳消息的,因此,当A终端或者B终端第一次向IM服务器发送心跳消息时相当于将视频通讯开始的状态上报给了頂服务器,当A终端或者是B终端最后一次向頂服务器发送心跳消息时,相当于将视频通讯的结束状态上报给了IM服务器,在开始与结束之间,为A终端或者是B终端正在视频通讯的中间状态。通过网络状态的判断,即可判断出A终端或者是B终端目前的视讯状态。
[0028]步骤S300、所述网络侧服务器根据所得到所述通信链路状态以及所述网络状态,判断出现异常的终端,并通知出现异常的所述终端的对端终端结束视频通讯。
[0029]具体的,当处于视频通讯中时,在2个预定时间内(即累计有2次)若未收到通讯双方任何一方向IM服务器发送的心跳消息,则认为该方网络超时,则判断该方出现网络状态异常。
[0030]当出现视讯状态异常(包括网络状态异常以及通信链路异常)通知IM服务器视频通讯结束,通知另一智能结束终端通讯。例如,A终端出现视讯状态异常时,頂服务器检测到该终端视讯状态异常,将通知B终端,从而使B终端得知视讯状态异常消息,挂断通讯。
[0031]进一步的实施例中,步骤SlOO具体包括:
步骤S101、所述第一终端通过第一帐号向登录有第二账号其他终端发送视频通讯请求,所述网络侧服务器判断所述第二帐号是否在多个终端上登录;
步骤S102、若所述第二账号同时在多个终端上登录,选择一个登录有所述第二账号的终端作为所述第二终端,接受并响应所述第一终端发送的视频通讯请求,并关闭其他终端的视频弹窗界面;
步骤S103、若第二账号在单个终端上登录,选择该登录有所述第二账号的终端作为第二终端,接受并响应所述第一终端发送的视频通讯请求,建立第一终端以及第二终端之间的通信链路。
[0032]具体实施时,第一账号向第二账号发送视讯请求,判断第二账号是否有多设备登录,若是多设备登录,例如第二账号同时在BI终端、B2终端等设备上同时登录,则IM服务器把视讯请求转发给每个设备上登录的第二账号,其中的一个终端如BI终端响应A终端的视讯请求(接受或拒绝),IM服务器转发BI的响应给A终端,A终端收到第二账号的响应,IM服务器收到BI终端的响应后会封装消息通知B2“B1已经处理了视频请求”,B2的视讯弹窗会消失。
[0033]若不是多设备登录,第二账号所在的B终端响应A终端的视讯请求(接受或拒绝),IM服务器转发B终端的响应给A终端,A终端收到B终端的响应。
[0034]进一步的实施例中,所述方法还包括: 步骤S400、在所述第一终端以及所述第二终端的所述视频通讯过程中,所述网络侧服务器检测到是否存在其他终端向所述第一终端或者所述第二终端发送视频通讯请求,当存在其他终端发送的所述视频通讯请求时,所述网络侧服务器向目标终端转发所述视频通讯请求。
[0035]具体实施时,A终端和B终端视频通讯时,C终端向B终端发起视频通讯时,頂服务器通知C终端“第二账号正在视频通讯中…”,把呼叫请求转发给B终端进行处理。
[0036]进一步的实施例中,步骤S200中根据所述丢包率判断所述通信链路是否出现异常的步骤包括具体包括:
所述第一终端或者所述第二终端向对端发送预定数目的固定大小负载的探测消息包;所述第一终端或所述第二终端接收对端返回的同样大小负载的返回探测消息包;根据接收所述返回探测消息包的时间以及对应的所述发送时间确定所述通信链路的传输时延;根据接收到的所述返回探测消息包的数目以及所述预定数目确定所述通信链路的丢包率。
[0037]进一步地,所述步骤S200中判断所述第一终端以及所述第二终端的网络状态是否出现异常包括:所述网络侧服务器在间隔两次所述预定时间未收到第一终端或者第二终端发送的心跳消息时,判断所述第一终端或者第二终端网络状态出现异常。
[0038]具体实施时,预定时间优先为2s。如上所述,终端在开始视频通讯、视频通讯中、结束视频通讯,均会上报视讯状态。开始视频通讯只上报一次,视频通讯中会每隔2秒(具体间隔由頂服务器配置)上报一次,结束视频通讯时只上报一次。
[0039]本发明还提供了一种视频通讯会话异常的检测方法的具体应用实施例,方法包括步骤(以下将A终端简称为A,B终端简称为B):
S1000、A和B登录各自的账号,A和B向IM服务器发起连接,创建TCP socket,进行登录认证。A和B每隔一定时间(例如30秒)向彼此发送探测消息包;
S2000、A向B发起视频通讯,A发出offer,B收到offer后进行响应(接受或拒绝XA和B通过STUN或TURN协议和ICE服务器通讯,进行穿越打洞,最终建立P2P或Relay视频通讯会话;S3000、A和B的会话通讯底层要反馈连线状况给应用层,当B意外断电或拔掉网线时,頂Server需要等待2次心跳间隔(例如60秒)才能感知B下线了,这段时间里IM Server处于盲区;
S4000、A和B要上报视讯状态给頂服务器,A和B在视频通讯的开始、结束、中间均要上报状态给IM服务器,视频通讯中间以每隔较短时间(例如2秒)向頂服务器发送心跳消息,供IM服务器检测A和B的视讯状态;
S5000、C向B发起视频通讯,A和B视频通讯时,C向B发起视频通讯时,頂服务器能告诉C“B正在视频通讯中…”,仍把呼叫请求转发给B处理。
[0040]通过设置双重机制,使得IM服务器能够较快感知到出现视讯状态异常的终端,可以在较短的时间内通知对端终端通话结束,节约资源的同时,用户体验好。
[0041]本发明还提供了一种视频通讯会话异常的检测方法的另一具体应用实施例,包括如下步骤:
T1、A向B发送视讯请求,頂服务器判断B是否有多设备登录,如果是,则执行步骤T2,如果否则执行步骤T3;
T2、頂服务器把视讯请求转发给每个设备上登录的B,BI响应A的视讯请求(接受或拒绝),頂服务器转发BI的响应给A,A收到B的响应,頂服务器收到BI的响应后会封装消息通知B2“B1已经处理了视频请求”,B2的视讯弹窗会消失,之后执行步骤T4;
T3、B响应A的视讯请求(接受或拒绝),頂服务器转发B的响应给A,
A收到B的响应,之后执行步骤T4;
T4、判断B是否接受视讯,如果是,则执行步骤T5,如果否,则执行步骤T12;
T5、A开始穿越NAT,先连接ICE服务器获取外网IP和端口,并判断连接ICE服务器是否成功,如果ICE服务器连接成功则执行步骤T6,如果ICE服务器连接失败,则执行步骤TlO;
T6、A告诉頂服务器“我成功连接ICE服务器”,通过頂服务器转发A的外网IP和端口给B,尝试用STUN协议穿越NAT,判断P2P是否成功,如果成功,则执行步骤T7,如果失败,则执行步骤T8;
T7、建立P2P视讯,定时向IM服务器上报视讯状态,頂服务器检测每个正在视讯中的终端的定时发送的心跳消息,判断是否超时,如果超时,则执行步骤Tll;
T8、尝试用TURN协议穿越NAT,判断Relay是否成功,如果Relay成功,如果成功则执行步骤T9,如果失败,则执行步骤Tl I;
T9、建立Re lay视讯,定时向頂服务器上报视讯状态,IM服务器检测每个正在视讯中的终端的定时上报视讯状态,判断是否超时,如果超时,则执行步骤Tl I;
TlO、A告诉IM服务器“我连接不上ICE服务器”,IM服务器转发给B “A连接不上ICE服务器”,请挂断视讯之后执行步骤Tll;
TlU若頂服务器检测到某一端心跳超时,它告诉视讯另一端“对方的视频状态报告超时”并请挂断视讯;其中一终端挂断视讯,发出BYE协议;该终端告诉頂服务器“断开视讯”,頂服务器转发BYE协议给对端,頂服务器转发“断开视讯”状态给对端,之后执行步骤Tl 2;T12、结束。
当前第2页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1