Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't send multipart sms message over SMPP in java

Tags:

java

smpp

I am trying to send a multipart sms message in 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();
}

But this code doesn't seem to work. What I receive is messages split up in different messages and not concatenated on the handset.

Any pointers on what am I doing wrong here.

like image 812
Raks Avatar asked Jan 11 '11 17:01

Raks


1 Answers

Raks,

Remember that not all networks in the world, nor all handsets in the world are configured correctly for sending/receiving the multi-part SMS messages.

As you have (rightly) disguised your actual SMSC connector, i'm not sure which carrier/aggregator you connect to. Therefore i can't comment if this is the problem in your specific situation.

But as Alexrs said, include the TCP Dump output and we can at least comment on the correct output coming from your app.

like image 75
Marijn Avatar answered Sep 22 '22 06:09

Marijn