Есть ли способ получить 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?

0 ответов

Другие вопросы по тегам