|
|
@ -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(); |
|
|
|
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"; |
|
|
|