SMSLib开发指南
一、SMSLib简介
SMSLib是一个开放源代码的短信猫二次开发包,有JAVA和.Net两个版本,目前最新版为v3.5.2。
图1-1
二、Window平台
1、在smslib官网下载“SMSLib for Java v3.5.2”开发包,并解压,目录结构如下图所示:
图2-1
图2-2
lib:存放二次开发包(smslib-3.5.2.jar)和运行时的依赖包(slf4j、log4j、commons-net、jsmpp等)(重要)
dist:存放短信猫服务开发包(smsserver-3.5.2.jar),该包包括了smslib-3.5.2.jar中的所有核心类。如果是将短信猫作为服务的方式部署,不需要额外写代码开发短信发送和接收的接口,直接部署短信服务即可,详细的步聚,可以参考《短信猫服务安装与配置指南》。(重要)
doc:smslib介绍、使用指南、smsserver安装与配置等文档(重要)
javadoc:二次开发包API
src:存放二次开发包源码和示例源码
misc:smslib日志(log4j)配置配置模板、smsserver数据库建库脚本及服务接口等文件
build:项目管理相关文件(不重要)
2、下载SUN JavaComm v2 (Win32)动态库,并解压,目录结构如下图所示:
图3-1
3、运行环境配置
- 复制“图3-1”中javax.comm.properties文件到%JAVA_HOME%\jre\lib目录下,win32com.dll文件到%JAVA_HOME%\jre\bin目录下
- 复制“图3-1”中comm.jar和图2-2中所有jar文件到CLASSPATH目录下(如果是用eclipse等IDE工具,将这些jar包导入到工程中)
注意: win32com.dll只支持32位jdk
- // SendMessage.java - Sample application.
- // 短信发送测试程序
- // This application shows you the basic procedure for sending messages.
- // You will find how to send synchronous and asynchronous messages.
- //
- // For asynchronous dispatch, the example application sets a callback
- // notification, to see what's happened with messages.
- package examples.modem;
- import org.smslib.AGateway;
- import org.smslib.IOutboundMessageNotification;
- import org.smslib.Library;
- import org.smslib.OutboundMessage;
- import org.smslib.Service;
- import org.smslib.modem.SerialModemGateway;
- public class SendMessage
- {
- public void doIt() throws Exception
- {
- OutboundNotification outboundNotification = new OutboundNotification();
- System.out.println("Example: Send message from a serial gsm modem.");
- System.out.println(Library.getLibraryDescription());
- System.out.println("Version: " + Library.getLibraryVersion());
- /*
- modem.com1:网关ID(即短信猫端口编号)
- COM4:串口名称(在window中以COMXX表示端口名称,在linux,unix平台下以ttyS0-N或ttyUSB0-N表示端口名称),通过端口检测程序得到可用的端口
- 115200:串口每秒发送数据的bit位数,必须设置正确才可以正常发送短信,可通过程序进行检测。常用的有115200、9600
- Huawei:短信猫生产厂商,不同的短信猫生产厂商smslib所封装的AT指令接口会不一致,必须设置正确.常见的有Huawei、wavecom等厂商
- 最后一个参数表示设备的型号,可选
- */
- SerialModemGateway gateway = new SerialModemGateway("modem.com1", "COM4", 115200, "Huawei", "");
- gateway.setInbound(true); //设置true,表示该网关可以接收短信,根据需求修改
- gateway.setOutbound(true);//设置true,表示该网关可以发送短信,根据需求修改
- gateway.setSimPin("0000");//sim卡锁,一般默认为0000或1234
- // Explicit SMSC address set is required for some modems.
- // Below is for VODAFONE GREECE - be sure to set your own!
- gateway.setSmscNumber("+306942190000");//短信服务中心号码
- Service.getInstance().setOutboundMessageNotification(outboundNotification); //发送短信成功后的回调函方法