From f8fe76add24fc2a26449c6b4007a303decb46d99 Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期六, 27 三月 2021 13:56:56 +0800
Subject: [PATCH] Merge pull request #74 from lawrencehj/wvp-28181-2.0
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java | 41 ++++++++++++++++++++++++++++++++++++++---
1 files changed, 38 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
index e97629b..5a24202 100644
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
@@ -93,7 +93,7 @@
private static final String MESSAGE_ALARM = "Alarm";
private static final String MESSAGE_RECORD_INFO = "RecordInfo";
private static final String MESSAGE_MEDIA_STATUS = "MediaStatus";
- // private static final String MESSAGE_BROADCAST = "Broadcast";
+ private static final String MESSAGE_BROADCAST = "Broadcast";
private static final String MESSAGE_DEVICE_STATUS = "DeviceStatus";
private static final String MESSAGE_DEVICE_CONTROL = "DeviceControl";
private static final String MESSAGE_DEVICE_CONFIG = "DeviceConfig";
@@ -123,7 +123,7 @@
logger.info("鎺ユ敹鍒癈atalog娑堟伅");
processMessageCatalogList(evt);
} else if (MESSAGE_DEVICE_INFO.equals(cmd)) {
- //DeviceInfo娑堟伅澶勭悊
+ // DeviceInfo娑堟伅澶勭悊
processMessageDeviceInfo(evt);
} else if (MESSAGE_DEVICE_STATUS.equals(cmd)) {
// DeviceStatus娑堟伅澶勭悊
@@ -149,6 +149,9 @@
} else if (MESSAGE_PRESET_QUERY.equals(cmd)) {
logger.info("鎺ユ敹鍒癙resetQuery娑堟伅");
processMessagePresetQuery(evt);
+ } else if (MESSAGE_BROADCAST.equals(cmd)) {
+ // Broadcast娑堟伅澶勭悊
+ processMessageBroadcast(evt);
} else {
logger.info("鎺ユ敹鍒版秷鎭細" + cmd);
responseAck(evt);
@@ -298,7 +301,7 @@
// 杩滅▼鍚姩鍔熻兘
if (!XmlUtil.isEmpty(XmlUtil.getText(rootElement, "TeleBoot"))) {
if (deviceId.equals(targetGBId)) {
- // 杩滅▼鍚姩鍔熻兘锛氶渶瑕佸湪閲嶆柊鍚姩绋嬪簭鍚庡厛瀵筍ipStack瑙g粦
+ // 杩滅▼鍚姩鏈钩鍙帮細闇�瑕佸湪閲嶆柊鍚姩绋嬪簭鍚庡厛瀵筍ipStack瑙g粦
logger.info("鎵ц杩滅▼鍚姩鏈钩鍙板懡浠�");
ParentPlatform parentPlatform = storager.queryParentPlatById(platformId);
cmderFroPlatform.unregister(parentPlatform, null, null);
@@ -333,6 +336,7 @@
// 杩滅▼鍚姩鎸囧畾璁惧
}
}
+ // 浜戝彴/鍓嶇鎺у埗鍛戒护
if (!XmlUtil.isEmpty(XmlUtil.getText(rootElement,"PTZCmd")) && !deviceId.equals(targetGBId)) {
String cmdString = XmlUtil.getText(rootElement,"PTZCmd");
Device device = storager.queryVideoDeviceByPlatformIdAndChannelId(platformId, deviceId);
@@ -895,6 +899,37 @@
}
}
+ /**
+ * 澶勭悊AudioBroadcast璇煶骞挎挱Message
+ *
+ * @param evt
+ */
+ private void processMessageBroadcast(RequestEvent evt) {
+ try {
+ Element rootElement = getRootElement(evt);
+ String deviceId = XmlUtil.getText(rootElement, "DeviceID");
+ // 鍥炲200 OK
+ responseAck(evt);
+ if (rootElement.getName().equals("Response")) {
+ // 姝ゅ鏄鏈钩鍙板彂鍑築roadcast鎸囦护鐨勫簲绛�
+ JSONObject json = new JSONObject();
+ XmlUtil.node2Json(rootElement, json);
+ if (logger.isDebugEnabled()) {
+ logger.debug(json.toJSONString());
+ }
+ RequestMessage msg = new RequestMessage();
+ msg.setDeviceId(deviceId);
+ msg.setType(DeferredResultHolder.CALLBACK_CMD_BROADCAST);
+ msg.setData(json);
+ deferredResultHolder.invokeResult(msg);
+ } else {
+ // 姝ゅ鏄笂绾у彂鍑虹殑Broadcast鎸囦护
+ }
+ } catch (ParseException | SipException | InvalidArgumentException | DocumentException e) {
+ e.printStackTrace();
+ }
+ }
+
/***
* 鍥炲200 OK
--
Gitblit v1.8.0