通话接续处理方法及装置与流程

文档序号:12006264阅读:367来源:国知局
通话接续处理方法及装置与流程
本发明涉及通信领域,具体而言,涉及一种通话接续处理方法及装置。

背景技术:
在网络(例如,2G,3G,或者Wifi等)环境下,可以通过Phone+免费打电话,免费发送文字、图片、语音消息等多媒体短信,同时还可通过Phone+发起多方通话或群发多媒体短信。在Phone+项目的语音接续过程中,客户端以及服务器的交互流程具体可以参见图1。图1是相关技术中Phone+语音接续过程中客户端与服务器的交互流程图。如图1所示,该流程主要包括以下处理:步骤S101:客户端A向服务器发送对话请求CALL_RQ。步骤S103:服务器向客户端A反馈对话响应CALL_RS。步骤S105:服务器向客户端A发送呼叫结果标识CALL_RESULT_ID,并向客户端B发送邀请请求INVITE_RQ。步骤S107:客户端B检验黑名单或用户状态。步骤S109:客户端B向服务器反馈邀请响应INVITE_RS。步骤S111:客户端B开始振铃等待接听。步骤S113:服务器向客户端A发送呼叫结果标识CALL_RESULT_ID。步骤S115:客户端B接听。步骤S117:客户端B向服务器发送应答请求ANSWER_RQ。步骤S119:服务器向客户端B发送应答响应ANSWER_RS,并向客户端A发送呼叫结果标识CALL_RESULT_ID。步骤S121:客户端B进入通话状态。由此可见,在图1所示的流程中,如果在通话接续过程中,由于网络状态不好等原因,客户端A或者客户端B中的一方已经与服务器断开连接,但是与服务器连接的另一方并不知道,接续流程没有及时终止,导致用户体验降低。

