我在linux xubuntu上安装了华为E220 HSDPA调制解调器 我想收到短信并自动回复发件人。 我用gammu和Gammu-smsd来做这件事。
要自动发送短信,我将runOnRecieve = / path / to / bash / file添加到/ etc / gammu-smsdrc配置文件中。
这是脚本:
#!/bin/bash
str=$SMS_1_TEXT //string containing text from sender
tlf=$SMS_1_NUMBER //containing number from sender
tlf=${tlf:3}
if test "$str" = "today"; then
echo "[Weather for today in Norway]
Sol, noe overskyet
[Vind fra sørøst]
Ha en fin dag!" | gammu-smsd-inject TEXT $tlf -unicode -autolen 200
else
echo "fail" >> /home/mattis/sms.txt
fi
这是我启动守护程序的方法
$ sudo gammu-smsd
如果我使用test-input从终端运行bash脚本,但是当程序gammu-smsd调用我得到的脚本时,这是有效的。
gammu-smsd[3183]: Process failed with exit status 2
现在我可以从代码中删除“gammu-smsd-inject”并替换为“gammu sendsms”,但是当收到回到移动设备时,这只会给我乱码而不是“æøå和[]”。
希望获得积极的答案。
答案 0 :(得分:1)
- / / - 工作代码 - / / -
事情是:Gammu sms注入acctually将数据发送到名为smsd的mysql数据库。
创建此数据库: 这应该按照wammu sql database中的规定创建。存储用于在MySQL数据库中创建表的SQL脚本将能够使用phpmyadmin(gui)或任何其他方式将其导入到mysql接口。
继续收听 添加到/ etc / gammu-smsdrc的末尾 - gammu
的配置文件runOnRecieve = /path/to/bash/file
打开/ path / to / bash / file
#!/bin/bash
str=$SMS_1_TEXT //codeword "weather"
tlf=$SMS_1_NUMBER //+47 41412424
tlf=${tlf:3} //remove +47
if test "$tlf" = "41412424"; then
toSend = "[Weather for today in Norway]"
else
toSend = "[you are not part of this group]"
echo "Someone outside the group send to this number" > /home/user/activity.txt
fi
mysql --host=localhost --user=username --password=pw smsd << EOF
INSERT INTO outbox (
DestinationNumber,
TextDecoded,
CreatorID,
RelativeValidity
) VALUES (
'$tlf',
'$toSend',
'Program',
'255'
);
EOF
启动守护程序
$ sudo gammu-smsd
那应该是它!
额外提示:
$ gammu-detect
查找设备的连接位置。寻找name = Phone on USB serial port HUAWEI_Technology HUAWEI_Mobile
或类似的东西。将此信息放在配置文件中。$ ./bashfile.sh
。