我有SMPP服务器,使用CloudHoper。 当我收到消息时,我应该返回一份递送报告。 请告诉我,我该怎么做?
此时我返回SubmitSmResp ...
答案 0 :(得分:1)
当然,您仍需要像现在一样使用SubmitSmResp PDU回复SubmitSm PDU。
送货报告是特殊的" DeliverSm PDU,它在您的SMPP服务器中生成并另外发送到您的客户端。请参阅SMPP 3.4附录B格式化方式(https://github.com/twitter/cloudhopper-smpp/blob/master/src/etc/SMPP_v3_4_Issue1_2.pdf)。您还需要将DeliverSm PDU的esmClass设置为0x04,以表明它是一份交付报告。
如果您的客户端使用收发器绑定,您可以使用相同的会话发送DeliverSm PDU,否则您需要使用客户端接收器会话。如果没有可用的活动会话,则需要对DeliverSm PDU进行排队。
主要问题是何时发送送达报告。首先,如果客户端请求了一个传递报告,您可以通过设置SubmitSm esmClass的第4位来发送传递报告。
虽然,如果您的客户端使用收发器连接,请不要直接在firePduRequestReceived处理程序中发送它。客户端可能会在收到SubmitSmResp之前收到它。此外,此递送报告的价值不会超过SubmitSmResp本身。
因此,有三种情况可以生成此传递报告并将其排队,直到您从客户端获得适当的会话以将其发送到:
1)当您收到一些外部事件,表明前一个SubmitSm已被其目的地实际处理(例如已交付)。
2)当您能够将SubmitSm转发到下一个处理单元时。
3)当您检测到任何错误或SubmtSm过期时
答案 1 :(得分:0)
为该邮件创建DELIVER_SM并将其发送给客户端。