diff --git a/lib/talk/startChart/handle/impl/udp_talk_hangup_handler.dart b/lib/talk/startChart/handle/impl/udp_talk_hangup_handler.dart index a0da47d7..80a9051a 100644 --- a/lib/talk/startChart/handle/impl/udp_talk_hangup_handler.dart +++ b/lib/talk/startChart/handle/impl/udp_talk_hangup_handler.dart @@ -17,25 +17,25 @@ class UdpTalkHangUpHandler extends ScpMessageBaseHandle implements ScpMessageHandler { @override void handleReq(ScpMessage scpMessage) { - // if (talkStatus.status != TalkStatus.answeredSuccessfully) { - // // 如果不是接听中,不处理通话中挂断请求 - // return; - // } + // 只有接听成功或者等待接听时才处理挂断请求 + if (talkStatus.status == TalkStatus.answeredSuccessfully || + talkStatus.status == TalkStatus.passiveCallWaitingAnswer || + talkStatus.status == TalkStatus.proactivelyCallWaitingAnswer) { + // 回复请求 + replySuccessMessage(scpMessage); + talkStatus.setHangingUpDuring(); + stopRingtone(); + startChartManage.stopTalkExpectMessageTimer(); + startChartManage.stopTalkPingMessageTimer(); + // 挂断之后,停止对讲请求超时监听定时器 - // 回复请求 - replySuccessMessage(scpMessage); - talkStatus.setHangingUpDuring(); - stopRingtone(); - startChartManage.stopTalkExpectMessageTimer(); - startChartManage.stopTalkPingMessageTimer(); - // 挂断之后,停止对讲请求超时监听定时器 + talkeRequestOverTimeTimerManager.cancel(); + talkePingOverTimeTimerManager.cancel(); + talkDataOverTimeTimerManager.cancel(); - talkeRequestOverTimeTimerManager.cancel(); - talkePingOverTimeTimerManager.cancel(); - talkDataOverTimeTimerManager.cancel(); - - // EasyLoading.showToast('已挂断'.tr); - Get.back(); + EasyLoading.showToast('已挂断'.tr); + Get.back(); + } } @override