Thursday, September 20, 2018

Install & Menggunakan Gammu dan Java di Windows Untuk SMS

I. Download GAMMU

Untuk mendownload aplikasi Gammu, resmi gammu https://wammu.eu/download/gammu/
Silakan pilih sesuai dengan arsitektur windows yang digunakan, 32 atau 64 bit. Pada contoh ini saya menggunakan versi 64 bit.

II. Cara Install GAMMU di Windows

Untuk menginstall Gammu, dobel klik file installer, kemudian ikuti wizard yang ada.

II.1. Pilih Add Gammu to the system PATH for All users. Pilih opsi “Add Gammu to the system PATH for All users”. Opsi ini akan menambahkan path direktori instalasi gammu ke dalam Windows Environment Variable, sehingga memungkinkan kita dapat menjalankan perintah gammu melalui command prompt termasuk menjalankan / menginstall service sms daemon.
Cara Install Gammu di Windows
II.2. Pilih direktori dimana Gammu akan diinstall atau next
II.3. Pilih nama direktori untuk start menu atau next
II.4. Pada pilihan components yang ingin diinstall, pilih full. Dengan opsi ini, Gammu akan mengcopy semua file, termasuk contoh file konfigurasi dan contoh file sql, sehingga akan memudahkan kita melakukan konfigurasi.
Tutorial Install Gammu di Windows
Klik Install dan tunggu proses instalasi selesai.

III. Mengirim SMS Dengan GAMMU Melalui Command Prompt

Terdapat dua cara untuk mengirim sms dengan Gammu, yaitu melalui command prompt dan memasukkan data pada database. Mari kita bahas cara yang pertama.

1Buat File Konfigurasi

Untuk dapat menggunakan Gammu, terlebih dahulu buat file konfigurasi dengan nama gammurc (baca gammu rc) dan tempatkan pada direktori bin yang ada pada folder instalasi, pada contoh kali ini C:\Program Files\Gammu 1.38.1\bin
Atau, sobat dapat mengcopy contoh file konfigurasi dari folder instalasi di C:\Program Files\Gammu 1.38.1\share\doc\gammu\examples\config
Selanjutnya, isi dengan konfigurasi sebagai berikut:
[gammu]
device = com6:
connection = at460800
Penjelasan:
  • com6 adalah nomor port dari modem, untuk mengetahuinya, klik kanan pada My Computer atau This PC, kemudian klik properties, selanjutnya pilih device manager dan pilih bagian modem.
    Pilih Port Modem
  • Selanjutnya, untuk connection, kita gunakan AT diikuti kecepatan dari port tersebut (seperti pada contoh gambar diatas). Kecepatan port sifatnya opsional, kita dapat mengabaikannya, misal: connection = at

2Jalankan Gammu

Sebelum melangkah lebih jauh, pertama-tama tes apakah Gammu dapat membaca modem
Jalankan command prompt, arahkan cursor ke direktori bin, kemudian ketikkan perintah gammu identify. Perintah ini untuk memastikan bahwa Gammu dapat membaca modem kita.
Mengidentifikasi Modem
Pada contoh diatas, terlihat bahwa saya menggunakan model M 150-2 (Huawei E3372). 
Perlu diperhatikan bahwa jika modem digunakan (misal: koneksi internet sedang aktif), maka kita akan mendapatkan pesan error:
C:\Program Files\Gammu 1.38.1\bin>gammu identify
Error opening device. Unknown, busy or no permissions.
Seanjutnya, mari kita tes dengan mengirim sms. Jalankan perintah
Jalankan perintah gammu --sendsms text [nomor-hp], misal gammu -sendsms text 08651360000, kemudian tulis pesan yang ingin dikirim. Setelah selesai, tekan enter, kemudian CTRL+Z (akan mencetak ^Z) kemudian tekan enter lagi. 
Hasil yang kita peroleh:
Kirim SMS Dengan GAMMU Via Command Prompt
Proses ini bisa saja gagal, misal memperoleh pesan error:
Sending SMS 1/1....waiting for network answer..error 38, message reference=-1
Unknown error.
Penyebab error bisa bermacam macam, bisa pulsa habis, kartu belum aktif, modem tidak terkoneksi  dengan baik, dll.

IV. Mengirim SMS Dengan Gammu Melalui Insert Data Pada Database

Cara kedua untuk mengirim pesan dengan Gammu adalah memasukkan data ke dalam tabel pada database tertentu. Ketika data dimasukkan, otomatis Gammu akan mengirim pesan sesuai dengan data yang ada.
Cara ini merupakan cara paling fleksibel dan banyak diterapkan oleh berbagai aplikasi pengirim sms massal, karena lebih mudah memasukkan data pada database daripada menjalankan command prompt.
Untuk keperluan tersebut, kita perlu menjalankan smsd (baca sms daemon). Daemon ini akan mendeteksi aktivitas modem dan server database, sehingga aktivitas terkait sms dapat dilakukan/disimpan pada database.
Pada contoh ini, database MySQL.

