我有一个问题,发送连接消息给我的SMSC,在这里,我将尽我最大的努力来描述问题。
在发送连接消息时,我的SMSC等待接收消息的所有段,然后将其处理给提供程序并发送回响应,这意味着当我使用JSMPP时,每当我收到一条长消息(用于GSM7的160个字符)时,我将将消息分割成分段,并使用session.submitShortMessage方法提交每个段。
问题是此调用是同步的,并等待SMSC使用submit_sm_resp进行响应。为此,我需要使用某种异步模式来提交消息。
我不知道如何在库的当前实现中做到这一点。
你知道怎么做吗?
提前感谢
发布于 2022-05-14 17:32:42
你描述的SMSC在你的案子中的工作方式对我来说是可疑的。我不知道任何SMSC只会在所有段提交后才会回复(在这里,我假设通过smpp协议进行通信)。考虑到您的SMSC实现了smpp规范版本3.4,您可能需要与负责维护此SMSC的团队进行交谈。
假设您的(jsmpp)客户端将一个长文本消息(超过140个字节)分割成两个段。对于每个段,客户端发送submit_sm并同步接收submit_sm_resp。这是正确的客户端行为,可以看到jsmpp库中的一个示例(SubmitLongMessageExample.java)。
该示例在向SMSC提交消息时使用可选参数,提供序列号、总段,最重要的是提供唯一的消息引用号。
SMSC主要应该对每个提交的段进行同步响应,当它确定对于一个唯一的消息引用,所有段都已经接收到时,它应该处理该消息并将其传递给最终用户(移动电话)。
这种行为/信息也可以在规格说明 at https://smpp.org/中找到。如果您的SMSC没有这样的行为,那么jsmpp库的标准实现将无法帮助您(就这一点而言,其他任何人)
发布于 2022-05-31 09:38:20
您需要使用MessageReceiverListener onAcceptDeliverSm的transciever绑定模式和实现。
https://stackoverflow.com/questions/71174446
复制相似问题