From 5d031b3df29e3c4a1ce2ecab20dcbc2a6ffc5e35 Mon Sep 17 00:00:00 2001
From: Lawrence <1934378145@qq.com>
Date: 星期三, 20 一月 2021 20:41:24 +0800
Subject: [PATCH] 增加报警信息推送请求和页面通知发布
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java | 134 +++++++++++++++++++++++++++-----------------
1 files changed, 81 insertions(+), 53 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 13b83d1..7ff5d14 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
@@ -77,6 +77,9 @@
@Value("${media.seniorSdp}")
private boolean seniorSdp;
+ @Value("${media.autoApplyPlay}")
+ private boolean autoApplyPlay;
+
@Autowired
private ZLMHttpHookSubscribe subscribe;
@@ -182,12 +185,11 @@
/**
* 浜戝彴鎸囦护鐮佽绠�
*
- * @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
+ */
public static String frontEndCmdString(int cmdCode, int parameter1, int parameter2, int combineCode2) {
StringBuilder builder = new StringBuilder("A50F01");
String strTmp;
@@ -209,13 +211,13 @@
/**
* 浜戝彴鎺у埗锛屾敮鎸佹柟鍚戜笌缂╂斁鎺у埗
*
- * @param device 鎺у埗璁惧
- * @param channelId 棰勮閫氶亾
- * @param leftRight 闀滃ご宸︾Щ鍙崇Щ 0:鍋滄 1:宸︾Щ 2:鍙崇Щ
- * @param upDown 闀滃ご涓婄Щ涓嬬Щ 0:鍋滄 1:涓婄Щ 2:涓嬬Щ
- * @param inOut 闀滃ご鏀惧ぇ缂╁皬 0:鍋滄 1:缂╁皬 2:鏀惧ぇ
- * @param moveSpeed 闀滃ご绉诲姩閫熷害
- * @param zoomSpeed 闀滃ご缂╂斁閫熷害
+ * @param device 鎺у埗璁惧
+ * @param channelId 棰勮閫氶亾
+ * @param leftRight 闀滃ご宸︾Щ鍙崇Щ 0:鍋滄 1:宸︾Щ 2:鍙崇Щ
+ * @param upDown 闀滃ご涓婄Щ涓嬬Щ 0:鍋滄 1:涓婄Щ 2:涓嬬Щ
+ * @param inOut 闀滃ご鏀惧ぇ缂╁皬 0:鍋滄 1:缂╁皬 2:鏀惧ぇ
+ * @param moveSpeed 闀滃ご绉诲姩閫熷害
+ * @param zoomSpeed 闀滃ご缂╂斁閫熷害
*/
@Override
public boolean ptzCmd(Device device, String channelId, int leftRight, int upDown, int inOut, int moveSpeed,
@@ -233,7 +235,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;
@@ -269,7 +271,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) {
@@ -324,34 +326,62 @@
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");
- }
- 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();
-// Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, fromTag, null, ssrc);
+ if (seniorSdp) {
+ if("TCP-PASSIVE".equals(streamMode)) {
+ content.append("m=video "+ mediaPort +" TCP/RTP/AVP 96 126 125 99 34 98 97\r\n");
+ }else if ("TCP-ACTIVE".equals(streamMode)) {
+ content.append("m=video "+ mediaPort +" TCP/RTP/AVP 96 126 125 99 34 98 97\r\n");
+ }else if("UDP".equals(streamMode)) {
+ content.append("m=video "+ mediaPort +" RTP/AVP 96 126 125 99 34 98 97\r\n");
+ }
+ content.append("a=recvonly\r\n");
+ content.append("a=rtpmap:96 PS/90000\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");
+ 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("y="+ssrc+"\r\n");//ssrc
Request request = headerProvider.createInviteRequest(device, channelId, content.toString(), null, "live", null, ssrc);
@@ -387,7 +417,6 @@
subscribe.addSubscribe(ZLMHttpHookSubscribe.HookType.on_publish, subscribeKey, event);
- //
StringBuffer content = new StringBuffer(200);
content.append("v=0\r\n");
content.append("o="+sipConfig.getSipId()+" 0 0 IN IP4 "+sipConfig.getSipIp()+"\r\n");
@@ -407,13 +436,14 @@
if (seniorSdp) {
if("TCP-PASSIVE".equals(streamMode)) {
- content.append("m=video "+ mediaPort +" TCP/RTP/AVP 126 125 99 34 98 97 96\r\n");
+ content.append("m=video "+ mediaPort +" TCP/RTP/AVP 96 126 125 99 34 98 97\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");
+ content.append("m=video "+ mediaPort +" TCP/RTP/AVP 96 126 125 99 34 98 97\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("m=video "+ mediaPort +" RTP/AVP 96 126 125 99 34 98 97\r\n");
}
content.append("a=recvonly\r\n");
+ content.append("a=rtpmap:96 PS/90000\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");
@@ -422,7 +452,6 @@
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");
@@ -491,16 +520,16 @@
if (dialog == null) {
return;
}
-
-
-
Request byeRequest = dialog.createRequest(Request.BYE);
SipURI byeURI = (SipURI) byeRequest.getRequestURI();
String vh = transaction.getRequest().getHeader(ViaHeader.NAME).toString();
Pattern p = Pattern.compile("(\\d+\\.\\d+\\.\\d+\\.\\d+)\\:(\\d+)");
Matcher matcher = p.matcher(vh);
if (matcher.find()) {
- byeURI.setHost(matcher.group(1));
+ String ip = matcher.group(1);
+ byeURI.setHost(ip);
+ String port = matcher.group(2);
+ byeURI.setPort(Integer.parseInt(port));
}
ViaHeader viaHeader = (ViaHeader) byeRequest.getHeader(ViaHeader.NAME);
String protocol = viaHeader.getTransport().toUpperCase();
@@ -636,7 +665,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);
@@ -700,7 +729,6 @@
recordInfoXml.append("</Query>\r\n");
Request request = headerProvider.createMessageRequest(device, recordInfoXml.toString(), "ViaRecordInfoBranch", "FromRecordInfoTag", null);
-
transmitRequest(device, request);
} catch (SipException | ParseException | InvalidArgumentException e) {
--
Gitblit v1.8.0