Ejemplo n.º 1
0
  /**
   * Command is smpp esme modify <name> password <password> esme-ton <esme address ton> esme-npi
   * <esme address npi> esme-range <esme address range> window-size <windowSize> connect-timeout
   * <connectTimeout> request-expiry-timeout <requestExpiryTimeout> window-monitor-interval
   * <windowMonitorInterval> window-wait-timeout <windowWaitTimeout> enquire-link-delay <30000>
   * source-ton <source address ton> source-npi <source address npi> source-range <source address
   * range> routing-ton <routing address ton> routing-npi <routing address npi> routing-range
   * <routing address range>
   *
   * @param args
   * @return
   */
  private String modifyEsme(String[] args) throws Exception {
    if (args.length < 6 || args.length > 48) {
      return SmppOamMessages.INVALID_COMMAND;
    }

    // Create new Rem ESME
    String name = args[3];
    if (name == null) {
      return SmppOamMessages.INVALID_COMMAND;
    }

    Esme esme = this.smppManagement.getEsmeManagement().getEsmeByName(name);

    if (esme == null) {
      throw new Exception(String.format(SmppOamMessages.DELETE_ESME_FAILED_NO_ESME_FOUND, name));
    }

    int count = 4;

    while (count < args.length) {
      // These are all optional parameters for a Tx/Rx/Trx binds
      String key = args[count++];
      if (key == null) {
        return SmppOamMessages.INVALID_COMMAND;
      }

      if (key.equals("password")) {
        esme.setPassword(args[count++]);
      } else if (key.equals("esme-ton")) {
        byte esmeTonType = Byte.parseByte(args[count++]);
        esme.setEsmeTon(esmeTonType);
      } else if (key.equals("esme-npi")) {
        byte esmeNpiType = Byte.parseByte(args[count++]);
        esme.setEsmeNpi(esmeNpiType);
      } else if (key.equals("esme-range")) {
        String esmeAddrRange = /* Regex */ args[count++];
        esme.setEsmeAddressRange(esmeAddrRange);
      } else if (key.equals("window-size")) {
        int windowSize = Integer.parseInt(args[count++]);
        esme.setWindowSize(windowSize);
      } else if (key.equals("connect-timeout")) {
        long connectTimeout = Long.parseLong(args[count++]);
        esme.setConnectTimeout(connectTimeout);
      } else if (key.equals("request-expiry-timeout")) {
        long requestExpiryTimeout = Long.parseLong(args[count++]);
        esme.setRequestExpiryTimeout(requestExpiryTimeout);
      } else if (key.equals("window-monitor-interval")) {
        long windowMonitorInterval = Long.parseLong(args[count++]);
        esme.setWindowMonitorInterval(windowMonitorInterval);
      } else if (key.equals("window-wait-timeout")) {
        long windowWaitTimeout = Long.parseLong(args[count++]);
        esme.setWindowWaitTimeout(windowWaitTimeout);
      } else if (key.equals("enquire-link-delay")) {
        int enquireLinkDelay = Integer.parseInt(args[count++]);
        esme.setEnquireLinkDelay(enquireLinkDelay);
      } else if (key.equals("source-ton")) {
        int sourceTon = Integer.parseInt(args[count++]);
        esme.setSourceTon(sourceTon);
      } else if (key.equals("source-npi")) {
        int sourceNpi = Integer.parseInt(args[count++]);
        esme.setSourceNpi(sourceNpi);
      } else if (key.equals("source-range")) {
        String sourceAddressRange = args[count++];
        esme.setSourceAddressRange(sourceAddressRange);
      } else if (key.equals("routing-ton")) {
        int routingTon = Integer.parseInt(args[count++]);
        esme.setRoutingTon(routingTon);
      } else if (key.equals("routing-npi")) {
        int routingNpi = Integer.parseInt(args[count++]);
        esme.setRoutingNpi(routingNpi);
      } else if (key.equals("routing-range")) {
        String routingAddressRange = args[count++];
        esme.setRoutingAddressRange(routingAddressRange);

      } else {
        return SmppOamMessages.INVALID_COMMAND;
      }
    }

    return String.format(SmppOamMessages.MODIFY_ESME_SUCCESSFULL, esme.getSystemId());
  }
