hotcoffie
2021-12-01 a16b4f71ec5a4d3d526c9c35a1e1f7843a49e921
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/ByeRequestProcessor.java
File was renamed from src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/ByeRequestProcessor.java
@@ -1,17 +1,12 @@
package com.genersoft.iot.vmp.gb28181.transmit.request.impl;
import javax.sip.*;
import javax.sip.address.SipURI;
import javax.sip.header.FromHeader;
import javax.sip.header.HeaderAddress;
import javax.sip.header.ToHeader;
import javax.sip.message.Response;
package com.genersoft.iot.vmp.gb28181.transmit.event.request.impl;
import com.genersoft.iot.vmp.common.StreamInfo;
import com.genersoft.iot.vmp.gb28181.bean.Device;
import com.genersoft.iot.vmp.gb28181.bean.SendRtpItem;
import com.genersoft.iot.vmp.gb28181.transmit.SIPProcessorObserver;
import com.genersoft.iot.vmp.gb28181.transmit.cmd.ISIPCommander;
import com.genersoft.iot.vmp.gb28181.transmit.request.SIPRequestAbstractProcessor;
import com.genersoft.iot.vmp.gb28181.transmit.event.request.ISIPRequestProcessor;
import com.genersoft.iot.vmp.gb28181.transmit.event.request.SIPRequestProcessorParent;
import com.genersoft.iot.vmp.media.zlm.ZLMRTPServerFactory;
import com.genersoft.iot.vmp.media.zlm.dto.MediaServerItem;
import com.genersoft.iot.vmp.service.IMediaServerService;
@@ -19,29 +14,52 @@
import com.genersoft.iot.vmp.storager.IVideoManagerStorager;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import javax.sip.*;
import javax.sip.address.SipURI;
import javax.sip.header.FromHeader;
import javax.sip.header.HeaderAddress;
import javax.sip.header.ToHeader;
import javax.sip.message.Response;
import java.text.ParseException;
import java.util.HashMap;
import java.util.Map;
/**    
 * @Description: BYE请求处理器
 * @author: lawrencehj
 * @date:   2021年3月9日
 * SIP命令类型: BYE请求
 */
public class ByeRequestProcessor extends SIPRequestAbstractProcessor {
@Component
public class ByeRequestProcessor extends SIPRequestProcessorParent implements InitializingBean, ISIPRequestProcessor {
   private Logger logger = LoggerFactory.getLogger(ByeRequestProcessor.class);
   private final Logger logger = LoggerFactory.getLogger(ByeRequestProcessor.class);
   private final String method = "BYE";
   @Autowired
   private ISIPCommander cmder;
   @Autowired
   private IRedisCatchStorage redisCatchStorage;
   @Autowired
   private IVideoManagerStorager storager;
   @Autowired
   private ZLMRTPServerFactory zlmrtpServerFactory;
   @Autowired
   private IMediaServerService mediaServerService;
   @Autowired
   private SIPProcessorObserver sipProcessorObserver;
   @Override
   public void afterPropertiesSet() throws Exception {
      // 添加消息处理的订阅
      sipProcessorObserver.addRequestProcessor(method, this);
   }
   /**
    * 处理BYE请求
@@ -50,7 +68,7 @@
   @Override
   public void process(RequestEvent evt) {
      try {
         responseAck(evt);
         responseAck(evt, Response.OK);
         Dialog dialog = evt.getDialog();
         if (dialog == null) return;
         if (dialog.getState().equals(DialogState.TERMINATED)) {
@@ -92,59 +110,5 @@
      } catch (ParseException e) {
         e.printStackTrace();
      }
   }
   /***
    * 回复200 OK
    * @param evt
    * @throws SipException
    * @throws InvalidArgumentException
    * @throws ParseException
    */
   private void responseAck(RequestEvent evt) throws SipException, InvalidArgumentException, ParseException {
      Response response = getMessageFactory().createResponse(Response.OK, evt.getRequest());
      ServerTransaction serverTransaction = getServerTransaction(evt);
      serverTransaction.sendResponse(response);
      if (serverTransaction.getDialog() != null) serverTransaction.getDialog().delete();
   }
   public IRedisCatchStorage getRedisCatchStorage() {
      return redisCatchStorage;
   }
   public void setRedisCatchStorage(IRedisCatchStorage redisCatchStorage) {
      this.redisCatchStorage = redisCatchStorage;
   }
   public ZLMRTPServerFactory getZlmrtpServerFactory() {
      return zlmrtpServerFactory;
   }
   public void setZlmrtpServerFactory(ZLMRTPServerFactory zlmrtpServerFactory) {
      this.zlmrtpServerFactory = zlmrtpServerFactory;
   }
   public ISIPCommander getSIPCommander() {
      return cmder;
   }
   public void setSIPCommander(ISIPCommander cmder) {
      this.cmder = cmder;
   }
   public IMediaServerService getMediaServerService() {
      return mediaServerService;
   }
   public void setMediaServerService(IMediaServerService mediaServerService) {
      this.mediaServerService = mediaServerService;
   }
   public IVideoManagerStorager getStorager() {
      return storager;
   }
   public void setStorager(IVideoManagerStorager storager) {
      this.storager = storager;
   }
}