|  | @@ -32,7 +32,9 @@ import org.springframework.stereotype.Component;
 | 
	
		
			
				|  |  |  import org.springframework.util.StringUtils;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import javax.sip.*;
 | 
	
		
			
				|  |  | +import javax.sip.address.Address;
 | 
	
		
			
				|  |  |  import javax.sip.address.SipURI;
 | 
	
		
			
				|  |  | +import javax.sip.address.URI;
 | 
	
		
			
				|  |  |  import javax.sip.header.*;
 | 
	
		
			
				|  |  |  import javax.sip.message.Request;
 | 
	
		
			
				|  |  |  import java.lang.reflect.Field;
 | 
	
	
		
			
				|  | @@ -1487,11 +1489,20 @@ public class SIPCommander implements ISIPCommander {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			Request request;
 | 
	
		
			
				|  |  |  			if (dialog != null) {
 | 
	
		
			
				|  |  | +				SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress());
 | 
	
		
			
				|  |  |  				request = dialog.createRequest(Request.SUBSCRIBE);
 | 
	
		
			
				|  |  | +				ExpiresHeader expiresHeader = sipFactory.createHeaderFactory().createExpiresHeader(device.getSubscribeCycleForCatalog());
 | 
	
		
			
				|  |  | +				request.setExpires(expiresHeader);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				request.setRequestURI(requestURI);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  				ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml");
 | 
	
		
			
				|  |  |  				request.setContent(subscribePostitionXml.toString(), contentTypeHeader);
 | 
	
		
			
				|  |  | -				ExpiresHeader expireHeader = sipFactory.createHeaderFactory().createExpiresHeader(device.getSubscribeCycleForMobilePosition());
 | 
	
		
			
				|  |  | -				request.addHeader(expireHeader);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				CSeqHeader cSeqHeader = (CSeqHeader)request.getHeader(CSeqHeader.NAME);
 | 
	
		
			
				|  |  | +				cSeqHeader.setSeqNumber(redisCatchStorage.getCSEQ(Request.SUBSCRIBE));
 | 
	
		
			
				|  |  | +				request.removeHeader(CSeqHeader.NAME);
 | 
	
		
			
				|  |  | +				request.addHeader(cSeqHeader);
 | 
	
		
			
				|  |  |  			}else {
 | 
	
		
			
				|  |  |  				String tm = Long.toString(System.currentTimeMillis());
 | 
	
		
			
				|  |  |  				CallIdHeader callIdHeader = device.getTransport().equals("TCP") ? tcpSipProvider.getNewCallId()
 | 
	
	
		
			
				|  | @@ -1582,12 +1593,21 @@ public class SIPCommander implements ISIPCommander {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  			Request request;
 | 
	
		
			
				|  |  |  			if (dialog != null) {
 | 
	
		
			
				|  |  | +				SipURI requestURI = sipFactory.createAddressFactory().createSipURI(device.getDeviceId(), device.getHostAddress());
 | 
	
		
			
				|  |  |  				request = dialog.createRequest(Request.SUBSCRIBE);
 | 
	
		
			
				|  |  |  				ExpiresHeader expiresHeader = sipFactory.createHeaderFactory().createExpiresHeader(device.getSubscribeCycleForCatalog());
 | 
	
		
			
				|  |  |  				request.setExpires(expiresHeader);
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +				request.setRequestURI(requestURI);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  				ContentTypeHeader contentTypeHeader = sipFactory.createHeaderFactory().createContentTypeHeader("Application", "MANSCDP+xml");
 | 
	
		
			
				|  |  |  				request.setContent(cmdXml.toString(), contentTypeHeader);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +				CSeqHeader cSeqHeader = (CSeqHeader)request.getHeader(CSeqHeader.NAME);
 | 
	
		
			
				|  |  | +				cSeqHeader.setSeqNumber(redisCatchStorage.getCSEQ(Request.SUBSCRIBE));
 | 
	
		
			
				|  |  | +				request.removeHeader(CSeqHeader.NAME);
 | 
	
		
			
				|  |  | +				request.addHeader(cSeqHeader);
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  			}else {
 | 
	
		
			
				|  |  |  				String tm = Long.toString(System.currentTimeMillis());
 | 
	
		
			
				|  |  |  
 |