Raspberry Pi SMS 서버를 설치하는 방법
이 페이지에서
- 시작하기 전에\n
- 라즈비안
- PlaySMS
- 게이트웨이 - SMS 서버 도구 3
- playms webpanel에서 smstools 로그인 및 구성
- SMS 보내기
시작하기 전에
이 튜토리얼에서는 Raspbian을 실행하는 Raspberry Pi 2 Model B에서 SMS 서버를 설정하는 방법을 보여줍니다.
우리는 playms와 smstools를 사용할 것입니다. 내 예에서는 Huawei E3131 3G 모뎀을 사용했습니다.
라즈비안
먼저 라즈비안을 다운로드해야 합니다. 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라는 파일이 생성되며 이 파일은 마이크로 SD 카드에 기록되어야 합니다.
라즈베리 파이로 작업하고 이미지를 micro-sd에 쓰는 방법에 대한 몇 가지 기본 사항을 알아야 하는 경우 이 자습서를 읽는 것으로 시작할 수 있습니다.
https://translate.google.com/translate?hl=ru&sl=en&tl=ko&u=https://www.howtoforge.com/tutorial/howto-install-raspbian-on-raspberry-pi/
micro-sd 카드에 이미지 파일 쓰기, 내 PC에서 micro-sd 카드는 Linux에서 /dev/mmcblk0으로 표시되며 dd를 사용할 수 있습니다.
dd bs=4M if=2015-05-05-raspbian-wheezy.img of=/dev/mmcblk0
- 4M으로 설정된 블록 크기는 대부분의 경우 작동합니다. 그렇지 않은 경우 1M을 시도해 보십시오. 이 작업은 훨씬 더 오래 걸립니다.\n
- 또한 루트로 로그인하지 않은 경우 sudo 접두사를 붙여야 합니다.\n
이미지가 작성되면 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
playms 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" 사용자의 새 비밀번호를 묻는 메시지가 표시되면 강력한 비밀번호를 사용합니다. 이 예에서는 [email protected]$$w0rd를 사용했습니다.
이제 http://your-ip(제 경우에는 http://10.255.50.30)로 이동하면 "It Works!"라는 페이지가 표시됩니다.
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="$$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
파일 맨 아래(exit 명령이 있는 경우 exit 전에).
이렇게 하면 playmsd가 부팅 시 자동으로 시작됩니다.
.. /usr/local/bin/playsmsd start
Apache vhost 파일을 편집합니다.
nano /etc/apache2/sites-available/default
내 가상 호스트 파일은 다음과 같습니다.
ServerAdmin DocumentRoot /var/www/html/playsmsOptions 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에서 playms 웹사이트에 액세스할 수 있어야 합니다.
http://your-ip 등으로 이동합니다. http://10.255.50.30
다음으로 로그인할 수 있습니다.
사용자 이름: admin
비밀번호: admin
게이트웨이 - SMS 서버 도구 3
먼저 빌드 도구를 설치하여 최신 버전을 빌드합니다. 달리다:
apt-get install build-essential libusb-1.0 libusb-1.0-0-dev
이제 Huawei 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를 설치하고 여기에서 최신 버전을 가져올 수 있습니다.
https://translate.google.com/translate?hl=ru&sl=en&tl=ko&u=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 서버 도구 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
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 서버 도구 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
비밀번호는 admin
이제 설정 => 게이트웨이 및 SMSC 관리로 이동합니다.
다음과 같은 화면이 표시됩니다.
이제 smstools 게이트웨이를 편집하려면 클릭하십시오.
다음과 같이 설정을 확인하십시오.
이제 SMSC를 설정해야 하므로 SMSTools에서 + 기호를 선택하십시오.
SMSC 세부 정보를 다음과 같이 입력해야 합니다. 수신자 번호에는 모뎀 전화 번호를 적습니다.
이제 설정 => 기본 구성으로 이동하십시오.
그리고 다음 필드를 채우십시오.
기본 발신자 ID
기본 접두사 또는 국가 코드
그리고 아래 이미지와 같이 기본 SMSC를 smstools로 설정합니다.
저장을 클릭하면 첫 번째 SMS를 보낼 준비가 되었습니다.
SMS 보내기
이제 내 계정으로 이동 => 메시지 작성
Send To에 휴대폰 번호, 메시지 등을 적어주세요. Hello World! 메시지 필드에서 보내기를 클릭합니다.
메시지가 대기 중인 경우 여기에서 트랜잭션을 따를 수 있습니다.
보고서 => 모든 보낸 메시지로 이동
처리되지 않은 수신 메시지는 샌드박스에 보관되며 보고서 => 샌드박스에서 보관됩니다.
보고서에 없는 항목이 있으면 기록 => 로그 보기
설정에 문제가 있는 경우 playms 포럼에서 도움을 받을 수 있습니다.
https://translate.google.com/translate?hl=ru&sl=en&tl=ko&u=https://forum.playsms.org/