From e7bdcc1f8ddf95ca4b0bb08fbcd962a8d8a2b83a Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期二, 06 九月 2022 16:31:28 +0800
Subject: [PATCH] 修复选择通道时默认节点显示错误的问题

---
 src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java |   61 +++++++++++++++---------------
 1 files changed, 31 insertions(+), 30 deletions(-)

diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
index 5ceaa26..4d1e568 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
@@ -247,7 +247,7 @@
 			
 			String tm = Long.toString(System.currentTimeMillis());
 
-			CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
+			CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId()
 					: udpSipProvider.getNewCallId();
 
 			Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null, callIdHeader);
@@ -290,7 +290,7 @@
 			
 			String tm = Long.toString(System.currentTimeMillis());
 
-			CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
+			CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId()
 					: udpSipProvider.getNewCallId();
 
 			Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null, callIdHeader);
@@ -326,7 +326,7 @@
 			
 			String tm = Long.toString(System.currentTimeMillis());
 
-			CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
+			CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId()
 					: udpSipProvider.getNewCallId();
 
 			Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "z9hG4bK-ViaPtz-" + tm, "FromPtz" + tm, null, callIdHeader);
@@ -353,7 +353,7 @@
 			if (device == null) {
 				return;
 			}
-			String streamMode = device.getStreamMode().toUpperCase();
+//			String streamMode = device.getStreamMode().toUpperCase();
 
 			logger.info("{} 鍒嗛厤鐨刏LM涓�: {} [{}:{}]", stream, mediaServerItem.getId(), mediaServerItem.getIp(), ssrcInfo.getPort());
 			HookSubscribeForStreamChange hookSubscribe = HookSubscribeFactory.on_stream_changed("rtp", stream, true, "rtmp", mediaServerItem.getId());
