From 6c0087db8823aa0a27f65ee4d54aa4c6d7b4be92 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 10 四月 2024 20:56:45 +0800
Subject: [PATCH] 优化代码调用

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/AckRequestProcessor.java |   97 ++++++++++++------------------------------------
 1 files changed, 25 insertions(+), 72 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/AckRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/AckRequestProcessor.java
index ab40798..10922f4 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/AckRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/AckRequestProcessor.java
@@ -1,19 +1,17 @@
 package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl;
 
-import com.alibaba.fastjson2.JSONObject;
 import com.genersoft.iot.vmp.conf.DynamicTask;
 import com.genersoft.iot.vmp.conf.UserSetting;
+import com.genersoft.iot.vmp.conf.exception.ControllerException;
 import com.genersoft.iot.vmp.gb28181.bean.Device;
 import com.genersoft.iot.vmp.gb28181.bean.ParentPlatform;
 import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem;
 import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor;
 import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
-import com.genersoft.iot.vmp.media.zlm.ZLMServerFactory;
-import com.genersoft.iot.vmp.media.event.hook.HookSubscribe;
-import com.genersoft.iot.vmp.media.zlm.dto.MediaServer;
-import com.genersoft.iot.vmp.service.IDeviceService;
+import com.genersoft.iot.vmp.media.bean.MediaServer;
 import com.genersoft.iot.vmp.media.service.IMediaServerService;
+import com.genersoft.iot.vmp.service.IDeviceService;
 import com.genersoft.iot.vmp.service.IPlayService;
 import com.genersoft.iot.vmp.service.bean.RequestPushStreamMsg;
 import com.genersoft.iot.vmp.service.redisMsg.RedisGbPlayMsgListener;
@@ -31,8 +29,6 @@
 import javax.sip.header.FromHeader;
 import javax.sip.header.HeaderAddress;
 import javax.sip.header.ToHeader;
