From 2e98b20bea4463e4465e3c19059d0744a09aec06 Mon Sep 17 00:00:00 2001
From: zhongrj <646384940@qq.com>
Date: Tue, 27 Jun 2023 14:34:41 +0800
Subject: [PATCH] gb28181版本升级-补充
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/timeout/impl/TimeoutProcessorImpl.java | 47 +++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 47 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/timeout/impl/TimeoutProcessorImpl.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/timeout/impl/TimeoutProcessorImpl.java
new file mode 100644
index 0000000..531505d
--- /dev/null
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/timeout/impl/TimeoutProcessorImpl.java
@@ -0,0 +1,47 @@
+package com.genersoft.iot.vmp.gb28181.transmit.event.timeout.impl;
+
+import com.genersoft.iot.vmp.conf.SystemInfoTimerTask;
+import com.genersoft.iot.vmp.gb28181.event.SipSubscribe;
+import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver;
+import com.genersoft.iot.vmp.gb28181.transmit.event.timeout.ITimeoutProcessor;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import org.springframework.beans.factory.InitializingBean;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Component;
+
+import javax.sip.TimeoutEvent;
+import javax.sip.header.CallIdHeader;
+
+@Component
+public class TimeoutProcessorImpl implements InitializingBean, ITimeoutProcessor {
+
+ private Logger logger = LoggerFactory.getLogger(TimeoutProcessorImpl.class);
+
+ @Autowired
+ private SIPProcessorObserver processorObserver;
+
+ @Autowired
+ private SipSubscribe sipSubscribe;
+
+ @Override
+ public void afterPropertiesSet() throws Exception {
+ processorObserver.addTimeoutProcessor(this);
+ }
+
+ @Override
+ public void process(TimeoutEvent event) {
+ try {
+ // TODO Auto-generated method stub
+ CallIdHeader callIdHeader = event.getClientTransaction().getDialog().getCallId();
+ String callId = callIdHeader.getCallId();
+ SipSubscribe.Event errorSubscribe = sipSubscribe.getErrorSubscribe(callId);
+ SipSubscribe.EventResult<TimeoutEvent> timeoutEventEventResult = new SipSubscribe.EventResult<>(event);
+ errorSubscribe.response(timeoutEventEventResult);
+ sipSubscribe.removeErrorSubscribe(callId);
+ sipSubscribe.removeOkSubscribe(callId);
+ } catch (Exception e) {
+ logger.error("[超时事件失败]: {}", e.getMessage());
+ }
+ }
+}
--
Gitblit v1.9.3