| 
					
				 | 
			
			
				@@ -0,0 +1,90 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.query.cmd; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.genersoft.iot.vmp.conf.SipConfig; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.genersoft.iot.vmp.gb28181.bean.*; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.genersoft.iot.vmp.gb28181.event.EventPublisher; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.genersoft.iot.vmp.gb28181.transmit.callback.DeferredResultHolder; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.genersoft.iot.vmp.gb28181.transmit.cmd.impl.SIPCommanderFroPlatform; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.IMessageHandler; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.genersoft.iot.vmp.gb28181.transmit.event.request.impl.message.query.QueryMessageHandler; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.genersoft.iot.vmp.storager.IVideoManagerStorager; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import com.genersoft.iot.vmp.vmanager.gb28181.platform.bean.ChannelReduce; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.dom4j.Element; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.slf4j.Logger; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.slf4j.LoggerFactory; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.InitializingBean; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.beans.factory.annotation.Autowired; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import org.springframework.stereotype.Component; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.sip.InvalidArgumentException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.sip.RequestEvent; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.sip.SipException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.sip.header.FromHeader; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import javax.sip.message.Response; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.text.ParseException; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import java.util.List; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+@Component 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+public class RecordInfoQueryMessageHandler extends SIPRequestProcessorParent implements InitializingBean, IMessageHandler { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private Logger logger = LoggerFactory.getLogger(RecordInfoQueryMessageHandler.class); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private final String cmdType = "RecordInfo"; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private QueryMessageHandler queryMessageHandler; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private IVideoManagerStorager storager; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private SIPCommanderFroPlatform cmderFroPlatform; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private SipConfig config; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Autowired 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    private EventPublisher publisher; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void afterPropertiesSet() throws Exception { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        queryMessageHandler.addHandler(cmdType, this); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void handForDevice(RequestEvent evt, Device device, Element element) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    @Override 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void handForPlatform(RequestEvent evt, ParentPlatform parentPlatform, Element rootElement) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        String key = DeferredResultHolder.CALLBACK_CMD_CATALOG + parentPlatform.getServerGBId(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        FromHeader fromHeader = (FromHeader) evt.getRequest().getHeader(FromHeader.NAME); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 回复200 OK 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            responseAck(evt, Response.OK); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Element snElement = rootElement.element("SN"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String sn = snElement.getText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Element deviceIDElement = rootElement.element("DeviceID"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String channelId = deviceIDElement.getText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Element startTimeElement = rootElement.element("StartTime"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String startTime = startTimeElement.getText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            Element endTimeElement = rootElement.element("EndTime"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            String endTime = endTimeElement.getText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            Element secrecyElement = rootElement.element("Secrecy"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            int secrecy = Integer.parseInt(secrecyElement.getText()); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            Element typeElement = rootElement.element("Type"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+//            String type = typeElement.getText(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            // 确认是直播还是国标, 国标直接请求下级,直播请求录像管理服务 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (SipException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (InvalidArgumentException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } catch (ParseException e) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            e.printStackTrace(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 |