SMS GATEWAY di LINUX – KANNEL + WVDIAL di UBUNTU

Cara Install dan Konfigurasi SMS Gateway menggunakan Kannel + Wvdial di Ubuntu

Kebutuhan

  • 1 PC Ubuntu 10.04
  • Modem SMS Gateway Wavecom Fastrack M1306B

Topologi

Pada tutorial ini kami menggunakan topologi sbb:

Ubuntu 10.04 –> Modem SMS Gateway (Wavecom Fastrack)

Installasi Kannel + Wvdial

:~$ sudo su

# apt-get install kannel

# apt-get install wvdial

Konfigurasi Kannel

# wvdialconf

Informasi yang perlu dilihat dan diambil:

  • Modem = /dev/ttyUSB1
  • init-string = “ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0”
  • speed = 115200

# chmod -R 777 /dev/

# nano /etc/kannel/kannel.conf

group = core
admin-port = 13000
admin-password = bogor     ### ———————–>terserah mau password apa
status-password = indonesia     ###————————> terserah mau password apa
log-file = “/var/log/kannel/bearerbox.log”
log-level = 0
access-log = “/var/log/kannel/access.log”
smsbox-port = 13001
store-file = “/var/log/kannel/kannel.store”

group = smsc
smsc = at
host = localhost
port = 13013
smsc-id = test
modemtype = wavecom
device = /dev/ttyUSB1     ###——————–> cek di wvdialconf perangkat sms gateway kita masuk port mana
speed = 115200          ### ——————–> cek di wvdialconf
sms-center = +6281100000      ###————-> cek sms service center provider masing”, ini yg telkomsel

group = modems
id = WAVECOM
name = wavecom
detect-string = WAVECOM
init-string = “ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0”   ###——————–> cek di wvdialconf

group = smsbox
bearerbox-host = localhost
sendsms-port = 13013
sendsms-chars = “0123456789+”
global-sender = +6281100000     ###————-> cek sms service center provider masing”, ini yg telkomsel
log-file = “/var/log/kannel/smsbox.log”
log-level = 0
access-log = “/var/log/kannel/access.log”

group = sendsms-user
username = frazerazedoze     ###————-> terserah mau username apa
password = frazerazedoze             ###————-> terserah mau username apa
user-allow-ip = “127.0.0.1”

#sms-service digunakan sebagai sms pull ke aplikasi web dengan mengisi property “get-url” dengan url aplikasi
group = sms-service
keyword = default
get-url = “TERGANTUNG LOKASI ”    ###—-> cek lokasi aplikasi web sms gateway masing-masing
max-messages = 0  ###—-> ini berfungsi ketika mengirim sms dari nomor pribadi ke nomor sms gateway, maka akan ada balasan, yang kami pakai 0, dapat balasan 1 sms, kalao nilainya diganti jadi 1, dapat balasan 2 sms, isinya yang satu berupa informasi yang kita setting, yang satu lagi “Accepted for Delivery”. Biar g ngabisin pulsa, diset 0 aja.

kalo yang diatas ga bisa, coba pake kannel.conf yang ini:

# Sample configuration file for Kannel bearerbox on Debian.
# See the documentation for explanations of fields.
#
# HTTP administration is disabled by default. Make sure you set the
# password if you enable it.
group = core
admin-port = bogor
admin-password = indonesia
#admin-deny-ip = “*.*.*.*”
#admin-allow-ip = “”
wapbox-port = 13002
wdp-interface-name = “*”
log-file = “/var/log/kannel/bearerbox.log”
box-deny-ip = “*.*.*.*”
box-allow-ip = “127.0.0.1”
smsbox-port = 13003
group = wapbox
bearerbox-host = localhost
log-file = “/var/log/kannel/wapbox.log”
####### SMS box setup
group = smsbox
bearerbox-host = localhost
log-file = “/var/log/kannel/smsbox.log”
####### SMSC / GSM modem setup, using modem defined below
group = smsc
smsc = at
modemtype = wavecom
device = /dev/ttyUSB1
sms-center = “+6281100000”
####### wavecom modem definition
group = modems
id = wavecom
name = “Wavecom”
detect-string = “Wavecom”
init-string = “ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0”
speed = 115200
####### SMS services definition, what to do when an SMS is recieved
group = sms-service
keyword = smsemail
max-messages = 0
group = sms-service
keyword = default
text = default reply
max-messages = 1
# SEND-SMS USERS
group = sendsms-user
username = frazerazedoze
password = frazerazedoze
user-allow-ip = “127.0.0.1 ; (isi IP SMS gateway)”
# SMSBOX SETUP
group = smsbox
bearerbox-host = 127.0.0.1
#bearerbox-port = 13003
sendsms-port = 13013
sendsms-chars = “0123456789 +-“
global-sender = “+6281100000”
log-level = 0
log-file = “/var/log/kannel/smsbox.log”
access-log = “/var/log/kannel/access.log”
mo-recode = true

[CTRL-X]


