Commit d3578a957d17af13ef6b17bfffdb9335111f92e4

Authored by panlinlin
1 parent 568141b2

添加对水星云台控制的支持

src/main/java/com/genersoft/iot/vmp/gb28181/auth/DigestServerAuthenticationHelper.java
... ... @@ -235,55 +235,4 @@ public class DigestServerAuthenticationHelper {
235 235 return mdString.equals(response);
236 236  
237 237 }
238   -
239   -
240   - public static void main(String[] args) throws NoSuchAlgorithmException {
241   - MessageDigest messageDigest2 = MessageDigest.getInstance(DEFAULT_ALGORITHM);
242   - String realm = "DS-2CD2520F";
243   - String username = "admin";
244   - String passwd = "12345";
245   -
246   - String nonce = "4d6a553452444d30525441364e6d4d304e6a68684e47553d";
247   -
248   - String uri = "/ISAPI/Streaming/channels/101/picture";
249   - // qop 保护质量 包含auth(默认的)和auth-int(增加了报文完整性检测)两种策略
250   - String qop = "auth";
251   -
252   - // 客户端随机数,这是一个不透明的字符串值,由客户端提供,并且客户端和服务器都会使用,以避免用明文文本。
253   - // 这使得双方都可以查验对方的身份,并对消息的完整性提供一些保护
254   - String cNonce = "C1A5298F939E87E8F962A5EDFC206918";
255   -
256   - // nonce计数器,是一个16进制的数值,表示同一nonce下客户端发送出请求的数量
257   - int nc = 1;
258   -
259   - String A1 = username + ":" + realm + ":" + passwd;
260   - System.out.println("A1: " + A1);
261   - String A2 = "GET" + ":" + uri.toString();
262   - System.out.println("A2: " + A2);
263   - byte mdbytes[] = messageDigest2.digest(A1.getBytes());
264   - String HA1 = toHexString(mdbytes);
265   - System.out.println("HA1: " + HA1);
266   -
267   - mdbytes = messageDigest2.digest(A2.getBytes());
268   - String HA2 = toHexString(mdbytes);
269   - System.out.println("HA2: " + HA2);
270   - String cnonce = "93d4d37df32e1a85";
271   - String KD = HA1 + ":" + nonce;
272   -
273   - if (nc != -1) {
274   - KD += ":" + "00000001";
275   - }
276   - if (cnonce != null) {
277   - KD += ":" + cnonce;
278   - }
279   - if (qop != null) {
280   - KD += ":" + qop;
281   - }
282   - KD += ":" + HA2;
283   - System.out.println("KD: " + KD);
284   - mdbytes = messageDigest2.digest(KD.getBytes());
285   - String mdString = toHexString(mdbytes);
286   - String response = "3993a815e5cdaf4470e9b4f9bd41cf4a";
287   - System.out.println(mdString);
288   - }
289 238 }
... ...
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/cmd/impl/SIPCommander.java
... ... @@ -232,7 +232,7 @@ public class SIPCommander implements ISIPCommander {
232 232 ptzXml.append("</Info>\r\n");
233 233 ptzXml.append("</Control>\r\n");
234 234  
235   - Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtzTag", "ToPtzTag");
  235 + Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtzTag", null);
236 236  
237 237 transmitRequest(device, request);
238 238 return true;
... ... @@ -268,7 +268,7 @@ public class SIPCommander implements ISIPCommander {
268 268 ptzXml.append("</Info>\r\n");
269 269 ptzXml.append("</Control>\r\n");
270 270  
271   - Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtzTag", "ToPtzTag");
  271 + Request request = headerProvider.createMessageRequest(device, ptzXml.toString(), "ViaPtzBranch", "FromPtzTag", null);
272 272 transmitRequest(device, request);
273 273 return true;
274 274 } catch (SipException | ParseException | InvalidArgumentException e) {
... ... @@ -635,7 +635,7 @@ public class SIPCommander implements ISIPCommander {
635 635 catalogXml.append("<DeviceID>" + device.getDeviceId() + "</DeviceID>\r\n");
636 636 catalogXml.append("</Query>\r\n");
637 637  
638   - Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "ViaDeviceInfoBranch", "FromDeviceInfoTag", "ToDeviceInfoTag");
  638 + Request request = headerProvider.createMessageRequest(device, catalogXml.toString(), "ViaDeviceInfoBranch", "FromDeviceInfoTag", null);
639 639  
640 640 transmitRequest(device, request);
641 641  
... ...