Commit d0f5d684a93db3a0c9a6f2373657b8f596cc47ca

Authored by panlinlin
1 parent 0f58218b

同步主线

src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/MessageRequestProcessor.java
@@ -11,9 +11,15 @@ import javax.sip.header.FromHeader; @@ -11,9 +11,15 @@ import javax.sip.header.FromHeader;
11 import javax.sip.message.Request; 11 import javax.sip.message.Request;
12 import javax.sip.message.Response; 12 import javax.sip.message.Response;
13 13
  14 +import com.alibaba.fastjson.JSONObject;
  15 +import com.genersoft.iot.vmp.conf.UserSetup;
14 import com.genersoft.iot.vmp.gb28181.bean.*; 16 import com.genersoft.iot.vmp.gb28181.bean.*;
  17 +import com.genersoft.iot.vmp.gb28181.transmit.callback.CheckForAllRecordsThread;
15 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderFroPlatform; 18 import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderFroPlatform;
  19 +import com.genersoft.iot.vmp.gb28181.utils.NumericUtil;
16 import com.genersoft.iot.vmp.storager.IRedisCatchStorage; 20 import com.genersoft.iot.vmp.storager.IRedisCatchStorage;
  21 +import com.genersoft.iot.vmp.utils.GpsUtil;
  22 +import com.genersoft.iot.vmp.utils.SpringBeanFactory;
