001 /** 002 * Licensed to the Apache Software Foundation (ASF) under one or more 003 * contributor license agreements. See the NOTICE file distributed with 004 * this work for additional information regarding copyright ownership. 005 * The ASF licenses this file to You under the Apache License, Version 2.0 006 * (the "License"); you may not use this file except in compliance with 007 * the License. You may obtain a copy of the License at 008 * 009 * http://www.apache.org/licenses/LICENSE-2.0 010 * 011 * Unless required by applicable law or agreed to in writing, software 012 * distributed under the License is distributed on an "AS IS" BASIS, 013 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 014 * See the License for the specific language governing permissions and 015 * limitations under the License. 016 */ 017 package org.apache.camel.component.smpp; 018 019 import java.net.URI; 020 021 import org.apache.camel.RuntimeCamelException; 022 import org.jsmpp.bean.NumberingPlanIndicator; 023 import org.jsmpp.bean.SMSCDeliveryReceipt; 024 import org.jsmpp.bean.TypeOfNumber; 025 026 /** 027 * Contains the SMPP component configuration properties</a> 028 * 029 * @version $Revision: 991323 $ 030 * @author muellerc 031 */ 032 public class SmppConfiguration implements Cloneable { 033 034 private String host = "localhost"; 035 private Integer port = new Integer(2775); 036 private String systemId = "smppclient"; 037 private String password = "password"; 038 private String systemType = "cp"; 039 private byte dataCoding = (byte) 0; 040 private String encoding = "ISO-8859-1"; 041 private Integer enquireLinkTimer = new Integer(5000); 042 private Integer transactionTimer = new Integer(10000); 043 private byte registeredDelivery = SMSCDeliveryReceipt.SUCCESS_FAILURE 044 .value(); 045 private String serviceType = "CMT"; 046 private String sourceAddr = "1616"; 047 private String destAddr = "1717"; 048 private byte sourceAddrTon = TypeOfNumber.UNKNOWN.value(); 049 private byte destAddrTon = TypeOfNumber.UNKNOWN.value(); 050 private byte sourceAddrNpi = NumberingPlanIndicator.UNKNOWN.value(); 051 private byte destAddrNpi = NumberingPlanIndicator.UNKNOWN.value(); 052 private byte protocolId = (byte) 0; 053 private byte priorityFlag = (byte) 1; 054 private byte replaceIfPresentFlag = (byte) 0; 055 private byte typeOfNumber = TypeOfNumber.UNKNOWN.value(); 056 private byte numberingPlanIndicator = NumberingPlanIndicator.UNKNOWN.value(); 057 private boolean usingSSL; 058 private long initialReconnectDelay = 5000; 059 private long reconnectDelay = 5000; 060 061 /** 062 * A POJO which contains all necessary configuration parameters for the SMPP connection 063 * 064 * @param uri the full URI of the endpoint 065 */ 066 public void configureFromURI(URI uri) { 067 setSystemId(uri.getUserInfo()); 068 setHost(uri.getHost()); 069 setPort(uri.getPort()); 070 if (uri.getScheme().startsWith("smpps")) { 071 setUsingSSL(true); 072 } 073 } 074 075 public SmppConfiguration copy() { 076 try { 077 return (SmppConfiguration) clone(); 078 } catch (CloneNotSupportedException e) { 079 throw new RuntimeCamelException(e); 080 } 081 } 082 083 public String getHost() { 084 return host; 085 } 086 087 public void setHost(String host) { 088 this.host = host; 089 } 090 091 public Integer getPort() { 092 return port; 093 } 094 095 public void setPort(Integer port) { 096 this.port = port; 097 } 098 099 public String getSystemId() { 100 return systemId; 101 } 102 103 public void setSystemId(String systemId) { 104 this.systemId = systemId; 105 } 106 107 public String getPassword() { 108 return password; 109 } 110 111 public byte getDataCoding() { 112 return dataCoding; 113 } 114 115 public void setDataCoding(byte dataCoding) { 116 this.dataCoding = dataCoding; 117 } 118 119 public String getEncoding() { 120 return encoding; 121 } 122 123 public void setEncoding(String encoding) { 124 this.encoding = encoding; 125 } 126 127 public void setPassword(String password) { 128 this.password = password; 129 } 130 131 public Integer getEnquireLinkTimer() { 132 return enquireLinkTimer; 133 } 134 135 public void setEnquireLinkTimer(Integer enquireLinkTimer) { 136 this.enquireLinkTimer = enquireLinkTimer; 137 } 138 139 public Integer getTransactionTimer() { 140 return transactionTimer; 141 } 142 143 public void setTransactionTimer(Integer transactionTimer) { 144 this.transactionTimer = transactionTimer; 145 } 146 147 public String getSystemType() { 148 return systemType; 149 } 150 151 public void setSystemType(String systemType) { 152 this.systemType = systemType; 153 } 154 155 public byte getRegisteredDelivery() { 156 return registeredDelivery; 157 } 158 159 public void setRegisteredDelivery(byte registeredDelivery) { 160 this.registeredDelivery = registeredDelivery; 161 } 162 163 public String getServiceType() { 164 return serviceType; 165 } 166 167 public void setServiceType(String serviceType) { 168 this.serviceType = serviceType; 169 } 170 171 public byte getSourceAddrTon() { 172 return sourceAddrTon; 173 } 174 175 public void setSourceAddrTon(byte sourceAddrTon) { 176 this.sourceAddrTon = sourceAddrTon; 177 } 178 179 public byte getDestAddrTon() { 180 return destAddrTon; 181 } 182 183 public void setDestAddrTon(byte destAddrTon) { 184 this.destAddrTon = destAddrTon; 185 } 186 187 public byte getSourceAddrNpi() { 188 return sourceAddrNpi; 189 } 190 191 public void setSourceAddrNpi(byte sourceAddrNpi) { 192 this.sourceAddrNpi = sourceAddrNpi; 193 } 194 195 public byte getDestAddrNpi() { 196 return destAddrNpi; 197 } 198 199 public void setDestAddrNpi(byte destAddrNpi) { 200 this.destAddrNpi = destAddrNpi; 201 } 202 203 public byte getProtocolId() { 204 return protocolId; 205 } 206 207 public void setProtocolId(byte protocolId) { 208 this.protocolId = protocolId; 209 } 210 211 public byte getPriorityFlag() { 212 return priorityFlag; 213 } 214 215 public void setPriorityFlag(byte priorityFlag) { 216 this.priorityFlag = priorityFlag; 217 } 218 219 public byte getReplaceIfPresentFlag() { 220 return replaceIfPresentFlag; 221 } 222 223 public void setReplaceIfPresentFlag(byte replaceIfPresentFlag) { 224 this.replaceIfPresentFlag = replaceIfPresentFlag; 225 } 226 227 public String getSourceAddr() { 228 return sourceAddr; 229 } 230 231 public void setSourceAddr(String sourceAddr) { 232 this.sourceAddr = sourceAddr; 233 } 234 235 public String getDestAddr() { 236 return destAddr; 237 } 238 239 public void setDestAddr(String destAddr) { 240 this.destAddr = destAddr; 241 } 242 243 public byte getTypeOfNumber() { 244 return typeOfNumber; 245 } 246 247 public void setTypeOfNumber(byte typeOfNumber) { 248 this.typeOfNumber = typeOfNumber; 249 } 250 251 public byte getNumberingPlanIndicator() { 252 return numberingPlanIndicator; 253 } 254 255 public void setNumberingPlanIndicator(byte numberingPlanIndicator) { 256 this.numberingPlanIndicator = numberingPlanIndicator; 257 } 258 259 public boolean getUsingSSL() { 260 return usingSSL; 261 } 262 263 public void setUsingSSL(boolean usingSSL) { 264 this.usingSSL = usingSSL; 265 } 266 267 public long getInitialReconnectDelay() { 268 return initialReconnectDelay; 269 } 270 271 public void setInitialReconnectDelay(long initialReconnectDelay) { 272 this.initialReconnectDelay = initialReconnectDelay; 273 } 274 275 public long getReconnectDelay() { 276 return reconnectDelay; 277 } 278 279 public void setReconnectDelay(long reconnectDelay) { 280 this.reconnectDelay = reconnectDelay; 281 } 282 283 @Override 284 public String toString() { 285 return "SmppConfiguration[usingSSL=" + usingSSL 286 + ", enquireLinkTimer=" + enquireLinkTimer 287 + ", host=" + host 288 + ", password=" + password 289 + ", port=" + port 290 + ", systemId=" + systemId 291 + ", systemType=" + systemType 292 + ", dataCoding=" + dataCoding 293 + ", encoding=" + encoding 294 + ", transactionTimer=" + transactionTimer 295 + ", registeredDelivery=" + registeredDelivery 296 + ", serviceType=" + serviceType 297 + ", sourceAddrTon=" + sourceAddrTon 298 + ", destAddrTon=" + destAddrTon 299 + ", sourceAddrNpi=" + sourceAddrNpi 300 + ", destAddrNpi=" + destAddrNpi 301 + ", protocolId=" + protocolId 302 + ", priorityFlag=" + priorityFlag 303 + ", replaceIfPresentFlag=" + replaceIfPresentFlag 304 + ", sourceAddr=" + sourceAddr 305 + ", destAddr=" + destAddr 306 + ", typeOfNumber=" + typeOfNumber 307 + ", numberingPlanIndicator=" + numberingPlanIndicator 308 + ", initialReconnectDelay=" + initialReconnectDelay 309 + ", reconnectDelay=" + reconnectDelay 310 + "]"; 311 } 312 }