|  |  | 
 |  |  | import javax.sip.message.Request;
 | 
 |  |  | import javax.sip.message.Response;
 | 
 |  |  | 
 | 
 |  |  | import com.alibaba.fastjson.JSON;
 | 
 |  |  | import org.slf4j.Logger;
 | 
 |  |  | import org.slf4j.LoggerFactory;
 | 
 |  |  | import org.springframework.beans.factory.annotation.Autowired;
 | 
 |  |  | 
 |  |  | import com.genersoft.iot.vmp.gb28181.transmit.response.impl.InviteResponseProcessor;
 | 
 |  |  | import com.genersoft.iot.vmp.gb28181.transmit.response.impl.OtherResponseProcessor;
 | 
 |  |  | import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
 | 
 |  |  | import com.genersoft.iot.vmp.utils.SpringBeanFactory;
 | 
 |  |  | import com.genersoft.iot.vmp.utils.redis.RedisUtil;
 | 
 |  |  | 
 | 
 |  |  | /**    
 | 
 |  |  | 
 |  |  |    @Autowired
 | 
 |  |  |    private OtherResponseProcessor otherResponseProcessor;
 | 
 |  |  |    
 | 
 |  |  |    @Autowired
 | 
 |  |  |    @Qualifier(value="tcpSipProvider")
 | 
 |  |  |    // 注:这里使用注解会导致循环依赖注入,暂用springBean
 | 
 |  |  |    private SipProvider tcpSipProvider;
 | 
 |  |  | 	 | 
 |  |  |    @Autowired
 | 
 |  |  |    @Qualifier(value="udpSipProvider")
 | 
 |  |  | 		 | 
 |  |  |    // 注:这里使用注解会导致循环依赖注入,暂用springBean
 | 
 |  |  |    private SipProvider udpSipProvider;
 | 
 |  |  |    
 | 
 |  |  |    public ISIPRequestProcessor createRequestProcessor(RequestEvent evt) {
 | 
 |  |  |       Request request = evt.getRequest();
 | 
 |  |  |       String method = request.getMethod();
 | 
 |  |  |       logger.info("接收到消息:"+request.getMethod());
 | 
 |  |  | //      logger.info("接收到消息:"+request.getMethod());
 | 
 |  |  |       if (Request.INVITE.equals(method)) {
 | 
 |  |  |          InviteRequestProcessor processor = new InviteRequestProcessor();
 | 
 |  |  |          processor.setRequestEvent(evt);
 | 
 |  |  |          processor.setTcpSipProvider(tcpSipProvider);
 | 
 |  |  |          processor.setUdpSipProvider(udpSipProvider);
 | 
 |  |  |          processor.setTcpSipProvider(getTcpSipProvider());
 | 
 |  |  |          processor.setUdpSipProvider(getUdpSipProvider());
 | 
 |  |  |          return processor;
 | 
 |  |  |       } else if (Request.REGISTER.equals(method)) {
 | 
 |  |  |          RegisterRequestProcessor processor = new RegisterRequestProcessor();
 | 
 |  |  |          processor.setRequestEvent(evt);
 | 
 |  |  |          processor.setTcpSipProvider(tcpSipProvider);
 | 
 |  |  |          processor.setUdpSipProvider(udpSipProvider);
 | 
 |  |  |          processor.setTcpSipProvider(getTcpSipProvider());
 | 
 |  |  |          processor.setUdpSipProvider(getUdpSipProvider());
 | 
 |  |  |          processor.setHandler(handler);
 | 
 |  |  |          processor.setPublisher(publisher);
 | 
 |  |  |          processor.setSipConfig(sipConfig);
 | 
 |  |  | 
 |  |  |          processor.setRequestEvent(evt);
 | 
 |  |  |          return processor;
 | 
 |  |  |       } else if (Request.MESSAGE.equals(method)) {
 | 
 |  |  | 
 | 
 |  |  |          MessageRequestProcessor processor = new MessageRequestProcessor();
 | 
 |  |  |          processor.setRequestEvent(evt);
 | 
 |  |  |          processor.setTcpSipProvider(tcpSipProvider);
 | 
 |  |  |          processor.setUdpSipProvider(udpSipProvider);
 | 
 |  |  |          processor.setTcpSipProvider(getTcpSipProvider());
 | 
 |  |  |          processor.setUdpSipProvider(getUdpSipProvider());
 | 
 |  |  |          processor.setPublisher(publisher);
 | 
 |  |  |          processor.setRedis(redis);
 | 
 |  |  |          processor.setDeferredResultHolder(deferredResultHolder);
 | 
 |  |  | 
 |  |  |       }
 | 
 |  |  |    }
 | 
 |  |  |    
 | 
 |  |  |    private SipProvider getTcpSipProvider() {
 | 
 |  |  |       if (tcpSipProvider == null) {
 | 
 |  |  |          tcpSipProvider = (SipProvider) SpringBeanFactory.getBean("tcpSipProvider");
 | 
 |  |  |       }
 | 
 |  |  |       return tcpSipProvider;
 | 
 |  |  |    }
 | 
 |  |  | 	 | 
 |  |  |    private SipProvider getUdpSipProvider() {
 | 
 |  |  |       if (udpSipProvider == null) {
 | 
 |  |  |          udpSipProvider = (SipProvider) SpringBeanFactory.getBean("udpSipProvider");
 | 
 |  |  |       }
 | 
 |  |  |       return udpSipProvider;
 | 
 |  |  |    }
 | 
 |  |  | 	 | 
 |  |  | }
 |