From df34954c9eee1e870248368dd77a441509ac1dc2 Mon Sep 17 00:00:00 2001
From: lawrencehj <1934378145@qq.com>
Date: 星期二, 09 三月 2021 20:05:37 +0800
Subject: [PATCH] 实现级联点播RTP推送

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/InviteRequestProcessor.java |   28 +++++++++++-----------------
 1 files changed, 11 insertions(+), 17 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/InviteRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/InviteRequestProcessor.java
index ac19d6f..0c3f127 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/InviteRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/InviteRequestProcessor.java
@@ -7,14 +7,10 @@
 import javax.sip.SipFactory;
 import javax.sip.address.Address;
 import javax.sip.address.SipURI;
-import javax.sip.header.ContentTypeHeader;
-import javax.sip.header.FromHeader;
-import javax.sip.header.HeaderFactory;
-import javax.sip.header.SubjectHeader;
+import javax.sip.header.*;
 import javax.sip.message.Request;
 import javax.sip.message.Response;
 
-import com.alibaba.fastjson.JSONObject;
 import com.genersoft.iot.vmp.conf.MediaServerConfig;
 import com.genersoft.iot.vmp.gb28181.bean.Device;
 import com.genersoft.iot.vmp.gb28181.bean.DeviceChannel;
@@ -27,17 +23,12 @@
 import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
 import com.genersoft.iot.vmp.vmanager.play.bean.PlayResult;
 import com.genersoft.iot.vmp.vmanager.service.IPlayService;
-import gov.nist.javax.sdp.fields.SDPFormat;
 import gov.nist.javax.sip.address.AddressImpl;
 import gov.nist.javax.sip.address.SipUri;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.beans.factory.annotation.Autowired;
 
-import java.io.IOException;
 import java.text.ParseException;
-import java.util.List;
-import java.util.UUID;
 import java.util.Vector;
 
 /**    
@@ -45,6 +36,7 @@
  * @author: panll
  * @date:   2021骞�1鏈�14鏃�
  */
+@SuppressWarnings("rawtypes")
 public class InviteRequestProcessor extends SIPRequestAbstractProcessor {
 
 	private final static Logger logger = LoggerFactory.getLogger(MessageRequestProcessor.class);
@@ -122,8 +114,10 @@
 
 			// jainSip涓嶆敮鎸亂=瀛楁锛� 绉婚櫎绉婚櫎浠ヨВ鏋愩��
 			int ssrcIndex = contentString.indexOf("y=");
-			String ssrc = contentString.substring(ssrcIndex + 2, contentString.length())
-					.replace("\r\n", "").replace("\n", "");
+			String ssrc = contentString.substring(ssrcIndex + 2, ssrcIndex + 12);
+			//ssrc瑙勫畾闀垮害涓�10瀛楄妭锛屼笉鍙栦綑涓嬮暱搴︿互閬垮厤鍚庣画杩樻湁鈥渇=鈥濆瓧娈�
+			// String ssrc = contentString.substring(ssrcIndex + 2, contentString.length())
+			// 		.replace("\r\n", "").replace("\n", "");
 
 			String substring = contentString.substring(0, contentString.indexOf("y="));
 			SessionDescription sdp = SdpFactory.getInstance().createSessionDescription(substring);
@@ -131,9 +125,9 @@
 			//  鑾峰彇鏀寔鐨勬牸寮�
 			Vector mediaDescriptions = sdp.getMediaDescriptions(true);
 			// 鏌ョ湅鏄惁鏀寔PS 璐熻浇96
-			String ip = null;
+			//String ip = null;
 			int port = -1;
-			boolean recvonly = false;
+			//boolean recvonly = false;
 			boolean mediaTransmissionTCP = false;
 			Boolean tcpActive = null;
 			for (int i = 0; i < mediaDescriptions.size(); i++) {
@@ -143,7 +137,7 @@
 				Vector mediaFormats = media.getMediaFormats(false);
 				if (mediaFormats.contains("96")) {
 					port = media.getMediaPort();
-					String mediaType = media.getMediaType();
+					//String mediaType = media.getMediaType();
 					String protocol = media.getProtocol();
 
 					// 鍖哄垎TCP鍙戞祦杩樻槸udp锛� 褰撳墠榛樿udp
@@ -169,7 +163,7 @@
 			}
 			String username = sdp.getOrigin().getUsername();
 			String addressStr = sdp.getOrigin().getAddress();
-			String sessionName = sdp.getSessionName().getValue();
+			//String sessionName = sdp.getSessionName().getValue();
 			logger.info("[涓婄骇鐐规挱]鐢ㄦ埛锛歿}锛� 鍦板潃锛歿}:{}锛� ssrc锛歿}", username, addressStr, port, ssrc);
 
 			Device device = storager.queryVideoDeviceByPlatformIdAndChannelId(platformId, channelId);
@@ -178,7 +172,7 @@
 				responseAck(evt, Response.SERVER_INTERNAL_ERROR);
 				return;
 			}
-			SendRtpItem sendRtpItem = zlmrtpServerFactory.createSendRtpItem(ip, port, platformId, ssrc, channelId,
+			SendRtpItem sendRtpItem = zlmrtpServerFactory.createSendRtpItem(addressStr, port, ssrc, platformId, device.getDeviceId(), channelId,
 					mediaTransmissionTCP);
 			if (tcpActive != null) {
 				sendRtpItem.setTcpActive(tcpActive);

--
Gitblit v1.8.0