You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commons-dev@ws.apache.org by ru...@apache.org on 2009/10/06 18:20:35 UTC

svn commit: r822334 - in /webservices/commons/trunk/modules/transport: ./ modules/sms/src/main/java/org/apache/axis2/transport/sms/ modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/

Author: ruwan
Date: Tue Oct  6 16:20:35 2009
New Revision: 822334

URL: http://svn.apache.org/viewvc?rev=822334&view=rev
Log:
Committing for Charith (WSCOMMONS-503)

Modified:
    webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageBuilderImpl.java
    webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageFormatterImpl.java
    webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSManager.java
    webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessage.java
    webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageBuilder.java
    webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSTransportConstents.java
    webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPDispatcher.java
    webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPImplManager.java
    webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPListener.java
    webservices/commons/trunk/modules/transport/pom.xml

Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageBuilderImpl.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageBuilderImpl.java?rev=822334&r1=822333&r2=822334&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageBuilderImpl.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageBuilderImpl.java Tue Oct  6 16:20:35 2009
@@ -20,6 +20,7 @@
 
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.context.ConfigurationContext;
+import org.apache.axis2.context.AbstractContext;
 import org.apache.axis2.engine.AxisConfiguration;
 import org.apache.axis2.description.*;
 import org.apache.axis2.AxisFault;
@@ -52,17 +53,12 @@
      /** the reference to the actual commons logger to be used for log messages */
     protected Log log = LogFactory.getLog(this.getClass());
 
-    /**
-     *
-     * @param message  the content of the SMS
-     * @param sender senders phone number
-     * @param configurationContext axis2 configuration Context
-     * @return Returns the MessageContext built from the SMS
-     * @throws InvalidMessageFormatException
-     */
-    public MessageContext buildMessaage(String message, String sender,String receiver ,ConfigurationContext configurationContext)
-            throws InvalidMessageFormatException {
 
+    public MessageContext buildMessaage(SMSMessage msg,ConfigurationContext configurationContext)
+            throws InvalidMessageFormatException {
+        String message = msg.getContent();
+        String sender =  msg.getSender();
+        String receiver = msg.getReceiver();
         String[] parts = message.split(":");
 
 
@@ -100,17 +96,13 @@
                     SOAPEnvelope soapEnvelope = createSoapEnvelope(messageContext , params);
                     messageContext.setServerSide(true);
                     messageContext.setEnvelope(soapEnvelope);
-                    Parameter sendBack = new Parameter();
-                    sendBack.setName(SMSTransportConstents.SEND_TO);
-                    sendBack.setValue(sender);
-                    Parameter axis2Phone = new Parameter();
-                    axis2Phone.setName(SMSTransportConstents.DESTINATION);
-                    axis2Phone.setValue(receiver);
                     TransportInDescription in = configurationContext.getAxisConfiguration().getTransportIn("sms");
                     TransportOutDescription out = configurationContext.getAxisConfiguration().getTransportOut("sms");
-                    out.addParameter(sendBack);
+                    messageContext.setProperty(SMSTransportConstents.SEND_TO , sender);
+                    messageContext.setProperty(SMSTransportConstents.DESTINATION , receiver);
                     messageContext.setTransportIn(in);
                     messageContext.setTransportOut(out);
+                    handleSMSProperties(msg , messageContext);
                     return messageContext;
                 }
 
@@ -126,6 +118,21 @@
         return null;
     }
 
