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