Я использую JSMPP (реализация Java SMPP) для отправки SMS с моего веб-приложения в центр SMS. У меня есть следующий код для получения отчета о доставке любого отправленного SMS.Получение статуса отправленного сообщения в JSMPP
public class MessageListenerImplementation implements MessageReceiverListener {
public void onAcceptDeliverSm(DeliverSm deliverSm) throws ProcessRequestException {
if (MessageType.SMSC_DEL_RECEIPT.containedIn(deliverSm.getEsmClass())) {
try {
DeliveryReceipt deliveryReceipt = deliverSm.getShortMessageAsDeliveryReceipt();
long id = Long.parseLong(deliveryReceipt.getId()) & 0xffffffff;
String messageId = Long.toString(id, 16).toUpperCase();
System.out.println("Delivery receipt for message '" + messageId + " ' from " + deliverSm.getSourceAddr() + " to " + deliverSm.getDestAddress() + " : " + deliveryReceipt);
}catch (InvalidDeliveryReceiptException e) {
System.err.println("Failed getting delivery receipt");
e.printStackTrace();
}
}
}
}
Когда я зарегистрировать выше слушатель для СУБП»квитанции о доставке и отправить его, то получите уведомление о доставке следующего
и получение поставки следующим
id:5 sub:001 dlvrd:001 submit date:1312091213 done date:1312091213 stat:DELIVRD err:000 text:Hello SMSC from ESME
Теперь я интересно узнать, как получить статус отправки в каком-то целочисленном диапазоне, независимо от того, отправлено, не выполнено или все еще ожидает, чтобы я мог использовать его для обновления моей базы данных соответственно?
И что, если я хочу позже проверить статус СМС на основе его идентификатора, есть ли способ сделать это? – sikander
Вы получите идентификатор в submitsm, сохраните его в db и отметьте этот идентификатор при обновлении. – GP32
Могу ли я использовать сохраненный идентификатор, чтобы проверить статус SMS позже? – sikander