金笛工业手机论坛  

返回   金笛工业手机论坛 > 开发者乐园 > 短信开发资料

短信开发资料 短信开发技巧,代码分析

回复
 
LinkBack 主题工具 显示模式
旧 2009-10-19   #1 (permalink)
高级会员
 
jdwavecom 的头像
 
注册日期: 2009-07-09
帖子: 537
jdwavecom 正向着好的方向发展
发送 ICQ 消息给 jdwavecom 发送 AIM 消息给 jdwavecom
默认 金笛短信中间件Linux版

功能列表

1)支持命令行、文件、mysql数据库 三种发送方式。
2)支持多路短信设备同时发送,支持指定端口发送。
3)支持按指定时间段发送。
4)支持短信接收。自动检测到来的新短信,存到数据表后,从SIM卡里删除。
5)短信发送成功、失败记录发送状态。
6)支持 wavecom 全系列短信猫,支持串口和USB口。

试用版限制:发送的短信正文带有广告。


 安装步骤

1。在 redhat linux 上安装 mysql

【如果系统已经安装mysql,请跳过这一步】

1)所用到的rpm包如下:(这些包随着短信中间件一起打包)
[root@miix mysql]# ls
mysql-5.0.22-2.1.i386.rpm perl-DBD-MySQL-3.0007-1.fc6.i386.rpm
mysql-server-5.0.22-2.1.i386.rpm

2)安装命令如下:
[root@rhel5 mysql]# rpm -ivh *.rpm
warning: mysql-5.0.22-2.1.i386.rpm: V3 DSA signature: NOKEY, key ID db42a60e
Preparing... ########################################### [100%]
1:mysql ########################################### [ 33%]
2erl-DBD-MySQL ########################################### [ 67%]
3:mysql-server ########################################### [100%]

3)运行mysqld
[root@rhel5 init.d]# /etc/init.d/mysqld start
初始化 MySQL 数据库: [ 确定 ]
启动 MySQL: [ 确定 ]
【也可以用service来停止、启动mysqld】
[root@rhel5 smsd]# service mysqld stop
停止 MySQL: [ 确定 ]
[root@rhel5 smsd]# service mysqld start
启动 MySQL: [ 确定 ]

4)修改mysql root密码(654321)
[root@rhel5 smsd]# mysqladmin -uroot password 111111

5)开放防火墙3306端口,以redhat linux as5 为例子
【可选,如果想从远程管理操作mysql数据库的话】
在 /etc/sysconfig/iptables 添加一下一行:
-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
然后执行
[root@rhel5 smsd]# service iptables restart

2。安装jdsmsd软件

1)解压后进入jdsms-1.2目录
[root@rhel5 jdsms-1.2]# cp ./lib/* /usr/lib
[root@rhel5 jdsms-1.2]# cp ./etc/jdsmsrc /etc

2)修改/etc/jdsmsrc ,改为短信设备对应端口号和波特率。
假设所用的串口为/dev/ttyS0,波特率为115200,设置如下:
[global]
port = /dev/ttyS0
model = AT
connection = serial
use_locking = yes
serial_baudrate = 115200
smsc_timeout = 10
initlength = default

3)初始化smsd数据库
[root@rhel5 jdsms-1.2]#cd ./sql
[root@rhel5 jdsms-1.2/sql]#mysql -uroot -p111111 < sms.tables.mysql.sql
[root@rhel5 jdsms-1.2/sql]#mysql -uroot -p111111
mysql>use smsd;
插入一条记录,手机号码改为您的手机号码。
mysql>insert into outbox (number,text) values ('13601019694','您好,感谢您的支持');

4)运行jdsmsd
[root@rhel5 jdsms-1.2]# cd ./bin/
[root@rhel5 jdsms-1.2/bin]# ./jdsmsd -u root -p111111 -d smsd -c localhost -m mysql -b SM -f /var/log/smsd.log -i 10

如果设置正确无误,将会收到一条短信,/var/log/smsd.log 显示如下:
Sending to 13601019694 sucessful.

3。发送短信

【注意:如果软件没有授权,发送的短信内将带有广告词“欢迎您使用金笛短信Linux中间件www.sendsms.cn”】

jdsms支持3种短信发送方式:

1、命令行方式
[root@rhel5 jdsms-1.2]# cd ./bin/
[root@rhel5 jdsms-1.2/bin]# echo '您好' | ./jdsms --sendsms 13601019694

2、文件方式
[root@rhel5 jdsms-1.2/bin]# mkdir /tmp/smsout
[root@rhel5 jdsms-1.2/bin]#./jdsmsd -m file -c /tmp/smsout -f /var/log/smsd.log -i 10

