1

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

谢谢。

4

3 回答 3

5

我假设您的意思是智能网络?通常 IN 与发送/接收 SMS 消息无关 - 您需要连接到 SMS服务中心(SMSC)(或某些代理/网关)才能执行此操作。

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

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

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

PS 如果您不限于 java,您还可以看看Kannel - 开源 WAP 和 SMS 网关。我自己没有使用过它,但据我所知,它们应该涵盖所有主要协议。

于 2009-03-10T09:01:21.073 回答
0

可以使用不同的协议,如 SMPP ( 1 , 2 )、UCP ( 1 , 2 ),甚至 HTTP 来将 SMS 从一方传输到另一方。您需要与上游提供商核实他们提供的协议。

于 2009-03-10T07:56:03.040 回答
0

如果消息通过 SMPP 进入您,请查看 SMPPAPI。

http://smppapi.sourceforge.net/

与您的移动网络交谈,他们会告诉您消息将以何种格式传送。

于 2009-03-10T09:09:17.997 回答