Java 使用查询(Smpp)

Java 使用查询(Smpp),java,smpp,talend,Java,Smpp,Talend,我正试图通过talend ESB从SMPP网关获取回复状态。有没有办法通过talend使用QuerySm来实现这一点?有没有人有过一般使用QuerySm的经验?如果是的话,请有人给我一些如何做的提示。我尝试过我目前的talend工作,但没有成功 即使是关于Query\u sm如何工作或如何使用它的指针也会非常有用。我在网上搜索了一段时间,遗憾的是,似乎找不到这些答案c 任何帮助都将不胜感激。 提前谢谢 编辑: 嗨,瓦希德,对不起,有段时间了。Smpp的文档似乎非常缺乏,Smpp 11似乎修复了很

我正试图通过talend ESB从SMPP网关获取回复状态。有没有办法通过talend使用
QuerySm
来实现这一点?有没有人有过一般使用
QuerySm
的经验?如果是的话,请有人给我一些如何做的提示。我尝试过我目前的talend工作,但没有成功

即使是关于
Query\u sm
如何工作或如何使用它的指针也会非常有用。我在网上搜索了一段时间,遗憾的是,似乎找不到这些答案c

任何帮助都将不胜感激。 提前谢谢

编辑:


嗨,瓦希德,对不起,有段时间了。Smpp的文档似乎非常缺乏,Smpp 11似乎修复了很多问题。我们发现,我们没有收到所有报告的原因是报告被复制。服务提供商正在为每个数据包发送多个传递消息(不确定这是否正常),因此,它不是读取所有传递消息,而是复制第一个传递消息,因此,我们永远无法实际收集数据包中的其他传递消息。我们有没有办法收到这些送货单?我在smpp文档中找不到这一点

在这个答案中,我分享了我与SMPP的经验。我没有使用Talend ESB

根据,第4.8节、第5.2.28节和第6.1节提供了有关查询sm和查询sm resp PDU的说明。以下是一些要点:

  • 质疑
    • 只能由ESME请求
    • 可以在以前发布的提交sm、数据sm或提交多sm pdu上发布
    • 源地址、源地址、发送的源地址npi和从*resp对象接收的消息id用于查询sm pdu
  • qeury_sm_resp
    • 命令状态可以指示查询的总体结果。第5.1.3节列出了所有值。您应该检查API提供程序以了解要使用的正确值
    • 消息_state表示请求的pdu的状态。见第5.2.28节
    • 错误\代码表示网络中发生的错误(如果有)。您应该检查API提供程序以了解要使用的正确值
我很想知道是什么促使你使用查询功能。query_sm PDU很少在现实生活中使用。在工作中,我们每天处理来自美国所有主要运营商的数十亿条短信,很少收到任何查询


查询sm的替代方案是“交货收据”,但大多数平台都不太支持。您所连接的即时平台可以为您提供一些信息。

在这个回答中,我分享了我与SMPP的经验。我没有使用Talend ESB

根据,第4.8节、第5.2.28节和第6.1节提供了有关查询sm和查询sm resp PDU的说明。以下是一些要点:

  • 质疑
    • 只能由ESME请求
    • 可以在以前发布的提交sm、数据sm或提交多sm pdu上发布
    • 源地址、源地址、发送的源地址npi和从*resp对象接收的消息id用于查询sm pdu
  • qeury_sm_resp
    • 命令状态可以指示查询的总体结果。第5.1.3节列出了所有值。您应该检查API提供程序以了解要使用的正确值
    • 消息_state表示请求的pdu的状态。见第5.2.28节
    • 错误\代码表示网络中发生的错误(如果有)。您应该检查API提供程序以了解要使用的正确值
我很想知道是什么促使你使用查询功能。query_sm PDU很少在现实生活中使用。在工作中,我们每天处理来自美国所有主要运营商的数十亿条短信,很少收到任何查询


查询sm的替代方案是“交货收据”,但大多数平台都不太支持。您所连接的即时平台可以为您提供一些信息。

嗨,瓦希德,我的动机是,在向运营商网关发送邮件时,我们似乎没有收到所有的送达收据。在我们收到的大约2000封邮件中,大约只有60%的邮件处于送达状态。我们想知道是否可以发送查询消息并接收消息id的当前状态。有可能这样做吗?我们需要使用什么来执行此操作?query_sm可以从您的ESME连接的SMSC获取结果。如果SMSC努力工作,它可以尽其所知返回正确的结果。如果SMSC向手机发送实际短信,您可以依赖结果。如果SMSC连接到某个中间SMPP实体,它可以将查询(我怀疑任何系统都不会这样做)转发到这些平台,并期望它们能够正确响应。通常你不知道这个拓扑是如何建立的,因此你只能希望这个查询是一个好的查询。送货收据可以从手机上获取所有结果。要做到这一点,接收手机必须愿意发回确认。此外,所有连接的ESME/SMSC需要合作转发接收结果;系统可能会过早地补齐自己的收据。你将得到60%的送货收据。我只能猜测其中的几个原因——目的地号码错了,信息没有发送,或者接收手机没有发送收据。您能检查一下,对于相同的目的地编号,您是否得到相同的交货收据结果?这可能会给你一些线索。嗨,瓦希德,我用wireshark捕捉了这些包。标题如下所示。883 98.372604000 10.0.0.2 192.168.0.1 SMPP 558 SMPP交付sm,交付sm,交付sm。同样抱歉,我所说的报告是指交付sm抱歉。(1)根据SMPP 3.4,每个SMPP PDU只能包含一个交付sm。时期(2) TCP数据包可以包含任意数量的SMPP PDU(甚至是PDU的一小部分)。Wireshark可能正在展示这一点。任何合适的SMPP库都应该