-import java.util.HashMap;
-import java.util.Map;
 
 /**
  * SIP鍛戒护绫诲瀷锛� ACK璇锋眰
@@ -64,12 +60,6 @@
 
 	@Autowired
 	private IDeviceService deviceService;
-
-	@Autowired
-	private ZLMServerFactory zlmServerFactory;
-
-	@Autowired
-	private HookSubscribe hookSubscribe;
 
 	@Autowired
 	private IMediaServerService mediaServerService;
@@ -115,19 +105,21 @@
 		ParentPlatform parentPlatform = storager.queryParentPlatByServerGBId(fromUserId);
 
 		if (parentPlatform != null) {
-			Map<String, Object> param = getSendRtpParam(sendRtpItem);
-			if (mediaInfo == null) {
-				RequestPushStreamMsg requestPushStreamMsg = RequestPushStreamMsg.getInstance(
-						sendRtpItem.getMediaServerId(), sendRtpItem.getApp(), sendRtpItem.getStream(),
-						sendRtpItem.getIp(), sendRtpItem.getPort(), sendRtpItem.getSsrc(), sendRtpItem.isTcp(),
-						sendRtpItem.getLocalPort(), sendRtpItem.getPt(), sendRtpItem.isUsePs(), sendRtpItem.isOnlyAudio());
-				redisGbPlayMsgListener.sendMsgForStartSendRtpStream(sendRtpItem.getServerId(), requestPushStreamMsg, json -> {
-					playService.startSendRtpStreamHand(sendRtpItem, parentPlatform, json, param, callIdHeader);
+			if (!userSetting.getServerId().equals(sendRtpItem.getServerId())) {
+				RequestPushStreamMsg requestPushStreamMsg = RequestPushStreamMsg.getInstance(sendRtpItem);
+				redisGbPlayMsgListener.sendMsgForStartSendRtpStream(sendRtpItem.getServerId(), requestPushStreamMsg, () -> {
+					playService.startSendRtpStreamFailHand(sendRtpItem, parentPlatform, callIdHeader);
 				});
 			} else {
-				JSONObject startSendRtpStreamResult = sendRtp(sendRtpItem, mediaInfo, param);
-				if (startSendRtpStreamResult != null) {
-					playService.startSendRtpStreamHand(sendRtpItem, parentPlatform, startSendRtpStreamResult, param, callIdHeader);
+				try {
+					if (sendRtpItem.isTcpActive()) {
+						mediaServerService.startSendRtpPassive(mediaInfo, parentPlatform, sendRtpItem, null);
+					} else {
+						mediaServerService.startSendRtp(mediaInfo, parentPlatform, sendRtpItem);
+					}
+				}catch (ControllerException e) {
+					logger.error("RTP鎺ㄦ祦澶辫触: {}", e.getMessage());
+					playService.startSendRtpStreamFailHand(sendRtpItem, parentPlatform, callIdHeader);
 				}
 			}
 		}else {
@@ -144,56 +136,17 @@
 				logger.warn("[鏀跺埌ACK]锛氭潵鑷獅}锛岀洰鏍囦负({})鐨勬帹娴佷俊鎭负鎵惧埌娴佷綋鏈嶅姟[{}]淇℃伅",fromUserId, toUserId, sendRtpItem.getMediaServerId());
 				return;
 			}
-			Map<String, Object> param = getSendRtpParam(sendRtpItem);
-			JSONObject startSendRtpStreamResult = sendRtp(sendRtpItem, mediaInfo, param);
-			if (startSendRtpStreamResult != null) {
-				playService.startSendRtpStreamHand(sendRtpItem, device, startSendRtpStreamResult, param, callIdHeader);
+			try {
+				if (sendRtpItem.isTcpActive()) {
+					mediaServerService.startSendRtpPassive(mediaInfo, null, sendRtpItem, null);
+				} else {
+					mediaServerService.startSendRtp(mediaInfo, null, sendRtpItem);
+				}
+			}catch (ControllerException e) {
+				logger.error("RTP鎺ㄦ祦澶辫触: {}", e.getMessage());
+				playService.startSendRtpStreamFailHand(sendRtpItem, null, callIdHeader);
 			}
 		}
-	}
-
-	private Map<String, Object> getSendRtpParam(SendRtpItem sendRtpItem) {
-		String isUdp = sendRtpItem.isTcp() ? "0" : "1";
-		Map<String, Object> param = new HashMap<>(12);
-		param.put("vhost","__defaultVhost__");
-		param.put("app",sendRtpItem.getApp());
-		param.put("stream",sendRtpItem.getStream());
-		param.put("ssrc", sendRtpItem.getSsrc());
-		param.put("dst_url",sendRtpItem.getIp());
-		param.put("dst_port", sendRtpItem.getPort());
-		param.put("src_port", sendRtpItem.getLocalPort());
-		param.put("pt", sendRtpItem.getPt());
-		param.put("use_ps", sendRtpItem.isUsePs() ? "1" : "0");
-		param.put("only_audio", sendRtpItem.isOnlyAudio() ? "1" : "0");
-		param.put("is_udp", isUdp);
-		if (!sendRtpItem.isTcp()) {
-			// udp妯″紡涓嬪紑鍚痳tcp淇濇椿
-			param.put("udp_rtcp_timeout", sendRtpItem.isRtcp()? "1":"0");
-		}
-		return param;
-	}
-
-	private JSONObject sendRtp(SendRtpItem sendRtpItem, MediaServer mediaInfo, Map<String, Object> param){
-		JSONObject startSendRtpStreamResult = null;
-		if (sendRtpItem.getLocalPort() != 0) {
-			if (sendRtpItem.isTcpActive()) {
-				startSendRtpStreamResult = zlmServerFactory.startSendRtpPassive(mediaInfo, param);
-			}else {
-				param.put("dst_url", sendRtpItem.getIp());
-				param.put("dst_port", sendRtpItem.getPort());
-				startSendRtpStreamResult = zlmServerFactory.startSendRtpStream(mediaInfo, param);
-			}
-		}else {
-			if (sendRtpItem.isTcpActive()) {
-				startSendRtpStreamResult = zlmServerFactory.startSendRtpPassive(mediaInfo, param);
-			}else {
-				param.put("dst_url", sendRtpItem.getIp());
-				param.put("dst_port", sendRtpItem.getPort());
-				startSendRtpStreamResult = zlmServerFactory.startSendRtpStream(mediaInfo, param);
-			}
-		}
-		return startSendRtpStreamResult;
-
 	}
 
 }

--
Gitblit v1.8.0