|  | @@ -6,6 +6,8 @@ import org.springframework.scheduling.annotation.Scheduled;
 | 
	
		
			
				|  |  |  import org.springframework.stereotype.Component;
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  import javax.sip.*;
 | 
	
		
			
				|  |  | +import javax.sip.header.CallIdHeader;
 | 
	
		
			
				|  |  | +import javax.sip.message.Response;
 | 
	
		
			
				|  |  |  import java.util.Calendar;
 | 
	
		
			
				|  |  |  import java.util.Date;
 | 
	
		
			
				|  |  |  import java.util.Map;
 | 
	
	
		
			
				|  | @@ -23,6 +25,7 @@ public class SipSubscribe {
 | 
	
		
			
				|  |  |      private Map<String, Date> timeSubscribes = new ConcurrentHashMap<>();
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  //    @Scheduled(cron="*/5 * * * * ?")   //每五秒执行一次
 | 
	
		
			
				|  |  | +//    @Scheduled(fixedRate= 100 * 60 * 60 )
 | 
	
		
			
				|  |  |      @Scheduled(cron="0 0 * * * ?")   //每小时执行一次, 每个整点
 | 
	
		
			
				|  |  |      public void execute(){
 | 
	
		
			
				|  |  |          logger.info("[定时任务] 清理过期的订阅信息");
 | 
	
	
		
			
				|  | @@ -58,11 +61,15 @@ public class SipSubscribe {
 | 
	
		
			
				|  |  |              this.event = event;
 | 
	
		
			
				|  |  |              if (event instanceof ResponseEvent) {
 | 
	
		
			
				|  |  |                  ResponseEvent responseEvent = (ResponseEvent)event;
 | 
	
		
			
				|  |  | -               this.type = "response";
 | 
	
		
			
				|  |  | -               this.msg = responseEvent.getResponse().getReasonPhrase();
 | 
	
		
			
				|  |  | -               this.statusCode = responseEvent.getResponse().getStatusCode();
 | 
	
		
			
				|  |  | -               this.callId = responseEvent.getDialog().getCallId().getCallId();
 | 
	
		
			
				|  |  | -               this.dialog = responseEvent.getDialog();
 | 
	
		
			
				|  |  | +                Response response = responseEvent.getResponse();
 | 
	
		
			
				|  |  | +                this.dialog = responseEvent.getDialog();
 | 
	
		
			
				|  |  | +                this.type = "response";
 | 
	
		
			
				|  |  | +                if (response != null) {
 | 
	
		
			
				|  |  | +                    this.msg = response.getReasonPhrase();
 | 
	
		
			
				|  |  | +                    this.statusCode = response.getStatusCode();
 | 
	
		
			
				|  |  | +                }
 | 
	
		
			
				|  |  | +                this.callId = ((CallIdHeader)response.getHeader(CallIdHeader.NAME)).getCallId();
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |              }else if (event instanceof TimeoutEvent) {
 | 
	
		
			
				|  |  |                  TimeoutEvent timeoutEvent = (TimeoutEvent)event;
 | 
	
		
			
				|  |  |                  this.type = "timeout";
 |