SMS集线器注意事项

张贴者 上2013年4月6日在 支持博客

主题关键字: , ,

NowSMS通常用于使用SMPP协议在多个SMSC之间提供SMS消息路由连接。本文档旨在阐明SMS集线器配置中经常遇到的问题。

在SMS集线器配置中,NowSMS使用SMPP协议连接到一个或多个服务提供商。服务提供商通过SMPP连接将选定的SMS消息路由到NowSMS,然后使用NowSMS通过另一个SMPP连接将SMS消息路由到其他服务提供商。

这个概念很简单,但是实现起来可能会很困难,这部分是由于路由和移动号码可移植性(MNP)的问题以及SMPP协议的体系结构。

NowSMS中的消息路由由前缀路由或基于动态HTTP的路由回调控制。标题为标题的另一篇文章讨论了消息路由 具有HTTP回调的动态SMS消息路由.

在为集线器配置SMPP连接时,一个重要的考虑因素是由哪一方发起连接。这很重要,因为SMPP协议采用了客户-服务器关系。发起连接的一方是客户或ESME。接受连接的一方被视为服务器或SMSC。

NowSMS发起连接的SMPP连接(NowSMS = ESME)在“ SMSC”列表中定义。

另一方发起连接的SMPP连接(NowSMS = SMSC)在“ SMS用户”列表中定义。

ESME使用称为Submit_sm的SMPP数据包将SMS消息发送到SMSC。

SMSC使用称为Delivery_sm的SMPP数据包将SMS消息发送到ESME。

图1说明了从ESME到SMSC的简单配置中的典型消息流。

简单的ESME到SMSC

集线器连接不是客户端-服务器关系,而是在逻辑上是对等连接。但是,仍必须遵循SMPP协议规则,并且必须根据连接的方向来使用Submit_sm或delivery_sm。

Submit_sm和Delivery_sm之间的差异会导致邮件ID跟踪出现问题,尤其是在传递报告方面。这是因为SMPP消息ID不是全局的,而是仅在逐跳的基础上存在。

当ESME使用Submit_sm向SMSC提交SMS消息时,SMSC会在接受该消息时分配一个新的消息ID,并在Submit_sm响应中返回新分配的消息ID。 SMSC不知道任何先前分配的消息ID。从现在开始,任何可能生成的传递报告都将通过此新消息ID引用该消息。任何上游SMSC最终都会将包含此传递报告的delivery_sm数据包路由回ESME,并且ESME将需要已经记住/跟踪了Submit_sm响应中的消息ID分配,以便知道它所引用的消息。

在SMS集线方案中,如果SMSC有一条要路由到ESME的消息,则它将使用delivery_sm传输该消息。 delivery_sm数据包不包含任何消息ID信息,因此接收ESME不了解先前分配给该消息的消息ID。为了进一步处理消息,ESME需要为消息分配一个新的消息ID。与submit_sm响应不同,deliver_sm响应无法将此新分配的消息ID报告回连接的另一端。生成的所有送达报告都将引用此新的邮件ID,但是原始SMSC不知道此邮件ID,因此无法将其追溯到其引用的原始邮件。

图2和3突出显示了SMS集线器仅以SMSC或ESME的角色运行时遇到的问题。

fig2-sms-hub-as-smsc

fig3-sms-hub-as-esme

在典型的SMS聚合器方案中,路由消息时,上游SMSC既充当SMSC又充当ESME,并且能够成功地将消息从ESME路由到上游SMSC,并将传递报告从上游SMSC传回到ESME,如图所示。 4。

无花果-上游-SMSC混合

但是,这种情况下仍然期望客户端-服务器关系。

有两种方法可以克服这些限制,以实现真正的对等SMS集线。

1.)集线器连接的每一端都以ESME和SMSC的形式连接到另一方。常规SMS消息始终从ESME路由到SMSC,传递报告始终从SMSC路由到ESME。从NowSMS的角度来看,在“ SMSC”列表中定义了NowSMS启动的连接,在“ SMS用户”列表中定义了另一方启动的连接。

图5说明了这种情况。

fig5-sms-hub-as-hybrid

2.)SMPP协议定义了一种称为data_sm的替代数据包格式,而不是使用Submit_sm和delivery_sm。无论连接的方向如何,都可以使用此data_sm数据包,并且当使用它代替delivery_sm时,可以返回消息ID信息。 NowSMS 2013提供了配置设置,以允许将data_sm用于ESME或SMSC连接。

图6说明了这种情况。

fig6-sms-hub-uses-data-sm

NowSMS始终对交付报告执行自动SMPP消息跟踪,翻译和路由。但是,预期的交付报告流是从SMSC到ESME。为了使NowSMS能够正确理解和路由从ESME(即“ SMS用户”连接)收到的交付报告,在与该帐户通信时,必须将NowSMS配置为“使用data_sm PDU”。

smpp使用数据短信同样,如果在NowSMS“ SMSC”列表中定义了连接,则在SMPP连接的“高级设置”下启用“重新路由接收的邮件以进行外向传递”设置也很正常。通常,将从SMSC连接接收的消息路由到2向命令进行处理。此设置更改了行为,以便将从此SMSC连接接收的邮件排队等待出站传递。

重要说明:请勿将SMS集线器和ESME / SMSC角色与是否使用收发器连接的概念混淆。一个连接与两个连接的概念相似但不同。

当ESME启动与SMSC的连接时,它会指定所需的连接类型。连接类型为发送器(仅发送),接收器(仅接收)和收发器(发送和接收)。当NowSMS连接到SMSC时,默认行为是使用单独的发送器和接收器连接。可以启用收发器模式以将单个连接用于发送和接收消息。

对于收发器连接,连接的发起方仍然被认为是ESME的角色。因此,哪一方是ESME,哪一方是SMSC的集线器考虑仍然适用。

如有评论和更多讨论,请单击此处访问NowSMS技术论坛(讨论板)...