Есть ли способ получить SMS из какого сеанса в cloudhopper?
Я привязал 2 сеанса к своему SMPPGW и написал класс ClientSmppSessionHandler для обработки в сообщении следующего вида:
открытый класс ClientSmppSessionHandler расширяет DefaultSmppSessionHandler {
private String mapDataCodingToCharset(byte dataCoding) {
switch (dataCoding) {
case SmppConstants.DATA_CODING_LATIN1:
return CharsetUtil.NAME_ISO_8859_1;
case SmppConstants.DATA_CODING_UCS2:
return CharsetUtil.NAME_UCS_2;
case SmppConstants.DATA_CODING_DEFAULT:
return CharsetUtil.NAME_GSM;
default:
return CharsetUtil.NAME_UTF_8;
}
}
@Override
@SuppressWarnings("rawtypes")
public PduResponse firePduRequestReceived(PduRequest request) {
PduResponse response = null;
try {
if (request instanceof DeliverSm) {
String sourceAddress = ((DeliverSm) request).getSourceAddress().getAddress();
String message = CharsetUtil.decode(((DeliverSm) request).getShortMessage(),
mapDataCodingToCharset(((DeliverSm) request).getDataCoding()));
System.out.println("SMS Message Received: {"+ message.trim()+"} , Source Address: {"+ sourceAddress+"}");
boolean isDeliveryReceipt = false;
isDeliveryReceipt = SmppUtil.isMessageTypeAnyDeliveryReceipt(
((DeliverSm) request).getEsmClass());
if (isDeliveryReceipt) {
DeliveryReceipt dlr = DeliveryReceipt.parseShortMessage(message, DateTimeZone.forTimeZone(TimeZone.getTimeZone("UTC")));
// logging delivery here, but you can do something more useful over here
System.out.println("Received delivery from {} at {} with message-id {} and status {}"+ sourceAddress +
dlr.getDoneDate() + dlr.getMessageId() + DeliveryReceipt.toStateText(dlr.getState()));
}
}
response = request.createResponse();
} catch (Throwable error) {
System.out.println("Error while handling delivery"+ error);
response = request.createResponse();
response.setResultMessage(error.getMessage());
response.setCommandStatus(SmppConstants.STATUS_UNKNOWNERR);
}
return response;
}
} `
И я хочу отправить ответное сообщение на sourceAddress сеансом, который получил сообщение. Нравится :
- session1 получите sms-1 «привет 1». Итак, как мне узнать, что sms-1 пришло с session1?