Skip to content

Commit

Permalink
Fix for RestComm#23: delivery report transit - Tlv receipted_message_…
Browse files Browse the repository at this point in the history
…id SMPP

Simulator update
  • Loading branch information
vetss committed Nov 17, 2016
1 parent 774abd6 commit 5c88134
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 14 deletions.
Expand Up @@ -197,12 +197,15 @@ public PduResponse firePduRequestReceived(PduRequest pduRequest) {

String msgId;
String msgId2;
if (this.testingForm.getSmppSimulatorParameters().isHexMessageIdResponse()) {
String msgId3;
if (this.testingForm.getSmppSimulatorParameters().isIdResponseTlv()) {
msgId = String.format("%08X", mId);
msgId2 = MessageUtil.createMessageIdString(mId);
msgId3 = msgId;
} else {
msgId = MessageUtil.createMessageIdString(mId);
msgId2 = MessageUtil.createMessageIdString(mId);
msgId3 = null;
}

((BaseSmResp) resp).setMessageId(msgId);
Expand All @@ -215,7 +218,7 @@ public PduResponse firePduRequestReceived(PduRequest pduRequest) {
this.testingForm.getExecutor().schedule(
new DeliveryReceiptSender(
this.testingForm.getSmppSimulatorParameters().getDeliveryResponseGenerating(), new Date(),
msgId2), delay, TimeUnit.MILLISECONDS);
msgId2, msgId3), delay, TimeUnit.MILLISECONDS);
}

testingForm.addMessage("PduResponseSent: " + resp.getName(), resp.toString());
Expand Down Expand Up @@ -283,11 +286,14 @@ public class DeliveryReceiptSender implements Runnable {
private DeliveryResponseGenerating deliveryResponseGenerating;
private Date submitDate;
private String messageId;
private String messageIdTlv;

public DeliveryReceiptSender(DeliveryResponseGenerating deliveryResponseGenerating, Date submitDate, String messageId) {
public DeliveryReceiptSender(DeliveryResponseGenerating deliveryResponseGenerating, Date submitDate, String messageId,
String messageIdTlv) {
this.deliveryResponseGenerating = deliveryResponseGenerating;
this.submitDate = submitDate;
this.messageId = messageId;
this.messageIdTlv = messageIdTlv;
}

@Override
Expand Down Expand Up @@ -341,6 +347,12 @@ public void run() {
delivered, null, tempFailure);
byte[] buf = rcpt.getBytes(utf8Charset);

if (messageIdTlv != null) {
byte[] data = messageIdTlv.getBytes();
Tlv tlv = new Tlv(SmppConstants.TAG_RECEIPTED_MSG_ID, data, "rec_msg_id");
pdu.addOptionalParameter(tlv);
}

try {
pdu.setShortMessage(buf);

Expand Down
Expand Up @@ -95,7 +95,7 @@ public class SmppMessageParamForm extends JDialog {
private JRadioButton rbDR_Success;
private JRadioButton rbDR_Error8;
private JCheckBox cbDRAfter2Min;
private JCheckBox cbHexMessageIdResponse;
private JCheckBox cbIdResponseTlv;
private final ButtonGroup buttonGroup_2 = new ButtonGroup();

public SmppMessageParamForm(JDialog owner) {
Expand Down Expand Up @@ -375,9 +375,9 @@ public void itemStateChanged(ItemEvent arg0) {
cbDRAfter2Min.setBounds(6, 99, 364, 23);
panel_resp.add(cbDRAfter2Min);

cbHexMessageIdResponse = new JCheckBox("HexMessageIdResponse");
cbHexMessageIdResponse.setBounds(6, 125, 364, 23);
panel_resp.add(cbHexMessageIdResponse);
cbIdResponseTlv = new JCheckBox("Tlv fields usage in delivery receipt");
cbIdResponseTlv.setBounds(6, 125, 364, 23);
panel_resp.add(cbIdResponseTlv);

JPanel panel_bulk = new JPanel();
tabbedPane.addTab("Bulk", null, panel_bulk, null);
Expand Down Expand Up @@ -566,7 +566,7 @@ else if (data.getSmppEncoding() == 1)

this.cbRejectIncomingDeliveryMessage.setSelected(this.data.isRejectIncomingDeliveryMessage());
this.cbDRAfter2Min.setSelected(this.data.isDeliveryResponseAfter2Min());
this.cbHexMessageIdResponse.setSelected(this.data.isHexMessageIdResponse());
this.cbIdResponseTlv.setSelected(this.data.isIdResponseTlv());
switch (this.data.getDeliveryResponseGenerating()) {
case No:
this.rbDR_No.setSelected(true);
Expand Down Expand Up @@ -669,7 +669,7 @@ else if (this.rbUnicode.isSelected())

this.data.setRejectIncomingDeliveryMessage(this.cbRejectIncomingDeliveryMessage.isSelected());
this.data.setDeliveryResponseAfter2Min(this.cbDRAfter2Min.isSelected());
this.data.setHexMessageIdResponse(this.cbHexMessageIdResponse.isSelected());
this.data.setIdResponseTlv(this.cbIdResponseTlv.isSelected());
if (rbDR_No.isSelected())
this.data.setDeliveryResponseGenerating(SmppSimulatorParameters.DeliveryResponseGenerating.No);
if (rbDR_Success.isSelected())
Expand Down
Expand Up @@ -45,7 +45,7 @@ public class SmppSimulatorParameters {
private boolean rejectIncomingDeliveryMessage = false;
private DeliveryResponseGenerating deliveryResponseGenerating = DeliveryResponseGenerating.No;
private boolean deliveryResponseAfter2Min = false;
private boolean hexMessageIdResponse = false;
private boolean idResponseTlv = false;

private TON sourceTon = TON.International;
private NPI sourceNpi = NPI.ISDN;
Expand Down Expand Up @@ -366,12 +366,12 @@ public void setDeliveryResponseAfter2Min(boolean deliveryResponseAfter2Min) {
this.deliveryResponseAfter2Min = deliveryResponseAfter2Min;
}

public boolean isHexMessageIdResponse() {
return hexMessageIdResponse;
public boolean isIdResponseTlv() {
return idResponseTlv;
}

public void setHexMessageIdResponse(boolean hexMessageIdResponse) {
this.hexMessageIdResponse = hexMessageIdResponse;
public void setIdResponseTlv(boolean hexMessageIdResponse) {
this.idResponseTlv = hexMessageIdResponse;
}

public enum EncodingType {
Expand Down

0 comments on commit 5c88134

Please sign in to comment.