From b0b924ee711030fc54ac5b4493aa27ac64897d5a Mon Sep 17 00:00:00 2001
From: Lawrence <1934378145@qq.com>
Date: 星期一, 11 一月 2021 09:11:56 +0800
Subject: [PATCH] 离线设备禁用通道查看,避免后续无效操作
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 122 +++++++++++++++++++++++-----------------
1 files changed, 71 insertions(+), 51 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 e1d474f..dd6ac9d 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
@@ -182,35 +182,24 @@
/**
* 浜戝彴鎸囦护鐮佽绠�
*
- * @param leftRight 闀滃ご宸︾Щ鍙崇Щ 0:鍋滄 1:宸︾Щ 2:鍙崇Щ
- * @param upDown 闀滃ご涓婄Щ涓嬬Щ 0:鍋滄 1:涓婄Щ 2:涓嬬Щ
- * @param inOut 闀滃ご鏀惧ぇ缂╁皬 0:鍋滄 1:缂╁皬 2:鏀惧ぇ
- * @param moveSpeed 闀滃ご绉诲姩閫熷害 榛樿 0XFF (0-255)
- * @param zoomSpeed 闀滃ご缂╂斁閫熷害 榛樿 0X1 (0-255)
+ * @param cmdCode 鎸囦护鐮�
+ * @param parameter1 鏁版嵁1
+ * @param parameter2 鏁版嵁2
+ * @param combineCode2 缁勫悎鐮�2
*/
-
- /**
- * 浜戝彴鎸囦护鐮佽绠�
- *
- * @param cmdCode 鎸囦护鐮�
- * @param horizonSpeed 姘村钩绉诲姩閫熷害
- * @param verticalSpeed 鍨傜洿绉诲姩閫熷害
- * @param zoomSpeed 缂╂斁閫熷害
- * @return
- */
- public static String frontEndCmdString(int cmdCode, int horizonSpeed, int verticalSpeed, int zoomSpeed) {
+ public static String frontEndCmdString(int cmdCode, int parameter1, int parameter2, int combineCode2) {
StringBuilder builder = new StringBuilder("A50F01");
String strTmp;
strTmp = String.format("%02X", cmdCode);
builder.append(strTmp, 0, 2);
- strTmp = String.format("%02X", horizonSpeed);
+ strTmp = String.format("%02X", parameter1);
builder.append(strTmp, 0, 2);
- strTmp = String.format("%02X", verticalSpeed);
+ strTmp = String.format("%02X", parameter2);
builder.append(strTmp, 0, 2);
- strTmp = String.format("%X", zoomSpeed);
+ strTmp = String.format("%X", combineCode2);
builder.append(strTmp, 0, 1).append("0");
//璁$畻鏍¢獙鐮�
- int checkCode = (0XA5 + 0X0F + 0X01 + cmdCode + horizonSpeed + verticalSpeed + (zoomSpeed & 0XF0)) % 0X100;
+ int checkCode = (0XA5 + 0X0F + 0X01 + cmdCode + parameter1 + parameter2 + (combineCode2 & 0XF0)) % 0X100;
strTmp = String.format("%02X", checkCode);
builder.append(strTmp, 0, 2);
return builder.toString();
@@ -243,7 +232,7 @@
ptzXml.append("</Info>\r\n");
ptzXml.append("</Control>\r\n");
- Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtzTag", "ToPtzTag");
+ Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtzTag", null);
transmitRequest(device, request);
return true;
@@ -259,14 +248,14 @@
* @param device 鎺у埗璁惧
* @param channelId 棰勮閫氶亾
* @param cmdCode 鎸囦护鐮�
- * @param horizonSpeed 姘村钩绉诲姩閫熷害
- * @param verticalSpeed 鍨傜洿绉诲姩閫熷害
- * @param zoomSpeed 缂╂斁閫熷害
+ * @param parameter1 鏁版嵁1
+ * @param parameter2 鏁版嵁2
+ * @param combineCode2 缁勫悎鐮�2
*/
@Override
- public boolean frontEndCmd(Device device, String channelId, int cmdCode, int horizonSpeed, int verticalSpeed, int zoomSpeed) {
+ public boolean frontEndCmd(Device device, String channelId, int cmdCode, int parameter1, int parameter2, int combineCode2) {
try {
- String cmdStr= frontEndCmdString(cmdCode, horizonSpeed, verticalSpeed, zoomSpeed);
+ String cmdStr= frontEndCmdString(cmdCode, parameter1, parameter2, combineCode2);
System.out.println("鎺у埗瀛楃涓诧細" + cmdStr);
StringBuffer ptzXml = new StringBuffer(200);
ptzXml.append("<?xml version=\"1.0\" ?>\r\n");
@@ -279,7 +268,7 @@
ptzXml.append("</Info>\r\n");
ptzXml.append("</Control>\r\n");
- Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtzTag", "ToPtzTag");
+ Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtzTag", null);
transmitRequest(device, request);
return true;
} catch (SipException | ParseException | InvalidArgumentException e) {
@@ -334,30 +323,61 @@
content.append("s=Play\r\n");
content.append("c=IN IP4 "+mediaInfo.getWanIp()+"\r\n");
content.append("t=0 0\r\n");
- if("TCP-PASSIVE".equals(streamMode)) {
- content.append("m=video "+ mediaPort +" TCP/RTP/AVP 126 125 99 34 98 97 96\r\n");
- }else if ("TCP-ACTIVE".equals(streamMode)) {
- content.append("m=video "+ mediaPort +" TCP/RTP/AVP 126 125 99 34 98 97 96\r\n");
- }else if("UDP".equals(streamMode)) {
- content.append("m=video "+ mediaPort +" RTP/AVP 126 125 99 34 98 97 96\r\n");
+
+ if (seniorSdp) {
+ if("TCP-PASSIVE".equals(streamMode)) {
+ content.append("m=video "+ mediaPort +" TCP/RTP/AVP 126 125 99 34 98 97 96\r\n");
+ }else if ("TCP-ACTIVE".equals(streamMode)) {
+ content.append("m=video "+ mediaPort +" TCP/RTP/AVP 126 125 99 34 98 97 96\r\n");
+ }else if("UDP".equals(streamMode)) {
+ content.append("m=video "+ mediaPort +" RTP/AVP 126 125 99 34 98 97 96\r\n");
+ }
+ content.append("a=recvonly\r\n");
+ content.append("a=fmtp:126 profile-level-id=42e01e\r\n");
+ content.append("a=rtpmap:126 H264/90000\r\n");
+ content.append("a=rtpmap:125 H264S/90000\r\n");
+ content.append("a=fmtp:125 profile-level-id=42e01e\r\n");
+ content.append("a=rtpmap:99 MP4V-ES/90000\r\n");
+ content.append("a=fmtp:99 profile-level-id=3\r\n");
+ content.append("a=rtpmap:98 H264/90000\r\n");
+ content.append("a=rtpmap:97 MPEG4/90000\r\n");
+ content.append("a=rtpmap:96 PS/90000\r\n");
+ if("TCP-PASSIVE".equals(streamMode)){ // tcp琚姩妯″紡
+ content.append("a=setup:passive\r\n");
+ content.append("a=connection:new\r\n");
+ }else if ("TCP-ACTIVE".equals(streamMode)) { // tcp涓诲姩妯″紡
+ content.append("a=setup:active\r\n");
+ content.append("a=connection:new\r\n");
+ }
+ }else {
+ if("TCP-PASSIVE".equals(streamMode)) {
+ content.append("m=video "+ mediaPort +" TCP/RTP/AVP 96 98 97\r\n");
+ }else if ("TCP-ACTIVE".equals(streamMode)) {
+ content.append("m=video "+ mediaPort +" TCP/RTP/AVP 96 98 97\r\n");
+ }else if("UDP".equals(streamMode)) {
+ content.append("m=video "+ mediaPort +" RTP/AVP 96 98 97\r\n");
+ }
+ content.append("a=recvonly\r\n");
+ content.append("a=rtpmap:96 PS/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琚姩妯″紡
+ content.append("a=setup:passive\r\n");
+ content.append("a=recvonly\r\n");
+ content.append("a=rtpmap:96 PS/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琚姩妯″紡
+ 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".equals(streamMode)) { // tcp涓诲姩妯″紡
+ content.append("a=setup:active\r\n");
+ content.append("a=connection:new\r\n");
+ }
+ }
}
- content.append("a=recvonly\r\n");
- content.append("a=fmtp:126 profile-level-id=42e01e\r\n");
- content.append("a=rtpmap:126 H264/90000\r\n");
- content.append("a=rtpmap:125 H264S/90000\r\n");
- content.append("a=fmtp:125 profile-level-id=42e01e\r\n");
- content.append("a=rtpmap:99 MP4V-ES/90000\r\n");
- content.append("a=fmtp:99 profile-level-id=3\r\n");
- content.append("a=rtpmap:98 H264/90000\r\n");
- content.append("a=rtpmap:97 MPEG4/90000\r\n");
- content.append("a=rtpmap:96 PS/90000\r\n");
- if("TCP-PASSIVE".equals(streamMode)){ // tcp琚姩妯″紡
- content.append("a=setup:passive\r\n");
- content.append("a=connection:new\r\n");
- }else if ("TCP-ACTIVE".equals(streamMode)) { // tcp涓诲姩妯″紡
- content.append("a=setup:active\r\n");
- content.append("a=connection:new\r\n");
- }
+
content.append("y="+ssrc+"\r\n");//ssrc
// String fromTag = UUID.randomUUID().toString();
@@ -646,7 +666,7 @@
catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n");
catalogXml.append("</Query>\r\n");
- Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "ViaDeviceInfoBranch", "FromDeviceInfoTag", "ToDeviceInfoTag");
+ Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "ViaDeviceInfoBranch", "FromDeviceInfoTag", null);
transmitRequest(device, request);
--
Gitblit v1.8.0