lin
2022-01-08 ddb36e54bd51761138c536ccca889d3f80182334
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/impl/InviteRequestProcessor.java
@@ -31,6 +31,7 @@
import javax.sip.message.Request;
import javax.sip.message.Response;
import java.text.ParseException;
import java.util.List;
import java.util.Vector;
/**
@@ -105,7 +106,9 @@
         if (platform != null) {
            // 查询平台下是否有该通道
            DeviceChannel channel = storager.queryChannelInParentPlatform(requesterId, channelId);
            GbStream gbStream = storager.queryStreamInParentPlatform(requesterId, channelId);
            List<GbStream> gbStreams = storager.queryStreamInParentPlatform(requesterId, channelId);
            PlatformCatalog catalog = storager.getCatalog(channelId);
            GbStream gbStream = gbStreams.size() > 0? gbStreams.get(0):null;
            MediaServerItem mediaServerItem = null;
            // 不是通道可能是直播流
            if (channel != null && gbStream == null ) {
@@ -130,7 +133,10 @@
                  return;
               }
               responseAck(evt, Response.CALL_IS_BEING_FORWARDED); // 通道存在,发181,呼叫转接中
            }else {
            }else if (catalog != null) {
               responseAck(evt, Response.BAD_REQUEST, "catalog channel can not play"); // 目录不支持点播
               return;
            } else {
               logger.info("通道不存在,返回404");
               responseAck(evt, Response.NOT_FOUND); // 通道不存在,发404,资源不存在
               return;
@@ -247,7 +253,7 @@
                  content.append("f=\r\n");
                  try {
                     responseAck(evt, content.toString());
                     responseSdpAck(evt, content.toString());
                  } catch (SipException e) {
                     e.printStackTrace();
                  } catch (InvalidArgumentException e) {
@@ -304,7 +310,7 @@
               content.append("f=\r\n");
               try {
                  responseAck(evt, content.toString());
                  responseSdpAck(evt, content.toString());
               } catch (SipException e) {
                  e.printStackTrace();
               } catch (InvalidArgumentException e) {
@@ -316,7 +322,7 @@
         } else {
            // 非上级平台请求,查询是否设备请求(通常为接收语音广播的设备)
            Device device = storager.queryVideoDevice(requesterId);
            Device device = redisCatchStorage.getDevice(requesterId);
            if (device != null) {
               logger.info("收到设备" + requesterId + "的语音广播Invite请求");
               responseAck(evt, Response.TRYING);