public void onAcceptDeliverSm()

in modules/sms/src/main/java/org/apache/axis2/transport/sms/smpp/SMPPListener.java [47:95]


    public void onAcceptDeliverSm(DeliverSm deliverSm) throws ProcessRequestException {

        if (MessageType.SMSC_DEL_RECEIPT.containedIn(deliverSm.getEsmClass())) {
            // this message is delivery receipt
            try {
                DeliveryReceipt delReceipt = deliverSm.getShortMessageAsDeliveryReceipt();

                // lets cover the id to hex string format
                long id = Long.parseLong(delReceipt.getId()) & 0xffffffff;
                String messageId = Long.toString(id, 16).toUpperCase();

                /*
                 * you can update the status of your submitted message on the
                 * database based on messageId
                 */

                log.debug("Receiving delivery receipt for message '" + messageId +
                        " ' from " + deliverSm.getSourceAddr() + " to " + deliverSm.getDestAddress()
                        + " : " + delReceipt);
            } catch (InvalidDeliveryReceiptException e) {
                log.debug("Failed getting delivery receipt" , e);

            }
        } 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()), properties);

            } catch (AxisFault axisFault) {
                log.debug("Error while dispatching SMPP message" , axisFault);

            }
            log.debug("Receiving message : " + new String(deliverSm.getShortMessage()));
        }

    }