2011-01-11 6 views
7

Ich versuche, eine mehrteilige SMS-Nachricht in Java zu senden.Kann nicht senden Multipart SMS-Nachricht über SMPP 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(); 
} 

Aber dieser Code scheint nicht zu funktionieren. Was ich erhalte, sind Nachrichten, die in verschiedenen Nachrichten aufgeteilt sind und nicht auf dem Mobilteil verkettet sind.

Irgendwelche Hinweise auf was mache ich hier falsch.

+0

Ich schlage vor, Sie erhalten eine Netzwerk-Ablaufverfolgung der Sendung mit [Wireshark] (http://www.wireshark.org/). Es hat einen großartigen SMPP-Protokoll-Handler, der alle Flags und Optionen der Pakete anzeigt. Wenn Sie noch Probleme haben, posten Sie die Details und ich kann Ihnen vielleicht helfen. – alexrs

Antwort

1

Raks,

Denken Sie daran, dass nicht alle Netzwerke der Welt, noch alle Handys in der Welt richtig konfiguriert sind zum Senden/Empfangen der mehrteilige SMS-Nachrichten.

Da Sie Ihren eigentlichen SMSC-Connector (zu Recht) getarnt haben, bin ich mir nicht sicher, mit welchem ​​Carrier/Aggregator Sie verbunden sind. Daher kann ich nicht sagen, ob dies das Problem in Ihrer speziellen Situation ist.

Aber wie Alexrs sagte, fügen Sie die TCP-Dump-Ausgabe hinzu und wir können zumindest die korrekte Ausgabe kommentieren, die von Ihrer App kommt.

+0

Sogar auf Carriern und Telefonen, von denen ich weiß, dass sie mehrteilige Nachrichten unterstützen (sowohl gesendet als auch empfangen), habe ich immer noch das Problem, dass mehrteilige Nachrichten als mehrere einzelne Nachrichten empfangen werden, wenn sie mit ähnlichem Code gesendet werden. – ADTC