Ejemplo n.º 2
0
  /**
   * Command is smpp esme create name <systemId> <host-ip> <port> <SmppBindType> <SmppSession.Type>
   * password <password> system-type <sms | vms | ota > interface-version <3.3 | 3.4 | 5.0> esme-ton
   * <esme address ton> esme-npi <esme address npi> esme-range <esme address range> cluster-name
   * <clusterName> window-size <windowSize> connect-timeout <connectTimeout> request-expiry-timeout
   * <requestExpiryTimeout> window-monitor-interval <windowMonitorInterval> window-wait-timeout
   * <windowWaitTimeout> enquire-link-delay <30000> source-ton <source address ton> source-npi
   * <source address npi> source-range <source address range> routing-ton <routing address ton>
   * routing-npi <routing address npi>, routing-range <routing address range> ratelimit-day
   * <ratelimitday>
   *
   * @param args
   * @return
   */
  private String createEsme(String[] args) throws Exception {
    if (args.length < 9 || args.length > 61) {
      return SmppOamMessages.INVALID_COMMAND;
    }

    // Create new Rem ESME
    String name = args[3];
    if (name == null) {
      return SmppOamMessages.INVALID_COMMAND;
    }

    String systemId = args[4];
    if (systemId == null) {
      return SmppOamMessages.INVALID_COMMAND;
    }

    // Password can be null
    String host = args[5];
    if (host == null) {
      return SmppOamMessages.INVALID_COMMAND;
    }
    String strPort = args[6];
    int intPort = -1;
    if (strPort == null) {
      return SmppOamMessages.INVALID_COMMAND;
    } else {
      try {
        intPort = Integer.parseInt(strPort);
      } catch (Exception e) {
        return SmppOamMessages.INVALID_COMMAND;
      }
    }

    String smppBindTypeStr = args[7];

    if (smppBindTypeStr == null) {
      return SmppOamMessages.INVALID_COMMAND;
    }

    String smppSessionTypeStr = args[8];
    if (smppSessionTypeStr == null) {
      return SmppOamMessages.INVALID_COMMAND;
    }

    String systemType = null;
    String smppVersionType = SmppInterfaceVersionType.SMPP34.getType();
    byte esmeTonType = -1;
    byte esmeNpiType = -1;
    String esmeAddrRange = null;
    String clusterName = name;
    String password = null;
    int count = 9;

    int windowSize = SmppConstants.DEFAULT_WINDOW_SIZE;
    long connectTimeout = SmppConstants.DEFAULT_CONNECT_TIMEOUT;
    long requestExpiryTimeout = SmppConstants.DEFAULT_REQUEST_EXPIRY_TIMEOUT;
    long windowMonitorInterval = SmppConstants.DEFAULT_WINDOW_MONITOR_INTERVAL;
    long windowWaitTimeout = SmppConstants.DEFAULT_WINDOW_WAIT_TIMEOUT;

    int enquireLinkDelay = 30000;

    int sourceTon = -1;
    int sourceNpi = -1;
    String sourceAddressRange = "^[0-9a-zA-Z]*";

    int routinigTon = -1;
    int routingNpi = -1;
    String routingAddressRange = "^[0-9a-zA-Z]*";

    while (count < args.length) {
      // These are all optional parameters for a Tx/Rx/Trx binds
      String key = args[count++];
      if (key == null) {
        return SmppOamMessages.INVALID_COMMAND;
      }

      if (key.equals("password")) {
        password = args[count++];
      } else if (key.equals("system-type")) {
        systemType = args[count++];
      } else if (key.equals("interface-version")) {
        smppVersionType = args[count++];
      } else if (key.equals("esme-ton")) {
        esmeTonType = Byte.parseByte(args[count++]);
      } else if (key.equals("esme-npi")) {
        esmeNpiType = Byte.parseByte(args[count++]);
      } else if (key.equals("esme-range")) {
        esmeAddrRange = /* Regex */ args[count++];
      } else if (key.equals("window-size")) {
        windowSize = Integer.parseInt(args[count++]);
      } else if (key.equals("connect-timeout")) {
        connectTimeout = Long.parseLong(args[count++]);
      } else if (key.equals("request-expiry-timeout")) {
        requestExpiryTimeout = Long.parseLong(args[count++]);
      } else if (key.equals("window-monitor-interval")) {
        windowMonitorInterval = Long.parseLong(args[count++]);
      } else if (key.equals("window-wait-timeout")) {
        windowWaitTimeout = Long.parseLong(args[count++]);
      } else if (key.equals("cluster-name")) {
        clusterName = args[count++];
        //            } else if (key.equals("counters-enabled")) {
        //                countersEnabled = Boolean.parseBoolean(args[count++]);
      } else if (key.equals("enquire-link-delay")) {
        enquireLinkDelay = Integer.parseInt(args[count++]);
        //            } else if (key.equals("charging-enabled")) {
        //                chargingEnabled = Boolean.parseBoolean(args[count++]);
      } else if (key.equals("source-ton")) {
        sourceTon = Integer.parseInt(args[count++]);
      } else if (key.equals("source-npi")) {
        sourceNpi = Integer.parseInt(args[count++]);
      } else if (key.equals("source-range")) {
        sourceAddressRange = args[count++];
      } else if (key.equals("routing-ton")) {
        routinigTon = Integer.parseInt(args[count++]);
      } else if (key.equals("routing-npi")) {
        routingNpi = Integer.parseInt(args[count++]);
      } else if (key.equals("routing-range")) {
        routingAddressRange = args[count++];

      } else {
        return SmppOamMessages.INVALID_COMMAND;
      }
    }

    Esme esme =
        this.smppManagement
            .getEsmeManagement()
            .createEsme(
                name,
                systemId,
                password,
                host,
                intPort,
                smppBindTypeStr,
                systemType,
                smppVersionType,
                esmeTonType,
                esmeNpiType,
                esmeAddrRange,
                smppSessionTypeStr,
                windowSize,
                connectTimeout,
                requestExpiryTimeout,
                windowMonitorInterval,
                windowWaitTimeout,
                clusterName,
                enquireLinkDelay,
                sourceTon,
                sourceNpi,
                sourceAddressRange,
                routinigTon,
                routingNpi,
                routingAddressRange);
    return String.format(SmppOamMessages.CREATE_ESME_SUCCESSFULL, esme.getSystemId());
  }