java - Sumit-Multi 交付报告

标签 java smpp jsmpp

我们正在使用jsmpp图书馆 SmppSm ,这是场景

  1. 创建 session 并绑定(bind)为发送器
  2. 注册MessageRecieverListener
  3. 发送SubmitMulti命令

我们期望收到送达报告,但没有收到,我们还搜索 SMPP 是否支持 Submit-Multi 的送达报告
这是我的代码

SMPPSession session = new SMPPSession();
return session.connectAndBind("127.0.0.1",
 2775,
 new BindParameter(BindType.BIND_TRX,
  "smppclient1",
  "password",
  "cp",
  TypeOfNumber.UNKNOWN,
  NumberingPlanIndicator.UNKNOWN,
  null));

Address[] addresses = new Address[] {
 new Address(TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.UNKNOWN, "628176504657"),
  new Address(TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.UNKNOWN, "628176504658")
};

session.setMessageReceiverListener(new MessageReceiverListenerImpl());

Address[] addresses = new Address[] {
 new Address(TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.UNKNOWN, "628176504657"),
  new Address(TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.UNKNOWN, "628176504658")
};

result = session.submitMultiple("CMT",
 TypeOfNumber.INTERNATIONAL, NumberingPlanIndicator.UNKNOWN, "1616",
 addresses,
 new ESMClass(), (byte) 0, (byte) 1, TIME_FORMATTER.format(new Date()), null,
 new RegisteredDelivery(SMSCDeliveryReceipt.SUCCESS_FAILURE), ReplaceIfPresentFlag.DEFAULT,
 new GeneralDataCoding(Alphabet.ALPHA_DEFAULT, MessageClass.CLASS1, false), (byte) 0,
 "jSMPP simplifies SMPP on Java platform".getBytes());

但我们猜测 SMPP 不支持这样的事情,因为传递报告仅包含 message-idmessage-state 其中没有有关接收者信息的信息,在 submit-multi

中没有任何意义

最佳答案

您应该使用收发器模式来接收响应

关于java - Sumit-Multi 交付报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61376938/

相关文章:

java - JSMPP - EnquireLinkTimer,长时间不活动后 session 终止

java - 如何在类对象属性的 HashMap 上使用可比性

java - WAR 中的文件出现双重

java - 如何增加 ExtentReports 4.0.9 中屏幕截图缩略图的大小

java - 带有unicode字符的deliver_sm请求

apache-camel - Camel SMPP - 服务器

java - 更新数据表

java - 使用 jsmpp 与 smpp 服务器绑定(bind)问题

java - 将文本转换为图片消息?

java - 在Java中对法语字符进行编码?