JSMPP - получить идентификатор сообщения от МО
Как извлечь идентификатор сообщения из МО?
Я хочу связать идентификатор сообщения, возвращенный из submitMultipleMessagesAtOnce, с полученным MO, но не похоже, что для MO можно получить тот же идентификатор сообщения, что и для DLR?
Как мне потом жениться на МО на ДЛР?
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
*/
LOGGER.info("Receiving delivery receipt for message '{}' from {} to {}: {}",
messageId, deliverSm.getSourceAddr(), deliverSm.getDestAddress(), delReceipt);
} catch (InvalidDeliveryReceiptException e) {
LOGGER.error("Failed getting delivery receipt", e);
}
} else {
// this message is regular short message
/*
* HOW DO I GET THE MESSAGE ID HERE AS ABOVE FOR DLR
*/
LOGGER.info("Receiving message : {}", new String(deliverSm.getShortMessage()));
}
}