使用 OpenSmpp 从 SMSC 接收消息

2024-01-11

我正在尝试使用 OPENSMPP 接收来自 SMSC 的消息。 这是我的代码:

try{
    PDU pdu = session.receive(30000);
    if(pdu instanceof DeliverSM){
        DeliverSM received = (DeliverSM) pdu;
        if (received.getEsmClass() == 0) {                                                          // new message
            logger.debug("RECEIVE NEW MESSAGE:" + received.debugString());
            String MSG_SENDER = received.getSourceAddr().getAddress();
            String SHORT_MSG = received.getShortMessage();
        } else {                                                                                    // delivry Repport
            logger.debug("RECEIVE NEW DELIVERED REPORT:" + received.debugString());
            String MSG_ID = (new BigInteger(received.getReceiptedMessageId(), 16)) + "";
            int MSG_STATUS = received.getMessageState();
        }
    }else{
        logger.debug("----------------- FF pdu: " +pdu.debugString());
    }
} catch (TimeoutException e) {
    logger.error("------------------------- ["+SMSC_NAME+"] SMPP RECEIVED TimeoutException "+e.getMessage()+" ---------------- ", e );
} catch (ValueNotSetException e){
    logger.error("-------------------------["+SMSC_NAME+"]  SMPP RECEIVED ValueNotSetException "+e.getMessage()+" ---------------- ", e );
} catch (WrongLengthOfStringException e) {
    logger.error("-------------------------["+SMSC_NAME+"]  SMPP RECEIVED WrongLengthOfStringException "+e.getMessage()+" ---------------- ", e );
} catch (PDUException e) {
    logger.error("-------------------------["+SMSC_NAME+"]  SMPP RECEIVED PDUException "+e.getMessage()+" ---------------- ", e );
} catch (IOException e) {
    logger.error("-------------------------["+SMSC_NAME+"]  SMPP RECEIVED IOException "+e.getMessage()+" ---------------- ", e );
}catch (NotSynchronousException e) {
    logger.error("-------------------------["+SMSC_NAME+"]  SMPP RECEIVED NotSynchronousException "+e.getMessage()+" ---------------- ", e );
}catch (Exception e) {
    logger.error("-------------------------["+SMSC_NAME+"]  SMPP RECEIVED Exception "+e.getMessage()+" ---------------- ", e );
}

当我连接到 SMSC 时,该代码工作正常,但是当我将 SMSC 更改为其他中心 SMSC 时,我收到此错误:

SMPP.org.pdu.ValueNotSetException

当我跟踪时,我发现消息 ID 为空,但这是我的 pdu 调试:

(交付:(pdu:150 5 0 14)(地址:1 1 22544803532)(地址:2 1 98131) (sm: msg: id:256092548 sub:000 dlvrd:000 提交日期:1708171009 完成 日期:1708171009 统计:DELIVRD 错误:000 文本:)(选择:))

有人能帮助我吗。


pdu 调试字符串指示消息 ID 和所有其他参数由 SMSC 发送。确保您正在跟踪正确的 PDU 。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 OpenSmpp 从 SMSC 接收消息 的相关文章

随机推荐