|  | @@ -230,8 +230,6 @@ public class NotifyRequestProcessor extends SIPRequestProcessorParent implements
 | 
	
		
			
				|  |  |  			String deviceId = SipUtils.getUserIdFromFromHeader(fromHeader);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			Element rootElement = getRootElement(evt);
 | 
	
		
			
				|  |  | -			Element deviceIdElement = rootElement.element("DeviceID");
 | 
	
		
			
				|  |  | -			String channelId = deviceIdElement.getText();
 | 
	
		
			
				|  |  |  			Device device = storager.queryVideoDevice(deviceId);
 | 
	
		
			
				|  |  |  			if (device == null) {
 | 
	
		
			
				|  |  |  				return;
 | 
	
	
		
			
				|  | @@ -254,22 +252,23 @@ public class NotifyRequestProcessor extends SIPRequestProcessorParent implements
 | 
	
		
			
				|  |  |  						continue;
 | 
	
		
			
				|  |  |  					}
 | 
	
		
			
				|  |  |  					Element eventElement = itemDevice.element("Event");
 | 
	
		
			
				|  |  | +					DeviceChannel channel = channelContentHander(itemDevice);
 | 
	
		
			
				|  |  |  					switch (eventElement.getText().toUpperCase()) {
 | 
	
		
			
				|  |  |  						case "ON" : // 上线
 | 
	
		
			
				|  |  | -							logger.info("收到来自设备【{}】的通道上线【{}】通知", device.getDeviceId(), channelId);
 | 
	
		
			
				|  |  | -							storager.deviceChannelOnline(deviceId, channelId);
 | 
	
		
			
				|  |  | +							logger.info("收到来自设备【{}】的通道【{}】上线通知", device.getDeviceId(), channel.getChannelId());
 | 
	
		
			
				|  |  | +							storager.deviceChannelOnline(deviceId, channel.getChannelId());
 | 
	
		
			
				|  |  |  							// 回复200 OK
 | 
	
		
			
				|  |  |  							responseAck(evt, Response.OK);
 | 
	
		
			
				|  |  |  							break;
 | 
	
		
			
				|  |  |  						case "OFF" : // 离线
 | 
	
		
			
				|  |  | -							logger.info("收到来自设备【{}】的通道离线【{}】通知", device.getDeviceId(), channelId);
 | 
	
		
			
				|  |  | -							storager.deviceChannelOffline(deviceId, channelId);
 | 
	
		
			
				|  |  | +							logger.info("收到来自设备【{}】的通道【{}】离线通知", device.getDeviceId(), channel.getChannelId());
 | 
	
		
			
				|  |  | +							storager.deviceChannelOffline(deviceId, channel.getChannelId());
 | 
	
		
			
				|  |  |  							// 回复200 OK
 | 
	
		
			
				|  |  |  							responseAck(evt, Response.OK);
 | 
	
		
			
				|  |  |  							break;
 | 
	
		
			
				|  |  |  						case "VLOST" : // 视频丢失
 | 
	
		
			
				|  |  | -							logger.info("收到来自设备【{}】的通道视频丢失【{}】通知", device.getDeviceId(), channelId);
 | 
	
		
			
				|  |  | -							storager.deviceChannelOffline(deviceId, channelId);
 | 
	
		
			
				|  |  | +							logger.info("收到来自设备【{}】的通道【{}】视频丢失通知", device.getDeviceId(), channel.getChannelId());
 | 
	
		
			
				|  |  | +							storager.deviceChannelOffline(deviceId, channel.getChannelId());
 | 
	
		
			
				|  |  |  							// 回复200 OK
 | 
	
		
			
				|  |  |  							responseAck(evt, Response.OK);
 | 
	
		
			
				|  |  |  							break;
 | 
	
	
		
			
				|  | @@ -278,19 +277,17 @@ public class NotifyRequestProcessor extends SIPRequestProcessorParent implements
 | 
	
		
			
				|  |  |  							responseAck(evt, Response.OK);
 | 
	
		
			
				|  |  |  							break;
 | 
	
		
			
				|  |  |  						case "ADD" : // 增加
 | 
	
		
			
				|  |  | -							logger.info("收到来自设备【{}】的增加通道【{}】通知", device.getDeviceId(), channelId);
 | 
	
		
			
				|  |  | -							DeviceChannel deviceChannel = channelContentHander(itemDevice, channelId);
 | 
	
		
			
				|  |  | -							storager.updateChannel(deviceId, deviceChannel);
 | 
	
		
			
				|  |  | +							logger.info("收到来自设备【{}】的增加通道【{}】通知", device.getDeviceId(), channel.getChannelId());
 | 
	
		
			
				|  |  | +							storager.updateChannel(deviceId, channel);
 | 
	
		
			
				|  |  |  							responseAck(evt, Response.OK);
 | 
	
		
			
				|  |  |  							break;
 | 
	
		
			
				|  |  |  						case "DEL" : // 删除
 | 
	
		
			
				|  |  | -							logger.info("收到来自设备【{}】的删除通道【{}】通知", device.getDeviceId(), channelId);
 | 
	
		
			
				|  |  | -							storager.delChannel(deviceId, channelId);
 | 
	
		
			
				|  |  | +							logger.info("收到来自设备【{}】的删除通道【{}】通知", device.getDeviceId(), channel.getChannelId());
 | 
	
		
			
				|  |  | +							storager.delChannel(deviceId, channel.getChannelId());
 | 
	
		
			
				|  |  |  							responseAck(evt, Response.OK);
 | 
	
		
			
				|  |  |  							break;
 | 
	
		
			
				|  |  |  						case "UPDATE" : // 更新
 | 
	
		
			
				|  |  | -							logger.info("收到来自设备【{}】的更新通道【{}】通知", device.getDeviceId(), channelId);
 | 
	
		
			
				|  |  | -							DeviceChannel channel = channelContentHander(itemDevice, channelId);
 | 
	
		
			
				|  |  | +							logger.info("收到来自设备【{}】的更新通道【{}】通知", device.getDeviceId(), channel.getChannelId());
 | 
	
		
			
				|  |  |  							storager.updateChannel(deviceId, channel);
 | 
	
		
			
				|  |  |  							responseAck(evt, Response.OK);
 | 
	
		
			
				|  |  |  							break;
 | 
	
	
		
			
				|  | @@ -316,13 +313,15 @@ public class NotifyRequestProcessor extends SIPRequestProcessorParent implements
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  	}
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -	public DeviceChannel channelContentHander(Element itemDevice, String channelId){
 | 
	
		
			
				|  |  | +	public DeviceChannel channelContentHander(Element itemDevice){
 | 
	
		
			
				|  |  |  		Element channdelNameElement = itemDevice.element("Name");
 | 
	
		
			
				|  |  |  		String channelName = channdelNameElement != null ? channdelNameElement.getTextTrim().toString() : "";
 | 
	
		
			
				|  |  |  		Element statusElement = itemDevice.element("Status");
 | 
	
		
			
				|  |  |  		String status = statusElement != null ? statusElement.getTextTrim().toString() : "ON";
 | 
	
		
			
				|  |  |  		DeviceChannel deviceChannel = new DeviceChannel();
 | 
	
		
			
				|  |  |  		deviceChannel.setName(channelName);
 | 
	
		
			
				|  |  | +		Element channdelIdElement = itemDevice.element("DeviceID");
 | 
	
		
			
				|  |  | +		String channelId = channdelIdElement != null ? channdelIdElement.getTextTrim().toString() : "";
 | 
	
		
			
				|  |  |  		deviceChannel.setChannelId(channelId);
 | 
	
		
			
				|  |  |  		// ONLINE OFFLINE HIKVISION DS-7716N-E4 NVR的兼容性处理
 | 
	
		
			
				|  |  |  		if (status.equals("ON") || status.equals("On") || status.equals("ONLINE")) {
 |