我正在使用java开发接收和处理SMS消息的程序。我已经能够对收到的短信的处理进行编码,并且其工作完美。现在我面临的挑战是从 CDMA 网络接收 SMS 消息。当应用程序即将上线时,CDMA 网络将设置一个 VPN 连接,这将使我的应用程序能够连接到其 IN 或它的 IN 连接到我的应用程序,以便通过 VPN 将 SMS 消息传送到我的应用程序。现在,短信将以什么格式发送到应用程序?或者我只需要监听 VPN 并在数据可用时读取数据?非常感谢您的宝贵时间。

谢谢。

有帮助吗?

解决方案

我认为 IN 你的意思是 智能网络?通常 IN 与发送/接收 SMS 消息无关 - 您需要连接到 短信服务中心 (SMSC)(或某些代理/网关)才能做到这一点。

正如 Bombe 所指出的,您可以使用多种协议来连接到移动运营商 SMSC,由于历史原因,这些协议都是特定于供应商的。常见协议有:

  • SMPP (最受欢迎,成为事实上的标准)。有两个 SMPP java 库:
    • SourceForge 上的 SMPP API - 非常稳定和成熟的库,我个人在几个项目中使用过它,可以推荐它。
    • 逻辑 OpenSMPP - 来自开发 SMPP 规范的公司的库。我从未使用过这个,所以我无法评论它的成熟度或稳定性。
  • UCP (规格) - 相当旧的标准。我不知道该协议有任何开放的 java 库。然而,由于它全部基于 ASCII,因此您自己实现起来相当容易(只要您喜欢弄乱字节:-))。
  • CIMD2 - 与诺基亚 SMSC 通信的规范。它正在成为传统,因为我听说较新的诺基亚 SMSC 版本也支持 SMPP。也没有已知的开放 Java 库。
  • 最后,还实施了无数的自定义协议,使第 3 方开发人员“更容易”连接到 SMSC。这些通常基于 HTTP 和 XML(SOAP,如果你幸运的话)。

总而言之,协议的选择不是由您决定的。它通常由 SMSC 供应商或移动运营商规定(如果他们开发了某种“代理/网关”,以保护他们的 SMSC 免受外部开发人员可能造成的潜在编程错误的影响)。

附:如果你不限于java,你也可以看看 Kannel - 开源 WAP 和 SMS 网关. 。我自己没有使用过,但据我所知,他们应该涵盖了所有主要协议。

其他提示

不同的协议,如SMPP( 1 2 ),UCP( 1 2 ),甚至是HTTP可用于将SMS从一方转移到另一方。您需要向您的上游提供商咨询他们提供的协议。

如果通过SMPP收到消息,请查看SMPPAPI。

http://smppapi.sourceforge.net/

与您的移动网络交谈,他们会告诉您邮件的格式。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top