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: 954316 $
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 String encoding = "ISO-8859-1";
040 private Integer enquireLinkTimer = new Integer(5000);
041 private Integer transactionTimer = new Integer(10000);
042 private byte registeredDelivery = SMSCDeliveryReceipt.SUCCESS_FAILURE
043 .value();
044 private String serviceType = "CMT";
045 private String sourceAddr = "1616";
046 private String destAddr = "1717";
047 private byte sourceAddrTon = TypeOfNumber.UNKNOWN.value();
048 private byte destAddrTon = TypeOfNumber.UNKNOWN.value();
049 private byte sourceAddrNpi = NumberingPlanIndicator.UNKNOWN.value();
050 private byte destAddrNpi = NumberingPlanIndicator.UNKNOWN.value();
051 private byte protocolId = (byte) 0;
052 private byte priorityFlag = (byte) 1;
053 private byte replaceIfPresentFlag = (byte) 0;
054 private byte typeOfNumber = TypeOfNumber.UNKNOWN.value();
055 private byte numberingPlanIndicator = NumberingPlanIndicator.UNKNOWN.value();
056 private boolean usingSSL;
057 private long initialReconnectDelay = 5000;
058 private long reconnectDelay = 5000;
059
060 /**
061 * A POJO which contains all necessary configuration parameters for the SMPP connection
062 *
063 * @param uri the full URI of the endpoint
064 */
065 public void configureFromURI(URI uri) {
066 setSystemId(uri.getUserInfo());
067 setHost(uri.getHost());
068 setPort(uri.getPort());
069 if (uri.getScheme().startsWith("smpps")) {
070 setUsingSSL(true);
071 }
072 }
073
074 public SmppConfiguration copy() {
075 try {
076 return (SmppConfiguration) clone();
077 } catch (CloneNotSupportedException e) {
078 throw new RuntimeCamelException(e);
079 }
080 }
081
082 public String getHost() {
083 return host;
084 }
085
086 public void setHost(String host) {
087 this.host = host;
088 }
089
090 public Integer getPort() {
091 return port;
092 }
093
094 public void setPort(Integer port) {
095 this.port = port;
096 }
097
098 public String getSystemId() {
099 return systemId;
100 }
101
102 public void setSystemId(String systemId) {
103 this.systemId = systemId;
104 }
105
106 public String getPassword() {
107 return password;
108 }
109
110 public String getEncoding() {
111 return encoding;
112 }
113
114 public void setEncoding(String encoding) {
115 this.encoding = encoding;
116 }
117
118 public void setPassword(String password) {
119 this.password = password;
120 }
121
122 public Integer getEnquireLinkTimer() {
123 return enquireLinkTimer;
124 }
125
126 public void setEnquireLinkTimer(Integer enquireLinkTimer) {
127 this.enquireLinkTimer = enquireLinkTimer;
128 }
129
130 public Integer getTransactionTimer() {
131 return transactionTimer;
132 }
133
134 public void setTransactionTimer(Integer transactionTimer) {
135 this.transactionTimer = transactionTimer;
136 }
137
138 public String getSystemType() {
139 return systemType;
140 }
141
142 public void setSystemType(String systemType) {
143 this.systemType = systemType;
144 }
145
146 public byte getRegisteredDelivery() {
147 return registeredDelivery;
148 }
149
150 public void setRegisteredDelivery(byte registeredDelivery) {
151 this.registeredDelivery = registeredDelivery;
152 }
153
154 public String getServiceType() {
155 return serviceType;
156 }
157
158 public void setServiceType(String serviceType) {
159 this.serviceType = serviceType;
160 }
161
162 public byte getSourceAddrTon() {
163 return sourceAddrTon;
164 }
165
166 public void setSourceAddrTon(byte sourceAddrTon) {
167 this.sourceAddrTon = sourceAddrTon;
168 }
169
170 public byte getDestAddrTon() {
171 return destAddrTon;
172 }
173
174 public void setDestAddrTon(byte destAddrTon) {
175 this.destAddrTon = destAddrTon;
176 }
177
178 public byte getSourceAddrNpi() {
179 return sourceAddrNpi;
180 }
181
182 public void setSourceAddrNpi(byte sourceAddrNpi) {
183 this.sourceAddrNpi = sourceAddrNpi;
184 }
185
186 public byte getDestAddrNpi() {
187 return destAddrNpi;
188 }
189
190 public void setDestAddrNpi(byte destAddrNpi) {
191 this.destAddrNpi = destAddrNpi;
192 }
193
194 public byte getProtocolId() {
195 return protocolId;
196 }
197
198 public void setProtocolId(byte protocolId) {
199 this.protocolId = protocolId;
200 }
201
202 public byte getPriorityFlag() {
203 return priorityFlag;
204 }
205
206 public void setPriorityFlag(byte priorityFlag) {
207 this.priorityFlag = priorityFlag;
208 }
209
210 public byte getReplaceIfPresentFlag() {
211 return replaceIfPresentFlag;
212 }
213
214 public void setReplaceIfPresentFlag(byte replaceIfPresentFlag) {
215 this.replaceIfPresentFlag = replaceIfPresentFlag;
216 }
217
218 public String getSourceAddr() {
219 return sourceAddr;
220 }
221
222 public void setSourceAddr(String sourceAddr) {
223 this.sourceAddr = sourceAddr;
224 }
225
226 public String getDestAddr() {
227 return destAddr;
228 }
229
230 public void setDestAddr(String destAddr) {
231 this.destAddr = destAddr;
232 }
233
234 public byte getTypeOfNumber() {
235 return typeOfNumber;
236 }
237
238 public void setTypeOfNumber(byte typeOfNumber) {
239 this.typeOfNumber = typeOfNumber;
240 }
241
242 public byte getNumberingPlanIndicator() {
243 return numberingPlanIndicator;
244 }
245
246 public void setNumberingPlanIndicator(byte numberingPlanIndicator) {
247 this.numberingPlanIndicator = numberingPlanIndicator;
248 }
249
250 public boolean getUsingSSL() {
251 return usingSSL;
252 }
253
254 public void setUsingSSL(boolean usingSSL) {
255 this.usingSSL = usingSSL;
256 }
257
258 public long getInitialReconnectDelay() {
259 return initialReconnectDelay;
260 }
261
262 public void setInitialReconnectDelay(long initialReconnectDelay) {
263 this.initialReconnectDelay = initialReconnectDelay;
264 }
265
266 public long getReconnectDelay() {
267 return reconnectDelay;
268 }
269
270 public void setReconnectDelay(long reconnectDelay) {
271 this.reconnectDelay = reconnectDelay;
272 }
273
274 @Override
275 public String toString() {
276 return "SmppConfiguration[usingSSL=" + usingSSL
277 + ", enquireLinkTimer=" + enquireLinkTimer
278 + ", host=" + host
279 + ", password=" + password
280 + ", port=" + port
281 + ", systemId=" + systemId
282 + ", systemType=" + systemType
283 + ", transactionTimer=" + transactionTimer
284 + ", registeredDelivery=" + registeredDelivery
285 + ", serviceType=" + serviceType
286 + ", sourceAddrTon=" + sourceAddrTon
287 + ", destAddrTon=" + destAddrTon
288 + ", sourceAddrNpi=" + sourceAddrNpi
289 + ", destAddrNpi=" + destAddrNpi
290 + ", protocolId=" + protocolId
291 + ", priorityFlag=" + priorityFlag
292 + ", replaceIfPresentFlag=" + replaceIfPresentFlag
293 + ", sourceAddr=" + sourceAddr
294 + ", destAddr=" + destAddr
295 + ", typeOfNumber=" + typeOfNumber
296 + ", numberingPlanIndicator=" + numberingPlanIndicator
297 + ", initialReconnectDelay=" + initialReconnectDelay
298 + ", reconnectDelay=" + reconnectDelay
299 + "]";
300 }
301 }