From 379830f7ebd3d9b93bfbfeb52584e5e4de29a979 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期五, 23 七月 2021 17:20:24 +0800
Subject: [PATCH] Merge pull request #129 from lawrencehj/wvp-28181-2.0
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/ByeRequestProcessor.java | 29 ++++++++++++++++++++++++-----
1 files changed, 24 insertions(+), 5 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/ByeRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/ByeRequestProcessor.java
index ec5f921..50e8c32 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/ByeRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/ByeRequestProcessor.java
@@ -15,7 +15,12 @@
import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
import com.genersoft.iot.vmp.gb28181.transmit.request.SIPRequestAbstractProcessor;
import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory;
+import com.genersoft.iot.vmp.media.zlm.dto.IMediaServerItem;
+import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
+import com.genersoft.iot.vmp.service.IMediaServerService;
import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
import java.text.ParseException;
import java.util.HashMap;
@@ -28,11 +33,15 @@
*/
public class ByeRequestProcessor extends SIPRequestAbstractProcessor {
+ private Logger logger = LoggerFactory.getLogger(ByeRequestProcessor.class);
+
private ISIPCommander cmder;
private IRedisCatchStorage redisCatchStorage;
private ZLMRTPServerFactory zlmrtpServerFactory;
+
+ private IMediaServerService mediaServerService;
/**
* 澶勭悊BYE璇锋眰
@@ -48,17 +57,20 @@
String platformGbId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(FromHeader.NAME)).getAddress().getURI()).getUser();
String channelId = ((SipURI) ((HeaderAddress) evt.getRequest().getHeader(ToHeader.NAME)).getAddress().getURI()).getUser();
SendRtpItem sendRtpItem = redisCatchStorage.querySendRTPServer(platformGbId, channelId);
+ if (sendRtpItem == null) return;
String streamId = sendRtpItem.getStreamId();
Map<String, Object> param = new HashMap<>();
param.put("vhost","__defaultVhost__");
param.put("app",sendRtpItem.getApp());
param.put("stream",streamId);
- System.out.println("鍋滄鍚戜笂绾ф帹娴侊細" + streamId);
- zlmrtpServerFactory.stopSendRtpStream(param);
+ param.put("ssrc",sendRtpItem.getSsrc());
+ logger.info("鍋滄鍚戜笂绾ф帹娴侊細" + streamId);
+ IMediaServerItem mediaInfo = mediaServerService.getOne(sendRtpItem.getMediaServerId());
+ zlmrtpServerFactory.stopSendRtpStream(mediaInfo, param);
redisCatchStorage.deleteSendRTPServer(platformGbId, channelId);
- if (zlmrtpServerFactory.totalReaderCount(sendRtpItem.getApp(), streamId) == 0) {
- System.out.println(streamId + "鏃犲叾瀹冭鐪嬭�咃紝閫氱煡璁惧鍋滄鎺ㄦ祦");
- cmder.streamByeCmd(streamId);
+ if (zlmrtpServerFactory.totalReaderCount(mediaInfo, sendRtpItem.getApp(), streamId) == 0) {
+ logger.info(streamId + "鏃犲叾瀹冭鐪嬭�咃紝閫氱煡璁惧鍋滄鎺ㄦ祦");
+ cmder.streamByeCmd(sendRtpItem.getDeviceId(), channelId);
}
}
} catch (SipException e) {
@@ -106,4 +118,11 @@
this.cmder = cmder;
}
+ public IMediaServerService getMediaServerService() {
+ return mediaServerService;
+ }
+
+ public void setMediaServerService(IMediaServerService mediaServerService) {
+ this.mediaServerService = mediaServerService;
+ }
}
--
Gitblit v1.8.0