panlinlin
2021-04-26 39078225f1104eeaed21b24a024457b892fa7f7a
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/request/impl/InviteRequestProcessor.java
@@ -86,13 +86,18 @@
         }
         // 查询请求方是否上级平台
         ParentPlatform platform = storager.queryParentPlatById(requesterId);
         ParentPlatform platform = storager.queryParentPlatByServerGBId(requesterId);
         if (platform != null) {
            // 查询平台下是否有该通道
            DeviceChannel channel = storager.queryChannelInParentPlatform(requesterId, channelId);
            GbStream gbStream = storager.queryStreamInParentPlatform(requesterId, channelId);
            // 不是通道可能是直播流
            if (channel != null || gbStream != null ) {
               if (channel.getStatus() == 0) {
                  logger.info("通道离线,返回400");
                  responseAck(evt, Response.BAD_REQUEST, "channel [" + channel.getChannelId() + "] offline");
                  return;
               }
               responseAck(evt, Response.CALL_IS_BEING_FORWARDED); // 通道存在,发181,呼叫转接中
            }else {
               logger.info("通道不存在,返回404");
@@ -367,6 +372,12 @@
      getServerTransaction(evt).sendResponse(response);
   }
   private void responseAck(RequestEvent evt, int statusCode, String msg) throws SipException, InvalidArgumentException, ParseException {
      Response response = getMessageFactory().createResponse(statusCode, evt.getRequest());
      response.setReasonPhrase(msg);
      getServerTransaction(evt).sendResponse(response);
   }
   /**
    * 回复带sdp的200
    * @param evt