1Cek Driver Database Yang Tersedia

Sebelum menggunakan database, perlu mengecek driver database yang tersedia pada paket gammu yang diinstall. untuk mengetahuinya, jalankan perintah: gammu-smsd -v, perhatikan gambar berikut:
Driver Database Yang Disertakan Pada Installer Gammu
Pada contoh diatas, terlihat bahwa hanya driver ODBC yang tersedia, untuk itu tidak dapat menggunakan driver lain seperti native_mysql.
Sejak versi 1.33.0, driver database yang disertakan pada paket instalasi Gammu adalah ODBC, sehingga semua koneksi database harus melalui ODBC

2Buat File Konfigurasi

Selanjutnya, buat file konfigurasi smsd dengan nama smsdrc (baca smsd-rc), atau copy dari folder instalasi di C:\Program Files\Gammu 1.38.1\share\doc\gammu\examples\config
Isikan file konfigurasi berikut:
[gammu]
device = com6:
connection = at

[smsd]
service = sql
driver = odbc
sql = mysql
host = mysql_odbc
user = root
password =
database = gammu
LogFile = smsdlog.log
Penjelasan:
  • sql = mysql artinya bahasa sql yang digunakan adalah mysql
  • host diisi dengan nama odbc yang kita buat, bukan localhost seperti yang biasa kita gunakan. Untuk membuat koneksi ODBC, silakan baca tutorial: Setting ODBC MySQL Untuk Gammu
  • Pada koneksi ODBC, nama database tidak berpengaruh karena database ini ditentukan saat kita membuat koneksi ODBC. Pada contoh diatas, bagian database = gammu hanya sebagai contoh, dapat dihilangkan.
  • Logfile digunakan untuk menyimpan semua aktifitas daemon, file ini akan disimpan pada direktori bin.

3Buat Database

Selanjutnya, perlu untuk membuat database yang akan digunakan Gammu untuk menyimpan semua data. Untuk membuatnya, dump file sql yang ada di folder C:\Program Files\Gammu 1.38.1\share\doc\gammu\examples\sql
Contoh File SQL Gammu
Pada contoh kali ini saya dump menggunakan phpMyAdmin bawaan XAMPP. 
Untuk load file sql: (1) Buat database, misal gammu (2) Klik database tersebut, kemudian klik menu import yang ada di sebelah atas (3) Pilih file .sql, jika berhasil maka akan terbentuk tabel sebagai berikut:
Tabel Database Gammu
Penjelasan:
  • gammu. Tabel ini digunakan untuk menyimpan versi Gammu.
  • inbox. Tabel ini berisi SMS yang masuk.
  • outbox. Tabel ini akan menyimpan pesan yang ingin dikirim. Pengisian data pada tabel ini akan memicu gammu mengirim sms sesuai dengan data yang diisikan.
  • outboxmultipart. Secara default kita hanya dapat menyimpan pesan sebanyak 160 karakter. Untuk karakter lebih dari 160, pesan akan disimpan pada tabel ini.
  • phones. Tabel ini akan digunakan gammu untuk menyimpan  data phone / modem seperti nomor IMEI, NetCode, dll
  • sentitems. Tabel ini akan menyimpan semua pesan dari tabel outbox yang telah dikirim, baik berhasil maupun gagal.
Perlu diperhatikan bahwa pada file sql, terdapat beberapa statemen yang tidak kompatibel dengan MySQL versi 5.7.x, sehingga, jika menemui pesan error, coba turunkan versi MySQL yang digunakan

4Jalankan Service SMS Daemon

Selanjutnya, jalankan service sms daemon. Jalankan perintah:
gammu-smsd -c smsdrc
Contoh sebagai berikut:
Menjalankan Service Smsd Pada Gammu
Penjelasan:
  • -c merujuk pada file konfigurasi yang akan digunakan, dalam hal ini file smsdrc, untuk opsi lainnya, dapat dilihat dengan menjalankan perintah gammu-smsd
  • Jika berhasil, maka cursor akan berhenti, tidak kembali ke direktori awal ( C:\Program Files\Gammu 1.38.1\bin )
Penting diperhatikan bahwa untuk dapat menjalankan service, kita perlu hak akses administrator, jalankan command prompt dengan klik kanan » Run as administrator

5Kirim SMS Via Database

