Kali ini aku akan sedikit membahas tentang membangun server sms sederhana menggunakan perangkat Raspberry dan Modem ZTE MF190.
Karena aplikasi menggunakan Gammu dan Kalkun SMS yang sudah cukup lama, jadi untuk Raspbian saya menggunakan Raspbian (05-07-2017).
Perlu diketahui juga, Kalkun SMS hanya support menggunakan PHP5.x, jadi kalau pakai PHP7.x sudah pasti tidak akan bisa digunakan.
Oke, kita langsung saja pada langkah-langkah untuk melakukan instalasi SMS Server :
- Extract Raspbian Image ke dalam mmc 16GB, untuk mendownload image Jessie bisa menggunakan link berikut : http://ftp.jaist.ac.jp/pub/raspberrypi/raspbian/images/
- Update OS Raspbian, install Apache, PHP5, Mysql Server dan PHPMyadmin
$ sudo apt update$ sudo apt upgrade$ sudo apt-get install apache2 -y$ sudo apt-get install php5 php5-mysql php-gettext php5-mbstring libapache2-mod-php5 -y$ sudo apt install mysql-server mysql-client -y$ sudo mysql_secure_installation$ sudo apt-get install phpmyadmin -y
- Install Gammu
$ sudo apt-get install gammu-smsd gammu python-gammu usb-modeswitch -y
- Sambungkan modem dengan Raspberry
- Cek apakah usb sudah terbaca oleh Raspberry
pi@raspberrypi-gammu:~ $ sudo lsusbBus 001 Device 004: ID 19d2:0117 ZTE WCDMA Technologies MSMBus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet AdapterBus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
- Cek modem menggunakan port USB yang mana
pi@raspberrypi-gammu:~ $ sudo dmesg | grep tty[ 0.000000] Kernel command line: 8250.nr_uarts=0 bcm2708_fb.fbwidth=656 bcm2708_fb.fbheight=416 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x3dc00000 vc_mem.mem_size=0x3f000000 dwc_otg.lpm_enable=0 console=ttyS0,115200 console=tty1 root=PARTUUID=9ced5596-02 rootfstype=ext4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles[ 0.000347] console [tty1] enabled[ 0.751646] 3f201000.serial: ttyAMA0 at MMIO 0x3f201000 (irq = 87, base_baud = 0) is a PL011 rev2[ 6.176129] usb 1-1.5: GSM modem (1-port) converter now attached to ttyUSB0[ 6.176674] usb 1-1.5: GSM modem (1-port) converter now attached to ttyUSB1[ 6.177222] usb 1-1.5: GSM modem (1-port) converter now attached to ttyUSB2
untuk ini, silahkan dicoba satu persatu, karena modem tidak selalu berada di ttyUSB0.
- Ok, kalau sudah mengetahui kira-kira pakai port USB yang mana langsung setup Gammu
$ sudo gammu-config
┌─────────────────────────────────────────┐ │ Current Gammu configuration │ │ │ │ P Port (/dev/ttyUSB2) │ │ C Connection (at19200) │ │ M Model () │ │ D Synchronize time (yes) │ │ F Log file () │ │ O Log format (nothing) │ │ L Use locking () │ │ G Gammu localisation () │ │ H Help │ │ S Save │ │ │ │ │ │ <Ok> <Cancel> │ │ │ └─────────────────────────────────────────┘
Gammu-config ini akan buat file di home directory ~/.gammurc.
Cek perubahan permission
$ ls -l /dev/ttyUSB*crw-rw---T 1 root dialout 188, 0 May 14 18:06 /dev/ttyUSB0crw-rw---T 1 root dialout 188, 1 May 14 16:56 /dev/ttyUSB1crw-rw---T 1 root dialout 188, 2 May 14 16:56 /dev/ttyUSB2
Test gammu sudah bekerja atau belum?
Masukkan command berikut :
pi@raspberrypi-gammu:~ $ sudo gammu --identifyDevice : /dev/ttyUSB1Manufacturer : ZTE CORPORATIONModel : unknown (MF190)Firmware : BD_MF190V1.0.0B05IMEI : 861264020613204SIM IMSI : 510102982137225
pi@raspberrypi-gammu:~ $ sudo gammu --networkinfoNetwork state : home networkNetwork : 510 10 (Telkomsel, Indonesia), LAC DC5, CID CB75Packet network state : home networkPacket network : 510 10 (Telkomsel, Indonesia), LAC DC5, CID CB75GPRS : attached
pi@raspberrypi-gammu:~ $ gammu getallsms0 SMS parts in 0 SMS sequences
Kalau perintah-perintah diatas sudah menunjukkan reply yang benar seperti diatas, bisa ditest untuk kirim sms :
pi@raspberrypi-gammu:~ $ echo "Kirim SMS dari gammu nih" | gammu sendsms TEXT 08xxxxxxxx9If you want break, press Ctrl+C...Sending SMS 1/1....waiting for network answer..OK, message reference=7
MENGHUBUNGKAN GAMMU DENGAN MYSQL
Tahapan ini yaitu sinkronisasi gammu dengan mysql. salah satu fungsi dari mysql ini yaitu dapat menyimpan pesan masuk dan pesan terkirim bahkan kalau dioprek lebih lanjut ketika ada sms masuk mesin automatis mengirim sms. tapi langkah itu tidak dibahas disini. disini saya hanya membahas sinkronisasi gammu dengan mysql.
Ambil file mysql.sql pada directory berikut:
$ mv /usr/share/doc/gammu/examples/sql/mysql.sql.gz /home/pi/
Extract filenya :
$ gunzip mysql.sql.gz
$ mysql -u root -p
Kemudian masukkan password pada saat install MYSQL, kemudian akan tampil:
Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 41458Server version: 5.5.32-0ubuntu0.12.04.1 (Ubuntu)Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
Buat database baru dengan cara berikut:
$ mysql> CREATE DATABASE gammu_sms;
Kemudian pastikan database telah terbuat. cek dengan cara berikut:
$ mysql> show databases;
Akan tampil:
+--------------------+| Database |+--------------------+| information_schema || gammu_sms || mysql || performance_schema || test || zabbix |+--------------------+14 rows in set (0.00 sec)mysql>
Selanjutnya dump mysql.sql kedalam database kamu. gunakan database kamu dengan ketik perintah berikut:
$ mysql> use gammu_sms;
Import file SQL dengan perintah
$ mysql> source /home/pi/mysql.sql
Cek kembali apakah tabel telah ada:
$ mysql> show tables;
Kemudian muncul daftar table:
+---------------------+| Tables_in_gammu_sms |+---------------------+| daemons || gammu || inbox || outbox || outbox_multipart || pbk || pbk_groups || phones || sentitems |+---------------------+9 rows in set (0.00 sec)
Keluar dari mysql:
$ mysql> exit
Supaya GAMMU bisa berkomunikasi dengan MYSQL kamu harus mensetting gammu-smsdrc:
$ nano /etc/gammu-smsdrc
Edit konfigurasinya seperti ini:
# Configuration file for Gammu SMS Daemon # Gammu library configuration, see gammurc(5)[gammu]# Please configure this!port = /dev/ttyUSB2connection = at115200# Debugging#logformat = textall # SMSD configuration, see gammu-smsdrc(5)[smsd]service = SQLlogfile = /home/pi/gammulog# Increase for debugging informationdebuglevel = 0PIN=12345phoneid = modem_1 user = rootpassword = passwordmysqlpc = localhostdatabase = gammu_smsdriver = native_mysqlrunonreceive = /home/pi/www/sms/scripts/daemon.sh # Paths where messages are stored#inboxpath = /var/spool/gammu/inbox/#outboxpath = /var/spool/gammu/outbox/#sentsmspath = /var/spool/gammu/sent/#errorsmspath = /var/spool/gammu/error/
Test dengan perintah:
echo "Uji mengirim SMS dari gammu-smsd" | sudo -u gammu gammu-smsd-inject TEXT 08xxxxxxxx9gammu-smsd-inject[2658]: Connected to Database: xxxxxx on xxx.xxx.xxx.xxxgammu-smsd-inject[2658]: Connected to Database native_mysql: xxxxxx on xxx.xxx.xxx.xxxgammu-smsd-inject[2658]: Written message with ID 6Written message with ID 6
Jika berhasil jalankan service gammu.
/etc/init.d/gammu-smsd start
Instalasi CMS untuk management SMS dengan CMS Kalkun
Kalkun SMS merupakan CMS untuk memanagement masuk keluarnya SMS. Program ini Opensource jadi kita bisa download secara gratiss. Download kalkun sms dengan mengetikkan perintah.
cd /var/www/htmlwget http://sourceforge.net/projects/kalkun/files/kalkun/0.7.1/kalkun_0.7.1.tar.gz/downloadunzip kalkun_0.7.1.zip
setelah di-unzip edit database untuk kalkun sms
$ sudo nano /var/www/html/kalkun/application/database.php
edit pada bagian seperti dibawah ini :
// MySQL$db['default']['username'] = "root";$db['default']['password'] = "password";$db['default']['database'] = "gammu_sms";$db['default']['dbdriver'] = "mysql";
setelah itu langsung buka url dengan browser http://localhost/kalkun/index.php/install
Instalasi selesai. Kamu harus menghapus folder install di directory root Webserver. ketikkan perintah:
$ rmdir /home/pi/www/install
Login dengan User : kalkun dan Password: kalkun
Sampai disini Gammu dengan Kalkun SMS sudah selesai dan raspberry sms server siap digunakan. Selamat mencoba ….