+    /**
+     * this will add the SMSMessage properties to the Axis2MessageContext 
+     * @param msg
+     * @param messageContext
+     */
+    protected void handleSMSProperties(SMSMessage msg , MessageContext messageContext) {
+
+        Iterator<String> it = msg.getProperties().keySet().iterator();
+        while (it.hasNext()) {
+            String key = it.next();
+            messageContext.setProperty(key , msg.getProperties().get(key));
+        }
+
+       
+    }
     private SOAPEnvelope createSoapEnvelope(MessageContext messageContext , Map params) {
         SOAPFactory soapFactory = OMAbstractFactory.getSOAP12Factory();
         SOAPEnvelope inEnvlope = soapFactory.getDefaultEnvelope();

Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageFormatterImpl.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageFormatterImpl.java?rev=822334&r1=822333&r2=822334&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageFormatterImpl.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/DefaultSMSMessageFormatterImpl.java Tue Oct  6 16:20:35 2009
@@ -24,6 +24,8 @@
 import org.apache.axis2.description.Parameter;
 import org.apache.axiom.om.OMElement;
 
+import java.util.Iterator;
+
 public class DefaultSMSMessageFormatterImpl implements SMSMessageFormatter{
 
 
@@ -31,12 +33,12 @@
         String sendTo;
         //phone number set at the Transport configuration get the precidence
         String axis2PhoneNumber = SMPPTransportOutDetails.getInstence().getPhoneNumber() ;
-        Parameter param = messageContext.getTransportOut().getParameter(SMSTransportConstents.SEND_TO);
-        if (param != null) {
-           sendTo  = (String)param.getValue();
+        Object s= messageContext.getProperty(SMSTransportConstents.SEND_TO);
+        if (s != null) {
+           sendTo  = (String)s;
 
         } else {
-        sendTo = SMSTransportUtils.getPhoneNumber(messageContext.getTo());
+             sendTo = SMSTransportUtils.getPhoneNumber(messageContext.getTo());
         }
         OMElement elem = messageContext.getEnvelope().getBody();
         String content = "Empty responce";
@@ -57,13 +59,26 @@
 
         //if not configured in the Transport configuration
         if("0000".equals(axis2PhoneNumber)) {
-            Parameter axisPhone  = messageContext.getTransportOut().getParameter(SMSTransportConstents.DESTINATION);
+            String axisPhone  = (String)messageContext.getProperty(SMSTransportConstents.DESTINATION);
             if(axisPhone != null) {
-                axis2PhoneNumber = (String)axisPhone.getValue();
+                axis2PhoneNumber = axisPhone;
             }
         }
+        SMSMessage sms = new SMSMessage( axis2PhoneNumber, sendTo , content ,SMSMessage.OUT_MESSAGE);
+        handleMessageContextProperties(sms,messageContext);
+        return sms;
+
+    }
+
+    private void handleMessageContextProperties(SMSMessage sms , MessageContext messageContext) {
+       
+        Iterator<String> it = messageContext.getPropertyNames();
+
+        while(it.hasNext()) {
+            String key = it.next();
+            sms.addProperty(key , messageContext.getProperty(key));
+        }
 
-        return new SMSMessage( axis2PhoneNumber, sendTo , content ,SMSMessage.OUT_MESSAGE);
 
     }
 

Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSManager.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSManager.java?rev=822334&r1=822333&r2=822334&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSManager.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSManager.java Tue Oct  6 16:20:35 2009
@@ -26,6 +26,7 @@
 import org.apache.axis2.context.MessageContext;
 import org.apache.axis2.transport.sms.smpp.SMPPImplManager;
 import org.apache.axis2.AxisFault;
+import org.apache.axis2.addressing.EndpointReference;
 import org.apache.axis2.engine.AxisEngine;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
@@ -39,12 +40,12 @@
 public class SMSManager {
 
     private SMSImplManager currentImplimentation;
-    private ArrayList<Parameter> transportParameters;
     private boolean inited;
     private ConfigurationContext configurationContext;
     private SMSMessageBuilder messageBuilder;
     private SMSMessageFormatter messageFormatter;
     private String phoneNumber = null;
+    private boolean invertSourceAndDestination = true;
 
      /** the reference to the actual commons logger to be used for log messages */
     protected Log log = LogFactory.getLog(this.getClass());
@@ -112,6 +113,21 @@
             }
         }
         currentImplimentation.setTransportOutDetails(transportOutDescription);
+
+        Parameter invertS_n_D = transportOutDescription.getParameter(
+                SMSTransportConstents.INVERT_SOURCE_AND_DESTINATION);
+        if(invertS_n_D != null) {
+            String val = (String)invertS_n_D.getValue();
+            if("false".equals(val)) {
+                invertSourceAndDestination = false;
+            } else if("true".equals(val)) {
+                invertSourceAndDestination = true;
+            } else {
+                log.warn("Invalid parameter value set to the parameter invert_source_and_destination," +
+                        "setting the default value :true ");
+                invertSourceAndDestination = true;
+            }
+        }
         inited = true;
     }
 