技术实现要素:
本发明提供了一种通话接续方法及装置,以至少解决相关技术中由于网络状态不好等原因,两方客户端中的一方已经与服务器断开连接,但是与服务器连接的另一方并不知道,接续流程没有及时终止,导致用户体验降低。根据本发明的一个方面,提供了一种通话接续处理方法。根据本发明的通话接续处理方法包括:根据服务器与第一客户端之间建立的心跳机制,所述服务器判断所述第一客户端与该服务器的连接状态;在所述连接状态为断开状态的情况下,所述服务器向第二客户端发送对话结束消息。根据本发明的另一方面,提供了一种通话接续处理方法。根据本发明的通话接续处理方法包括:根据第一客户端与服务器之间建立的心跳机制,所述第一客户端判断第二客户端与该服务器的连接状态;在所述连接状态为断开状态的情况下,第一客户端向所述服务器发送对话结束消息。根据本发明的又一方面,提供了一种通话接续处理装置。根据本发明的通话接续处理装置包括:第一判断模块,用于根据服务器与第一客户端之间建立的心跳机制,判断所述第一客户端与该服务器的连接状态;发送模块,用于在所述连接状态为断开状态的情况下,所述服务器向第二客户端发送对话结束消息。根据本发明的再一方面,提供了一种通话接续处理装置。根据本发明的通话接续处理装置包括:判断模块,用于根据第一客户端与服务器之间建立的心跳机制,判断第二客户端与该服务器的连接状态;第一发送模块,用于在所述连接状态为断开状态的情况下,第一客户端向所述服务器发送对话结束消息。通过本发明,服务器根据新建立的心跳机制,判断所述第一客户端与该服务器的连接状态;在所述连接状态为断开状态的情况下,所述服务器向第二客户端发送对话结束消息。解决了相关技术中由于网络状态不好等原因,两方客户端中的一方已经与服务器断开连接,但是与服务器连接的另一方并不知道,接续流程没有及时终止,导致用户体验降低的问题,进而可以在一方连接断开时,及时终止接续流程,有效提高了通话用户的体验。附图说明图1是相关技术中Phone+语音接续过程中客户端与服务器的交互流程图;图2是根据本发明实施例一的通话接续处理方法的流程图;图3是根据本发明优选实施例的状态查询心跳包和心跳回复包的生命周期的示意图;图4是根据本发明优选实施例一的通话接续处理方法的流程图;图5是根据本发明实施例二的通话接续处理方法的流程图;图6是根据本发明优选实施例一的心跳包超时通话接续处理的流程示意图;图7是根据本发明优选实施例二的心跳包超时通话接续处理的流程示意图;图8是根据本发明优选实施例二的通话接续处理方法的流程图;图9是根据本发明实施例一的通话接续处理装置的结构框图;图10是根据本发明优选实施例一的通话接续处理装置的结构框图;图11是根据本发明实施例二的通话接续处理装置的结构框图;以及图12是根据本发明优选实施例二的通话接续处理装置的结构框图。具体实施方式下面结合说明书附图对本发明的具体实现方式做一详细描述。图2是根据本发明实施例一的通话接续处理方法的流程图。如图2所示,该通话接续处理方法包括以下处理:步骤S201:根据服务器与第一客户端之间建立的心跳机制,该服务器判断上述第一客户端与该服务器的连接状态;步骤S203:在上述连接状态为断开状态的情况下,该服务器向第二客户端发送对话结束消息。相关技术中,在phone+项目的通话接续过程中,由于网络状态不好等原因,两方中的一方已经与服务器断开连接,但是与服务器连接的另一方并不知道,接续流程没有及时终止,导致用户体验降低。在图1所示的方法中,服务器根据新建立的心跳机制,判断上述第一客户端与该服务器的连接状态;在上述连接状态为断开状态的情况下,上述服务器向第二客户端发送对话结束消息。进而可以在一方连接断开时,及时终止接续流程,有效提高了通话用户的体验。优选地,上述心跳机制包括:上述服务器接收来自于上述第一客户端的状态查询心跳包;上述服务器向上述第一客户端返回携带有当前通话状态的心跳回复包。其中,如图3所示,上述服务器对于主叫方返回心跳回复包的生命周期为:以主叫方接收到呼叫结果标识或者等待呼叫结果标识超时的时刻为起始,以被叫方接听、被叫方拒绝、主叫方挂断、定时器超时(心跳超时。等待回铃超时、为终点;同理,当上述第一客户端为主叫方时,第一客户端发送状态查询心跳包的生命周期为:以主叫方接收到呼叫结果标识或者等待呼叫结果标识超时的时刻为起始,以被叫方接听、被叫方拒绝、主叫方挂断、定时器超时为终点。其中,如图3所示,上述服务器对于被叫方返回心跳回复包的生命周期为:从被叫方发出邀请响应为起始,以被叫方接听、被叫方拒绝、定时器超时为终点。同理,当上述第一客户端为被叫方时,第一客户端发送状态查询心跳包的生命周期为:从被叫方发出邀请响应为起始,以被叫方接听、被叫方拒绝、定时器超时为终点。其中,上述状态查询心跳包CALL_ALIVE_RQ可以包括但不限于以下信息:callID:当前通话的主叫方流水号;被叫方为是否接听,默认为0,接听为1;channelID:正常情况下为呼叫结果标识CALL_RESULT_ID告知的频道号;如果为0则表示主叫方未收到CALL_RESULT_ID;userID:用户标识号。其中,上述心跳回复包CALL_ALIVE_RS可以包括但不限于以下信息:callID:当前通话的主叫方流水号,给主叫方判断是否被叫方当前呼叫的回包;channelID:当前通话的频道号,给被叫方判断是否主叫方当前呼叫的回包;callState:当前通话状态,例如,正常状态(链接状态),被叫挂断,主叫挂断,被叫接听;可以新增如下状态:对方客户端心跳超时。userID:用户标识号。优选地,在上述步骤S201中,上述服务器判断上述第一客户端与该服务器的连接状态可以进一步包括以下处理:当上述服务器在第一预定时间内未接收到上述第一客户端的状态查询心跳包时,上述服务器确定上述连接状态为断开状态。例如,服务器和客户端(例如,主叫客户端,当然也可以是被叫客户端)之间建立有上述心跳机制,服务器在预定时长内(例如,5秒)没有接收到主叫客户端的状态查询心跳包,则该服务器确定主叫客户端与服务器的连接断开,服务器改变状态为主叫超时,并且向被叫客户端发送对话结束消息来终止通话接续流程。优选地,在上述服务器向第二客户端发送对话结束消息之后,还可以包括以下处理:上述服务器判断在超时后的第二预定时间内是否接收到上述第二客户端的状态查询心跳包。如果没有在上述第二预定时间内接收到上述第二客户端的状态查询心跳包,上述服务器结束通话接续流程。如果在上述第二预定时间内接收到上述第二客户端的状态查询心跳包,上述服务器向上述第二客户端发送心跳回复包,其中,该心跳回复包携带有指示上述第一客户端超时的信息;如果上述服务器在第三预定时间内未接收到上述第二客户端的对话结束消息或者接收到上述第二客户端的对话结束消息,上述服务器结束通话接续流程。优选地,如果所述服务器确定所述第一客户端的当前状态为以下之一:主叫挂断,被叫挂断,被叫接听;则所述服务器向所述第二客户端发送的心跳回复包中携带有所述第一客户端的当前状态。由此可见,建立心跳机制,一客户端还可以根据服务器的心跳回复包中的信息确定另一客户端的当前状态:主叫挂断,被叫挂断,或者被叫接听。例如,服务器接收到被叫客户端的应答包为用户接听,会在发送给主叫客户端的心跳回复包中携带被叫客户端的当前状态:接听状态,此时如果服务器转发给主叫的应答包丢失,主叫客户端会根据心跳回复包的状态来进行处理,心跳包状态为接听,主叫会继续执行被叫接听流程。以下结合图4进一步描述上述优选实施方式。图4是根据本发明优选实施例一的通话接续处理方法的流程图。如图4所示,该通话接续处理方法包括以下处理:步骤S401:服务器确定连续5秒没有接收到来自一个客户端的状态查询心跳包。步骤S403:服务器改变状态为超时状态,并且向对端客户端发送对话结束消息CALL_END。步骤S405:服务器判断在超时后的5秒内是否接收到未超时客户端(即上述对端客户端)的心跳回复包。如果是,执行步骤S407,否则,执行步骤S411。步骤S407:服务器将当前状态发送给未超时客户端。步骤S409:服务器判断5秒内是否收到未超时客户端的对话结束消息。如果是,执行步骤S411,否则,在5秒超时时,也执行步骤S411。步骤S411:服务器清理自身资源,并结束接续流程。图5是根据本发明实施例二的通话接续处理方法的流程图。如图5所示,该通话接续处理方法包括以下处理:步骤S501:根据第一客户端与服务器之间建立的心跳机制,该第一客户端判断第二客户端与该服务器的连接状态;步骤S503:在上述连接状态为断开状态的情况下,第一客户端向该服务器发送对话结束消息。在图5所示的方法中,第一客户端根据新建立的心跳机制,判断第二客户端与该服务器的连接状态;在连接状态为断开状态的情况下,第一客户端向上述服务器发送对话结束消息。进而可以在一方连接断开时,及时终止接续流程,并确保对话双方信息对等,有效提高了通话用户的体验。其中,上述心跳机制包括:第一客户端每隔预定时长向服务器发送状态查询心跳包;上述第一客户端接收来自于上述服务器的与各个状态查询心跳包对应的心跳回复包。其中,如图3所示,当上述第一客户端为主叫方时,第一客户端的状态查询心跳包的生命周期为:以主叫方接收到呼叫结果标识或者等待呼叫结果标识超时的时刻为起始,以被叫方接听、被叫方拒绝、主叫方挂断、定时器超时为终点。同理,服务器对于主叫方返回的心跳回复包的生命周期为:以主叫方接收到呼叫结果标识或者等待呼叫结果标识超时的时刻为起始,以被叫方接听、被叫方拒绝、主叫方挂断、定时器超时为终点;其中,如图3所示,当上述第一客户端为被叫方时,第一客户端的状态查询心跳包的生命周期为:从被叫方发出邀请响应为起始,以被叫方接听、被叫方拒绝、定时器超时为终点。同理,服务器对于被叫方返回的心跳回复包的生命周期为:从被叫方发出邀请响应为起始,以被叫方接听、被叫方拒绝、定时器超时为终点。优选地,在上述步骤S501中,上述第一客户端判断第二客户端与该服务器的连接状态可以进一步包括:在上述心跳回复包中携带有指示第二客户端超时的信息时,上述第一客户端确定上述连接状态为断开状态。优选地,第一客户端每隔预定时长向服务器发送状态查询心跳包,接收来自于上述服务器的与各个状态查询心跳包对应的心跳回复包可以进一步包括处理:上述第一客户端每发送一个状态查询心跳包,计数器加一;上述第一客户端每接收到一个心跳回复包,上述计数器减一;在上述计数器的计数值达到预定阈值时,上述第一客户端向上述服务器发送对话结束消息。例如,客户端A启动心跳计数,每发送一个状态查询心跳包,计数加一,每收到一个心跳回复包,计数减一。当计数达到预定阈值(例如,3)时,发送对话结束消息给服务器。服务器改变状态,清理资源,向对端客户端B发送对话退出标识CALL_EXIT_ID,客户端B结束通话,向服务器返回对话结束消息,服务器结束接续流程。该流程具体可以参见图6。例如,客户端A启动心跳计数,每发送一个状态查询心跳包,计数加一,每收到一个心跳回复包,计数减一。当计数达到预定阈值(例如,3)时,向服务器发送对话结束消息。但是在对话结束消息在传输过程中丢失,服务器没有收到该消息。服务器连续等待预定时长(例如,5秒)没有接收到客户端A发送的状态查询心跳包,则确定客户端A心跳超时。服务器在心跳回复包中携带客户端A超时的信息发送给客户端B。客户端B挂断通话,向服务器发送对话结束消息,但是传输过程中,该对话结束消息也丢失了。服务器在上述超时后的5秒内没有接收到客户端B的对话结束消息,则服务器清理资源,结束通话接续流程。该流程具体可以参见图7。优选地,如果所述服务器确定所述第二客户端的当前状态为以下之一:主叫挂断,被叫挂断,被叫接听;则所述第一客户端接收的来自于所述服务器的心跳回复包中携带有所述第二客户端的当前状态。由此可见,建立心跳机制,一客户端还可以根据服务器的心跳回复包中的信息确定另一客户端的当前状态:主叫挂断,被叫挂断,或者被叫接听。例如,服务器接收到被叫客户端的应答包为用户接听,会在发送给主叫客户端的心跳回复包中携带被叫客户端的当前状态:接听状态,此时如果服务器转发给主叫的应答包丢失,主叫客户端会根据心跳回复包的状态来进行处理,心跳包状态为接听,主叫会继续执行被叫接听流程。以下结合图8进一步描述上述优选实施方式。图8是根据本发明优选实施例二的通话接续处理方法的流程图。如图8所示,该通话接续处理方法包括以下处理:步骤S801:客户端从状态查询心跳包的生命周期开始就开始发送状态查询心跳包。步骤S803:客户端启动心跳计数。具体实施过程中,可以在发送心跳包的同时或者在发送心跳包之后的几秒开始计数,例如,发送心跳包之后的1秒。步骤S805:客户端每隔一秒发送一次状态查询心跳包,直至状态查询心跳包的生命周期结束。步骤S807:客户端判断计数器的计数值是否超过预定阈值,例如,3。如果是,接续流程结束。否则,执行步骤S809。步骤S809:客户端判断是否收到心跳回复包,如果是,执行步骤S811,否则,执行步骤S813。步骤S811:客户端的计数清零。步骤S813:客户端的计数器计数加一。之后返回执行步骤S807。图9是根据本发明实施例一的通话接续处理装置的结构框图。如图9所示,该通话接续处理装置包括:第一判断模块90,用于根据服务器与第一客户端之间建立的心跳机制,判断上述第一客户端与该服务器的连接状态;第一发送模块92,用于在上述连接状态为断开状态的情况下,向第二客户端发送对话结束消息。在图9所示的装置中,第一判断模块90根据新建立的心跳机制,判断上述第一客户端与该服务器的连接状态;在上述连接状态为断开状态的情况下,第一发送模块92向第二客户端发送对话结束消息。进而可以在一方连接断开时,及时终止接续流程,有效提高了通话用户的体验。优选地,上述心跳机制包括:上述服务器接收来自于上述第一客户端的状态查询心跳包;上述服务器向上述第一客户端返回携带有当前通话状态的心跳回复包。优选地,上述第一判断模块,进一步用于当上述服务器在第一预定时间内未接收到上述第一客户端的状态查询心跳包时,确定上述连接状态为断开状态;如图10所示,上述装置还可以包括:第二判断模块94,用于判断在超时后的第二预定时间内是否接收到上述第二客户端的状态查询心跳包;第一处理模块96,用于在上述第二判断模块输出为否时,结束通话接续流程;第二处理模块98,用于在上述第二判断模块输出为是时,向上述第二客户端发送心跳回复包,其中,该心跳回复包携带有指示上述第一客户端超时的信息,当在第三预定时间内未接收到上述第二客户端的对话结束消息或者接收到上述第二客户端的对话结束消息时,结束通话接续流程。优选地,如图10所示,上述装置还可以包括:确定模块100,用于确定所述第一客户端的当前状态为以下之一:主叫挂断,被叫挂断,被叫接听;第二发送模块102,用于向所述第二客户端发送的心跳回复包,该心跳回复包携带有所述第一客户端的当前状态。由此可见,建立心跳机制,一客户端还可以根据第二发送模块102发送的心跳回复包中的信息确定另一客户端的当前状态:主叫挂断,被叫挂断,或者被叫接听。例如,上述装置接收到被叫客户端的应答包为用户接听,会在发送给主叫客户端的心跳回复包中携带被叫客户端的当前状态:接听状态,此时如果服务器转发给主叫的应答包丢失,主叫客户端会根据心跳回复包的状态来进行处理,心跳包状态为接听,主叫会继续执行被叫接听流程。需要说明的是,以上装置中,各模块相互结合的优选实施方式可以参见图2至图4的描述,此处不再赘述。此外,上述装置可以是服务器或者设置在服务器上。图11是根据本发明实施例二的通话接续处理装置的结构框图。如图11所示,该通话接续处理装置包括:判断模块110,用于根据第一客户端与服务器之间建立的心跳机制,判断第二客户端与该服务器的连接状态;第一发送模块112,用于在上述连接状态为断开状态的情况下,向上述服务器发送对话结束消息。在图11所示的装置中,判断模块110根据新建立的心跳机制,判断第二客户端与该服务器的连接状态;在连接状态为断开状态的情况下,第一发送模块112向上述服务器发送对话结束消息。进而可以在一方连接断开时,及时终止接续流程,有效提高了通话用户的体验。优选地,上述心跳机制包括:第一客户端每隔预定时长向服务器发送状态查询心跳包;上述第一客户端接收来自于上述服务器的与各个状态查询心跳包对应的心跳回复包。优选地,上述判断模块110,进一步用于在上述心跳回复包中携带有指示第二客户端超时的信息时,确定上述连接状态为断开状态。优选地,如图12所示,上述装置还可以包括:计数模块114,用于在每发送一个状态查询心跳包时,对计数值加一;在每接收到一个心跳回复包,对上述计数值减一;第二发送模块116,用于在上述计数器的上述计数值达到预定阈值时,向上述服务器发送对话结束消息。优选地,如图12所示,上述装置还可以包括:确定模块118,用于确定所述第二客户端的当前状态为以下之一:主叫挂断,被叫挂断,被叫接听;接收模块120,用于接收的来自于所述服务器的心跳回复包,该心跳回复包携带有所述第二客户端的当前状态。由此可见,建立心跳机制,上述装置还可以根据接收模块120接收的心跳回复包中的信息确定另一客户端的当前状态:主叫挂断,被叫挂断,或者被叫接听。例如,服务器接收到被叫客户端的应答包为用户接听,会在发送给上述装置的心跳回复包中携带被叫客户端的当前状态:接听状态,此时如果服务器转发给主叫客户端的应答包丢失,上述装置会根据心跳回复包的状态来进行处理,心跳包状态为接听,上述装置会继续执行被叫接听流程。需要说明的是,以上装置中,各模块相互结合的优选实施方式可以参见图5至图8的描述,此处不再赘述。此外,上述装置可以是上述第一客户端,或者设置在上述第一客户端上。综上所述,借助本发明提供的上述实施例,在客户端与服务器之间建立心跳机制,服务器可以根据该心跳机制判断客户端的连接状态,客户端也可以根据该心跳机制确认自己与服务器是否断开连接,或者根据服务器的心跳回复包获知对端客户端超时。因此可以在一方连接断开时,及时终止接续流程,并确保对话双方信息对等,有效提高了通话用户的体验。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1