/** * 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()); }