如何安装Raspberry Pi SMS服务器
在我们开始之前
本教程将向您展示如何在运行Raspbian的Raspberry Pi 2 Model B上设置SMS服务器。
我们将使用剧情和smstools。 在我的例子中,我使用了华为E3131 3G调制解调器。
拉斯比
首先我们需要下载raspbian,您可以通过https://www.raspberrypi.org/downloads/获取最新版本
直接url:http: //downloads.raspberrypi.org/raspbian_latest
现在我们需要解压文件:2015-05-05-raspbian-wheezy.zip:
unzip 2015-05-05-raspbian-wheezy.zip
您将收到一个名为2015-05-05-raspbian-wheezy.img的
文件,
该文件必须写入您的micro-sd卡。
如果您需要了解如何使用raspberry pi的一些基础知识,并将图像写入micro-sd,则可以先阅读本教程:
https://www.youcl.com/tutorial/howto-install-raspbian-on-raspberry-pi/
将图像文件写入micro-sd卡,在我的电脑上,micro-sd卡被看作是/ dev / mmcblk0
在Linux上可以使用dd:
dd bs=4M if=2015-05-05-raspbian-wheezy.img of=/dev/mmcblk0
- 请注意,块大小设置为4M将大部分时间工作; 如果没有,请尝试1M,虽然这将花费更长的时间。
- 另外请注意,如果您没有以root身份登录,则需要使用
sudo
前缀。
当图像写入时,将micro-sd卡插入您的Raspberry Pi,然后将其打开。
当Raspberry Pi启动时,您应该首次看到一个这样的屏幕。
现在我选择以下选项:
1 Expand Filesystem
3 Enable Boot To Desktop/Scratch -> Select Console Text Console, requiring login (default)
8 Advanced Options -> A4 SSH -> Enable
8 Advanced Options -> A0 Update
Finish -> Reboot
现在您可以使用以下用户名登录: pi
和密码: raspberry。
首先,我们通过编辑设置我们的服务器的网络配置
sudo nano /etc/network/interfaces
我的/ etc / network / interfaces
文件看起来像这样(改变你的需要的设置):
auto lo iface lo inet loopback auto eth0 allow-hotplug eth0 iface eth0 inet static address 10.255.50.30 netmask 255.255.255.0 gateway 10.255.50.1 dns-nameservers 8.8.8.8 8.8.4.4
现在我们在Pi上重新启动网络服务:
sudo /etc/init.d/networking restart
然后我们使用以下命令在启动时禁用DHCP:
sudo update-rc.d -f dhcpcd remove
如果你不知何故再次启用它,只需运行以下命令:
sudo update-rc.d dhcpcd defaults
现在我们可以使用诸如PuTTY之类的SSH客户端从PC连接到Raspberry Pi。
现在我们用以下命令更新raspbian:
sudo apt-get update && apt-get upgrade -y && apt-get dist-upgrade -y
PlaySMS
下载并安装播放1.1:
sudo -s
apt-get install apache2 libapache2-mod-php5 mysql-server php5 php5-cli php5-mysql php5-mcrypt php5-gd php5-imap php5-curl
php5enmod mcrypt
service apache2 restart
当被问及MySQL“root”用户的新密码时,请使用强密码,在本示例中,我使用MyP @ $$ w0rd
现在我们可以去http://你的ip,在我的情况http://10.255.50.30,我们将看到一个页面显示:“ 它的工作!
cd /tmp/
wget http://downloads.sourceforge.net/project/playsms/playsms/Version%201.1/playsms-1.1.tar.gz
tar -zxf playsms-1.1.tar.gz -C /usr/local/src
ls -l /usr/local/src/
cd /usr/local/src/playsms-1.1/
cp install.conf.dist install.conf
nano install.conf
将install.conf.dist复制到install.conf并编辑install.conf
请阅读install.conf并进行更改以适应您的系统配置。
我已经编辑了这个文件,看起来像这样:
# INSTALL DATA # ============ # Please change INSTALL DATA below to suit your system configurations # Please do not change variable name, you may change only the value # MySQL database username DBUSER="root" # MySQL database password DBPASS="MyP@$$w0rd" # MySQL database name DBNAME="playsms" # MySQL database host DBHOST="localhost" # MySQL database port DBPORT="3306" # Web server's user, for example apache2 user by default is www-data # note: please make sure your web server user WEBSERVERUSER="www-data" # Web server's group, for example apache2 group by default is www-data # note: please make sure your web server group WEBSERVERGROUP="www-data" # Path to playSMS extracted source files PATHSRC="$(pwd)" # Path to playSMS web files # note: please make sure your web root path, in this example its /var/www/html PATHWEB="/var/www/html/playsms" # Path to playSMS additional files PATHLIB="/var/lib/playsms" # Path to playSMS daemon and other binary files PATHBIN="/usr/local/bin" # Path to playSMS log files PATHLOG="/var/log/playsms" # END OF INSTALL DATA # ===================
现在运行:
./install-playsms.sh
如果一切都好,按Y。
现在我们要确保通过在rc.local文件中添加一行来启动playms。
nano /etc/init.d/rc.local
添加以下文件: / usr / local / bin / playsmsd start
在文件的底部(如果有退出命令,则退出之前)。
这种播放方式将在启动时自动启动。
.. /usr/local/bin/playsmsd start
编辑apache vhost文件:
nano /etc/apache2/sites-available/default
我的vhost文件如下所示:
ServerAdmin webmaster@localhost DocumentRoot /var/www/html/playsms Options FollowSymLinks AllowOverride None Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/ <directory "="" usr="" lib="" cgi-bin"=""> AllowOverride None Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch Order allow,deny Allow from all ErrorLog ${APACHE_LOG_DIR}/error.log # Possible values include: debug, info, notice, warn, error, crit, # alert, emerg. LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined
现在重新加载Aapache2配置以应用更改。
service apache2 reload
那么你应该可以通过以下url访问剧本网站:
转到http:// your-ip等http://10.255.50.30
您可以登录:
用户名: admin
密码: admin
网关 - 短信服务器工具3
首先我们安装构建工具来构建最新版本。 跑:
apt-get install build-essential libusb-1.0 libusb-1.0-0-dev
现在我已经插入了华为E3131调制解调器,我可以看到它列出了lsusb:
lsusb
lsusb Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 004: ID 12d1:14fe Huawei Technologies Co., Ltd.
我们希望它的ID:12d1:1506,但现在检测到12d1:14fe。
要更改这个,我们将usb_modeswitch安装到系统中,您可以从这里获取最新版本:
http://www.draisberghof.de/usb_modeswitch/#download
cd /tmp
wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-2.2.5.tar.bz2
tar jxvf usb-modeswitch-2.2.5.tar.bz2
cd usb-modeswitch-2.2.5
make install
cd /tmp
wget http://www.draisberghof.de/usb_modeswitch/usb-modeswitch-data-20150627.tar.bz2
tar xjvf usb-modeswitch-data-20150627.tar.bz2
cd usb-modeswitch-data-20150627
make install
现在拔下调制解调器,然后重新插上,然后运行:
lsusb
lsusb Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. Bus 001 Device 006: ID 12d1:1506 Huawei Technologies Co., Ltd. E398 LTE/UMTS/GSM Modem/Networkcard
现在我们得到了所需的模式:12d1:1506。
接下来我们继续使用SMS Server Tools 3。
首先我们下载它,然后解压缩并安装它。
cd /usr/local/src
wget http://smstools3.kekekasvi.com/packages/smstools3-3.1.15.tar.gz
tar -zxvf smstools3-3.1.15.tar.gz
cd smstools3
make
如果在我的情况下看到一个错误,当你运行make:
make cd src && make - make[1]: Entering directory '/usr/local/src/smstools3/src' Makefile:51: *** recipe commences before first target. Stop. make[1]: Leaving directory '/usr/local/src/smstools3/src' Makefile:10: recipe for target 'compile' failed make: *** [compile] Error 2
然后执行以下操作:
nano src/Makefile
问题是一个缺失的选项卡,现在寻找:
ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS))) override LFLAGS += -lsocket -lnsl endif
并用TAB移动线代替LFLAGS + = -lsocket -lnsl
ifeq (,$(findstring DISABLE_INET_SOCKET,$(CFLAGS))) override LFLAGS += -lsocket -lnsl endif
并尝试再次运行:
make
make install
现在我们创建一些必需的文件夹:
mkdir -p /var/log/sms/stats
mkdir -p /var/spool/sms/{checked,failed,incoming,outgoing,sent}
mkdir /var/spool/sms/modem1
chown www-data:www-data -R /var/spool/sms
chmod 777 -R /var/spool/sms
然后移动原始配置文件并从PlaySMS下载一个示例:
mv /etc/smsd.conf /etc/smsd.conf.dist
cd /tmp
wget -c https://raw.githubusercontent.com/antonraharja/playSMS/master/contrib/smstools/smsd.conf
cp smsd.conf /etc/
为了确保我始终使用正确的设备,我将使用动态设备文件。
有关动态设备文件的更多信息,请访问以下URL: http : //antonraharja.com/2015/05/14/persistent-paths-for-dynamic-device-file/
nano /etc/udev/rules.d/80-ttyusb-map.rules
ACTION=="add", KERNEL=="ttyUSB[0-9]*", PROGRAM="/etc/udev/rules.d/ttyusb-map.sh %p", SYMLINK+="gsm%c"
touch /etc/udev/rules.d/ttyusb-map.sh
chmod 755 /etc/udev/rules.d/ttyusb-map.sh
nano /etc/udev/rules.d/ttyusb-map.sh
#!/usr/bin/perl -w @items = split("/", $ARGV[0]); for ($i = 0; $i < @items; $i++) { if ($items[$i] =~ m/^usb[0-9]+$/) { print $items[$i + 1] . "\n"; last; } }
现在拔下插头并重新插上调制解调器,它应该位于/ dev / gsm *:
ls -l /dev/gsm*
lrwxrwxrwx 1 root root 7 Jul 24 01:39 /dev/gsm1-1 -> ttyUSB0
lrwxrwxrwx 1 root root 7 Jul 24 01:39 /dev/gsmmodem -> ttyUSB0
我对文件做了一些修改,所以这里是我的配置,我的调制解调器位于/ dev / gsm1-1
替换为你的位置。
# Global configuration #devices = modem1, modem2 devices = modem1 loglevel = 5 # logfiles stats = /var/log/sms/stats logfile = /var/log/sms/smsd.log # Default queue directory = /var/spool/sms outgoing = /var/spool/sms/outgoing checked = /var/spool/sms/checked failed = /var/spool/sms/failed incoming = /var/spool/sms/incoming sent = /var/spool/sms/sent # do not set report folder, let status report files saved in incoming #report = /var/spool/sms/report delaytime = 2 errorsleeptime = 10 blocktime = 180 autosplit = 3 #receive_before_send = yes incoming_utf8 = yes # Queue configurations [queues] modem1 = /var/spool/sms/modem1 #modem2 = /var/spool/sms/modem2 # Modem configurations # Modem name: modem1 # Modem type: Wavecom USB [modem1] #init = AT+CNMI=2,2,0,1,0;+CMEE=1 #init = AT+CPMS="ME","ME","ME" device = /dev/gsm1-1 baudrate = 19200 incoming = yes pin = 3391 report = yes queues = modem1 decode_unicode_text = yes cs_convert = yes # Modem name: modem2 # Modem type: Wavecom USB #[modem2] #init = AT+CNMI=2,2,0,1,0;+CMEE=1 #device = /dev/ttyUSB1 #baudrate = 115200 #incoming = yes #report = yes #queues = modem2
重新启动SMS服务器工具3:
/etc/init.d/sms3 restart
验证SMS Server Tools 3是否正在运行:
ps ax | grep -v grep | grep smsd
监控SMS服务器工具3日志文件:
tail -f /var/log/smsd.log
在playms webpanel中登录和配置smstools
登录到您的电脑安装我的地址是http://10.255.50.30/
用户名是admin
密码是管理员
现在进入设置 => 管理网关和SMSC。
你应该看到这样的屏幕:
现在点击编辑smstools网关。
并确保它的设置如下所示:
点击保存,保存后点击。
现在你必须设置SMSC,所以请在SMSTools上选择+号。
您应该填写这样的SMSC详细信息,在接收器号码中写入您的调制解调器电话号码。
完成后,单击保存。
现在进入设置 => 主配置
并填写以下字段:
默认发件人ID
默认前缀或国家/地区代码
并将默认SMSC设置为smstools ,如下图所示。
点击保存,我们准备发送第一个短信。
发短信
现在转到我的帐户 => 撰写消息
在发送到你的手机号码和一个消息等你好世界! 在消息字段中,然后单击发送。
如果消息排队等候,您可以在此处关注事务:
转到报告 => 所有发送的消息
未处理的传入邮件保存在沙箱中,您将在Reports => Sandbox中
并且如果某些东西没有位于Reports => View log中,则记录
如果你的设置有任何麻烦,一个好地方寻求一些帮助是戏剧论坛。