我正在尝试通过talend ESB从SMPP网关获取回复状态。有什么办法可以使用QuerySm
talend来做到这一点?有没有人有使用QuerySm
一般的经验?如果是这样,请有人给我一些有关如何操作的提示。我尝试了目前的人才工作,但没有成功。
甚至有关如何Query_sm
工作或如何使用它的指针也将非常有帮助。我已经在互联网上搜索了一段时间,可悲的是,似乎找不到这些答案。:C
任何帮助,将不胜感激。提前致谢。
编辑:
嗨Wahid很抱歉已经有一段时间了。Smpp的记录似乎很少,而camelSmpp 11似乎已修复了许多问题。我们发现未收到所有报告的原因是重复的报告。服务提供商每个数据包发送一个以上的delivery_sm(不确定这是否正常),因此,与其读取所有的delivery_sm,不如复制第一个的,因此我们实际上无法在其中收集其他的delivery_sm。包。我们有什么办法可以收到这些delivery_sm?我无法在smpp文档中找到此文件。
在此答案中,我分享了我在SMPP方面的经验。我没有使用过Talend ESB。
根据SMPP 3.4规范,第4.8、5.2.28和6.1节提供了有关query_sm和query_sm_resp pdus的描述。以下是一些关键点:
我很想知道是什么促使你使用query_sm。query_sm pdus在现实生活中很少使用。在工作中,我们每天都会处理来自美国所有主要运营商的数十亿条SMS,而且很少收到任何query_sm。
query_sm的替代方案是“收货”,但大多数平台并不那么支持。你所连接的直接平台可以为你提供一些信息。
嗨,瓦希德(Wahid),我的动机是,在向运营商网关发送消息时,我们似乎并未收到所有收货收据。在大约2000条消息中,我们仅收到约60%的发送状态。我们想知道是否可以发送query_sm并接收消息ID的当前状态。是否有可能做到这一点?我们需要使用什么来做到这一点?
query_sm可以从您的ESME连接到的SMSC获取结果。如果SMSC勤奋工作,它可能会尽其所能返回正确的结果。如果SMSC将实际的SMS发送到听筒,则可以依靠结果。如果SMSC连接到某个中间SMPP实体,它可以将query_sm(我怀疑任何系统都可以这样做)转发到这些平台,并期望它们能够正确答复。通常,您不知道如何设置此拓扑,因此只能希望query_sm_resp是一个很好的拓扑。
交货收据可以从手机上获取所有结果。为此,接收手机必须愿意发回确认。此外,所有连接的ESME / SMSC需要合作以转发收货结果;系统可以过早地整理自己的收据。您将获得60%的交货收据。我只能猜测出几个原因-目的地号码有误,消息未送达或接收手机转了收据。您可以检查相同的目的地编号是否得到相同的交货收据结果吗?它可能会给您一些线索。
嗨,瓦希德(Wahid),我已经使用Wireshark捕获数据包。标题如下。883 98.372604000 10.0.0.2 192.168.0.1 SMPP 558 SMPP Deliver_sm,Deliver_sm,Deliver_sm。也对报告表示抱歉,我的意思是Deliver_sm。
(1)根据SMPP 3.4,每个SMPP PDU只能包含一个deliver_sm。时期。(2)TCP数据包包含任意数量的SMPP PDU(甚至是PDU的一小部分)也完全可以。Wireshark可能正在显示这一点。任何体面的SMPP库都应该能够分别返回这些SMPP PDU。(3)您如何确定这些deliver_sm PDU是重复的?