Sistem Informasi Sekolah Terintegrasi

Server SMS Gateway Resberry pi4 Gammu

Raspberry Pi   2021-12-20  

Server SMS Gateway Resberry pi4 Gammu

 

Selain sebagai Web Server Raspberry Pi juga dapat digunakan sebagai mesin sms gateway. Aplikasi sms gateway yang digunakan adalah Gammu.

Tau donk apa itu gammu? kalau belum tau di googling aja ya :p
Oke tanpa basa-basi lagi ikuti tulisan berikut

1. Install Gammu beserta dependensinya

sudo apt-get update
sudo apt-get install gammu
sudo apt-get install gammu-smsd
pip install python-gammu



2. Pasang Modem SMS

Pada tulisan ini saya menggunakan sebuah modem 3G yang dapat digunakan sebagai modem sms yaitu Modem Wavecom M1306B.

Setelah terpasang lakukan

dmesg | grep tty

Nanti akan tampil seperti dibawah ini

[    7.578478] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB0
[    7.697942] usb 1-1.2: GSM modem (1-port) converter now attached to ttyUSB1

3. Edit file config Gammu
Ketik tulisan berikut

gammu-config

Pilih Port dan masukkan port modem yang aktif. Dari tulisan saya diatas berada di ttyUSB0 dan ttyUSB1. Maka isikan nilai port dengan /dev/ttyUSB0

Save file dan nati akan terbentuk file konfigurasi di /home/pi/.gammurc
Dimana /home/pi/ adalah home direktory saya dan file gammu bernama .gammurc

4. Cek koneksi modem dengan gammu
Untuk memastikan apakah modem dan gammu sudah sesuai dengan konfigurasi yang kita masukkan, lakukan

gammu --identify

Jika sesuai akan tampil seperti dibawah ini

Device       : /dev/ttyUSB0
Manufacturer : Huawei
Model        : E220 (E220)
Firmware     : 11.117.03.00.00
IMEI         : 358193012057xxx
SIM IMSI     : 510112514106xxx

5. Mengirimkan pesan dengan gammu
langkah selanjutnya adalah mengirim sms dengan perintah berikut

echo "isi pesan" | gammu --sendsms TEXT 08562424411

Dimana pesan sms adalah "isi pesan" yang ditujukan ke nomor 08562424411
Jika sukses akan tampil pesan sukses di terminal. Jika belum, cek kembali konfigurasi di nomor 3 dan 4 diatas.

6. Gammu dengan database MySQL
Agar semua sms yang masuk dan keluar dari modem dapat dikelola dengan baik, maka tidak ada salahnya jika kita menggunakan MySQL sebagai database dari gammu.

menujulah ke folder

/usr/share/doc/gammu/examples/sql

ekstrak mysql.sql.gz dgn perintah

sudo gunzip mysql.sql.gz


nanti akan menjadi mysql.sql

Selanjutnya buka mysql dan buat database gammu

mysql -u root -p

mysql> create database gammu;
Query OK, 1 row affected (0.00 sec)

mysql> quit;

Dan kemudian import database bernama mysql.sql ke dalam database gammu yg telah dibuat

mysql -u root -p gammu < mysql>

Lalu login kembali dan lihat hasilnya

mysql -u root -p
mysql> use gammu;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+------------------+
| Tables_in_gammu  |
+------------------+
| daemons          |
| gammu            |
| inbox            |
| outbox           |
| outbox_multipart |
| pbk              |
| pbk_groups       |
| phones           |
| sentitems        |
+------------------+
9 rows in set (0.00 sec)

 

Keluar dari Mysql dan edit file gammu-smsdrc agar bisa tersambung dgn Mysql.
gammu-smsdrc dapat kamu edit dgn perintah berikut, namun sebelumnya backup filenya terlebih dahulu

sudo cp /etc/gammu-smsdrc /etc/gammu-smsdrc.BAK

dan edit

sudo nano /etc/gammu-smsdrc
# SMSD configuration, see gammu-smsdrc(5)
[smsd]
#service = files
service = sql
driver = native_mysql
logfile = /home/pi/smsdlog
# Increase for debugging information
debuglevel = 255

#Mysql User Password
user = root
password = password
pc = localhost
database = gammu

# 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/

7. Skrip html dan php untuk form input dan mengirimkan sms
index.html

<html>

Kirim SMS

<form method="post" action="send.php">
 Nomor HP Tujuan
 <input type="text" name="nohp">
 Isi SMS
 <textarea name="sms"></textarea>
 Format SMS
 <input type="radio" name="format" value="flash"> Flash SMS
 <input type="radio" name="format" value="normal"> Normal SMS 
 <input type="submit" name="submit" value="Kirim SMS">
</form>
</html>

send.php

<?php
//koneksi ke database Gammu
mysql_connect("dbhost", "dbuser", "dbpass");
mysql_select_db("dbname");
//baca no tujuan
$no_tujuan = $_POST['nohp'];
//baca isi sms
$isi_sms = $_POST['sms'];
//baca format sms
$pilih_format = $_POST['format'];
if ($pilih_format == "flash"){
 //jika format yang dipilih 'flash'
 //query kirim sms format flash
 $query = "INSERT INTO outbox(DestinationNumber, TextDecoded, CreatorID, Class)
  VALUES ('$no_tujuan', '$isi_sms', 'Gammu', '0')";
 //jalankan query
  mysql_query($query);
}else if ($pilih_format == "normal"){
 //jika format yang dipilih 'normal'
 //query kirim sms normal
 $query = "INSERT INTO outbox(DestinationNumber, TextDecoded, CreatorID, Class)
  VALUES ('$no_tujuan', '$isi_sms', 'Gammu', '-1')";
 //jalankan query
 mysql_query($query);
} else echo "Anda belum memilih format SMS";
?>

Kemudian jalankan service gammu

sudo /etc/init.d/gammu-smsd start

atau 

sudo systemctl start gammu-smsd

Untuk memverhentikan service gammu

sudo systemctl stop gammu-smsd

Untuk restart service gammu

sudo systemctl restart gammu-smsd

Untuk enable/auto running service gammu

sudo systemctl enable gammu-smsd

Lihat juga file log yang telah dibuat

tail -f /home/pi/smsdlog

Buka web yang telah dibuat dengan skrip html dan php diatas. Masukkan pesan beserta nomor tujuan, dan yang paling penting pastikan pulsa masih tersedia :)