웹사이트 검색

Raspberry Pi SMS 서버를 설치하는 방법


이 페이지에서

  1. 시작하기 전에\n
  2. 라즈비안
  3. PlaySMS
  4. 게이트웨이 - SMS 서버 도구 3
  5. playms webpanel에서 smstools 로그인 및 구성
  6. 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에 쓰는 방법에 대한 몇 가지 기본 사항을 알아야 하는 경우 이 자습서를 읽는 것으로 시작할 수 있습니다.

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 $$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/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에서 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를 설치하고 여기에서 최신 버전을 가져올 수 있습니다.

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 포럼에서 도움을 받을 수 있습니다.