响应之前SMPP连接丢失

时间:2015-07-10 11:41:22

标签: smpp

我刚刚阅读了SMPP协议V3.4(问题1.2)

对于每个请求,必须有相应的响应。 (ALERT_NOTIFICATION除外)。

但是,如果在收到回复之前连接丢失(损坏,关闭),那么就不能解释会发生什么。

ESME send BIND request to SMSC
ESME receive BIND response from SMSC

ESME send DATA_SM request to SMSC
** connection is lost **

SMSC有响应,但无法转发到ESME

ESME send BIND request to SMSC
ESMS receive BIND response from SMSC

我看到了两种可能性 a°)SMSC现在将发送DATA_SM响应 b°)DATA_SM响应将永远丢失吗?

如果DATA_SM响应丢失,ESME可能会重新发送DATA_SM,最终客户将收到2 DATA_SM。

如果DATA_SM响应重新发送,则序列号可能不匹配?

2 个答案:

答案 0 :(得分:0)

序列号是当前绑定连接的状态,如果它丢失则会丢弃任何_resp pdu,因为ESME上的相关序列号已随连接丢弃。

答案 1 :(得分:0)

您不会在新绑定上获得DATA_SM_RESP。首先,因为序列号仅对于特定会话是唯一的。

可能是运营商(SMSC)具体如何处理连接在能够发送RESP PDU之前丢失的情况,我想他们可能会忽略该消息。

如果您使用它作为SUBMIT_SM的替代方案并设置了registered_delivery标记,则可以使用送达回执来检查邮件的状态。