From 0e9cb5ceb6baeed953bd64a4b71d9d6bacb1798c Mon Sep 17 00:00:00 2001
From: 648540858 <648540858@qq.com>
Date: 星期三, 06 九月 2023 09:31:43 +0800
Subject: [PATCH] Merge pull request #1048 from lunasaw/wvp-dev-0901
---
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java | 203 +++++++++++++++++++++++++++++++++++++-------------
1 files changed, 148 insertions(+), 55 deletions(-)
diff --git a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
old mode 100644
new mode 100755
index 582fbaf..06a08e2
--- a/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
+++ b/src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommanderFroPlatform.java
@@ -9,7 +9,7 @@
import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommanderForPlatform;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.SIPRequestHeaderPlarformProvider;
import com.genersoft.iot.vmp.gb28181.utils.SipUtils;
-import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory;
+import com.genersoft.iot.vmp.media.zlm.ZLMServerFactory;
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import com.genersoft.iot.vmp.service.IMediaServerService;
import com.genersoft.iot.vmp.service.bean.GPSMsgInfo;
@@ -56,7 +56,7 @@
private SipSubscribe sipSubscribe;
@Autowired
- private ZLMRTPServerFactory zlmrtpServerFactory;
+ private ZLMServerFactory zlmServerFactory;
@Autowired
private SipLayer sipLayer;
@@ -209,59 +209,152 @@
// 琛屾斂鍖哄垝鍒嗙粍鍙渶瑕佽繖涓ら」灏卞彲浠�
catalogXml.append("<DeviceID>" + channel.getChannelId() + "</DeviceID>\r\n");
catalogXml.append("<Name>" + channel.getName() + "</Name>\r\n");
- if (channel.getParentId() != null) {
- // 涓氬姟鍒嗙粍鍔犱笂杩欎竴椤瑰嵆鍙紝鎻愰珮鍏煎鎬э紝
- catalogXml.append("<ParentID>" + channel.getParentId() + "</ParentID>\r\n");
-// catalogXml.append("<ParentID>" + parentPlatform.getDeviceGBId() + "/" + channel.getParentId() + "</ParentID>\r\n");
- }
- if (channel.getChannelId().length() == 20 && Integer.parseInt(channel.getChannelId().substring(10, 13)) == 216) {
- // 铏氭嫙缁勭粐澧炲姞BusinessGroupID瀛楁
- catalogXml.append("<BusinessGroupID>" + channel.getParentId() + "</BusinessGroupID>\r\n");
- }
- if (!channel.getChannelId().equals(parentPlatform.getDeviceGBId())) {
- catalogXml.append("<Parental>" + channel.getParental() + "</Parental>\r\n");
- if (channel.getParental() == 0) {
- catalogXml.append("<Status>" + (channel.getStatus() == 0 ? "OFF" : "ON") + "</Status>\r\n");
+ if (channel.getChannelId().length() <= 8) {
+ catalogXml.append("</Item>\r\n");
+ continue;
+ }else {
+ if (channel.getChannelId().length() != 20) {
+ catalogXml.append("</Item>\r\n");
+ logger.warn("[缂栧彿闀垮害寮傚父] {} 闀垮害閿欒锛岃浣跨敤20浣嶉暱搴︾殑鍥芥爣缂栧彿,褰撳墠闀垮害锛歿}", channel.getChannelId(), channel.getChannelId().length());
+ catalogXml.append("</Item>\r\n");
+ continue;
}
- }
- if (channel.getParental() == 0) {
- // 閫氶亾椤�
- catalogXml.append("<Manufacturer>" + channel.getManufacture() + "</Manufacturer>\r\n");
- catalogXml.append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n");
- catalogXml.append("<RegisterWay>" + channel.getRegisterWay() + "</RegisterWay>\r\n");
- String civilCode = channel.getCivilCode() == null?parentPlatform.getAdministrativeDivision() : channel.getCivilCode();
- if (channel.getChannelType() != 2) { // 涓氬姟鍒嗙粍/铏氭嫙缁勭粐/琛屾斂鍖哄垝 涓嶈缃互涓嬪睘鎬�
- catalogXml.append("<Model>" + channel.getModel() + "</Model>\r\n");
- catalogXml.append("<Owner>" + parentPlatform.getDeviceGBId()+ "</Owner>\r\n");
- catalogXml.append("<CivilCode>" + civilCode + "</CivilCode>\r\n");
- if (channel.getAddress() == null) {
- catalogXml.append("<Address></Address>\r\n");
- }else {
- catalogXml.append("<Address>" + channel.getAddress() + "</Address>\r\n");
- }
- catalogXml.append("<Block>" + channel.getBlock() + "</Block>\r\n");
- catalogXml.append("<SafetyWay>" + channel.getSafetyWay() + "</SafetyWay>\r\n");
- catalogXml.append("<CertNum>" + channel.getCertNum() + "</CertNum>\r\n");
- catalogXml.append("<Certifiable>" + channel.getCertifiable() + "</Certifiable>\r\n");
- catalogXml.append("<ErrCode>" + channel.getErrCode() + "</ErrCode>\r\n");
- catalogXml.append("<EndTime>" + channel.getEndTime() + "</EndTime>\r\n");
- catalogXml.append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n");
- catalogXml.append("<IPAddress>" + channel.getIpAddress() + "</IPAddress>\r\n");
- catalogXml.append("<Port>" + channel.getPort() + "</Port>\r\n");
- catalogXml.append("<Password>" + channel.getPort() + "</Password>\r\n");
- catalogXml.append("<PTZType>" + channel.getPTZType() + "</PTZType>\r\n");
- catalogXml.append("<Status>" + (channel.getStatus() == 1?"ON":"OFF") + "</Status>\r\n");
- catalogXml.append("<Longitude>" +
- (channel.getLongitudeWgs84() != 0? channel.getLongitudeWgs84():channel.getLongitude())
- + "</Longitude>\r\n");
- catalogXml.append("<Latitude>" +
- (channel.getLatitudeWgs84() != 0? channel.getLatitudeWgs84():channel.getLatitude())
- + "</Latitude>\r\n");
+ switch (Integer.parseInt(channel.getChannelId().substring(10, 13))){
+ case 200:
+// catalogXml.append("<Manufacturer>涓夋案鍗庨��</Manufacturer>\r\n");
+// GitUtil gitUtil = SpringBeanFactory.getBean("gitUtil");
+// String model = (gitUtil == null || gitUtil.getBuildVersion() == null)?"1.0": gitUtil.getBuildVersion();
+// catalogXml.append("<Model>" + model + "</Manufacturer>\r\n");
+// catalogXml.append("<Owner>涓夋案鍗庨��</Owner>\r\n");
+ if (channel.getCivilCode() != null) {
+ catalogXml.append("<CivilCode>"+channel.getCivilCode()+"</CivilCode>\r\n");
+ }else {
+ catalogXml.append("<CivilCode></CivilCode>\r\n");
+ }
+ catalogXml.append("<RegisterWay>1</RegisterWay>\r\n");
+ catalogXml.append("<Secrecy>0</Secrecy>\r\n");
+ break;
+ case 215:
+ if (!ObjectUtils.isEmpty(channel.getParentId())) {
+ catalogXml.append("<ParentID>" + channel.getParentId() + "</ParentID>\r\n");
+ }
+
+ break;
+ case 216:
+ if (!ObjectUtils.isEmpty(channel.getParentId())) {
+ catalogXml.append("<ParentID>" + channel.getParentId() + "</ParentID>\r\n");
+ }else {
+ catalogXml.append("<ParentID></ParentID>\r\n");
+ }
+ if (!ObjectUtils.isEmpty(channel.getBusinessGroupId())) {
+ catalogXml.append("<BusinessGroupID>" + channel.getBusinessGroupId() + "</BusinessGroupID>\r\n");
+ }else {
+ catalogXml.append("<BusinessGroupID></BusinessGroupID>\r\n");
+ }
+ break;
+ default:
+ // 閫氶亾椤�
+ if (channel.getManufacture() != null) {
+ catalogXml.append("<Manufacturer>" + channel.getManufacture() + "</Manufacturer>\r\n");
+ }else {
+ catalogXml.append("<Manufacturer></Manufacturer>\r\n");
+ }
+ if (channel.getSecrecy() != null) {
+ catalogXml.append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n");
+ }else {
+ catalogXml.append("<Secrecy></Secrecy>\r\n");
+ }
+ catalogXml.append("<RegisterWay>" + channel.getRegisterWay() + "</RegisterWay>\r\n");
+ if (channel.getModel() != null) {
+ catalogXml.append("<Model>" + channel.getModel() + "</Model>\r\n");
+ }else {
+ catalogXml.append("<Model></Model>\r\n");
+ }
+ if (channel.getOwner() != null) {
+ catalogXml.append("<Owner>" + channel.getOwner()+ "</Owner>\r\n");
+ }else {
+ catalogXml.append("<Owner></Owner>\r\n");
+ }
+ if (channel.getCivilCode() != null) {
+ catalogXml.append("<CivilCode>" + channel.getCivilCode() + "</CivilCode>\r\n");
+ }else {
+ catalogXml.append("<CivilCode></CivilCode>\r\n");
+ }
+ if (channel.getAddress() == null) {
+ catalogXml.append("<Address></Address>\r\n");
+ }else {
+ catalogXml.append("<Address>" + channel.getAddress() + "</Address>\r\n");
+ }
+ if (!ObjectUtils.isEmpty(channel.getParentId())) {
+ catalogXml.append("<ParentID>" + channel.getParentId() + "</ParentID>\r\n");
+ }else {
+ catalogXml.append("<ParentID></ParentID>\r\n");
+ }
+ if (!ObjectUtils.isEmpty(channel.getBlock())) {
+ catalogXml.append("<Block>" + channel.getBlock() + "</Block>\r\n");
+ }else {
+ catalogXml.append("<Block></Block>\r\n");
+ }
+ if (!ObjectUtils.isEmpty(channel.getSafetyWay())) {
+ catalogXml.append("<SafetyWay>" + channel.getSafetyWay() + "</SafetyWay>\r\n");
+ }else {
+ catalogXml.append("<SafetyWay></SafetyWay>\r\n");
+ }
+ if (!ObjectUtils.isEmpty(channel.getCertNum())) {
+ catalogXml.append("<CertNum>" + channel.getCertNum() + "</CertNum>\r\n");
+ }else {
+ catalogXml.append("<CertNum></CertNum>\r\n");
+ }
+ if (!ObjectUtils.isEmpty(channel.getCertifiable())) {
+ catalogXml.append("<Certifiable>" + channel.getCertifiable() + "</Certifiable>\r\n");
+ }else {
+ catalogXml.append("<Certifiable></Certifiable>\r\n");
+ }
+ if (!ObjectUtils.isEmpty(channel.getErrCode())) {
+ catalogXml.append("<ErrCode>" + channel.getErrCode() + "</ErrCode>\r\n");
+ }else {
+ catalogXml.append("<ErrCode></ErrCode>\r\n");
+ }
+ if (!ObjectUtils.isEmpty(channel.getEndTime())) {
+ catalogXml.append("<EndTime>" + channel.getEndTime() + "</EndTime>\r\n");
+ }else {
+ catalogXml.append("<EndTime></EndTime>\r\n");
+ }
+ if (!ObjectUtils.isEmpty(channel.getSecrecy())) {
+ catalogXml.append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n");
+ }else {
+ catalogXml.append("<Secrecy></Secrecy>\r\n");
+ }
+ if (!ObjectUtils.isEmpty(channel.getIpAddress())) {
+ catalogXml.append("<IPAddress>" + channel.getIpAddress() + "</IPAddress>\r\n");
+ }else {
+ catalogXml.append("<IPAddress></IPAddress>\r\n");
+ }
+ catalogXml.append("<Port>" + channel.getPort() + "</Port>\r\n");
+ if (!ObjectUtils.isEmpty(channel.getPassword())) {
+ catalogXml.append("<Password>" + channel.getPassword() + "</Password>\r\n");
+ }else {
+ catalogXml.append("<Password></Password>\r\n");
+ }
+ if (!ObjectUtils.isEmpty(channel.getPTZType())) {
+ catalogXml.append("<PTZType>" + channel.getPTZType() + "</PTZType>\r\n");
+ }else {
+ catalogXml.append("<PTZType></PTZType>\r\n");
+ }
+ catalogXml.append("<Status>" + (channel.isStatus() ?"ON":"OFF") + "</Status>\r\n");
+
+ catalogXml.append("<Longitude>" +
+ (channel.getLongitudeWgs84() != 0? channel.getLongitudeWgs84():channel.getLongitude())
+ + "</Longitude>\r\n");
+ catalogXml.append("<Latitude>" +
+ (channel.getLatitudeWgs84() != 0? channel.getLatitudeWgs84():channel.getLatitude())
+ + "</Latitude>\r\n");
+ break;
}
+ catalogXml.append("</Item>\r\n");
}
- catalogXml.append("</Item>\r\n");
}
}
@@ -377,11 +470,11 @@
* @return
*/
@Override
- public void deviceStatusResponse(ParentPlatform parentPlatform,String channelId, String sn, String fromTag,int status) throws SipException, InvalidArgumentException, ParseException {
+ public void deviceStatusResponse(ParentPlatform parentPlatform,String channelId, String sn, String fromTag,boolean status) throws SipException, InvalidArgumentException, ParseException {
if (parentPlatform == null) {
return ;
}
- String statusStr = (status==1)?"ONLINE":"OFFLINE";
+ String statusStr = (status)?"ONLINE":"OFFLINE";
String characterSet = parentPlatform.getCharacterSet();
StringBuffer deviceStatusXml = new StringBuffer(600);
deviceStatusXml.append("<?xml version=\"1.0\" encoding=\"" + characterSet + "\"?>\r\n")
@@ -542,7 +635,7 @@
catalogXml.append("<Manufacturer>" + channel.getManufacture() + "</Manufacturer>\r\n")
.append("<Secrecy>" + channel.getSecrecy() + "</Secrecy>\r\n")
.append("<RegisterWay>" + channel.getRegisterWay() + "</RegisterWay>\r\n")
- .append("<Status>" + (channel.getStatus() == 0 ? "OFF" : "ON") + "</Status>\r\n");
+ .append("<Status>" + (channel.isStatus() ? "ON" : "OFF") + "</Status>\r\n");
if (channel.getChannelType() != 2) { // 涓氬姟鍒嗙粍/铏氭嫙缁勭粐/琛屾斂鍖哄垝 涓嶈缃互涓嬪睘鎬�
catalogXml.append("<Model>" + channel.getModel() + "</Model>\r\n")
@@ -638,7 +731,7 @@
.append("<Response>\r\n")
.append("<CmdType>RecordInfo</CmdType>\r\n")
.append("<SN>" +recordInfo.getSn() + "</SN>\r\n")
- .append("<DeviceID>" + recordInfo.getDeviceId() + "</DeviceID>\r\n")
+ .append("<DeviceID>" + recordInfo.getChannelId() + "</DeviceID>\r\n")
.append("<SumNum>" + recordInfo.getSumNum() + "</SumNum>\r\n");
if (recordInfo.getRecordList() == null ) {
recordXml.append("<RecordList Num=\"0\">\r\n");
@@ -727,7 +820,7 @@
MediaServerItem mediaServerItem = mediaServerService.getOne(mediaServerId);
if (mediaServerItem != null) {
mediaServerService.releaseSsrc(mediaServerItem.getId(), sendRtpItem.getSsrc());
- zlmrtpServerFactory.closeRtpServer(mediaServerItem, sendRtpItem.getStreamId());
+ zlmServerFactory.closeRtpServer(mediaServerItem, sendRtpItem.getStreamId());
}
SIPRequest byeRequest = headerProviderPlatformProvider.createByeRequest(parentPlatform, sendRtpItem);
if (byeRequest == null) {
--
Gitblit v1.8.0