无法在java中通过SMPP发送multipart sms消息

时间:2011-01-11 17:16:28

标签: java smpp

我正在尝试在java中发送多部分短信。

    public static void main(String[] args) throws Exception {
    SMPPSession session = new SMPPSession();
    session.connectAndBind("0.0.0.0", 00000, new BindParameter(
                BindType.BIND_TX, "User", "Pass", "SMPP", TypeOfNumber.UNKNOWN,
                NumberingPlanIndicator.UNKNOWN, null));
    Random random = new Random();

    final int totalSegments = 3;
    OptionalParameter sarMsgRefNum = OptionalParameters.newSarMsgRefNum((short) random.nextInt());
    OptionalParameter sarTotalSegments = OptionalParameters.newSarTotalSegments(totalSegments);

    for (int i = 0; i < totalSegments; i++) {
        final int seqNum = i + 1;
        String message = "Message part " + seqNum + " of " + totalSegments + " ";
        OptionalParameter sarSegmentSeqnum = OptionalParameters
                .newSarSegmentSeqnum(seqNum);
        String messageId = session.submitShortMessage("CMT", TypeOfNumber.INTERNATIONAL,
                NumberingPlanIndicator.UNKNOWN, "919999999999", TypeOfNumber.INTERNATIONAL,
                NumberingPlanIndicator.UNKNOWN, "919999999999", new ESMClass(),
                (byte) 0, (byte) 1, timeFormatter.format(new Date()), null,
                new RegisteredDelivery(SMSCDeliveryReceipt.DEFAULT), (byte) 0,
                new GeneralDataCoding(false, false, MessageClass.CLASS1,
                        Alphabet.ALPHA_8_BIT), (byte) 0, message.getBytes(),sarSegmentSeqnum, sarTotalSegments, sarMsgRefNum);
        System.out.println("Message submitted, message_id is " + messageId);
    }
    session.unbindAndClose();
}

但是这段代码似乎不起作用。我收到的是在不同消息中分开的消息,而不是在手机上连接。

关于我在这里做错了什么的任何指示。

1 个答案:

答案 0 :(得分:1)

拉克斯,

请记住,并非所有世界上的网络,以及世界上所有手机都配置正确,无法发送/接收多部分SMS消息。

正如您(正确地)伪装您的实际SMSC连接器,我不确定您连接到哪个运营商/聚合器。因此,如果这是您特定情况下的问题,我无法发表评论。

但正如Alexrs所说,包括TCP转储输出,我们至少可以评论来自您的应用程序的正确输出。

相关问题