今天终于弄好了短信猫, 能收发短信了. 虽然收短信里还有一点点小问题, 但kannel的配置基本弄清了.
# kannel.conf
# core -- bearerbox
group = core
admin-port = 13000
admin-password = 自己设定(必须设定)
admin-deny-ip = "*.*.*.*"
admin-allow-ip = 127.0.0.1
smsbox-port = 13003
box-deny-ip = "*.*.*.*"
box-allow-ip = 127.0.0.1
log-file = "/home/zxg/python/szmb/kannel/kannel.log" # log文件 路径按自己需要设定
log-level = 0 # 最后是设为0吧
access-log = "/home/zxg/python/szmb/kannel/kannel.access"
unified-prefix = "+86,0086" # 这是符合国情的设定, 我在别人文章中看到的
# smsc -- smsbox
group = smsc
smsc = at
smsc-id = GSMModem
sim-buffering = true
modemtype = wavecom
device = /dev/ttyUSB0 # 关于这个的设定我不大记得怎么弄的了, 可能对不同的
# 机器有不同的设定. 我是ubuntu系统, 使用的USB串口
# 转接线才有这ttyUSB0.
speed = 9600
my-number = 自己的手机号
sms-center = 服务中心(在自己手机上查)
group = modems
id = wavecom
name = siatmodems
detect-string = "WAVECOM"
message-storage = SM # 将收到的信息存到SIM中, 也可以设定为存在短信猫设备中.
# smsbox -- smsbox
group = smsbox
bearerbox-host = localhost
sendsms-port = 13013
global-sender = 自己的手机号
log-file = "/home/zxg/python/szmb/kannel/smsbox.log"
log-level = 0
access-log = "/home/zxg/python/szmb/kannel/smsbox-access.log"
mo-recode = true # 设置这个后收到的短信才能显示中文.
# sendsms-user -- smsbox
group = sendsms-user
username = siat # 根据需要自己设定
password = siat # 根据需要自己设定 发送短信时要用.
user-deny-ip = "*.*.*.*"
user-allow-ip = "127.0.0.1"
# sms-service -- smsbox
group = sms-service
keyword = default
get-url = "%p&to=%P&text=%a&time=%t" # 关于这个下面再具体来说.
max-messages = 0 # 这个好像是必须设定.
基本就这样, 关于路径什么的都自己设定.
设置好配置文件后再运行
./bearerbox -v 0 配置文件
./smsbox -v 0 配置文件
bearerbox和smsbox在/usr/local/sbin/目录下.
发短信比较简单, 用一个url就行了. 格式是这样的.
直接复制到浏览器的地址栏就可以发短信了.
收短信就要看sms-service中的get-url了, 我写的如下:
get-url = "%p&to=%P&text=%a&time=%t"
这是利用的http协议的get命令. 对此不大理解的可以去百度. 上面的%p和%a之类的请参见kannel的用户手册.%p表示发短信者的手机号, %a表示所有的短信内容.
sms.php就是处理这些表单数据的一个php网页. 不知为何运行时不会自动弹出一个网页.所以我将表单数据都写在了一个文件里.
sms.php的内容如下: (你可以将这个写的更复杂一些, 我这只是简单测试收短信)
$from = $_GET['from']."\n";
$to = $_GET['to']."\n";
$text = $_GET['text']."\n";
$time = $_GET['time']."\n";
echo "writing file...";
$file = fopen("/home/zxg/python/szmb/kannel/rsms", "w+");
if($file)
{
fputs($file, $from);
fputs($file, $to);
fputs($file, $text);
fputs($file, $time);
}
else
echo "fopen(\"/home/zxg/python/szmb/kannel/rsms\", \"w+\") error";
?>
/home/zxg/python/szmb/kannel/rsms文件存储收到的短信等内容.
在fopen时如果提示权限不够, 那就将rsms文件的权限设为777, 最好是自己先建立一个这个文件, 如果要保存所有收到的消息就把"w+"改为"a"吧.
注意:要使用这你还得需要建立个http服务器, 我这是apache, 很久以前弄php时安装的, 因此具体怎么弄我也不记得了, 好像挺方便的.
我主要参见了下面两篇文章:
弄好配置文件后, 刚开始运行还是有一些问题, 不过那些log文件里给出的信息都很有用, 值得仔细看看.
最主要的还是用户手册了.
阅读(5273) | 评论(5) | 转发(0) |