编辑一个文件,放到 smsout 目录下,文件格式如下:

手机号码
短信正文

例:
sms-1.txt

13601019694
您好!感谢您支持。

发送完成,会自动删除sms-1.txt 文件。

3、数据库方式
[root@rhel5 jdsms-1.2/bin]#./jdsmsd -u root -p111111 -d smsd -c localhost -m mysql -b SM -f /var/log/smsd.log -i 10

-u root # 数据库连接用户名
-p111111 # 数据库连接密码
-d smsd # 数据库名
-c localhost # 数据库所在主机
-m mysql # 数据存储类型:目前只支持 mysql 或者 file
-b SM # 从SIM卡读取短信到数据库 inbox,并删除SIM卡上的短信。
-f /var/log/smsd.log # log文件
-i 10 # 查询数据的时间间隔。

mysql>insert into outbox (number,text) values ('13601019694','您好,感谢您的支持');

outbox表结构字段:
number - 收件人的手机号码
processed_date - 发送日期
insertdate - 记录日期
text - 短信正文
phone - 短信设备序号,如果有多个短信设备,可以指定用哪个短信设备发
送。
processed - 是否已经发送处理? 发送过,设为TRUE。
error - 失败错误编号.
dreport - 是否需要短信回执,默认0,不需要回执;1需要回执。
not_before - 指定发送时间段,不能在此时间前发送 (default 00:00:00).
not_after - 指定发送时间段,不能在此时间后发送 (default 23:59:59).

收到短信,转存到Table 'inbox' ,字段:
number - 发件人手机号码
smsdate - 发送日期
insertdate - 记录时间
text - 短信正文
phone - 如果有多个设备,表示通过哪个设备接收到的。
processed - 是否处理过。默认false.

4。多个设备,同时发送

如果有多个设备,需要同时发送,可以修改 /etc/jdsmsrc文件,增加phone_1, phone_2设置。

[global]
port = /dev/ttyS0 #设备名,USB口设备名是ttyUSB0
model = AT #AT指令模式,一般不用改。
connection = serial #串口通讯
use_locking = yes #使用lock文件,避免多个程序同时操作一个端口,起
冲突。
serial_baudrate = 115200 #连接速率
smsc_timeout = 10 #超时时间
initlength = default #默认短信长度

[phone_1] #如果有多个短信设备,可以在此设置连接参数。注
意:一定要用phone_数字 这种形式命名,否则不被
识别。
port = /dev/ttyS1 #对应COM2
model = AT
connection = serial
use_locking = yes
serial_baudrate = 115200
smsc_timeout = 10
initlength = default

[phone_2]
port = /dev/ttyUSB0 #USB Modem
model = AT
connection = serial
use_locking = no
serial_baudrate = 115200
smsc_timeout = 10
initlength = default

[logging]
debug = on #正式使用,请设为off

然后运行:
[root@rhel5 jdsms-1.2/bin]#./jdsmsd -u root -p111111 -d smsd -c localhost -m mysql -b SM -f /var/log/smsd.log -i 10 -t 1
[root@rhel5 jdsms-1.2/bin]#./jdsmsd -u root -p111111 -d smsd -c localhost -m mysql -b SM -f /var/log/smsd.log -i 10 -t 2

向数据库插入2条记录,指定发送端口:
mysql>insert into outbox (number,text,phone) values ('13601019694','您好,感谢您的支持',1);
mysql>insert into outbox (number,text,phone) values ('13601019694','您好,感谢您的支持',2);

如果都能收到,说明设置成功。如果收不到,请检查端口号和波特率是否正确。

5。购买正式版

购买正式版,请直接联系我公司销售人员。 [url=http://www.sendsms.cn]
__________________
咨询张先生 电话 010-82356575-6005 手机 13811870924 QQ 2465179207
jdwavecom 当前离线   回复时引用此帖
回复

书签


当前查看此主题的会员: 1 (0 位会员和 1 位游客)
 

发帖规则
不可以发表新主题
不可以发表回复
不可以上传附件
不可以编辑自己的帖子

启用 BB 代码
论坛启用 表情符号
论坛启用 [IMG] 代码
论坛禁用 HTML 代码
Trackbacks are 启用
Pingbacks are 启用
Refbacks are 启用



所有时间均为北京时间。现在的时间是 00:44


Powered by vBulletin® 版本 3.8.3
版权所有 ©2000 - 2024,Jelsoft Enterprises Ltd.