Selanjutnya, tes kirim SMS dengan memasukkan data ke tabel outbox.
Tabel tersebut terdiri dari banyak sekali field, namun demikian, kita hanya perlu mengisi 3 field saja, yaitu DestinationNumber berisi nomor tujuan, TextDecoded berisi pesan yang dikirim, dan CreatorID berisi ID pembuat pesan (diisi bebas)
Misal masukkan data menggunakan phpMyAdmin. Buka phpMyAdmin, klik database gammu, kemudian pilih Tab SQL dan jalankan perintah berikut:
INSERT INTO outbox (DestinationNumber, TextDecoded, CreatorID) VALUES ('085866927217', 'Tes kirim SMS dari database', 'agusph');
Gambar:
Kirim SMS dengan Gammu Melalui Database
Tunggu beberapa saat hingga data terkirim. setelah terkirim, maka data akan berpindah ke tabel sentitems.

6Install Service SMSD

Agar service smsd berjalan secara otomatis ketika widows dijalankan, maka kita perlu menginstall nya ke dalam service windows. Untuk menginstallnya, jalankan perintah:
gammu-smsd -c smsdrc -i
Jika berhasil, maka kita akan memperoleh pesan:
C:\Program Files\Gammu-1.38.1\bin>gammu-smsd -c smsdrc -i
Service GammuSMSD started sucessfully
Service yang telah diinstall dapat di cek pada windows services. Secara default nama service tersebut adalah Gammu SMSD Service (GammuSMSD)
Install Service Gammu di Windows
Secara default, service tersebut belum berjalan, untuk itu, kita perlu menjalankannya. Jalankan perintah
gammu-smsd -c smsdrc -s

Penting diperhatikan bahwa meskipun kita memperoleh pesan sukses, namun pada kenyataannya, bisa jadi service tersebut tidak berjalan, untuk itu, agar lebih yakin, kita dapat menjalankannya secara manual:
Start Service Gammu

Untuk menghapus service, kita gunakan perintah:
gammu-smsd -c smsdrc -u

V. Menjalankan Gammu dengan Java

sintax:

package smsgateway;

import java.io.IOException;

public class SmsGateway {

    public static void main(String[] args) throws IOException {

        String pathGammu="C:/Gammu/bin/gammu-smsd-inject";

        String fileKonfigurasi="C:/Gammu/bin/smsdrc";

        Runtime runtime= Runtime.getRuntime();

        runtime.exec(pathGammu+" -c "+fileKonfigurasi+" TEXT 0896677xxxxx -text \"Halo Tes Gammu Melalui Java\" ");

    }

}

Path Gammu dan file konfigurasi perlu didefinisikan terdahulu karena Windows tidak mengenalinya secara langsung kecuali ditambahkan Gammu pada Path Variable. Pada code diatas baik Path Gammu maupun file konfigurasi dibuat statis demi kesederhanaan tutorial ini. Di dunia nyata hendaknya dibuat dinamis. Begitu pula dengan nomor tujuan sms dan pesan yang dikirim dibuat statis dengan alasan yang sama.

atau bisa juga langsung dilakukan proses insert ke database dimana bisa langsung dikirimkan smsnya


VI. Install Di Linux

Instalasi Gammu Di Linux (ubuntu 11.04)

Cara install diubuntu, karena gammu telah ada dalam repository ubuntu. Sehingga cukup buka terminal dan ketik perintah berikut:
ketikan perintah
sudo apt-get install gammu
tekan Enter tunggu hingga selesai.

Setelah selesai, lakukan konfigurasi modem (Saya Menggunakan Modem Wavecom Fastrack)
Caranya:
Ketikan pada terminal:
dmesg | grep tty
Perhatikan Tulisan yang berwarna Merah, bisa dilihat bahwa modem saya di ter-identifikasi pada ttyUSB0. Ingat2 atau bisa Copy.

Ok, selanjutnya kita konfigurasikan gammu supaya dapat mengenali modem
Ketikan:
gammu-config

Masukan enter letakan pointer pada port, kemudian tekan enter pada edit, masukan /dev/ttyUSB0 (Sesuaikan dengan modem/HP yang terdeteksi pada langkah sebelumnya). pindahkan ponter pada bagian Connection, kemudian tekan edit pilih at115200.

Ok, Kemudian Save
Sekarang kita coba konfigurasi modem
ketik pada terminal:
gammu --identify
Adakadabra, instalasi gammu di ubuntu selesai .....

Gak afdol kalo belum di coba silahkan ketikan
gammu getussd *888#
Command Diatas untuk mengecek pulsa menggunakan gammu sesuaikan *888# dengan operator yang anda gunakan.

Memunculkan Simbol & Emoji Pada OS Mac

  Memunculkan Simbol & Emoji  1. Buka aplikasi Pages / Notes pada Macbook. 2. Klik pada Menubar Edit --> Pilih Emoji and Symbols a...