package com.genersoft.iot.vmp.gb28181.transmit.event.timeout.impl; import com.genersoft.iot.vmp.gb28181.event.SipSubscribe; import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver; import com.genersoft.iot.vmp.gb28181.transmit.event.timeout.ITimeoutProcessor; import org.springframework.beans.factory.InitializingBean; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.sip.TimeoutEvent; import javax.sip.header.CallIdHeader; @Component public class TimeoutProcessorImpl implements InitializingBean, ITimeoutProcessor { @Autowired private SIPProcessorObserver processorObserver; @Autowired private SipSubscribe sipSubscribe; @Override public void afterPropertiesSet() throws Exception { processorObserver.addTimeoutProcessor(this); } @Override public void process(TimeoutEvent event) { // TODO Auto-generated method stub CallIdHeader callIdHeader = event.getClientTransaction().getDialog().getCallId(); String callId = callIdHeader.getCallId(); SipSubscribe.Event errorSubscribe = sipSubscribe.getErrorSubscribe(callId); SipSubscribe.EventResult timeoutEventEventResult = new SipSubscribe.EventResult<>(event); errorSubscribe.response(timeoutEventEventResult); } }