# /usr/sbin/bearerbox /etc/kannel/kannel.conf & ###—> ini untuk start kannel, kalau mau restart di kill dulu PID para pendukung kannel, cara melihat PID yang harus di kill dengan cara ketik  ps -ef | grep kannel 

Buka TAB baru untuk command smsbox berikutnya, karena TAB bearerbox sedang running jadi ga bisa diganggu gugat (Buat diliat prosesnya).

[SHIFT-CTRL-T]


# sudo su

# /usr/sbin/smsbox /etc/kannel/kannel.conf & ###—-> ini untuk melihat pesan yg masuk, kalo g salah

Buka TAB baru untuk command berikutnya, karena TAB smsbox sedang running jadi ga bisa diganggu gugat (Buat diliat prosesnya)

[SHIFT-CTRL-T]


Jadi total TAB yang harus dibuka untuk proses sms gateway adalah 3 TAB, detailnya:
  1. proses bearerbox
  2. proses smsbox
  3. untuk kirim sms dan cek-cek lainnya

Buat script baru untuk tes kirim SMS

nano /etc/kannel/sms.pl

#!/usr/bin/perl -s
use strict;
use Encode;
use LWP::Simple;
use URI::Escape;
use File::Basename;
#Variables
our $sms;
our $nm;
my $swn = basename($0);
my ($nb,$octet,$req,@nos);
#Main Program
if ($sms && $nm) {
@nos = split(/\s+|\t+/,$nm);
$octet = encode(“utf-8”,$sms);
foreach $nb (@nos) {
$req = get(“http://127.0.0.1:13013/cgi-bin/sendsms?username=frazerazedoze&password=frazerazedoze&to=$nb&text=$octet”);
print “$nb –> $req\n”;
}
} else {
print “usage : \’$swn -sms=\”message\” -nm=\”number\”\’\n”;
}
1;

##### akhir dari isi sms.pl ####### copy sampai sini saja ############

#(informasi: script sms.pl diatas berasal dari catatanlepas.com)#

[CTRL-X]


# chmod 777 /etc/kannel/sms.pl

Ketik di terminal kata” berikut untuk mengirim pesan sekaligus mencoba keberhasilan sms gateway yang sudah kita konfigurasi:

# ./sms.pl -sms=”PESAN” -nm=”NOMOR HAPE TUJUAN

contoh: ./sms.pl -sms=”Tes sms gateway dong ah, heheee” -nm=”08123456789″

Catatan: Jika berhasil, akan ada tulisan: # 08123456789 –> 0: Accepted for delivery. Seandainya error, coba ganti tanda kutip 1 (‘), dan tanda kutip 2 (“) yang dicopy paste dari tulisan diatas (isi dari sms.pl). Kalau di ubuntu 10.04, nantinya tulisan akan berubah jadi warna coklat (ini kalo bukanya pake ‘nano’ lho ya, kalo pake ‘gedit’ jadinya warna pink soalnya ).

Update:

atau bisa menggunakan perintah ini di browser anda :

http://192.168.1.250:13013/cgi-bin/sendsms?username=amin&password=amin&to=088802844913&text=di+sini+adalah+isi+sms+anda+kalau+tanda+plus+artinya+spasi

jika berhasil maka muncul gambar seperti dibawah ini dan bahasanya sms terkirim, dan jagan lupa bearbox dan smsbox harus sudah jalan servicenya:

amin kannel

contoh: 

#!/usr/bin/perl -s
use strict;
use Encode;
use LWP::Simple;
use URI::Escape;
use File::Basename;
#Variables
our $sms;
our $nm;
my $swn = basename($0);
my ($nb,$octet,$req,@nos);
#Main Program
if ($sms && $nm) {
@nos = split(/\s+|\t+/,$nm);
$octet = encode(“utf-8”,$sms);
foreach $nb (@nos) {
$req = get(“http://127.0.0.1:13013/cgi-bin/sendsms?username=playsms&password=playsms&to=$nb&text=$octet”); ### –> yang warna coklat ini lho maksudnya yang kalo g bener tanda kutipnya [ ” atau ‘ ] bisa g warna coklat, yang dibawah juga sama, pokoknya perhatiin yang ada tanda kutipnya dah yaa.. ###
print “$nb –> $req\n”;
}
} else {
print “usage : \’$swn -sms=\”message\” -nm=\”number\”\’\n”;
}
1;

Command Berguna Kalau Error

  1. # netstat -anltp | grep “LISTEN”
  2. # kill -9 [PID]
  3. # pkill box
  4. # ps -ef | grep kannel

Macam Error yang pernah dialami

  1. bind failed -> itu karena bearerbox atau smsbox diaktifkan lebih dari sekali, proses yang sebelumnya masih running, bisa dicek pakai ps -ef | grep kannel  lalu  # kill -9 [PID] , atau gampangnya ketik: # pkill box . Command tersebut akan langsung mematikan proses kannel.
  2. Could not fetch content, sorry -> Ini terjadi karena kami membuat tampilan sms gateway tambahan agar dapat diakses lewat web (web interface), jadi sasarannya harus ke script htdocs web yang kami buat di PC berbeda. Permasalahan ada pada script get-url=…. yang terletak di dalam /etc/kannel/kannel.conf. Otak-atik disitunya sampai sasaran web sms gateway-nya benar.
  3. DEBUG: AT2[test]: TP-Validity-Period: 24.0 hours
    DEBUG: AT2[test]: –> AT+CMGS=32^M
    DEBUG: AT2[test]: <– AT+CMGS=22>
    DEBUG: AT2[test]: send command status: 1
    DEBUG: AT2[test]: –> 0011000D81265827720658F20000A707F4F29C9E769F01
    DEBUG: AT2[test]: –> ^Z
    DEBUG: AT2[test]: <– > 0011000D81265827720658F20000A707F4F29C9E769F01
    DEBUG: AT2[test]: <– ERROR
    ERROR: AT2[test]: Generic error: ERROR
    DEBUG: AT2[test]: send command status: -1
    DEBUG: sms_router: gwlist_len = 6
    (Mengenai error diatas kami abaikan saja, karena sms masih bisa terkirim walau terdapat tanda error tersebut)
  4. Masalah yang paling sering terjadi dan paling sering lupa itu belum disetting adalah -> chmod 777 /dev/ttyUSB0 atau chmod 777 /dev/ttyUSB1, tergantung nanti yang muncul di wvdialconf USB yang mana 0 atau 1, maka dari itu supaya g bikin bingung, kami chmod langsung folder dev-nya, chmod -R 777 /dev/.
  5. Muncul error: Can’t locate LWP/Simple.pm in @INC (@INC contains: /usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl /usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi /usr/lib/perl5/5.8.8 .) at ./sms.pl line 4.
    BEGIN failed–compilation aborted at ./sms.pl line 4. Ketika akan mengirim sms menggunakan sms.pl # ./sms.pl -sms=”PESAN” -nm=”NOMOR HAPE TUJUAN. Solusi: apt-get install perl-libwww-perl .kalau di Centos   yum -y install perl-libwww-perl 
  6. Ketika akses lewat minicom, sudah initialize, lalu misal mau cek pulsa dengan memasukkan command AT+CUSD=1, “*888*” Lalu muncun informasi +CUSD: 4, bukan langsung keluar informasi sisa pulsa atau total pemakaian untuk pascabayar. Itu tandanya simcard tsb terisi pin, kalo mau gampang di nonaktifkan dahulu pin-nya lewat hape.

UPDATE:

ini saya mempunyai config kannel yang sudah bisa menyimpan hasilnya di databases, ini contoh config dan DB_nya:

config kannel:

group = core
admin-port = 13000
admin-password = amin
status-password = amin
log-file = “/var/log/kannel/sweetsms_bearerbox.log”
log-level = 0
access-log = “/var/log/kannel/sweetsms_access.log”
smsbox-port = 13001
store-file = “/var/log/kannel/sweetsms_kannel.store”
dlr-storage = mysql

#— mysql connection
group = mysql-connection
id = mydlr
id = dlr-db
host = localhost
username = ecc2
password = 0o9i8u7y
database = db_sweet_sms
max-connections = 1

#—- DLR table structure
group = dlr-db
id = dlr-db
table = dlr
field-smsc = smsc
field-timestamp = ts
field-destination = destination
field-source = source
field-service = service
field-url = url
field-mask = mask
field-status = status
field-boxc-id = boxc

modemtype = wavecom
device = /dev/ttyUSB0
speed = 115200
sms-center = +62855000000
sim-buffering = true

group = modems
id = WAVECOM
name = wavecom
detect-string = WAVECOM
init-string = “ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0”

group = smsbox
bearerbox-host = localhost
sendsms-port = 13013
sendsms-chars = “0123456789+”
global-sender = +62855000000
log-file = “/var/log/kannel/sweetsms_smsbox.log”
log-level = 0
access-log = “/var/log/kannel/sweetsms_access.log”

group = sendsms-user
username = amin
password = amin
user-allow-ip = “127.0.0.1”
max-messages = 3
concatenation = true

group = sms-service
keyword = default
omit-empty = true
post-url = “http://127.0.0.1/sweetsms/service.php?t=%t&q=%q&a=%a&Q=%Qp=%p&n=%P&terkirim=%d&u=%R&#8221;
max-messages = 0
concatenation = true
catch-all = true

 

Nah ini contoh DB nya:

DB

Selamat Mencoba, Gud Lak Yaa.,

Sudah Berhasil Dicoba dan Berhasil…

One thought on “SMS GATEWAY di LINUX – KANNEL + WVDIAL di UBUNTU

  1. bang, kalo command not found gmn? ane dapat reply kyk gne neh:
    ./sms.pl: line 3: use: command not found
    ./sms.pl: line 4: use: command not found
    ./sms.pl: line 5: use: command not found
    ./sms.pl: line 6: use: command not found
    ./sms.pl: line 7: use: command not found
    ./sms.pl: line 9: our: command not found
    ./sms.pl: line 10: our: command not found
    ./sms.pl: line 11: syntax error near unexpected token `(‘
    ./sms.pl: line 11: ` my $swn = basename($0);’

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s