Commit 946e1dc245ab629b39c1124cbe2f4cc4685b5935

Authored by 648540858
1 parent a53dce38

添加远程启动信令

doc/README.md
... ... @@ -21,7 +21,7 @@
21 21 - [X] 实时视音频点播
22 22 - [X] 设备控制
23 23 - [X] 云台控制
24   - - [ ] 远程启动
  24 + - [X] 远程启动
25 25 - [ ] 录像控制
26 26 - [ ] 报警布防/撤防
27 27 - [ ] 报警复位
... ... @@ -29,7 +29,7 @@
29 29 - [ ] 拉框放大
30 30 - [ ] 拉框缩小
31 31 - [ ] 看守位控制
32   - - [ ] 设备配置
  32 + - [X] 设备配置
33 33 - [X] 报警事件通知和分发
34 34 - [X] 设备目录订阅
35 35 - [X] 网络设备信息查询
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/ISIPCommander.java
... ... @@ -2,19 +2,17 @@ package com.genersoft.iot.vmp.gb28181.transmit.cmd;
2 2  
3 3 import com.genersoft.iot.vmp.common.StreamInfo;
4 4 import com.genersoft.iot.vmp.conf.exception.SsrcTransactionNotFoundException;
5   -import com.genersoft.iot.vmp.gb28181.bean.*;
  5 +import com.genersoft.iot.vmp.gb28181.bean.Device;
  6 +import com.genersoft.iot.vmp.gb28181.bean.DeviceAlarm;
  7 +import com.genersoft.iot.vmp.gb28181.bean.InviteStreamCallback;
6 8 import com.genersoft.iot.vmp.gb28181.event.SipSubscribe;
7 9 import com.genersoft.iot.vmp.media.zlm.ZlmHttpHookSubscribe;
8 10 import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
9 11 import com.genersoft.iot.vmp.service.bean.SSRCInfo;
10 12 import gov.nist.javax.sip.message.SIPRequest;
11 13  
12   -import javax.sip.Dialog;
13 14 import javax.sip.InvalidArgumentException;
14   -import javax.sip.PeerUnavailableException;
15 15 import javax.sip.SipException;
16   -import javax.sip.message.Message;
17   -import javax.sip.message.Request;
18 16 import java.text.ParseException;
19 17  
20 18 /**
... ... @@ -235,7 +233,7 @@ public interface ISIPCommander {
235 233 */
236 234 void deviceConfigCmd(Device device);
237 235  
238   - /**
  236 + /**
239 237 * 设备配置命令:basicParam
240 238 *
241 239 * @param device 视频设备
... ... @@ -246,7 +244,15 @@ public interface ISIPCommander {
246 244 * @param heartBeatCount 心跳超时次数(可选)
247 245 */
248 246 void deviceBasicConfigCmd(Device device, String channelId, String name, String expiration, String heartBeatInterval, String heartBeatCount, SipSubscribe.Event errorEvent) throws InvalidArgumentException, SipException, ParseException;
249   -
  247 +
  248 +
  249 + /**
  250 + * 设备配置命令:远程启动
  251 + *
  252 + * @param device 视频设备
  253 + */
  254 + void deviceTeleBootCmd(Device device, SipSubscribe.Event errorEvent) throws InvalidArgumentException, SipException, ParseException;
  255 +
250 256 /**
251 257 * 查询设备状态
252 258 *
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
... ... @@ -908,6 +908,29 @@ public class SIPCommander implements ISIPCommander {
908 908 }
909 909  
910 910 /**
  911 + * 设备配置命令:远程启动
  912 + *
  913 + * @param device 视频设备
  914 + */
  915 + @Override
  916 + public void deviceTeleBootCmd(Device device, SipSubscribe.Event errorEvent) throws InvalidArgumentException, SipException, ParseException {
  917 +
  918 + StringBuffer cmdXml = new StringBuffer(200);
  919 + String charset = device.getCharset();
  920 + cmdXml.append("<?xml version=\"1.0\" encoding=\"" + charset + "\"?>\r\n");
  921 + cmdXml.append("<Control>\r\n");
  922 + cmdXml.append("<CmdType>DeviceControl</CmdType>\r\n");
  923 + cmdXml.append("<SN>" + (int) ((Math.random() * 9 + 1) * 100000) + "</SN>\r\n");
  924 + cmdXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n");
  925 + cmdXml.append("<PTZCmd></PTZCmd>\r\n");
  926 + cmdXml.append("<TeleBoot>Boot</PTZCmd>\r\n");
  927 + cmdXml.append("</Control>\r\n");
  928 +
  929 + Request request = headerProvider.createMessageRequest(device, cmdXml.toString(), null, SipUtils.getNewFromTag(), null,sipSender.getNewCallIdHeader(sipLayer.getLocalIp(device.getLocalIp()),device.getTransport()));
  930 + sipSender.transmitRequest(sipLayer.getLocalIp(device.getLocalIp()), request, errorEvent);
  931 + }
  932 +
  933 + /**
911 934 * 查询设备状态
912 935 *
913 936 * @param device 视频设备
... ...