Update terakhir: Rabu, 22 Juli 2020 (Update inisialisasi kode sumber dan pilihan instalasi servis pada sistem Linux)
Integrasi fungsi GSM semisal SMS atau USSD kini sangat dimungkinkan dengan adanya Aplikasi SMS Gateway ini. Aplikasi SMS Gateway ini dapat mengirim dan menerima pesan singkat (SMS), dan tidak diperlukan hardware khusus yang mahal. Cukup dengan modem USB yang biasanya digunakan untuk menyambungkan koneksi internet operator seluler.
Aplikasi SMS Gateway ini juga bisa berjalan di semua platform sistem operasi yang didukung oleh Nodejs termasuk Windows, Linux, dan MacOS juga berlisensi sumber terbuka yang dapat dilihat di Github.
Aplikasi SMS Gateway terbagi menjadi 2 (dua) bagian:
- SMS Terminal yang menangani fungsi dasar komunikasi GSM semisal mengirim dan menerima SMS.
- SMS Gateway berfungsi sebagai pengatur antrian, juga menyediakan fungsi jembatan untuk aplikasi lain yang memanfaatkan fungsi-fungsi GSM. SMS Gateway juga menyediakan antar muka plugin sehingga fungsi Aplikasi SMS Gateway dapat diperluas dengan fungsi-fungsi khusus sesuai yang diinginkan.
Persyaratan Sistem
- Git
- Nodejs versi 8.11.3 atau lebih tinggi. Jika menggunakan Linux, direkomendasikan menggunakan NodeSource Node.js Binary Distribution.
- MySQL Server, penggunaan database server yang lain bisa digunakan sepanjang Sequelize mendukungnya.
- Perangkat yang didukung antara lain Sony Ericsson, Siemens C-55, Huawei (E173, E3372, EC1260-2), ZTE (MF190), dan Wavecom.
Instalasi
Metode instalasi hanya tersedia menggunakan Git.
Kloning Aplikasi SMS Gateway
$ cd ~
$ git clone https://github.com/tohenk/node-sms-gw.git
Inisialisasi kode sumber SMS Terminal dan SMS Gateway
$ cd ~/node-sms-gw
$ git submodule update --init --recursive --merge --remote -- terminal
$ git submodule update --init --recursive --merge --remote -- gateway
Jika inisialisasi git submodule secara rekursif di atas tidak berhasil, update submodule dapat dilakukan satu per satu:
$ cd ~/node-sms-gw
$ git submodule update --init --merge --remote -- terminal/lib
$ git submodule update --init --merge --remote -- terminal/ui/lib
$ git submodule update --init --merge --remote -- terminal/ui/lib/script
$ git submodule update --init --merge --remote -- terminal/ui/public/js
$ git submodule update --init --merge --remote -- gateway/lib
$ git submodule update --init --merge --remote -- gateway/ui/lib
$ git submodule update --init --merge --remote -- gateway/ui/lib/script
$ git submodule update --init --merge --remote -- gateway/ui/public/js
Untuk meng-update, hilangkan opsi
--init
dari perintahgit submodule update
.
Persiapan
MySQL sudah harus terpasang dengan benar. Untuk melakukannya, rujuk ke dokumentasi MySQL.
Membuat skema MySQL
$ cd ~/node-sms-gw
$ mysql -u root -p < docs/smsgw.sql
Menambahkan user MySQL
$ mysql -u root -p
mysql> grant all privileges on 'smsgw'.'*' to 'user'@'%' identified by 'password';
mysql> exit
Gantikan baik untuk
user
danpassword
dengan user dan password yang diinginkan.
Menambahkan user sistem dan mengatur hak akses
Jika menggunakan Linux, sangat disarankan menambahkan user terpisah untuk service, kemudian mengatur hak akses ke file dan folder tersebut.
$ sudo adduser --system --no-create-home --disabled-login nodejs
$ cd ~/node-sms-gw/terminal
$ mkdir -p sessions
$ sudo chown -vR nodejs logs sessions msgref.json
$ cd ~/node-sms-gw/gateway
$ mkdir -p sessions
$ sudo chown -vR nodejs config logs sessions
Konfigurasi
Konfigurasi SMS Terminal
Konfigurasi lengkap SMS Terminal dapat dilihat di sini.
Konfigurasi SMS Gateway
Konfigurasi lengkap SMS Gateway dapat dilihat di sini.
Membuat service
Linux
Menggunakan systemd
Untuk membuat service SMS Terminal, ikuti perintah-perintah ini. Sesuaikan lokasi path dengan kondisi path sesungguhnya.
$ cd ~/node-sms-gw
$ vi service/linux/systemd/node-sms-terminal.service
$ sudo cp service/linux/systemd/node-sms-terminal.service /etc/systemd/system/
$ sudo systemctl daemon-reload
$ sudo systemctl enable node-sms-terminal.service
Dan akhirnya, untuk memulai service SMS Terminal lakukan:
$ systemctl start node-sms-terminal
Untuk membuat service SMS Gateway, ikuti perintah-perintah ini. Sesuaikan lokasi path dengan kondisi path sesungguhnya.
$ cd ~/node-sms-gw
$ vi service/linux/systemd/node-sms-gateway.service
$ sudo cp service/linux/systemd/node-sms-gateway.service /etc/systemd/system/
$ sudo systemctl daemon-reload
$ sudo systemctl enable node-sms-gateway.service
Dan akhirnya, untuk memulai service SMS Gateway lakukan:
$ systemctl start node-sms-gateway
Menggunakan init.d
Untuk membuat service SMS Terminal, ikuti perintah-perintah ini. Sesuaikan lokasi path dengan kondisi path sesungguhnya.
$ cd ~/node-sms-gw
$ chmod +x service/linux/init.d/node-sms-terminal
$ vi service/linux/init.d/node-sms-terminal
$ sudo cp service/linux/init.d/node-sms-terminal /etc/init.d/
$ sudo update-rc.d node-sms-terminal defaults
$ systemctl daemon-reload
Dan akhirnya, untuk memulai service SMS Terminal lakukan:
$ systemctl start node-sms-terminal
Untuk membuat service SMS Gateway, ikuti perintah-perintah ini. Sesuaikan lokasi path dengan kondisi path sesungguhnya.
$ cd ~/node-sms-gw
$ chmod +x service/linux/init.d/node-sms-gateway
$ vi service/linux/init.d/node-sms-gateway
$ sudo cp service/linux/init.d/node-sms-gateway /etc/init.d/
$ sudo update-rc.d node-sms-gateway defaults
$ systemctl daemon-reload
Dan akhirnya, untuk memulai service SMS Gateway lakukan:
$ systemctl start node-sms-gateway
Windows
Fungsi service pada Windows saat ini ditangani oleh node-windows. Untuk memasang node-windows
ikuti langkah ini:
> cd path\to\node-sms-gw
> npm install node-windows --global
> npm link node-windows
Service SMS Terminal
Lakukan langkah-langkah berikut menggunakan Administrator Command Prompt:
> cd path\to\node-sms-gw
> node service\windows\terminal.js install
> net start nodesmsterminal.exe
Service SMS Gateway
Lakukan langkah-langkah berikut menggunakan Administrator Command Prompt:
> cd path\to\node-sms-gw
> node service\windows\gateway.js install
> net start nodesmsgateway.exe
Web Interface SMS Terminal
Web interface SMS Terminal secara baku menggunakan port 8000, buka browser pada alamat http://localhost:8000. User dan password untuk web interface adalah admin baik untuk username dan password (atau sesuai konfigurasi di atas).
Web Interface SMS Gateway
Web interface SMS Gateway secara baku menggunakan port 8080, buka browser pada alamat http://localhost:8080. User dan password untuk web interface adalah admin baik untuk username dan password (atau sesuai konfigurasi di atas).
Integrasi SMS Gateway dengan aplikasi lain
Untuk mengintegrasikan fungsi SMS Gateway ke aplikasi lain dapat melihat contoh ini.