发明内容
本发明实施例提供一种实时通信方法,以解决现有基于WEB的实时通信在通信双方不同时在线或者未打开WEB RTC应用时,无法获取信息的问题。
第一方面,一种实时通信方法,所述方法包括:
第一终端接收实时通信RTC服务器转发的其他终端发送给所述第一终端的呼叫请求信息,所述呼叫请求信息中携带有发送所述呼叫请求信息的终端的WEB RTC应用的唯一标识符;
第一终端根据发送所述呼叫请求信息的终端的WEB RTC应用的唯一标识符判断是否需要接受所述呼叫请求,若是,向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信。
在第一方面的第一种可能的实现方式中,在所述第一终端接收RTC服务器转发的其他终端发送给所述第一终端的呼叫请求信息之前,还包括:
第一终端向实时通信RTC服务器发送注册离线业务请求信息,该信息中携带有WEBRTC应用的唯一标识符,以使得所述RTC服务器在接收到所述注册离线业务请求信息后,为所述唯一标识符对应的WEB RTC应用开启离线模式,并向所述第一终端反馈成功响应信息;
第一终端在接收到所述RTC服务器反馈的成功响应信息后,关闭所述WEB RTC应用。
结合第一方面或第一方面的第一种可能的实现方式,在第二种可能的实现方式中,所述开启WEB RTC应用请求信息中还携带有用户所选定的WEB RTC应用类型,以使得所述RTC服务器在接收到所述开启WEB RTC应用请求信息后,返回与所述WEB RTC应用类型相同的WEB RTC应用信息。
在第一方面的第三种可能的实现方式中,所述呼叫请求信息中还携带有发送所述呼叫请求信息的终端的浏览器引擎的标识信息;
所述第一终端接收所述RTC服务器发送的呼叫请求信息包括:
所述第一终端的监听客户端接收到所述RTC服务器发送的呼叫请求信息后,解析所述呼叫请求信息,根据所述呼叫请求信息中浏览器引擎标识信息确定所述呼叫请求信息为发送给浏览器引擎的信息,将所述呼叫请求信息发送给所述第一终端的浏览器引擎。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第四种可能的实现方式中,所述呼叫请求信息中还携带有会话协商的会话描述协议提供SDP Offer信息;
所述第一终端向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信具体包括:
所述第一终端通过浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,将所述呼叫请求信息中的SDPOffer信息发送给所述WEB RTC应用,通过所述WEB RTC应用将所述SDP Offer信息生成SDPAnswer信息,并通过所述WEB RTC应用将所述SDP Answer信息发送给所述浏览器引擎,通过所述浏览器引擎将所述SDP Answer信息发送给所述RTC服务器,以使得所述RTC服务器将所述SDP Answer信息发送给发送所述呼叫请求信息的终端的浏览器引擎以建立通信通道开始通信。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第五种可能的实现方式中,所述呼叫请求信息中还携带有会话协商的会话描述协议提供SDP Offer信息;
所述第一终端向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信具体包括:
所述第一终端通过浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,所述开启WEB RTC应用请求信息中携带有SDP Answer信息,以使得所述RTC服务器在接收到所述开启WEB RTC应用请求信息后,向所述第一终端返回WEB RTC应用信息,并将所述开启WEB RTC应用请求信息中的SDP Answer信息发送给发送所述呼叫请求信息的终端的浏览器引擎以建立通信通道;
所述第一终端接收所述RTC服务器返回的WEB RTC应用信息,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式,在第六种可能的实现方式中,所述第一终端向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEBRTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信具体包括:
所述第一终端通过浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息以及SDP Offer信息后,通过所述WEBRTC应用将所述SDP Offer信息生成SDP Answer信息,并通过所述WEB RTC应用将所述SDPAnswer信息发送给所述浏览器引擎,通过所述浏览器引擎将所述SDP Answer信息发送给所述RTC服务器,以使得所述RTC服务器将所述SDP Answer信息发送给发送所述呼叫请求信息的终端的浏览器引擎以建立通信通道开始通信。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式或第一方面的第五种可能的实现方式或第一方面的第六种可能的实现方式,在第七种可能的实现方式中,所述呼叫请求信息中携带有提示信息,所述提示信息为RTC服务器在接收到其他终端发送给所述第一终端的呼叫请求信息时添加的;
所述第一终端在接收到所述呼叫请求信息后,根据所述呼叫请求信息中的提示信息生成相应的提示,包括震动、响铃或弹出提示框。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式或第一方面的第五种可能的实现方式或第一方面的第六种可能的实现方式或第一方面的第七种可能的实现方式,在第八种可能的实现方式中,所述方法还包括:
所述第一终端在拒绝所述呼叫请求时,向所述RTC服务器反馈拒绝信息,以使得所述RTC服务器在接收到所述拒绝信息后,向发送所述呼叫请求信息的终端反馈所述第一终端当前忙碌或者离线信息。
结合第一方面或第一方面的第一种可能的实现方式或第一方面的第二种可能的实现方式或第一方面的第三种可能的实现方式或第一方面的第四种可能的实现方式或第一方面的第五种可能的实现方式或第一方面的第六种可能的实现方式或第一方面的第七种可能的实现方式或第一方面的第八种可能的实现方式,在第九种可能的实现方式中,所述第一终端向所述RTC服务器发送的开启WEB RTC应用请求消息所对应的WEB RTC应用的类型与所述发送所述呼叫请求信息的终端的WEB RTC应用的类型相同或不同。
第二方面,一种实时通信方法,所述方法包括:
实时通信RTC服务器在接收到其他终端发送给第一终端的呼叫请求信息后,将所述呼叫请求信息发送给所述第一终端,所述呼叫请求信息中携带有发送所述呼叫请求信息的终端WEB RTC应用的唯一标识符;
RTC服务器在接收到所述第一终端发送的开启WEB RTC应用请求信息后,向所述第一终端返回WEB RTC应用信息,以使得所述第一终端在接收到所述RTC服务器返回的WEBRTC应用信息后,通过所述WEB RTC应用与发送所述呼叫请求信息的终端进行通信。
在第二方面的第一种可能的实现方式中,在所述RTC服务器接收到其他终端发送给第一终端的呼叫请求信息的之前,还包括:
RTC服务器在接收到所述第一终端发送的注册离线业务请求信息后,为该信息中WEB RTC应用唯一标识符对应的WEB RTC应用开启离线模式,并向所述第一终端反馈成功响应信息,以使得所述第一终端在接收到所述RTC服务器反馈的成功响应信息后,关闭其WEBRTC应用。
结合第二方面的第一种可能的实现方式,在第二种可能的实现方式中,所述RTC服务器在接收到所述注册离线业务请求信息后,为所述唯一标识符对应的WEB RTC应用开启离线模式具体包括:
所述RTC服务器在接收到所述注册离线业务请求信息后,根据注册离线业务请求信息中携带的WEB RTC应用唯一标识符,判断所述唯一标识符对应的WEB RTC应用是否具有注册离线业务请求权限,若是,为所述唯一标识符对应的WEB RTC应用开启离线模式。
在第二方面的第二种可能的实现方式中,所述WEB RTC应用请求信息中还携带有用户所选定的WEB RTC应用类型;
RTC服务器在接收到所述第一终端发送的开启WEB RTC应用请求信息后,向所述第一终端返回WEB RTC应用信息包括:
RTC服务器在接收到所述第一终端发送的开启WEB RTC应用请求信息后,向所述第一终端返回与所述WEB RTC应用类型相同的WEB RTC应用信息。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式,在第四种可能的实现方式中,所述方法还包括:
所述RTC服务器在接收到其他终端发送给所述第一终端的呼叫请求信息后,在所述呼叫请求信息中添加提示信息,以使得所述第一终端在接收到所述呼叫请求信息后,根据所述呼叫请求信息中的提示信息生成相应的提示,包括震动、响铃或弹出提示框。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式,在第五种可能的实现方式中,所述方法还包括:
所述RTC服务器在接收到所述第一终端发送的拒绝所述呼叫请求信息后,向发送所述呼叫请求信息的终端反馈所述第一终端当前忙碌或者离线信息。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式或第二方面的第五种可能的实现方式,在第六种可能的实现方式中,所述方法还包括:
所述RTC服务器在将所述呼叫请求信息发送给所述第一终端后,若在预设时间内未接收到所述第一终端反馈的信息或者接收到的反馈信息为暂时不接收时,缓存所述呼叫请求信息,在预定时间后或者所述第一终端开启WEB RTC应用后再发送该呼叫请求信息。
结合第二方面或第二方面的第一种可能的实现方式或第二方面的第二种可能的实现方式或第二方面的第三种可能的实现方式或第二方面的第四种可能的实现方式或第二方面的第五种可能的实现方式或第二方面的第六种可能的实现方式,在第七种可能的实现方式中,所述RTC服务器返回的WEB RTC应用信息所对应的WEB RTC应用的类型与所述发送所述呼叫请求信息的终端的WEBRTC应用的类型相同或不同。
第三方面,一种终端设备,所述终端设备包括:
信息接收单元,用于接收实时通信RTC服务器转发的其他终端发送给该终端设备的呼叫请求信息,所述呼叫请求信息中携带有发送所述呼叫请求信息的终端的WEB RTC应用的唯一标识符;
处理单元,用于根据所述信息接收单元接收到的呼叫请求信息中携带的呼叫请求信息发送终端WEB RTC应用的唯一标识符判断是否需要接受所述呼叫请求,若是,向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信。
在第三方面的第一种可能实现方式中,所述终端设备还包括:
信息发送单元,用于向实时通信RTC服务器发送注册离线业务请求信息,该信息中携带有WEB RTC应用的唯一标识符,以使得所述RTC服务器在接收到所述注册离线业务请求信息后,为所述唯一标识符对应的WEB RTC应用开启离线模式,并向所述第一终端反馈成功响应信息;
关闭单元,用于在接收到所述RTC服务器反馈的成功响应信息后,关闭所述WEBRTC应用。
在第三方面的第二种可能实现方式中,所述WEB RTC应用请求信息中还携带有用户所选定的WEB RTC应用类型,以使得所述RTC服务器在接收到所述WEB RTC应用请求信息后,返回与所述WEB RTC应用类型相同的WEB RTC应用信息。
在第三方面的第三种可能实现方式中,所述呼叫请求信息中还携带有发送所述呼叫请求信息的终端的浏览器引擎的标识信息;
所述信息接收单元具体用于,通过所述该终端设备的监听客户端接收所述RTC服务器发送的呼叫请求信息,解析所述呼叫请求信息,根据所述呼叫请求信息中浏览器引擎标识信息确定所述呼叫请求信息为发送给浏览器引擎的信息,将所述呼叫请求信息发送给所述第一终端的浏览器引擎。
结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式或第三方面的第三种可能的实现方式,在第四种可能的实现方式中,所述呼叫请求信息中还携带有会话协商的会话描述协议提供SDP Offer信息;
所述处理单元具体用于,通过该终端设备的浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,将所述呼叫请求信息中的SDP Offer信息发送给所述WEB RTC应用,通过所述WEB RTC应用将所述SDPOffer信息生成SDP Answer信息,并通过所述WEB RTC应用将所述SDP Answer信息发送给所述浏览器引擎,通过所述浏览器引擎将所述SDP Answer信息发送给所述RTC服务器,以使得所述RTC服务器将所述SDP Answer信息发送给发送所述呼叫请求信息的终端的浏览器引擎以建立通信通道开始通信。
结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式或第三方面的第三种可能的实现方式,在第五种可能的实现方式中,所述呼叫请求信息中还携带有会话协商的会话描述协议提供SDP Offer信息;
所述处理单元具体用于,通过该终端设备的浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,所述WEB RTC应用请求信息中携带有SDPAnswer信息,以使得所述RTC服务器在接收到所述WEB RTC应用请求信息,向所述第一终端返回WEB RTC应用信息,并将所述WEB RTC应用请求信息中的SDP Answer信息发送给发送所述呼叫请求信息的终端的浏览器引擎以建立通信通道,在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信。
结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式或第三方面的第三种可能的实现方式,在第六种可能的实现方式中,所述处理单元具体用于,通过该终端设备的浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息以及SDP Offer信息后,通过所述WEB RTC应用将所述SDP Offer信息生成SDP Answer信息,并通过所述WEB RTC应用将所述SDP Answer信息发送给所述浏览器引擎,通过所述浏览器引擎将所述SDP Answer信息发送给所述RTC服务器,以使得所述RTC服务器将所述SDP Answer信息发送给所述信息发送终端的浏览器引擎以建立通信通道开始通信。
结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式或第三方面的第三种可能的实现方式或第三方面的第四种可能的实现方式或第三方面的第五种可能的实现方式或第三方面的第六种可能的实现方式,在第七种可能的实现方式中,所述呼叫请求信息中携带有提示信息,所述提示信息为RTC服务器在接收到其他终端发送给所述第一终端的呼叫请求信息时添加的;
所述终端设备还包括:
提示单元,用于在接收到所述呼叫请求信息后,根据所述呼叫请求信息中的提示信息生成相应的提示,包括震动、响铃或弹出提示框。
结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式或第三方面的第三种可能的实现方式或第三方面的第四种可能的实现方式或第三方面的第五种可能的实现方式或第三方面的第六种可能的实现方式或第三方面的第七种可能的实现方式,在第八种可能的实现方式中,所述终端设备还包括:
信息反馈单元,用于在拒绝所述呼叫请求时,向所述RTC服务器反馈拒绝信息,以使得所述RTC服务器在接收到所述拒绝信息后,向发送所述呼叫请求信息的终端反馈所述第一终端当前忙碌或者离线信息。
结合第三方面或第三方面的第一种可能的实现方式或第三方面的第二种可能的实现方式或第三方面的第三种可能的实现方式或第三方面的第四种可能的实现方式或第三方面的第五种可能的实现方式或第三方面的第六种可能的实现方式或第三方面的第七种可能的实现方式或第三方面的第八种可能的实现方式,在第九种可能的实现方式中,所述向所述RTC服务器发送的开启WEB RTC应用请求消息所对应的WEB RTC应用的类型与所述发送所述呼叫请求信息的终端的WEB RTC应用的类型相同或不同。
第四方面,一种实时通信RTC服务器,所述RTC服务器包括:
第一发送单元,用于在接收到其他终端发送给所述第一终端的呼叫请求信息后,将所述呼叫请求信息发送给所述第一终端,所述呼叫请求信息中携带有发送所述呼叫请求信息的终端WEB RTC应用的唯一标识符;
第二发送单元,用于在接收到所述第一终端发送的开启WEB RTC应用请求信息后,向所述第一终端返回WEB RTC应用信息,以使得所述第一终端在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信。
在第四方面的第一种可能实现方式中,所述RTC服务器还包括:
开启单元,用于在接收到第一终端发送的注册离线业务请求信息后,为该信息中WEB RTC应用唯一标识符对应的WEB RTC应用开启离线模式,并向所述第一终端反馈成功响应信息,以使得所述第一终端在接收到所述RTC服务器反馈的成功响应信息后,关闭其WEBRTC应用。
结合第四方面的第一种可能实现方式,在第二种可能实现方式中,所述开启单元具体用于,在接收到所述注册离线业务请求信息后,根据注册离线业务请求信息中携带的WEB RTC应用唯一标识符,判断所述唯一标识符对应的WEB RTC应用是否具有注册离线业务请求权限,若是,为所述唯一标识符对应的WEB RTC应用开启离线模式。
在第四方面的第二种可能实现方式中,所述WEB RTC应用请求信息中还携带有用户所选定的WEB RTC应用类型;
所述第二发送单元具体用于在接收到所述第一终端发送的开启WEB RTC应用请求信息后,向所述第一终端返回与所述WEB RTC应用类型相同的WEB RTC应用信息。
结合第四方面或第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式或第四方面的第三种可能的实现方式,在第四种可能的实现方式中,所述RTC服务器还包括:
信息添加单元,用于在接收到其他终端发送给所述第一终端的呼叫请求信息后,在所述呼叫请求信息中添加提示信息,以使得所述第一终端在接收到所述呼叫请求信息后,根据所述呼叫请求信息中的提示信息生成相应的提示,包括震动、响铃或弹出提示框。
结合第四方面或第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式或第四方面的第三种可能的实现方式或第四方面的第四种可能的实现方式,在第五种可能的实现方式中,所述RTC服务器还包括:
第三发送单元,用于在接收到所述第一终端发送的拒绝所述呼叫请求信息后,向发送所述呼叫请求信息的终端反馈所述第一终端当前忙碌或者离线信息。
结合第四方面或第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式或第四方面的第三种可能的实现方式或第四方面的第四种可能的实现方式或第四方面的第五种可能的实现方式,在第六种可能的实现方式中,所述RTC服务器还包括:
处理单元,用于在将所述呼叫请求信息发送给所述第一终端后,若在预设时间内未接收到所述第一终端反馈的信息或者接收到的反馈信息为暂时不接收时,缓存所述呼叫请求信息,在预定时间后或者所述第一终端开启WEB RTC应用后再发送该呼叫请求信息。
结合第四方面或第四方面的第一种可能的实现方式或第四方面的第二种可能的实现方式或第四方面的第三种可能的实现方式或第四方面的第四种可能的实现方式或第四方面的第五种可能的实现方式或第四方面的第六种可能的实现方式,在第七种可能的实现方式中,所述返回给所述第一终端的WEB RTC应用信息所对应的WEB RTC应用的类型与所述发送所述呼叫请求信息的终端的WEB RTC应用的类型相同或不同。
第五方面,一种实时通信系统,所述系统包括所述终端设备和/或所述RTC服务器。
从上述技术方案可以看出,通过本发明实施例,使得在终端的WEB RTC应用关闭的情况下,仍然可以接收到RTC服务器转发的其他终端发送给该终端的呼叫请求信息,并在接收到所述呼叫请求信息后,向所述RTC服务器发送开启WEB RTC应用请求信息,在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信。本发明实施例可有效解决现有基于WEB的实时通信在通信双方不同时在线或者或者未打开WEB RTC应用时,无法获取信息的问题。另外,还可以根据呼叫请求信息发送终端WEB RTC应用的唯一标识符选择性的接受呼叫,提高用户体验,具有较强的实用性。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
另外,本发明实施例中术语“系统”和“网络”在本文中常被可互换使用。本发明实施例中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本发明实施例中字符“/”,一般表示前后关联对象是一种“或”的关系。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
图1示出了本发明一实施例提供的实时通信方法所适用系统的网络架构图,为了便于说明,仅示出了与本实施例相关的部分。
如图1所示,该系统包括终端设备1以及RTC服务器2。
其中,所述终端设备1可以是任意具有网络接入功能的终端设备,包括但不限于手机、平板电脑、台式机、笔记本电脑,电视机,机顶盒,家庭网关等。
所述RTC服务器2可以是一个单一的服务器,也可以为由几个功能服务器共同组成的服务器端。例如,为终端设备1提供服务的WEB服务器、为终端设备1所使用浏览器提供服务的WEB服务器、或者为终端设备1所使用的基于WEB的RTC应用提供服务的WEB服务器。不同的WEB RTC应用可以有不同的WEB服务器,因此RTC服务器2可以为多个不同WEB服务器的组合,以实现不同浏览器、不同网络、不同的WEB RTC应用之间的通信,完成协议转化、消息转换、路由寻址、建立连接、页面优化、加速、信息添加等功能。
在本实施例中,RTC服务器2在接收到其他终端发送给终端设备1的呼叫请求信息后,将所述呼叫请求信息发送给终端设备1,所述呼叫请求信息中携带有发送所述呼叫请求信息的终端的WEB RTC应用的唯一标识符,例如:张三@msn.webrtc.com,表示张三通过实时通信msn发送的信息。需要说明的是,所述WEB RTC应用的唯一标识符中还可以包括发送终端的信息,例如终端的类型iphone或ipad等。
终端设备1在接收到所述呼叫请求信息后,根据发送所述呼叫请求信息的终端的WEB RTC应用唯一标识符判断是否需要接受所述呼叫请求,若是,向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信。其中,所述向所述RTC服务器发送的开启WEB RTC应用请求消息所对应的WEB RTC应用的类型与所述发送所述呼叫请求信息的终端的WEB RTC应用的类型相同或不同。
需要说明的是,所述开启WEB RTC应用包括将WEB RTC应用从离线模式转为在线模式,或者从关闭状态到重新开启。
优选的是,本实施例终端设备1在接收RTC服务器2转发的其他终端发送给终端设备1的呼叫请求信息前,还可以包括:
终端设备1向RTC服务器2发送注册离线业务请求信息,该信息中携带有需要进行离线业务的WEB RTC应用的唯一标识符(例如QQ号、MSN号等),所述RTC服务器2在接收到所述注册离线业务请求信息后,为所述唯一标识符对应的WEB RTC应用开启离线模式,并向所述终端设备1反馈成功响应信息。终端设备1在接收到所述RTC服务器反馈的成功响应信息后,关闭所述WEBRTC应用(关闭浏览器和/或关闭当前运行的WEB RTC应用)。其中,关闭当前运行的WEB RTC应用包括退出当前运行的WEB RTC应用或者将当前运行的WEB RTC应用从在线模式转为离线模式。
所述开启WEB RTC应用请求信息中还可以携带有用户所选定的WEB RTC应用类型,以使得所述RTC服务器在接收到所述开启WEB RTC应用请求信息后,返回与用户所选定的WEB RTC应用类型相同的WEB RTC应用。该WEB RTC应用的类型与所述呼叫请求信息中WEBRTC应用的类型可以相同,也可以不同。
需要说明的是,当用户未选择WEB RTC应用类型时,终端设备1或者RTC服务器2可以选择默认(预先设定)的WEB RTC应用类型。
优选的是,所述RTC服务器在接收到所述注册离线业务请求信息后,根据注册离线业务请求信息中携带的WEB RTC应用唯一标识符,判断所述唯一标识符对应的WEB RTC应用是否具有注册离线业务请求权限,若是,为所述唯一标识符对应的WEB RTC应用开启离线模式。
优选的是,所述终端设备1还可以包括监听客户端11,所述RTC服务器2在接收到其他终端发送给终端设备1的呼叫请求信息后,先将所述呼叫请求信息发送给监听客户端11,以使得所述监听客户端11将所述呼叫请求信息发送给所述终端设备1。进一步,RTC服务器2在接收到其他终端发送给终端设备1所属用户的呼叫请求信息后,可以选择将该呼叫请求信息发送给终端设备1所属用户的监听客户端11。所述监听客户端(例如可以为推送Push客户端)接收由网络侧主动发送的业务消息,该业务消息可以是“携带了呼叫请求信息的Push消息”,所述Push消息可以携带在以下任一种消息格式中以发送给终端设备1,所述消息格式包括:SMS(short message service,短消息业务)、MMS(multimedia messagingservice,多媒体消息业务),、网络套接字Websocket、JSON(JavaScript Object Notation,JavaScript对象表示法)、可扩展消息与存在协议XMPP(Extensible Messaging andPresence Protocol)异步JavaScript和XML的AJAX(Asynchronous JavaScript and XML)、SIP(Session Initiation Protocol,会话初始协议),基于XML的超额文本传输协议请求XMLHTTPRequest等。可选的,所述呼叫请求信息中还可以携带有发送所述呼叫请求信息的终端的浏览器引擎的标识信息,例如browser.Ua等;
所述终端设备1接收所述RTC服务器发送的呼叫请求信息包括:
监听客户端11接收到所述RTC服务器发送的呼叫请求信息后,解析所述呼叫请求信息,根据所述呼叫请求信息中浏览器引擎标识信息确定所述呼叫请求信息为发送给浏览器引擎的信息,将所述呼叫请求信息发送给所述终端设备1的浏览器引擎进行处理。该浏览器引擎的标识信息,可以在发送终端发送的呼叫请求信息中携带,也可由所述RTC服务器2在接受到该呼叫请求信息后,添加浏览器引擎的标识信息。所述浏览器引擎用来解析呼叫请求中携带的信息,以便进一步运行所述WEB RTC应用,浏览器引擎可以是操作系统内的功能模块,例如webkit;可以是浏览器客户端内的功能模块。WEB RTC应用可以在浏览器中运行,也可以脱离浏览器而基于操作系统内的浏览器引擎以WEB应用形式独立运行。
优选的是,所述呼叫请求信息中还携带有会话协商的会话描述协议提供SDPOffer(Session Description Protocol Offer,会话描述协议提供)信息;
所述终端设备1向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信具体包括:
所述终端设备1通过浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,将所述呼叫请求信息中的SDPOffer信息发送给所述WEB RTC应用,通过所述WEB RTC应用将所述SDP Offer信息生成SDPAnswer信息,并通过所述WEB RTC应用将所述SDP Answer信息发送给所述浏览器引擎,通过所述浏览器引擎将所述SDP Answer信息发送给所述RTC服务器,以使得所述RTC服务器将所述SDP Answer信息发送给发送所述呼叫请求信息的终端的浏览器引擎以建立通信通道开始通信。
或者,
终端设备1通过浏览器引擎向所述RTC服务器2发送开启基于WEB的RTC应用请求信息,该请求信息中携带浏览器引擎根据呼叫请求中携带的SDP Offer信息生成的SDPAnswer信息,以使得所述RTC服务器2将所述SDP Answer信息发送给所述信息发送终端的浏览器引擎以建立通信通道开始通信。RTC服务器2在接收到终端设备发送的开启基于WEB的RTC应用请求信息后,将返回基于WEB的RTC应用给终端设备1呈现。
优选的是,会话协商的会话描述协议提供SDP Offer信息可以由RTC服务器为终端设备1临时缓存,而不携带在所述呼叫请求信息中发送给终端设备1。
终端设备1通过浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息以及SDP Offer信息后,通过所述WEB RTC应用将所述SDP Offer信息生成SDP Answer信息,并通过所述WEB RTC应用将所述SDPAnswer信息发送给所述浏览器引擎,通过所述浏览器引擎将所述SDP Answer信息发送给所述RTC服务器,以使得所述RTC服务器将所述SDP Answer信息发送给所述信息发送终端的浏览器引擎以建立通信通道开始通信。
需要说明的是,RTC服务器2在接收到终端设备1发送的开启WEB RTC应用请求信息后,可以向所述终端设备1返回WEB RTC应用信息,也可以返回WEB RTC应用信息以及缓存的SDP Offer信息。
优选的是,所述RTC服务器在接收到其他终端发送给所述第一终端的呼叫请求信息后,在所述呼叫请求信息中添加提示信息,以使得所述第一终端在接收到所述呼叫请求信息后,根据所述呼叫请求信息中的提示信息生成相应的提示,包括但不限于震动、响铃或弹出提示框。
优选的是,所述终端设备1在接收到所述呼叫请求信息后,根据发送所述呼叫请求信息的终端的唯一标识符判断是否需要接受所述呼叫请求,若否,向所述RTC服务器2反馈拒绝信息,以使得RTC服务器2在接收到所述拒绝信息后,向发送所述呼叫请求信息的终端反馈所述终端设备1当前忙碌或者离线等信息。
可选的,所述RTC服务器在将所述呼叫请求信息发送给所述终端设备1后,若在预设时间内未接收到所述终端设备1反馈的信息或者接收到的反馈信息为暂时不接收时,缓存所述呼叫请求信息,在预定时间后或者所述终端设备1开启WEB RTC应用后再发送该呼叫请求信息。所述RTC服务器2还可生成提示信息,并为该用户存储该信息,供终端设备1查询或主动发送给终端设备1。该提示信息可以为文本信息、音视频等多媒体类型的信息。可以提示用户发送呼叫的的发送方,呼叫时间,所使用的基于WEB的RTC应用的类型,浏览器类型等信息。当用户下次登录该基于WEB的RTC应用或打开浏览器时,可以收到未接来电或留言的通知消息。
本实施例提供的系统场景只用于解释本发明,并不限定本发明的保护范围。
图2示出了本发明另一实施例提供的实时通信方法的交互流程,该方法过程详述如下:
1、第一终端(终端设备1)向实时通信RTC服务器发送注册离线业务请求信息,该信息中携带有WEB RTC应用的唯一标识符。
在本实施例中,所述注册离线业务请求信息中携带有WEB RTC应用的唯一标识符,所述唯一标识符包括WEB RTC应用的类型以及对应的标识符,例如QQ+张三(或者对应的QQ号码)。其中,所述基于WEB的RTC应用包括但不限于具备WEB应用功能的客户端程序、具备WEB技术的打包格式的widget应用、基于浏览器引擎的WEB应用等,例如WEB QQ等。
在本实施例中,第一终端向实时通信RTC服务器发送注册离线业务请求信息的目的是通知服务器其将关闭基于WEB的RTC应用(包括关闭基于WEB的RTC应用或者关闭浏览器),但希望关闭基于WEB的RTC应用后仍可以接收到其他终端发送给所述第一终端的呼叫请求信息或者其他通知信息等。
2、RTC服务器在接收到所述注册离线业务请求信息后,为所述唯一标识符对应的WEB RTC应用开启离线模式。
优选的是,为了增强安全性,防止恶意注册,RTC服务器在接收到所述注册离线业务请求信息后,根据注册离线业务请求信息中携带的WEB RTC应用唯一标识符,判断所述唯一标识符对应的WEB RTC应用是否具有注册离线业务请求权限,若是,为所述唯一标识符对应的WEB RTC应用开启离线模式,RTC服务器将为所述第一终端保持在线状态、提供通知以及为所述第一终端保存通话信息等。
3、RTC服务器向所述第一终端反馈成功响应信息;
4、第一终端在接收到所述RTC服务器反馈的成功响应信息后,关闭基于WEB的RTC应用。例如,用户关闭浏览器应用程序,用户可以是待机状态,可以运行其它应用,或运行其它浏览器等情况。
5、RTC服务器接收其他终端(第二终端)发送给所述第一终端的呼叫请求信息。
在本实施例中,第二终端可以是任意具有网络接入功能的终端设备,包括但不限于手机平板电脑、台式机、电视机,机顶盒,家庭网关、笔记本电脑等。
需要说明的是,当第二终端为不具备WEB能力的传统终端时,需要通过其他网关(例如RTC服务器代理网关、会话发起协议(Session Initiation Protocol,SIP)代理网关、媒体网关等)完成协议和消息的转换后,将所述叫请求信息发送给所述RTC服务器。
6、RTC服务器将所述呼叫请求信息发送给所述第一终端,所述呼叫请求信息中携带有发送所述呼叫请求信息的终端的WEB RTC应用的唯一标识符以及WEB RTC应用的类型。
具体的是,RTC服务器判断所述第一终端是否开启基于WEB的RTC应用,若否,判断所述第一终端是否开启离线模式,若是,将所述呼叫请求信息发送给所述监听客户端,以使得所述监听客户端接收到所述RTC服务器发送的呼叫请求信息后,解析所述呼叫请求信息,根据所述呼叫请求信息中浏览器引擎的标识信息确定所述呼叫请求信息为发送给浏览器引擎的信息,将所述呼叫请求信息发送给所述第一终端的浏览器引擎。
7、第一终端向所述RTC服务器发送开启WEB RTC应用请求信息;具体包括第一终端在接收到所述呼叫请求信息后,根据发送所述呼叫请求信息的终端的唯一标识符判断是否需要接受所述呼叫请求,若是,向所述RTC服务器发送开启WEB RTC应用请求信息;所述WEBRTC应用请求信息中还可以携带有用户所选定的WEB RTC应用类型,以使得所述RTC服务器在接收到所述WEB RTC应用请求信息后,返回与用户所选定的WEB RTC应用类型相同的WEBRTC应用。该WEB RTC应用的类型与所述呼叫请求信息中WEB RTC应用的类型可以相同,也可以不同。例如,第一终端通过WEB QQ应用注册了离线业务,第二终端通过MSN应用呼叫第一终端用户,第一终端可以通过向RTC服务器请求开启WEB QQ应用与第二终端用户进行通信。
8、RTC服务器在接收到所述开启WEB RTC应用应用请求信息,向所述第一终端返回的WEB RTC应用信息;
所述返回给所述第一终端的WEB RTC应用信息所对应的WEB RTC应用的类型与所述发送所述呼叫请求信息的终端的WEB RTC应用的类型相同或不同。
9、第一终端通过所述WEB RTC应用与所述发送呼叫请求信息的终端(第二终端)进行通信。
优选的是,所述呼叫请求信息中还携带有发送所述呼叫请求信息的终端的浏览器引擎的标识信息;
所述第一终端接收所述RTC服务器发送的呼叫请求信息包括:
所述第一终端的监听客户端接收到所述RTC服务器发送的呼叫请求信息后,解析所述呼叫请求信息,根据所述呼叫请求信息中浏览器引擎标识信息确定所述呼叫请求信息为发送给浏览器引擎的信息,将所述呼叫请求信息发送给所述第一终端的浏览器引擎;
所述第一终端向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信具体包括:
所述第一终端通过浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,将所述呼叫请求信息中的SDPOffer信息发送给所述WEB RTC应用,通过所述WEB RTC应用将所述SDP Offer信息生成SDPAnswer信息,并通过所述WEB RTC应用将所述SDP Answer信息发送给所述浏览器引擎,通过所述浏览器引擎将所述SDP Answer信息发送给所述RTC服务器,以使得所述RTC服务器将所述SDP Answer信息发送给发送所述呼叫请求信息的终端的浏览器引擎以建立通信通道开始通信;
或者,
所述第一终端通过浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,所述WEB RTC应用请求信息中携带有SDP Answer信息,以使得所述RTC服务器在接收到所述WEB RTC应用请求信息,向所述第一终端返回WEB RTC应用信息,并将所述WEB RTC应用请求信息中的SDP Answer信息发送给发送所述呼叫请求信息的终端的浏览器引擎以建立通信通道;
所述第一终端接收所述RTC服务器返回的WEB RTC应用信息,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信。
优选的,所述第一终端向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信具体包括:
所述第一终端通过浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息以及SDP Offer信息后,通过所述WEBRTC应用将所述SDP Offer信息生成SDP Answer信息,并通过所述WEB RTC应用将所述SDPAnswer信息发送给所述浏览器引擎,通过所述浏览器引擎将所述SDP Answer信息发送给所述RTC服务器,以使得所述RTC服务器将所述SDP Answer信息发送给所述信息发送终端的浏览器引擎以建立通信通道开始通信。
优选的是,为了增强用户体验,提高实用性,所述RTC服务器在接收到其他终端发送给所述第一终端的呼叫请求信息后,在所述呼叫请求信息中添加提示信息,以使得所述第一终端在接收到所述呼叫请求信息后,根据所述呼叫请求信息中的提示信息生成相应的提示,包括但不限于震动、响铃或弹出提示框。提示信息可以通过脚本语言实现,例如通过Java Script,轻量级数据交换格式语言JSON(JavaScript Object Notation)等方式实现。例如当所述提示信息为震动时,浏览器引擎解析所述提示信息,调用震动应用程序接口API,完成震动提示,如navigator.vibrate([1000,500,2000]),表示振动1秒,停顿0.5秒,一共振动2秒。又例如当所述提示信息为弹出提示框时,则调用交互的API接口,如通过使用Alert方式,弹出提示框,Alert(“第二终端”,www.WEBqq.com,“opera mini”,“是否应答呼叫”)。
优选的是,为进一步增强用户体验,本实施例还包括:
所述第一终端在拒绝所述呼叫请求时,向所述RTC服务器反馈拒绝信息;
所述RTC服务器在接收到所述拒绝信息后,向发送所述呼叫请求信息的终端反馈所述第一终端当前忙碌或者离线等信息。
需要说明的是,本实施例中的通信可以为多方通信,通信的信息包括音视频、文本以及数据等。当多方通信时,将携带多方唯一标识符的信息发送给第一终端的浏览器引擎解析,第一终端根据解析后获得的唯一标识符,选择相应的终端设备进行通信。
优选的是,所述RTC服务器在将所述呼叫请求信息发送给所述第一终端后,若在预设时间内未接收到所述第一终端反馈的信息或者接收到的反馈信息为暂时不接收时,缓存所述呼叫请求信息,在预定时间后或者所述第一终端开启WEB RTC应用后再发送该呼叫请求信息。所述RTC服务器还可生成提示信息,并为该用户存储该信息,供终端设备查询或主动发送给终端设备。该提示信息可以为文本信息、音视频等多媒体类型的信息。可以提示用户发送呼叫的的发送方,呼叫时间,所使用的基于WEB的RTC应用的类型,浏览器类型等信息。当用户下次登录该基于WEB的RTC应用或打开浏览器时,可以收到未接来电或留言的通知消息。
需要说明的是,本实施例中第一终端激活的浏览器可以与第二终端的浏览器相同或者不同。本实施例中第一终端所使用的网络也可以与第二终端的网络相同或者不同,比如对方使用固定电话呼叫WEB QQ,只需要RTC服务器做一些相应的路由、协议转换即可。
图3示出了本发明实施例一提供的实时通信方法的实现流程,该实施例的执行主体为图1中的终端设备1,该方法过程详述如下:
在步骤S301中,第一终端接收RTC服务器转发的其他终端发送给所述第一终端的呼叫请求信息,所述呼叫请求信息中携带有发送所述呼叫请求信息的终端WEB RTC应用的唯一标识符;
在步骤S302中,第一终端根据发送所述呼叫请求信息的终端WEB RTC应用的唯一标识符判断是否需要接受所述呼叫请求,若是,向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信。
优选的是,在所述第一终端接收RTC服务器转发的其他终端发送给所述第一终端的呼叫请求信息的步骤之前,还包括:
第一终端向实时通信RTC服务器发送注册离线业务请求信息,该信息中携带有WEBRTC应用的唯一标识符,以使得所述RTC服务器在接收到所述注册离线业务请求信息后,为所述唯一标识符对应的WEB RTC应用开启离线模式,并向所述第一终端反馈成功响应信息;
第一终端在接收到所述RTC服务器反馈的成功响应信息后,关闭所述WEB RTC应用。
优选的是,所述WEB RTC应用请求信息中还携带有用户所选定的WEB RTC应用类型,以使得所述RTC服务器在接收到所述WEB RTC应用请求信息后,返回与所述WEB RTC应用类型相同的WEB RTC应用。
优选的是,所述呼叫请求信息中还携带有发送所述呼叫请求信息的终端的浏览器引擎的标识信息;
所述第一终端接收所述RTC服务器发送的呼叫请求信息包括:
所述第一终端的监听客户端接收到所述RTC服务器发送的呼叫请求信息后,解析所述呼叫请求信息,根据所述呼叫请求信息中浏览器引擎标识信息确定所述呼叫请求信息为发送给浏览器引擎的信息,将所述呼叫请求信息发送给所述第一终端的浏览器引擎。
优选的是,所述第一终端向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信具体包括:
所述第一终端通过浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息以及SDPOffer信息后,通过所述WEBRTC应用将所述SDP Offer信息生成SDP Answer信息,并通过所述WEB RTC应用将所述SDPAnswer信息发送给所述浏览器引擎,通过所述浏览器引擎将所述SDP Answer信息发送给所述RTC服务器,以使得所述RTC服务器将所述SDP Answer信息发送给所述信息发送终端的浏览器引擎以建立通信通道开始通信;
或者,
所述呼叫请求信息中还携带有会话协商的会话描述协议提供SDP Offer信息;
所述第一终端通过浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,将所述呼叫请求信息中的SDPOffer信息发送给所述WEB RTC应用,通过所述WEB RTC应用将所述SDP Offer信息生成SDPAnswer信息,并通过所述WEB RTC应用将所述SDP Answer信息发送给所述浏览器引擎,通过所述浏览器引擎将所述SDP Answer信息发送给所述RTC服务器,以使得所述RTC服务器将所述SDP Answer信息发送给发送所述呼叫请求信息的终端的浏览器引擎以建立通信通道开始通信;
或者,
所述呼叫请求信息中还携带有会话协商的会话描述协议提供SDP Offer信息;
所述第一终端通过浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,所述WEB RTC应用请求信息中携带有SDP Answer信息,以使得所述RTC服务器在接收到所述WEB RTC应用请求信息,向所述第一终端返回WEB RTC应用信息,并将所述WEB RTC应用请求信息中的SDP Answer信息发送给发送所述呼叫请求信息的终端的浏览器引擎以建立通信通道;
所述第一终端接收所述RTC服务器返回的WEB RTC应用信息,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信。
优选的是,所述呼叫请求信息中携带有提示信息,所述提示信息为RTC服务器在接收到其他终端发送给所述第一终端的呼叫请求信息时添加的;
所述第一终端在接收到所述呼叫请求信息后,根据所述呼叫请求信息中的提示信息生成相应的提示,包括但不限于震动、响铃或弹出提示框。
优选的是,本实施例还包括:
所述第一终端在拒绝所述呼叫请求时,向所述RTC服务器反馈拒绝信息,以使得所述RTC服务器在接收到所述拒绝信息后,向发送所述呼叫请求信息的终端反馈所述第一终端当前忙碌或者离线信息。
本实施例的具体实施过程可参见图2对应实施例相关步骤的描述,在此不再赘述。
图4示出了本发明实施例一提供的实时通信方法的实现流程,该实施例的执行主体为图1中的RTC服务器2,该方法过程详述如下:
在步骤S401中,RTC服务器在接收到其他终端发送给第一终端的呼叫请求信息后,将所述呼叫请求信息发送给所述第一终端,所述呼叫请求信息中携带有发送所述呼叫请求信息的终端WEB RTC应用的唯一标识符。
在本实施例中,所述RTC服务器将所述呼叫请求信息发送给所述第一终端包括:
所述RTC服务器将所述呼叫请求信息发送给监听客户端,以使得所述监听客户端在接收到所述RTC服务器发送的呼叫请求信息后,解析所述呼叫请求信息,根据所述呼叫请求信息中浏览器引擎标识信息确定所述呼叫请求信息为发送给浏览器引擎的信息,将所述呼叫请求信息发送给所述第一终端的浏览器引擎。
在步骤S402中,RTC服务器在接收到所述第一终端发送的开启WEB RTC应用请求信息后,向所述第一终端返回WEB RTC应用信息,以使得所述第一终端在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEBRTC应用与所述发送呼叫请求信息的终端进行通信。
优选的是,在所述RTC服务器接收到其他终端发送给第一终端的呼叫请求信息的步骤之前,还包括:
RTC服务器在接收到第一终端发送的注册离线业务请求信息后,为该信息中WEBRTC应用唯一标识符对应的WEB RTC应用开启离线模式,并向所述第一终端反馈成功响应信息,以使得所述第一终端在接收到所述RTC服务器反馈的成功响应信息后,关闭其WEB RTC应用。
具体包括所述RTC服务器在接收到所述注册离线业务请求信息后,根据注册离线业务请求信息中携带的WEB RTC应用唯一标识符,判断所述唯一标识符对应的WEB RTC应用是否具有注册离线业务请求权限,若是,为所述唯一标识符对应的WEB RTC应用开启离线模式。
优选的是,所述WEB RTC应用请求信息中还携带有用户所选定的WEBRTC应用类型;
RTC服务器在接收到所述第一终端发送的开启WEB RTC应用请求信息后,向所述第一终端返回WEB RTC应用信息包括:
RTC服务器在接收到所述第一终端发送的开启WEB RTC应用请求信息后,向所述第一终端返回与所述WEB RTC应用类型相同的WEB RTC应用。
优选的是,本实施例还包括:
所述RTC服务器在接收到其他终端发送给所述第一终端的呼叫请求信息后,在所述呼叫请求信息中添加提示信息,以使得所述第一终端在接收到所述呼叫请求信息后,根据所述呼叫请求信息中的提示信息生成相应的提示,包括震动、响铃或弹出提示框。
优选的是,本实施例还包括:
所述RTC服务器在接收到所述第一终端发送的拒绝所述呼叫请求信息后,向发送所述呼叫请求信息的终端反馈所述第一终端当前忙碌或者离线信息。
优选的是,本实施例还包括:
所述RTC服务器在将所述呼叫请求信息发送给所述第一终端后,若在预设时间内未接收到所述第一终端反馈的信息或者接收到的反馈信息为暂时不接收时,缓存所述呼叫请求信息,在预定时间后或者所述第一终端开启WEB RTC应用后再发送该呼叫请求信息。
本实施例的具体实施过程可参见图2对应实施例相关步骤的描述,在此不再赘述。
图5示出了本发明另一实施例提供的实时通信方法的具体流程,该方法过程详述如下:
1、第一终端向实时通信RTC服务器发送注册离线业务请求信息,该信息中携带有WEB RTC应用的唯一标识符。
具体的是,第一终端通过WEB RTC应用向所述RTC服务器发送注册离线业务请求信息。其中,所述WEB RTC应用包括但不限于具备WEB应用功能的客户端程序,例如WEB QQ等。
在本实施例中,第一终端向实时通信RTC服务器发送注册离线业务请求信息的目的是通知服务器其将关闭WEB RTC应用(包括关闭WEB RTC应用或者关闭浏览器),但希望关闭WEB RTC应用后仍可以接收到其他终端发送给所述第一终端的呼叫请求信息或者其他通知信息等。
2、RTC服务器在接收到所述注册离线业务请求信息后,为所述第一终端开启离线模式。
优选的是,为了增强安全性,防止恶意注册,RTC服务器在接收到所述注册离线业务请求信息后,根据注册离线业务请求信息中携带的WEB RTC应用唯一标识符,判断所述唯一标识符对应的WEB RTC应用是否具有注册离线业务请求权限,若是,为所述唯一标识符对应的WEB RTC应用开启离线模式,RTC服务器将为所述第一终端保持在线状态、提供通知以及为所述第一终端保存通话信息等。
3、RTC服务器为所述第一终端开启离线模式后,向所述第一终端反馈成功响应信息。
4、第一终端在接收到所述RTC服务器反馈的成功响应信息后,关闭WEB RTC应用和/或浏览器。
5、RTC服务器接收其他终端(第二终端)发送给所述第一终端的呼叫请求信息。
在本实施例中,第二终端可以是任意具有网络接入功能的终端设备,包括但不限于手机、IPAD、笔记本电脑等。
需要说明的是,但第二终端为手机等终端设备时,需要通过另外一个网关完成协议和消息的转换后,将所述叫请求信息发送给所述RTC服务器。
6、RTC服务器将所述呼叫请求信息发送给监听客户端,所述呼叫请求信息中携带有发送所述呼叫请求信息的终端WEB RTC应用的的唯一标识符、提示信息、WEB RTC应用类型、浏览器信息、RTC服务器地址信息和/或会话描述协议提供(Session DescriptionProtocol Offer,SDP Offer)信息等。
具体的是,RTC服务器判断所述第一终端是否开启基于WEB的RTC应用,若否,判断所述第一终端是否开启离线模式,若是,将所述呼叫请求信息发送给所述监听客户端。
需要说明的是,本实施例中的呼叫请求信息可通过套接字(WEBsocket)发送,还可通过短消息、彩信、http消息、会话初始协议(Session Initiation Protocol,SIP)等中的至少一种发送。
另外,本实施例的监听客户端可以为一个单独的终端设备,也可以为集成在所述第一终端中的软件和/或硬件单元。
7、监听客户端接收到所述RTC服务器发送的呼叫请求信息后,解析所述呼叫请求信息,根据所述呼叫请求信息中浏览器引擎的标识信息确定所述呼叫请求信息为发送给浏览器引擎的信息,将所述呼叫请求信息发送给所述第一终端的浏览器引擎。
8、监听客户端将所述呼叫请求信息发送给所述第一终端的浏览器引擎。
需要说明的是,当所述浏览器为关闭状态时,监听客户端需要先激活所述浏览器引擎,再将所述呼叫请求信息发送给所述浏览器引擎解析处理。监听客户端根据呼叫请求信息中携带的浏览器引擎的标识信息,判断所述呼叫请求信息为发送给浏览器引擎的信息,并激活浏览器引擎。
9、浏览器引擎接收并解析所述呼叫请求信息,调用所述呼叫请求信息中的提示信息生成相应的提示,包括但不限于震动、响铃或弹出提示框。
例如当所述提示信息为震动时,浏览器引擎解析所述提示信息,调用震动应用程序接口API,完成震动提示,如navigator.vibrate([1000,500,2000]),表示振动1秒,停顿0.5秒,一共振动2秒。又例如当所述提示信息为弹出提示框时,则调用交互的API接口,如通过使用Alert方式,弹出提示框,Alert(“第二终端”,www.WEBqq.com,“opera mini”,“是否应答呼叫”)。
10、在接收到用户根据所述提示信息选择的接收所述呼叫请求信息时,第一终端通过所述浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息。
11、RTC服务器在接收到所述呼叫请求信息后,返回相应的WEB RTC应用。
12、浏览器引擎将所述呼叫请求信息中的SDP Offer信息发送给所述WEB RTC应用。
13、WEB RTC应用根据所述SDP Offer信息生成SDP Answer信息,并将所述SDPAnswer信息发送给所述浏览器引擎。
14、浏览器引擎将所述SDP Answer信息发送给所述RTC服务器。
15、RTC服务器将所述SDP Answer信息发送给所述信息发送终端(第二终端)的浏览器引擎。
16、第二终端的浏览器引擎将所述SDP Answer信息发送给第二终端的WEB RTC应用。
17、第一终端和第二终端建立通信。
优选的是,本实施例中的步骤6可以不携带SDP Offer信息,而在第11步返回相应的WEB RTC应用时携带所述SDP Offer信息,则WEB RTC应用根据所述SDP Offer信息直接生成SDP Answer信息。
优选的是,为进一步增强用户体验,本实施例还包括:
所述第一终端在接收到用户选择的拒绝所述呼叫请求时,向所述RTC服务器反馈拒绝信息;
所述RTC服务器在接收到所述拒绝信息后,向发送所述呼叫请求信息的终端反馈所述第一终端当前忙碌或者离线等信息。
优选的是,所述WEB RTC应用请求信息中还携带有用户所选定的WEB RTC应用类型,以使得所述RTC服务器在接收到所述WEB RTC应用请求信息后,返回与用户所选定的WEBRTC应用类型相同的WEB RTC应用。该WEB RTC应用的类型与所述呼叫请求信息中WEB RTC应用的类型可以相同,也可以不同。
优选的是,所述RTC服务器在将所述呼叫请求信息发送给所述第一终端后,若在预设时间内未接收到所述第一终端反馈的信息或者接收到的反馈信息为暂时不接收时,缓存所述呼叫请求信息,在预定时间后或者所述第一终端开启WEB RTC应用后再发送该呼叫请求信息。所述RTC服务器2还可生成提示信息,并为该用户存储该信息,供终端设备1查询或主动发送给终端设备1。该提示信息可以为文本信息、音视频等多媒体类型的信息。可以提示用户发送呼叫的的发送方,呼叫时间,所使用的基于WEB的RTC应用的类型,浏览器类型等信息。当用户下次登录该基于WEB的RTC应用或打开浏览器时,可以收到未接来电或留言的通知消息。
图6示出了本发明另一实施例提供的终端设备的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该终端设备1包括信息接收单元11以及处理单元12。其中,各单元的具体功能如下:
信息接收单元11,用于接收所述RTC服务器转发的其他终端发送给该终端设备的呼叫请求信息,所述呼叫请求信息中携带有发送所述呼叫请求信息的终端WEB RTC应用的唯一标识符;
处理单元12,用于根据所述信息接收单元11接收到的呼叫请求信息中携带的呼叫请求信息发送终端WEB RTC应用的唯一标识符判断是否需要接受所述呼叫请求,若是,向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信。
进一步的是,所述终端设备1还包括:
信息发送单元13,用于向实时通信RTC服务器发送注册离线业务请求信息,该信息中携带有WEB RTC应用的唯一标识符,以使得所述RTC服务器在接收到所述注册离线业务请求信息后,为所述唯一标识符对应的WEB RTC应用开启离线模式,并向所述第一终端反馈成功响应信息;
关闭单元14,用于在接收到所述RTC服务器反馈的成功响应信息后,关闭所述WEBRTC应用。
优选的,所述WEB RTC应用请求信息中还携带有用户所选定的WEB RTC应用类型,以使得所述RTC服务器在接收到所述WEB RTC应用请求信息后,返回与所述WEB RTC应用类型相同的WEB RTC应用。
进一步的,所述呼叫请求信息中还携带有发送所述呼叫请求信息的终端的浏览器引擎的标识信息;
所述信息接收单元11具体用于,通过所述该终端设备的监听客户端接收所述RTC服务器发送的呼叫请求信息,解析所述呼叫请求信息,根据所述呼叫请求信息中浏览器引擎标识信息确定所述呼叫请求信息为发送给浏览器引擎的信息,将所述呼叫请求信息发送给所述第一终端的浏览器引擎。
优选的,所述呼叫请求信息中还携带有会话协商的会话描述协议提供SDP Offer信息;
所述处理单元12具体用于,通过该终端设备的浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息后,将所述呼叫请求信息中的SDP Offer信息发送给所述WEB RTC应用,通过所述WEB RTC应用将所述SDP Offer信息生成SDP Answer信息,并通过所述WEB RTC应用将所述SDP Answer信息发送给所述浏览器引擎,通过所述浏览器引擎将所述SDP Answer信息发送给所述RTC服务器,以使得所述RTC服务器将所述SDP Answer信息发送给发送所述呼叫请求信息的终端的浏览器引擎以建立通信通道开始通信。
或者,所述处理单元12具体用于,通过该终端设备的浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,所述WEB RTC应用请求信息中携带有SDP Answer信息,以使得所述RTC服务器在接收到所述WEB RTC应用请求信息,向所述第一终端返回WEB RTC应用信息,并将所述WEB RTC应用请求信息中的SDP Answer信息发送给发送所述呼叫请求信息的终端的浏览器引擎以建立通信通道,在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信。
或者,
所述处理单元12具体用于,通过该终端设备的浏览器引擎向所述RTC服务器发送开启WEB RTC应用请求信息,并在接收到所述RTC服务器返回的WEB RTC应用信息以及SDPOffer信息后,通过所述WEB RTC应用将所述SDP Offer信息生成SDP Answer信息,并通过所述WEB RTC应用将所述SDP Answer信息发送给所述浏览器引擎,通过所述浏览器引擎将所述SDP Answer信息发送给所述RTC服务器,以使得所述RTC服务器将所述SDP Answer信息发送给所述信息发送终端的浏览器引擎以建立通信通道开始通信。
优选的,所述呼叫请求信息中携带有提示信息,所述提示信息为RTC服务器在接收到其他终端发送给所述第一终端的呼叫请求信息时添加的;
所述终端设备1还包括:
提示单元15,用于在接收到所述呼叫请求信息后,根据所述呼叫请求信息中的提示信息生成相应的提示,包括但不限于震动、响铃或弹出提示框。
进一步的,所述终端设备1还包括:
信息反馈单元16,用于在拒绝所述呼叫请求时,向所述RTC服务器反馈拒绝信息,以使得所述RTC服务器在接收到所述拒绝信息后,向发送所述呼叫请求信息的终端反馈所述第一终端当前忙碌或者离线信息。
本实施例提供的终端设备1可以使用在前述对应的实时通信方法,详情参见上述实时通信方法图2、图3、图5对应实施例的相关描述,在此不再赘述。
图7示出了本发明另一实施例提供的RTC服务器的组成结构,为了便于说明,仅示出了与本发明实施例相关的部分。
该RTC服务器2包括第一发送单元21以及第二发送单元22。其中,各单元的具体功能如下:
第一发送单元21,用于在接收到其他终端发送给所述第一终端的呼叫请求信息后,将所述呼叫请求信息发送给所述第一终端,所述呼叫请求信息中携带有发送所述呼叫请求信息的终端WEB RTC应用的唯一标识符;
第二发送单元22,用于在接收到所述第一终端发送的开启WEB RTC应用请求信息后,向所述第一终端返回WEB RTC应用信息,以使得所述第一终端在接收到所述RTC服务器返回的WEB RTC应用信息后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信。
进一步的,所述RTC服务器2还包括:
开启单元23,用于在接收到第一终端发送的注册离线业务请求信息后,为该信息中WEB RTC应用唯一标识符对应的WEB RTC应用开启离线模式,并向所述第一终端反馈成功响应信息,以使得所述第一终端在接收到所述RTC服务器反馈的成功响应信息后,关闭其WEB RTC应用。
所述开启单元23具体用于,在接收到所述注册离线业务请求信息后,根据注册离线业务请求信息中携带的WEB RTC应用唯一标识符,判断所述唯一标识符对应的WEB RTC应用是否具有注册离线业务请求权限,若是,为所述唯一标识符对应的WEB RTC应用开启离线模式。
优选的,所述WEB RTC应用请求信息中还携带有用户所选定的WEB RTC应用类型;
所述第二发送单元22,具体用于在接收到所述第一终端发送的开启WEB RTC应用请求信息后,向所述第一终端返回与所述WEB RTC应用类型相同的WEB RTC应用。
进一步的,所述RTC服务器2还包括:
信息添加单元24,用于在接收到其他终端发送给所述第一终端的呼叫请求信息后,在所述呼叫请求信息中添加提示信息,以使得所述第一终端在接收到所述呼叫请求信息后,根据所述呼叫请求信息中的提示信息生成相应的提示,包括震动、响铃或弹出提示框。
进一步的,所述第二发送单元23用于,将所述呼叫请求信息发送给监听客户端,以使得所述监听客户端接收到所述RTC服务器发送的呼叫请求信息后,解析所述呼叫请求信息,根据所述呼叫请求信息中的浏览器标识信息确定所述呼叫请求信息为发送给浏览器引擎的信息,将所述呼叫请求信息发送给所述第一终端的浏览器引擎。
进一步的,所述RTC服务器2还包括:
第三发送单元25,用于在接收到所述第一终端发送的拒绝所述呼叫请求信息后,向发送所述呼叫请求信息的终端反馈所述第一终端当前忙碌或者离线信息。
进一步的,所述RTC服务器2还包括:
处理单元26,用于在将所述呼叫请求信息发送给所述第一终端后,若在预设时间内未接收到所述第一终端反馈的信息或者接收到的反馈信息为暂时不接收时,缓存所述呼叫请求信息,在预定时间后或者所述第一终端开启WEB RTC应用后再发送该呼叫请求信息。
本实施例提供的RTC服务器2可以使用在前述对应的实时通信方法,详情参见上述实时通信方法图2、图4、图5对应实施例的相关描述,在此不再赘述。
本领域普通技术人员可以理解为所述终端设备1实施例及RTC服务器2实施例所包括的各个单元只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明实施例的保护范围。
另外,在本发明实施例各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
综上所述,本发明实施例通过向RTC服务器发送注册离线业务请求信息来开启离线模式,使得在终端的WEB RTC应用关闭的情况下,仍然可以接收到RTC服务器转发的其他终端发送给该终端的呼叫请求信息,并在接收到所述呼叫请求信息后,向所述RTC服务器发送开启WEB RTC应用请求信息,在接收到所述RTC服务器返回的WEB RTC应用后,通过所述WEB RTC应用与所述发送呼叫请求信息的终端进行通信。通过本发明实施例,可有效解决现有基于WEB的实时通信在通信双方不同时在线或者未打开WEB RTC应用时,无法获取信息的问题。而且通过关闭浏览器和/或WEB RTC应用,也可以节省电池电量,节省与网络保持单独连接、发送心跳消息等网络资源。并通过监听消息,在不建立会话情况下,也能实现信令协商的技术效果,提高信令协商效率。另外,还可以根据呼叫请求信息发送终端WEB RTC应用的唯一标识符选择性的接受呼叫,提高用户体验,具有较强的实用性。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。