17 import com.genersoft.iot.vmp.vmanager.platform.bean.ChannelReduce; 23 import com.genersoft.iot.vmp.vmanager.platform.bean.ChannelReduce;
18 import gov.nist.javax.sip.address.AddressImpl; 24 import gov.nist.javax.sip.address.AddressImpl;
19 import gov.nist.javax.sip.address.SipUri; 25 import gov.nist.javax.sip.address.SipUri;
@@ -49,6 +55,10 @@ import com.genersoft.iot.vmp.common.StreamInfo; @@ -49,6 +55,10 @@ import com.genersoft.iot.vmp.common.StreamInfo;
49 */ 55 */
50 public class MessageRequestProcessor extends SIPRequestAbstractProcessor { 56 public class MessageRequestProcessor extends SIPRequestAbstractProcessor {
51 57
  58 + public static volatile List<String> threadNameList = new ArrayList();
  59 +
  60 + private UserSetup userSetup = (UserSetup) SpringBeanFactory.getBean("userSetup");
  61 +
52 private final static Logger logger = LoggerFactory.getLogger(MessageRequestProcessor.class); 62 private final static Logger logger = LoggerFactory.getLogger(MessageRequestProcessor.class);
53 63
54 private SIPCommander cmder; 64 private SIPCommander cmder;
@@ -412,12 +422,12 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { @@ -412,12 +422,12 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor {
412 String platformId = uri.getUser(); 422 String platformId = uri.getUser();
413 // if (deviceListElement == null) { // 存在DeviceList则为响应 catalog, 不存在DeviceList则为查询请求 423 // if (deviceListElement == null) { // 存在DeviceList则为响应 catalog, 不存在DeviceList则为查询请求
414 if (name.equalsIgnoreCase("Query")) { // 区分是Response——查询响应,还是Query——查询请求 424 if (name.equalsIgnoreCase("Query")) { // 区分是Response——查询响应,还是Query——查询请求
415 - // TODO 后续将代码拆分 425 + // TODO 后续将代码拆分
416 ParentPlatform parentPlatform = storager.queryParentPlatById(platformId); 426 ParentPlatform parentPlatform = storager.queryParentPlatById(platformId);
417 if (parentPlatform == null) { 427 if (parentPlatform == null) {
418 response404Ack(evt); 428 response404Ack(evt);
419 return; 429 return;
420 - }else { 430 + } else {
421 // 回复200 OK 431 // 回复200 OK
422 responseAck(evt); 432 responseAck(evt);
423 433
@@ -425,7 +435,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { @@ -425,7 +435,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor {
425 String sn = snElement.getText(); 435 String sn = snElement.getText();
426 // 准备回复通道信息 436 // 准备回复通道信息
427 List<ChannelReduce> channelReduces = storager.queryChannelListInParentPlatform(parentPlatform.getServerGBId()); 437 List<ChannelReduce> channelReduces = storager.queryChannelListInParentPlatform(parentPlatform.getServerGBId());
428 - if (channelReduces.size() >0 ) { 438 + if (channelReduces.size() > 0) {
429 for (ChannelReduce channelReduce : channelReduces) { 439 for (ChannelReduce channelReduce : channelReduces) {
430 DeviceChannel deviceChannel = storager.queryChannel(channelReduce.getDeviceId(), channelReduce.getChannelId()); 440 DeviceChannel deviceChannel = storager.queryChannel(channelReduce.getDeviceId(), channelReduce.getChannelId());
431 cmderFroPlatform.catalogQuery(deviceChannel, parentPlatform, sn, fromHeader.getTag(), channelReduces.size()); 441 cmderFroPlatform.catalogQuery(deviceChannel, parentPlatform, sn, fromHeader.getTag(), channelReduces.size());
@@ -435,7 +445,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { @@ -435,7 +445,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor {
435 } 445 }
436 446
437 447
438 - }else { 448 + } else {
439 Iterator<Element> deviceListIterator = deviceListElement.elementIterator(); 449 Iterator<Element> deviceListIterator = deviceListElement.elementIterator();
440 if (deviceListIterator != null) { 450 if (deviceListIterator != null) {
441 Device device = storager.queryVideoDevice(deviceId); 451 Device device = storager.queryVideoDevice(deviceId);
@@ -465,76 +475,77 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { @@ -465,76 +475,77 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor {
465 deviceChannel.setStatus(0); 475 deviceChannel.setStatus(0);
466 } 476 }
467 477
468 - deviceChannel.setManufacture(XmlUtil.getText(itemDevice, "Manufacturer"));  
469 - deviceChannel.setModel(XmlUtil.getText(itemDevice, "Model"));  
470 - deviceChannel.setOwner(XmlUtil.getText(itemDevice, "Owner"));  
471 - deviceChannel.setCivilCode(XmlUtil.getText(itemDevice, "CivilCode"));  
472 - deviceChannel.setBlock(XmlUtil.getText(itemDevice, "Block"));  
473 - deviceChannel.setAddress(XmlUtil.getText(itemDevice, "Address"));  
474 - if (XmlUtil.getText(itemDevice, "Parental") == null || XmlUtil.getText(itemDevice, "Parental") == "") {  
475 - deviceChannel.setParental(0);  
476 - } else {  
477 - deviceChannel.setParental(Integer.parseInt(XmlUtil.getText(itemDevice, "Parental")));  
478 - }  
479 - deviceChannel.setParentId(XmlUtil.getText(itemDevice, "ParentID"));  
480 - if (XmlUtil.getText(itemDevice, "SafetyWay") == null || XmlUtil.getText(itemDevice, "SafetyWay")== "") {  
481 - deviceChannel.setSafetyWay(0);  
482 - } else {  
483 - deviceChannel.setSafetyWay(Integer.parseInt(XmlUtil.getText(itemDevice, "SafetyWay")));  
484 - }  
485 - if (XmlUtil.getText(itemDevice, "RegisterWay") == null || XmlUtil.getText(itemDevice, "RegisterWay") =="") {  
486 - deviceChannel.setRegisterWay(1);  
487 - } else {  
488 - deviceChannel.setRegisterWay(Integer.parseInt(XmlUtil.getText(itemDevice, "RegisterWay")));  
489 - }  
490 - deviceChannel.setCertNum(XmlUtil.getText(itemDevice, "CertNum"));  
491 - if (XmlUtil.getText(itemDevice, "Certifiable") == null || XmlUtil.getText(itemDevice, "Certifiable") == "") {  
492 - deviceChannel.setCertifiable(0);  
493 - } else {  
494 - deviceChannel.setCertifiable(Integer.parseInt(XmlUtil.getText(itemDevice, "Certifiable")));  
495 - }  
496 - if (XmlUtil.getText(itemDevice, "ErrCode") == null || XmlUtil.getText(itemDevice, "ErrCode") == "") {  
497 - deviceChannel.setErrCode(0);  
498 - } else {  
499 - deviceChannel.setErrCode(Integer.parseInt(XmlUtil.getText(itemDevice, "ErrCode")));  
500 - }  
501 - deviceChannel.setEndTime(XmlUtil.getText(itemDevice, "EndTime"));  
502 - deviceChannel.setSecrecy(XmlUtil.getText(itemDevice, "Secrecy"));  
503 - deviceChannel.setIpAddress(XmlUtil.getText(itemDevice, "IPAddress"));  
504 - if (XmlUtil.getText(itemDevice, "Port") == null || XmlUtil.getText(itemDevice, "Port") =="") {  
505 - deviceChannel.setPort(0);  
506 - } else {  
507 - deviceChannel.setPort(Integer.parseInt(XmlUtil.getText(itemDevice, "Port")));  
508 - }  
509 - deviceChannel.setPassword(XmlUtil.getText(itemDevice, "Password"));  
510 - if (XmlUtil.getText(itemDevice, "Longitude") == null || XmlUtil.getText(itemDevice, "Longitude") == "") {  
511 - deviceChannel.setLongitude(0.00);  
512 - } else {  
513 - deviceChannel.setLongitude(Double.parseDouble(XmlUtil.getText(itemDevice, "Longitude")));  
514 - }  
515 - if (XmlUtil.getText(itemDevice, "Latitude") == null || XmlUtil.getText(itemDevice, "Latitude") =="") {  
516 - deviceChannel.setLatitude(0.00);  
517 - } else {  
518 - deviceChannel.setLatitude(Double.parseDouble(XmlUtil.getText(itemDevice, "Latitude")));  
519 - }  
520 - if (XmlUtil.getText(itemDevice, "PTZType") == null || XmlUtil.getText(itemDevice, "PTZType") == "") {  
521 - deviceChannel.setPTZType(0);  
522 - } else {  
523 - deviceChannel.setPTZType(Integer.parseInt(XmlUtil.getText(itemDevice, "PTZType"))); 478 + deviceChannel.setManufacture(XmlUtil.getText(itemDevice, "Manufacturer"));
  479 + deviceChannel.setModel(XmlUtil.getText(itemDevice, "Model"));
  480 + deviceChannel.setOwner(XmlUtil.getText(itemDevice, "Owner"));
  481 + deviceChannel.setCivilCode(XmlUtil.getText(itemDevice, "CivilCode"));
  482 + deviceChannel.setBlock(XmlUtil.getText(itemDevice, "Block"));
  483 + deviceChannel.setAddress(XmlUtil.getText(itemDevice, "Address"));
  484 + if (XmlUtil.getText(itemDevice, "Parental") == null || XmlUtil.getText(itemDevice, "Parental") == "") {
  485 + deviceChannel.setParental(0);
  486 + } else {
  487 + deviceChannel.setParental(Integer.parseInt(XmlUtil.getText(itemDevice, "Parental")));
  488 + }
  489 + deviceChannel.setParentId(XmlUtil.getText(itemDevice, "ParentID"));
  490 + if (XmlUtil.getText(itemDevice, "SafetyWay") == null || XmlUtil.getText(itemDevice, "SafetyWay") == "") {
  491 + deviceChannel.setSafetyWay(0);
  492 + } else {
  493 + deviceChannel.setSafetyWay(Integer.parseInt(XmlUtil.getText(itemDevice, "SafetyWay")));
  494 + }
  495 + if (XmlUtil.getText(itemDevice, "RegisterWay") == null || XmlUtil.getText(itemDevice, "RegisterWay") == "") {
  496 + deviceChannel.setRegisterWay(1);
  497 + } else {
  498 + deviceChannel.setRegisterWay(Integer.parseInt(XmlUtil.getText(itemDevice, "RegisterWay")));
  499 + }
  500 + deviceChannel.setCertNum(XmlUtil.getText(itemDevice, "CertNum"));
  501 + if (XmlUtil.getText(itemDevice, "Certifiable") == null || XmlUtil.getText(itemDevice, "Certifiable") == "") {
  502 + deviceChannel.setCertifiable(0);
  503 + } else {
  504 + deviceChannel.setCertifiable(Integer.parseInt(XmlUtil.getText(itemDevice, "Certifiable")));
  505 + }
  506 + if (XmlUtil.getText(itemDevice, "ErrCode") == null || XmlUtil.getText(itemDevice, "ErrCode") == "") {
  507 + deviceChannel.setErrCode(0);
  508 + } else {
  509 + deviceChannel.setErrCode(Integer.parseInt(XmlUtil.getText(itemDevice, "ErrCode")));
  510 + }
  511 + deviceChannel.setEndTime(XmlUtil.getText(itemDevice, "EndTime"));
  512 + deviceChannel.setSecrecy(XmlUtil.getText(itemDevice, "Secrecy"));
  513 + deviceChannel.setIpAddress(XmlUtil.getText(itemDevice, "IPAddress"));
  514 + if (XmlUtil.getText(itemDevice, "Port") == null || XmlUtil.getText(itemDevice, "Port") == "") {
  515 + deviceChannel.setPort(0);
  516 + } else {
  517 + deviceChannel.setPort(Integer.parseInt(XmlUtil.getText(itemDevice, "Port")));
  518 + }
  519 + deviceChannel.setPassword(XmlUtil.getText(itemDevice, "Password"));
  520 + if (XmlUtil.getText(itemDevice, "Longitude") == null || XmlUtil.getText(itemDevice, "Longitude") == "") {
  521 + deviceChannel.setLongitude(0.00);
  522 + } else {
  523 + deviceChannel.setLongitude(Double.parseDouble(XmlUtil.getText(itemDevice, "Longitude")));
  524 + }
  525 + if (XmlUtil.getText(itemDevice, "Latitude") == null || XmlUtil.getText(itemDevice, "Latitude") == "") {
  526 + deviceChannel.setLatitude(0.00);
  527 + } else {
  528 + deviceChannel.setLatitude(Double.parseDouble(XmlUtil.getText(itemDevice, "Latitude")));
  529 + }
  530 + if (XmlUtil.getText(itemDevice, "PTZType") == null || XmlUtil.getText(itemDevice, "PTZType") == "") {
  531 + deviceChannel.setPTZType(0);
  532 + } else {
  533 + deviceChannel.setPTZType(Integer.parseInt(XmlUtil.getText(itemDevice, "PTZType")));
  534 + }
  535 + deviceChannel.setHasAudio(true); // 默认含有音频,播放时再检查是否有音频及是否AAC
  536 + storager.updateChannel(device.getDeviceId(), deviceChannel);
524 } 537 }
525 - deviceChannel.setHasAudio(true); // 默认含有音频,播放时再检查是否有音频及是否AAC  
526 - storager.updateChannel(device.getDeviceId(), deviceChannel);  
527 - }  
528 538
529 - RequestMessage msg = new RequestMessage();  
530 - msg.setDeviceId(deviceId);  
531 - msg.setType(DeferredResultHolder.CALLBACK_CMD_CATALOG);  
532 - msg.setData(device);  
533 - deferredResultHolder.invokeResult(msg);  
534 - // 回复200 OK  
535 - responseAck(evt);  
536 - if (offLineDetector.isOnline(deviceId)) {  
537 - publisher.onlineEventPublish(deviceId, VideoManagerConstants.EVENT_ONLINE_KEEPLIVE); 539 + RequestMessage msg = new RequestMessage();
  540 + msg.setDeviceId(deviceId);
  541 + msg.setType(DeferredResultHolder.CALLBACK_CMD_CATALOG);
  542 + msg.setData(device);
  543 + deferredResultHolder.invokeResult(msg);
  544 + // 回复200 OK
  545 + responseAck(evt);
  546 + if (offLineDetector.isOnline(deviceId)) {
  547 + publisher.onlineEventPublish(deviceId, VideoManagerConstants.EVENT_ONLINE_KEEPLIVE);
  548 + }
538 } 549 }
539 } 550 }
540 } catch (DocumentException | SipException | InvalidArgumentException | ParseException e) { 551 } catch (DocumentException | SipException | InvalidArgumentException | ParseException e) {
@@ -723,11 +734,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor { @@ -723,11 +734,7 @@ public class MessageRequestProcessor extends SIPRequestAbstractProcessor {
723 } 734 }
724 } 735 }
725 736
726 - /**  
727 - * 收到MediaStatus消息处理  
728 - *  
729 - * @param evt  
730 - */ 737 +
731 private void processMessageMediaStatus(RequestEvent evt){ 738 private void processMessageMediaStatus(RequestEvent evt){
732 try { 739 try {
733 // 回复200 OK 740 // 回复200 OK
src/main/resources/wvp.sqlite
No preview for this file type