From 2a273acd09cc5e9656a5cf2673c98d7b5e8453df Mon Sep 17 00:00:00 2001
From: lawrencehj <1934378145@qq.com>
Date: 星期二, 16 三月 2021 11:47:45 +0800
Subject: [PATCH] 增加上级平台云台控制功能

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

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java
index 7f58de5..72a4d8c 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/AckRequestProcessor.java
@@ -4,7 +4,10 @@
 import java.util.Map;
 
 import javax.sip.*;
-//import javax.sip.message.Request;
+import javax.sip.address.SipURI;
+import javax.sip.header.FromHeader;
+import javax.sip.header.HeaderAddress;
+import javax.sip.header.ToHeader;
 
 import com.genersoft.iot.vmp.common.StreamInfo;
 import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem;
@@ -12,22 +15,16 @@
 import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory;
 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
 
-import org.springframework.stereotype.Component;
-
 /**    
  * @Description:ACK璇锋眰澶勭悊鍣�  
  * @author: swwheihei
  * @date:   2020骞�5鏈�3鏃� 涓嬪崍5:31:45     
  */
-@Component
 public class AckRequestProcessor extends SIPRequestAbstractProcessor {
 
-    //@Autowired
     private IRedisCatchStorage redisCatchStorage;
 
-	//@Autowired
 	private ZLMRTPServerFactory zlmrtpServerFactory;
-
 
 	/**   
 	 * 澶勭悊  ACK璇锋眰
@@ -41,14 +38,14 @@
 		if (dialog == null) return;
 		//DialogState state = dialog.getState();
 		if (/*request.getMethod().equals(Request.INVITE) &&*/ dialog.getState()== DialogState.CONFIRMED) {
-			String remoteUri = dialog.getRemoteParty().getURI().toString();
-			String localUri = dialog.getLocalParty().getURI().toString();
-			String platformGbId = remoteUri.substring(remoteUri.indexOf(":") + 1, remoteUri.indexOf("@"));
-			String channelId = localUri.substring(remoteUri.indexOf(":") + 1, remoteUri.indexOf("@"));
+			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);
 			String is_Udp = sendRtpItem.isTcp() ? "0" : "1";
 			String deviceId = sendRtpItem.getDeviceId();
 			StreamInfo streamInfo = redisCatchStorage.queryPlayByDevice(deviceId, channelId);
+			sendRtpItem.setStreamId(streamInfo.getStreamId());
+			redisCatchStorage.updateSendRTPSever(sendRtpItem);
 			System.out.println(platformGbId);
 			System.out.println(channelId);
 			Map<String, Object> param = new HashMap<>();
@@ -68,11 +65,16 @@
 					if (System.currentTimeMillis() - startTime < 30 * 1000) {
 						if (zlmrtpServerFactory.isRtpReady(streamInfo.getStreamId())) {
 							rtpPushed = true;
+							System.out.println("宸茶幏鍙栬澶囨帹娴侊紝寮�濮嬪悜涓婄骇鎺ㄦ祦");
 							zlmrtpServerFactory.startSendRtpStream(param);
 						} else {
+							System.out.println("绛夊緟璁惧鎺ㄦ祦.......");
 							Thread.sleep(2000);
 							continue;
 						}
+					} else {
+						rtpPushed = true;
+						System.out.println("璁惧鎺ㄦ祦瓒呮椂锛岀粓姝㈠悜涓婄骇鎺ㄦ祦");
 					}
 				} catch (InterruptedException e) {
 					e.printStackTrace();
@@ -108,5 +110,4 @@
 	public void setZlmrtpServerFactory(ZLMRTPServerFactory zlmrtpServerFactory) {
 		this.zlmrtpServerFactory = zlmrtpServerFactory;
 	}
-
 }

--
Gitblit v1.8.0