@@ -372,11 +372,11 @@
 			content.append("t=0 0\r\n");
 
 			if (userSetting.isSeniorSdp()) {
-				if("TCP-PASSIVE".equals(streamMode)) {
+				if("TCP-PASSIVE".equalsIgnoreCase(device.getStreamMode())) {
 					content.append("m=video "+ ssrcInfo.getPort() +" TCP/RTP/AVP 96 126 125 99 34 98 97\r\n");
-				}else if ("TCP-ACTIVE".equals(streamMode)) {
+				}else if ("TCP-ACTIVE".equalsIgnoreCase(device.getStreamMode())) {
 					content.append("m=video "+ ssrcInfo.getPort() +" TCP/RTP/AVP 96 126 125 99 34 98 97\r\n");
-				}else if("UDP".equals(streamMode)) {
+				}else if("UDP".equalsIgnoreCase(device.getStreamMode())) {
 					content.append("m=video "+ ssrcInfo.getPort() +" RTP/AVP 96 126 125 99 34 98 97\r\n");
 				}
 				content.append("a=recvonly\r\n");
@@ -388,19 +388,19 @@
 				content.append("a=rtpmap:99 H265/90000\r\n");
 				content.append("a=rtpmap:98 H264/90000\r\n");
 				content.append("a=rtpmap:97 MPEG4/90000\r\n");
-				if("TCP-PASSIVE".equals(streamMode)){ // tcp琚姩妯″紡
+				if("TCP-PASSIVE".equalsIgnoreCase(device.getStreamMode())){ // tcp琚姩妯″紡
 					content.append("a=setup:passive\r\n");
 					content.append("a=connection:new\r\n");
-				}else if ("TCP-ACTIVE".equals(streamMode)) { // tcp涓诲姩妯″紡
+				}else if ("TCP-ACTIVE".equalsIgnoreCase(device.getStreamMode())) { // tcp涓诲姩妯″紡
 					content.append("a=setup:active\r\n");
 					content.append("a=connection:new\r\n");
 				}
 			}else {
-				if("TCP-PASSIVE".equals(streamMode)) {
+				if("TCP-PASSIVE".equalsIgnoreCase(device.getStreamMode())) {
 					content.append("m=video "+ ssrcInfo.getPort() +" TCP/RTP/AVP 96 97 98 99\r\n");
-				}else if ("TCP-ACTIVE".equals(streamMode)) {
+				}else if ("TCP-ACTIVE".equalsIgnoreCase(device.getStreamMode())) {
 					content.append("m=video "+ ssrcInfo.getPort() +" TCP/RTP/AVP 96 97 98 99\r\n");
-				}else if("UDP".equals(streamMode)) {
+				}else if("UDP".equalsIgnoreCase(device.getStreamMode())) {
 					content.append("m=video "+ ssrcInfo.getPort() +" RTP/AVP 96 97 98 99\r\n");
 				}
 				content.append("a=recvonly\r\n");
@@ -408,10 +408,10 @@
 				content.append("a=rtpmap:98 H264/90000\r\n");
 				content.append("a=rtpmap:97 MPEG4/90000\r\n");
 				content.append("a=rtpmap:99 H265/90000\r\n");
-				if ("TCP-PASSIVE".equals(streamMode)) { // tcp琚姩妯″紡
+				if ("TCP-PASSIVE".equalsIgnoreCase(device.getStreamMode())) { // tcp琚姩妯″紡
 					content.append("a=setup:passive\r\n");
 					content.append("a=connection:new\r\n");
-				} else if ("TCP-ACTIVE".equals(streamMode)) { // tcp涓诲姩妯″紡
+				} else if ("TCP-ACTIVE".equalsIgnoreCase(device.getStreamMode())) { // tcp涓诲姩妯″紡
 					content.append("a=setup:active\r\n");
 					content.append("a=connection:new\r\n");
 				}
@@ -423,7 +423,7 @@
 
 			String tm = Long.toString(System.currentTimeMillis());
 
-			CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
+			CallIdHeader callIdHeader = device.getTransport().equalsIgnoreCase("TCP") ? tcpSipProvider.getNewCallId()
 					: udpSipProvider.getNewCallId();
 
 			Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, "FromInvt" + tm, null, ssrcInfo.getSsrc(), callIdHeader);
@@ -456,7 +456,7 @@
 	@Override
 	public void playbackStreamCmd(MediaServerItem mediaServerItem, SSRCInfo ssrcInfo, Device device, String channelId,
 								  String startTime, String endTime, InviteStreamCallback inviteStreamCallback, InviteStreamCallback hookEvent,
-								  SipSubscribe.Event errorEvent) {
+								  SipSubscribe.Event okEvent,SipSubscribe.Event errorEvent) {
 		try {
 
 			logger.info("{} 鍒嗛厤鐨刏LM涓�: {} [{}:{}]", ssrcInfo.getStream(), mediaServerItem.getId(), mediaServerItem.getIp(), ssrcInfo.getPort());
@@ -470,14 +470,14 @@
 	        content.append("t="+DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(startTime)+" "
 					+DateUtil.yyyy_MM_dd_HH_mm_ssToTimestamp(endTime) +"\r\n");
 
-			String streamMode = device.getStreamMode().toUpperCase();
+			String streamMode = device.getStreamMode();
 
 			if (userSetting.isSeniorSdp()) {
-				if("TCP-PASSIVE".equals(streamMode)) {
+				if("TCP-PASSIVE".equalsIgnoreCase(streamMode)) {
 					content.append("m=video "+ ssrcInfo.getPort() +" TCP/RTP/AVP 96 126 125 99 34 98 97\r\n");
-				}else if ("TCP-ACTIVE".equals(streamMode)) {
+				}else if ("TCP-ACTIVE".equalsIgnoreCase(streamMode)) {
 					content.append("m=video "+ ssrcInfo.getPort() +" TCP/RTP/AVP 96 126 125 99 34 98 97\r\n");
-				}else if("UDP".equals(streamMode)) {
+				}else if("UDP".equalsIgnoreCase(streamMode)) {
 					content.append("m=video "+ ssrcInfo.getPort() +" RTP/AVP 96 126 125 99 34 98 97\r\n");
 				}
 				content.append("a=recvonly\r\n");
@@ -489,19 +489,19 @@
 				content.append("a=rtpmap:99 H265/90000\r\n");
 				content.append("a=rtpmap:98 H264/90000\r\n");
 				content.append("a=rtpmap:97 MPEG4/90000\r\n");
-				if("TCP-PASSIVE".equals(streamMode)){ // tcp琚姩妯″紡
+				if("TCP-PASSIVE".equalsIgnoreCase(streamMode)){ // tcp琚姩妯″紡
 					content.append("a=setup:passive\r\n");
 					content.append("a=connection:new\r\n");
-				}else if ("TCP-ACTIVE".equals(streamMode)) { // tcp涓诲姩妯″紡
+				}else if ("TCP-ACTIVE".equalsIgnoreCase(streamMode)) { // tcp涓诲姩妯″紡
 					content.append("a=setup:active\r\n");
 					content.append("a=connection:new\r\n");
 				}
 			}else {
-				if("TCP-PASSIVE".equals(streamMode)) {
+				if("TCP-PASSIVE".equalsIgnoreCase(streamMode)) {
 					content.append("m=video "+ ssrcInfo.getPort() +" TCP/RTP/AVP 96 97 98 99\r\n");
-				}else if ("TCP-ACTIVE".equals(streamMode)) {
+				}else if ("TCP-ACTIVE".equalsIgnoreCase(streamMode)) {
 					content.append("m=video "+ ssrcInfo.getPort() +" TCP/RTP/AVP 96 97 98 99\r\n");
-				}else if("UDP".equals(streamMode)) {
+				}else if("UDP".equalsIgnoreCase(streamMode)) {
 					content.append("m=video "+ ssrcInfo.getPort() +" RTP/AVP 96 97 98 99\r\n");
 				}
 				content.append("a=recvonly\r\n");
@@ -509,10 +509,10 @@
 				content.append("a=rtpmap:97 MPEG4/90000\r\n");
 				content.append("a=rtpmap:98 H264/90000\r\n");
 				content.append("a=rtpmap:99 H265/90000\r\n");
-				if("TCP-PASSIVE".equals(streamMode)){ // tcp琚姩妯″紡
+				if("TCP-PASSIVE".equalsIgnoreCase(streamMode)){ // tcp琚姩妯″紡
 					content.append("a=setup:passive\r\n");
 					content.append("a=connection:new\r\n");
-				}else if ("TCP-ACTIVE".equals(streamMode)) { // tcp涓诲姩妯″紡
+				}else if ("TCP-ACTIVE".equalsIgnoreCase(streamMode)) { // tcp涓诲姩妯″紡
 					content.append("a=setup:active\r\n");
 					content.append("a=connection:new\r\n");
 				}
@@ -535,10 +535,11 @@
 					});
 	        Request request = headerProvider.createPlaybackInviteRequest(device, channelId, content.toString(), null, "fromplybck" + tm, null, callIdHeader, ssrcInfo.getSsrc());
 
-	        transmitRequest(device, request, errorEvent, okEvent -> {
-				ResponseEvent responseEvent = (ResponseEvent) okEvent.event;
+	        transmitRequest(device, request, errorEvent, event -> {
+				ResponseEvent responseEvent = (ResponseEvent) event.event;
 	        	streamSession.put(device.getDeviceId(), channelId, callIdHeader.getCallId(), ssrcInfo.getStream(), ssrcInfo.getSsrc(), mediaServerItem.getId(), responseEvent.getClientTransaction(), VideoStreamSessionManager.SessionType.playback);
-				streamSession.put(device.getDeviceId(), channelId, callIdHeader.getCallId(), okEvent.dialog);
+				streamSession.put(device.getDeviceId(), channelId, callIdHeader.getCallId(), event.dialog);
+				okEvent.response(event);
 			});
 			if (inviteStreamCallback != null) {
 				inviteStreamCallback.call(new InviteStreamInfo(mediaServerItem, null, callIdHeader.getCallId(), "rtp", ssrcInfo.getStream()));

--
Gitblit v1.8.0