|  | @@ -16,6 +16,8 @@ import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor
 | 
	
		
			
				|  |  |  import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
 | 
	
		
			
				|  |  |  import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory;
 | 
	
		
			
				|  |  |  import com.genersoft.iot.vmp.media.zlm.ZlmHttpHookSubscribe;
 | 
	
		
			
				|  |  | +import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeFactory;
 | 
	
		
			
				|  |  | +import com.genersoft.iot.vmp.media.zlm.dto.HookSubscribeForRtpServerTimeout;
 | 
	
		
			
				|  |  |  import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
 | 
	
		
			
				|  |  |  import com.genersoft.iot.vmp.service.IDeviceService;
 | 
	
		
			
				|  |  |  import com.genersoft.iot.vmp.service.IMediaServerService;
 | 
	
	
		
			
				|  | @@ -131,7 +133,7 @@ public class AckRequestProcessor extends SIPRequestProcessorParent implements In
 | 
	
		
			
				|  |  |  		param.put("use_ps", sendRtpItem.isUsePs() ? "1" : "0");
 | 
	
		
			
				|  |  |  		param.put("only_audio", sendRtpItem.isOnlyAudio() ? "1" : "0");
 | 
	
		
			
				|  |  |  		if (!sendRtpItem.isTcp()) {
 | 
	
		
			
				|  |  | -			// 开启rtcp保活
 | 
	
		
			
				|  |  | +			// udp模式下开启rtcp保活
 | 
	
		
			
				|  |  |  			param.put("udp_rtcp_timeout", sendRtpItem.isRtcp()? "1":"0");
 | 
	
		
			
				|  |  |  		}
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -147,6 +149,8 @@ public class AckRequestProcessor extends SIPRequestProcessorParent implements In
 | 
	
		
			
				|  |  |  			// 如果是非严格模式,需要关闭端口占用
 | 
	
		
			
				|  |  |  			JSONObject startSendRtpStreamResult = null;
 | 
	
		
			
				|  |  |  			if (sendRtpItem.getLocalPort() != 0) {
 | 
	
		
			
				|  |  | +				HookSubscribeForRtpServerTimeout hookSubscribeForRtpServerTimeout = HookSubscribeFactory.on_rtp_server_timeout(sendRtpItem.getSsrc(), null, mediaInfo.getId());
 | 
	
		
			
				|  |  | +				hookSubscribe.removeSubscribe(hookSubscribeForRtpServerTimeout);
 | 
	
		
			
				|  |  |  				if (zlmrtpServerFactory.releasePort(mediaInfo, sendRtpItem.getSsrc())) {
 | 
	
		
			
				|  |  |  					if (sendRtpItem.isTcpActive()) {
 | 
	
		
			
				|  |  |  						startSendRtpStreamResult = zlmrtpServerFactory.startSendRtpPassive(mediaInfo, param);
 |