使用java开发接收和处理SMS消息的程序.我已经能够编码收到的SMS消息的处理和它的完美工作.现在我面临的挑战是从CDMA网络接收SMS消息.当应用程序即将上线时,CDMA网络将建立VPN连接,这将使我的应用程序能够连接到其IN或其IN连接到我的应用程序,以通过VPN将SMS消息传送到我的应用程序.现在,将以什么格式将SMS发送到应用程序?或者我只需要听取VPN并在数据可用时读取数据?非常感谢您的宝贵时间.
谢谢.
我假设IN你的意思是智能网络?通常IN与发送/接收SMS消息无关 - 您需要连接到短消息服务中心(SMSC)(或某些代理/网关)才能执行此操作.
正如Bombe所指出的,由于历史原因,您可以使用几种协议连接到移动运营商SMSC,它们都是特定于供应商的.通用协议是:
SMPP(最受欢迎,成为事实上的标准).有两个SMPP java库:
SourceForge上的SMPP API - 非常稳定和成熟的库,我个人在几个项目中使用它并且可以推荐它.
Logica OpenSMPP - 来自开发SMPP规范的公司的库.我从来没有用过这个,所以我不能评论它的成熟度或稳定性.
UCP(规范) - 相当古老的标准.我不知道这个协议有任何开放的java库.但是,因为它都是基于ASCII的,所以自己实现起来相当容易(只要你喜欢搞乱字节:-)).
CIMD2 - 与诺基亚SMSC通信的规范.它正在成为传统,因为我听说较新的诺基亚SMSC版本也支持SMPP.没有已知的开放java库.
最后,实施了大量的自定义协议,使第三方开发人员"更容易"连接到SMSC.这些通常基于HTTP和XML(如果幸运的话,SOAP).
总而言之,协议的选择不是你的选择.它通常由SMSC供应商或移动运营商(如果他们开发了某种"代理/网关")来规定,以保护他们的SMSC免受外部开发人员可能产生的潜在编程错误的影响.
PS如果你不仅限于java,你也可以看看Kannel--开源WAP和短信网关.我自己没有使用它,但据我所知,它们应该涵盖所有主要协议.