@@ -137,13 +153,12 @@
     }
     /**
      * Dispatch the SMS message to Axis2 Engine
-     * @param message
-     * @param sender
+     * @param sms
      */
     public void dispatchToAxis2(SMSMessage sms)  {
         try {
-            MessageContext msgctx = messageBuilder.buildMessaage(sms.getContent() , sms.getSender() ,sms.getReceiver(),
-                    configurationContext);
+            MessageContext msgctx = messageBuilder.buildMessaage(sms,configurationContext);
+            msgctx.setReplyTo(new EndpointReference("sms://"+sms.getSender()+"/"));
             AxisEngine.receive(msgctx);
         } catch (InvalidMessageFormatException e) {
             log.debug("Invalid message format " + e);
@@ -163,6 +178,7 @@
     public void sendSMS(MessageContext messageContext) {
         try {
             SMSMessage sms = messageFormatter.formatSMS(messageContext);
+            sms.addProperty(SMSTransportConstents.INVERT_SOURCE_AND_DESTINATION ,"" + invertSourceAndDestination);
             currentImplimentation.sendSMS(sms);
         } catch (Exception e) {
             log.error("Error while sending the SMS " , e);
@@ -177,11 +193,6 @@
     public void sentInfo(SMSMessage sms) {
         currentImplimentation.sendSMS(sms);
     }
-    public ArrayList<Parameter> getTransportParameters() {
-        return transportParameters;
-    }
-
-
 
     public SMSImplManager getCurrentImplimentation() {
         return currentImplimentation;
@@ -206,4 +217,12 @@
     public String getPhoneNumber() {
         return phoneNumber;
     }
+
+    public boolean isInvertSourceAndDestination() {
+        return invertSourceAndDestination;
+    }
+
+    public void setInvertSourceAndDestination(boolean invertSourceAndDestination) {
+        this.invertSourceAndDestination = invertSourceAndDestination;
+    }
 }

Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessage.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessage.java?rev=822334&r1=822333&r2=822334&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessage.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessage.java Tue Oct  6 16:20:35 2009
@@ -22,11 +22,16 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
+import java.util.Properties;
+import java.util.Map;
+import java.util.HashMap;
+
 /**
  * SMS message is a atomic object wich carries a SMS
  * SMS has can be either a IN message or a OUT message
- * which will have the details sender , receiver and Content
+ * which will have the details sender , receiver ,Content and properties
  * sender , receiver has a implied meaning with the Message direction
+ * <br>
  * eg:
  * in a IN_MESSAGE sender  : the phone number of the phone that sms has been sent to axis2
  *               receiver  : the phone number given from the SMSC to the Axis2
@@ -40,12 +45,14 @@
     private String receiver;
     private String content;
     private int direction;
+    private Map<String ,Object> properties = new HashMap<String , Object>();
+    
 
     public static int IN_MESSAGE =1;
     public static int OUT_MESSAGE =2;
 
     /**
-     *
+     *  
      * @param sender
      * @param reciever
      * @param content
@@ -98,4 +105,23 @@
     public int getDirection() {
         return direction;
     }
+
+    /**
+     * add the Implementation level properties that properties will be add to the Axis2 Message Context
+     * @param key
+     * @param value
+     */
+    public void addProperty(String key, Object value) {
+        if(key != null && value != null) {
+            properties.put(key,value);
+        }
+    }
+
+    /**
+     * Return the properties of the SMS message
+     * @return
+     */
+    public Map<String , Object> getProperties() {
+        return properties;
+    }
 }

Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageBuilder.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageBuilder.java?rev=822334&r1=822333&r2=822334&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageBuilder.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSMessageBuilder.java Tue Oct  6 16:20:35 2009
@@ -30,15 +30,15 @@
 public interface SMSMessageBuilder {
 
     /**
-     * Build the Axis2 MessageContext from the given message Coming
-     * @param message  the content of the SMS
-     * @param configurationContext axis2 configuration Context
-     * @param sener senders phone number
-     * @param receiver receivers phone number
-     * @return  the Axis2 Message Context build
-     * @throws InvalidMessageFormatException if Message is not in correct format
+     * Build the Axis2 Message Context form the SMSMessage.This is respnsible for handling <br>
+     * the content comming with the SMSMessage, handling the sender receiver details and handling the <br>
+     * and handling the SMSMessage properties to buld the Axis2 Message Context appropriately
+     * @param msg
+     * @param configurationContext
+     * @return
+     * @throws InvalidMessageFormatException
      */
-    public MessageContext buildMessaage(String message ,String sener,String  receiver, ConfigurationContext configurationContext)
+    public MessageContext buildMessaage(SMSMessage msg, ConfigurationContext configurationContext)
             throws InvalidMessageFormatException;
 
 }

Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSTransportConstents.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSTransportConstents.java?rev=822334&r1=822333&r2=822334&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSTransportConstents.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/SMSTransportConstents.java Tue Oct  6 16:20:35 2009
@@ -39,6 +39,15 @@
     public static String FORMATTER_CLASS ="formatterClass";
     public static String SEND_TO="sms_sender";
     public static String DESTINATION = "sms_destination";
+    /**
+     * if this paprameter is set true in the Transport sender configuration.
+     * sender will use message source specific parameters as destination parameters when sending the message
+     * the default value is true.
+     *
+     * eg: in a SMPP Transport message
+     * SOURCE_ADDRESS_TON will be used as the DESTINATION_ADDRESS_TON is this parameter is not set to false.
+     */
+    public static String INVERT_SOURCE_AND_DESTINATION = "invert_source_and_destination";
     public static String PHONE_NUMBER = "phoneNumber";
 
     /**

Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPDispatcher.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPDispatcher.java?rev=822334&r1=822333&r2=822334&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPDispatcher.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPDispatcher.java Tue Oct  6 16:20:35 2009
@@ -22,6 +22,8 @@
 import org.apache.axis2.transport.sms.SMSManager;
 import org.apache.axis2.transport.sms.SMSMessage;
 
+import java.util.Map;
+
 /**
  * Dispatch the SMS message taken frpm the SMPP PDU to the Axis2
  */
@@ -35,11 +37,11 @@
         this.manager = manager;
     }
 
-    void dispatch(String source , String receiver,String message) throws AxisFault {
+    void dispatch(String source , String receiver,String message , Map<String , Object> properties) throws AxisFault {
 
       synchronized (this){
           smsMessage = new SMSMessage(source ,receiver, message , SMSMessage.IN_MESSAGE);
-
+          smsMessage.getProperties().putAll(properties);
      }
       manager.dispatchToAxis2(smsMessage);
     }

Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPImplManager.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPImplManager.java?rev=822334&r1=822333&r2=822334&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPImplManager.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPImplManager.java Tue Oct  6 16:20:35 2009
@@ -54,6 +54,18 @@
     private SMPPSession outSession;
     private static TimeFormatter timeFormatter = new AbsoluteTimeFormatter();
 
+
+    /**
+     * SMPP implementation Constents
+     */
+    public static String SOURCE_ADDRESS_TON = "source_address_ton";
+    public static String SOURCE_ADDRESS_NPI = "source_address_npi";
+
+    public static String DESTINATION_ADDRESS_TON = "destination_address_ton";
+    public static String DESTINATION_ADDRESS_NPI = "destination_address_npi";
+
+    
+
     public void start() {
         inSession = new SMPPSession();
         try {
@@ -167,6 +179,11 @@
     }
 
     public void sendSMS(SMSMessage sm) {
+        TypeOfNumber sourceTon =TypeOfNumber.UNKNOWN;
+        NumberingPlanIndicator sourceNpi = NumberingPlanIndicator.UNKNOWN;
+
+        TypeOfNumber destTon = TypeOfNumber.UNKNOWN;
+        NumberingPlanIndicator destNpi = NumberingPlanIndicator.UNKNOWN;
         try {
             if (outSession == null) {
                 outSession = new SMPPSession();
@@ -177,17 +194,60 @@
                                 smppTransportOutDetails.getPassword(), smppTransportOutDetails.getSystemType(),
                                 TypeOfNumber.UNKNOWN, NumberingPlanIndicator.UNKNOWN, null));
 
+                log.debug("Conected and bind to " + smppTransportOutDetails.getHost());
+            }
+
+            boolean invert = true;
+
+            if("false".equals(sm.getProperties().get(SMSTransportConstents.INVERT_SOURCE_AND_DESTINATION))){
+                invert = false;
+            }
+
+            if(invert) {
+                if(sm.getProperties().get(DESTINATION_ADDRESS_NPI) != null) {
+                    sourceNpi = NumberingPlanIndicator.valueOf((String)sm.getProperties().get(DESTINATION_ADDRESS_NPI));
+                }
+                      
+                if(sm.getProperties().get(DESTINATION_ADDRESS_TON) != null) {
+                    sourceTon = TypeOfNumber.valueOf((String)sm.getProperties().get(DESTINATION_ADDRESS_TON));
+                }
+                if(sm.getProperties().get(SOURCE_ADDRESS_NPI) != null) {
+                    destNpi = NumberingPlanIndicator.valueOf((String)sm.getProperties().get(SOURCE_ADDRESS_NPI));
+                }
+                if(sm.getProperties().get(SOURCE_ADDRESS_TON) != null) {
+                    destTon = TypeOfNumber.valueOf((String)sm.getProperties().get(SOURCE_ADDRESS_TON));
+                }
+
+
+            } else {
+
+                if(sm.getProperties().get(DESTINATION_ADDRESS_NPI) != null) {
+                    destNpi = NumberingPlanIndicator.valueOf((String)sm.getProperties().get(DESTINATION_ADDRESS_NPI));
+                }
+
+                if(sm.getProperties().get(DESTINATION_ADDRESS_TON) != null) {
+                    destTon = TypeOfNumber.valueOf((String)sm.getProperties().get(DESTINATION_ADDRESS_TON));
+                }
+
+                if(sm.getProperties().get(SOURCE_ADDRESS_NPI) != null) {
+                    sourceNpi = NumberingPlanIndicator.valueOf((String)sm.getProperties().get(SOURCE_ADDRESS_NPI));
+                }
+
+                if(sm.getProperties().get(SOURCE_ADDRESS_TON) != null) {
+                    sourceTon = TypeOfNumber.valueOf((String)sm.getProperties().get(SOURCE_ADDRESS_TON));
+                }
 
             }
-            log.debug("Conected and bind to " + smppTransportOutDetails.getHost());
+
+
 
             String messageId = outSession.submitShortMessage(
                     "CMT",
-                    TypeOfNumber.UNKNOWN,
-                    NumberingPlanIndicator.UNKNOWN,
+                    sourceTon,
+                    sourceNpi,
                     sm.getSender(),
-                    TypeOfNumber.UNKNOWN,
-                    NumberingPlanIndicator.UNKNOWN,
+                    destTon,
+                    destNpi,
                     sm.getReceiver(),
                     new ESMClass(),
                     (byte) 0,

Modified: webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPListener.java
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPListener.java?rev=822334&r1=822333&r2=822334&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPListener.java (original)
+++ webservices/commons/trunk/modules/transport/modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPListener.java Tue Oct  6 16:20:35 2009
@@ -29,6 +29,9 @@
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 
+import java.util.HashMap;
+import java.util.Map;
+
 /**
  * Listen for the incomming SMPP messages and Start processing them
  */
@@ -65,9 +68,22 @@
 
             }
         } else {
+            Map<String , Object> properties = new HashMap<String,Object>();
+
+            properties.put(SMPPImplManager.SOURCE_ADDRESS_TON ,
+                    TypeOfNumber.valueOf(deliverSm.getSourceAddrTon()).toString());
+
+            properties.put(SMPPImplManager.SOURCE_ADDRESS_NPI ,
+                    NumberingPlanIndicator.valueOf(deliverSm.getSourceAddrNpi()).toString());
+
+            properties.put(SMPPImplManager.DESTINATION_ADDRESS_TON ,
+                    TypeOfNumber.valueOf(deliverSm.getDestAddrTon()).toString());
+            properties.put(SMPPImplManager.DESTINATION_ADDRESS_NPI ,
+                    NumberingPlanIndicator.valueOf(deliverSm.getDestAddrNpi()).toString());
 
             try {
-                new SMPPDispatcher(smsManeger).dispatch(deliverSm.getSourceAddr() ,deliverSm.getDestAddress() ,new String(deliverSm.getShortMessage()));
+                new SMPPDispatcher(smsManeger).dispatch(deliverSm.getSourceAddr() ,deliverSm.getDestAddress() ,
+                        new String(deliverSm.getShortMessage()), properties);
 
             } catch (AxisFault axisFault) {
                 log.debug("Error while dispatching SMPP message" , axisFault);

Modified: webservices/commons/trunk/modules/transport/pom.xml
URL: http://svn.apache.org/viewvc/webservices/commons/trunk/modules/transport/pom.xml?rev=822334&r1=822333&r2=822334&view=diff
==============================================================================
--- webservices/commons/trunk/modules/transport/pom.xml (original)
+++ webservices/commons/trunk/modules/transport/pom.xml Tue Oct  6 16:20:35 2009
@@ -43,6 +43,7 @@
         <module>modules/xmpp</module>
         <module>modules/mail</module>
         <module>modules/jms</module>
+        <module>modules/sms</module>
         <module>modules/testkit</module>
     </modules>