648540858
2022-09-09 221f99c764b51c3cd284c6e5a41492c26c5c7ffc
src/main/java/com/genersoft/iot/vmp/gb28181/transmit/event/request/SIPRequestProcessorParent.java
@@ -59,11 +59,14 @@
   public ServerTransaction getServerTransaction(RequestEvent evt) {
      Request request = evt.getRequest();
      ServerTransaction serverTransaction = evt.getServerTransaction();
      if (serverTransaction != null) {
         System.out.println(serverTransaction.getState().toString());
      }
      // 判断TCP还是UDP
      boolean isTcp = false;
      ViaHeader reqViaHeader = (ViaHeader) request.getHeader(ViaHeader.NAME);
      String transport = reqViaHeader.getTransport();
      if (transport.equals("TCP")) {
      if (transport.equalsIgnoreCase("TCP")) {
         isTcp = true;
      }
@@ -86,6 +89,8 @@
            logger.error(e.getMessage());
         } catch (TransactionUnavailableException e) {
            logger.error(e.getMessage());
         }finally {
         }
      }
      return serverTransaction;
@@ -137,9 +142,11 @@
         return;
      }
      serverTransaction.sendResponse(response);
      if (statusCode >= 200 && !"NOTIFY".equals(evt.getRequest().getMethod())) {
      if (statusCode >= 200 && !"NOTIFY".equalsIgnoreCase(evt.getRequest().getMethod())) {
         if (serverTransaction.getDialog() != null) serverTransaction.getDialog().delete();
         if (serverTransaction.getDialog() != null) {
            serverTransaction.getDialog().delete();
         }
      }
   }
@@ -148,8 +155,10 @@
      response.setReasonPhrase(msg);
      ServerTransaction serverTransaction = getServerTransaction(evt);
      serverTransaction.sendResponse(response);
      if (statusCode >= 200 && !"NOTIFY".equals(evt.getRequest().getMethod())) {
         if (serverTransaction.getDialog() != null) serverTransaction.getDialog().delete();
      if (statusCode >= 200 && !"NOTIFY".equalsIgnoreCase(evt.getRequest().getMethod())) {
         if (serverTransaction.getDialog() != null) {
            serverTransaction.getDialog().delete();
         }
      }
   }
@@ -178,6 +187,10 @@
            sipFactory.createAddressFactory().createSipURI(sipURI.getUser(),  sipURI.getHost()+":"+sipURI.getPort()
            ));
      response.addHeader(sipFactory.createHeaderFactory().createContactHeader(concatAddress));
      ServerTransaction serverTransaction = getServerTransaction(evt);
      if (serverTransaction == null) {
      }
      getServerTransaction(evt).sendResponse(response);
   }
@@ -215,7 +228,9 @@
      return getRootElement(evt, "gb2312");
   }
   public Element getRootElement(RequestEvent evt, String charset) throws DocumentException {
      if (charset == null) charset = "gb2312";
      if (charset == null) {
         charset = "gb2312";
      }
      Request request = evt.getRequest();
      SAXReader reader = new SAXReader();
      reader.setEncoding(charset);
@@ -225,6 +240,9 @@
      byte destBye = (byte) despChar;
      List<Byte> result = new ArrayList<>();
      byte[] rawContent = request.getRawContent();
      if (rawContent == null) {
         return null;
      }
      for (int i = 0; i < rawContent.length; i++) {
         if (rawContent[i] == destBye) {
            boolean resul = false;