Coretan Kemenangan dari seorang yang awam

Agustus 13, 2008

Membuat Sms gateway

Filed under: Membuat sms gateway — boocex @ 12:12 pm

Membuat SMS Gateway dgn Modem GSM Itegno, Kannel, & Playsms

Membuat SMS Gateway sendiri memiliki tantangan yang cukup berat. Di internet
sebenarnya telah tersedia banyak dokumentasinya, namun yang masih kurang adalah
tutorial yang benar2 cocok untuk newbie. Setelah bergadang hampir 2 minggu
akhirnya penulis berhasil menyetelnya. Berbeda dengan program SMS bawaan dari
telepon genggam, dengan Kannel dan Playsms, kita bisa menjadikannya multi-user
dan bisa diakses dari mana saja.

Pertama2 penulis ingin berterima kasih kepada semua rekan yang telah banyak
membantu, terutamanya:

1. Developer modem Itegno yang telah memberikan daftar AT command modemnya.

2. Mas Anton Rahardja dan team yang telah menyediakan playsms dan bersedia
ditanya2 jam 2 dini hari )

3. Pak Adi Prasaja yang telah memberikan kunci2 settingan modem gsm.

4. Semua rekan2 yang telah berbaik hati berdiskusi, Mas Dave Muhammad, Mas Rist.
Andy Nugroho, Arief Suherlan, dll.

5. Oom Google dan Pakde Milist )

Baiklah mari kita mulai. Hal2 yang diperlukan adalah:

1. Modem GSM. Dalam hal ini penulis menggunakan Itegno 3000 yang menggunakan
koneksi USB (http://www.dsc.co.id/?page=category&catid=5&pid=120). Sebenarnya
kita dapat pula menggunakan telepon genggam GPRS kita, tapi mungkin di lain
artikel yah.

2. Kannel (http://www.kannel.org) sebagai sms engine.

3. Playsms (http://playsms.sourceforge.net) sebagai web-based Mobile Portal
System.

4. Linux OS dgn MySQL, kali ini penulis menggunakan Fedora Core 4, dengan kernel
terbaru 2.6.15-1.1830.

5. Kopi kental, roti bakar, dan mie instant sesuai selera sebagai teman
bergadang )

Langkah2 yang harus dilakukan adalah:

1. Mensetting Modem GSM.

2. Menginstall dan mensetup kannel.

3. Menginstall dan mensetup playsms.

4. Mentesting

A. Mensetting Modem GSM

Masukkan kartu GSM ke dalam modem GSM, dan jangan lupa pasang tutupnya. Sebab
kalau tidak terpasang, modem tidak akan berfungsi dengan baik.

Hidupkan Linux, dan colokkan modem ke port USB.

Buka terminal, dan lakukan tail -f /var/log/messages. Di dalam /var/log/messages
itu akan terlihat ini bila Linux berhasil mengenali modem GSM kita:

Feb 18 19:36:01 fc4 kernel: usb 2-2: new full speed USB device using uhci_hcd
and address 3

Feb 18 19:36:01 fc4 kernel: usbcore: registered new driver usbserial

Feb 18 19:36:01 fc4 kernel: drivers/usb/serial/usb-serial.c: USB Serial support
registered for generic

Feb 18 19:36:01 fc4 kernel: usbcore: registered new driver usbserial_generic

Feb 18 19:36:01 fc4 kernel: drivers/usb/serial/usb-serial.c: USB Serial Driver
core

Feb 18 19:36:02 fc4 kernel: drivers/usb/serial/usb-serial.c: USB Serial support
registered for pl2303

Feb 18 19:36:02 fc4 kernel: pl2303 2-2:1.0: pl2303 converter detected

Feb 18 19:36:02 fc4 kernel: usb 2-2: pl2303 converter now attached to ttyUSB0

Feb 18 19:36:02 fc4 kernel: usbcore: registered new driver pl2303

Feb 18 19:36:02 fc4 kernel: drivers/usb/serial/pl2303.c: Prolific PL2303 USB to
serial adaptor driver

Secara fisik kita bisa melihat apakah Modem telah dikenali dengan baik dari
lampunya yang berkedip2.

B1. Menginstall kannel.

Kita bisa menginstall dari source, ataupun dari binary. Tidak masalah.
Menggunakan FC4, kita dapat menginstallnya dengan cara:

yum install kannel kannel-devel

Ia berada di dalam repository extras.

B2. Mensetup kannel.

Selanjutnya yang cukup sulit adalah mensetting kannel. Sangat disarankan kita
mendownload dan mempelajari kannel userguide dari kannel.org. Playsms telah
menyediakan settingan awal untuk kita, kita tinggal melengkapinya sesuai
perlengkapan yang kita gunakan.

Berikut ini adalah file /etc/kannel.conf penulis:

# CORE

group = core

admin-port = 13000

admin-password = pwd

status-password = pwd

log-file = “/var/log/kannel/kannel.log”

log-level = 0

access-log = “/var/log/kannel/access.log”

smsbox-port = 13001

store-file = “/var/log/kannel/kannel.store”

# SMSC Fake

#group = smsc

#smsc = fake

#host = localhost

#port = 13013

#SMSC modem gsm

group = smsc

smsc = at

host = localhost

port = 13013

smsc-id = linuxku

modemtype = wavecom

device = /dev/ttyUSB0

speed = 115200

sms-center = 0816124

group = modems

id = WAVECOM

name = wavecom

detect-string = WAVECOM

init-string = “AT+CNMI=1,2,0,1,0;+CMEE=1″

# SMSBOX SETUP

group = smsbox

bearerbox-host = localhost

sendsms-port = 13131

sendsms-chars = “0123456789+”

log-file = “/var/log/kannel/smsbox.log”

log-level = 0

access-log = “/var/log/kannel/access.log”

# SEND-SMS USERS

group = sendsms-user

username = playsms

password = pwd

# SMS SERVICE ‘Default’

# there should be default always

group = sms-service

keyword = default

max-messages = 0

exec = /usr/local/bin/kannel_incoming %t %q %a

#get-url =
“http://localhost/~playsms/plugin/gateway/kannel/geturl.php?t=%t&q=%q&a=%a”

Penjelasan:

Bagian SMSC Fake kita comment out sebab dia berfungsi untuk testing saja. Kita
tidak akan bisa mengirimkan sms yang sesungguhnya menggunakan SMSC Fake ini.
Sebaliknya, kita definisikan group smsc modem gsm. sms-center juga kita
sesuaikan dengan kartu gsm kita.

Kita definisikan juga group modems. Yang penting disini adalah init-stringnya
yaitu “AT+CNMI=1,2,0,1,0;+CMEE=1″, CMEE=1 itu berarti kita menginstruksikan
modem agar menyebutkan jenis error yang terjadi pada Mobile Equipment kita.
Kalau tidak dibuat verbose, maka ketika terjadi error misalnya pulsa kita habis
sehingga tidak bisa kirim sms, modem gsm kita cuma bilang error tapi tidak
disebutkan kenapa, sehingga kannel tidak mengetahui error apa yang terjadi:

2006-02-18 10:20:46 [8984] [7] ERROR: AT2[/dev/ttyUSB0]: Error occurs: ERROR
(error number not known to us. ask google and add it.)

Setelah dibuat verbose menjadi keliatan sebab errornya:

2006-02-18 10:25:20 [8984] [7] CMS ERROR: +CMS ERROR: 38 (Network out of order)

Kemudian yang juga penting adalah bagian max-messages = 0 di group sms-service.
Option max-message = 0 ini berguna agar modem kita tidak mengirimkan reply
ketika menerima sms. Sebab akan terjadi kesalahan yang sangat fatal yaitu
looping send-receive, dimana jika kita mengirimkan sms ke diri sendiri, maka
modem akan mengirimkan reply ke diri sendiri, dan selanjutnya reply ini akan di
reply, begitu seterusnya, sampai pulsa kita habis.

Bagaimana kannel bekerja?

Kannel sebenarnya lebih dari sekedar sms engine, dia juga dapat berfungsi
sebagai wap engine. Ada 3 komponen utama kannel, yaitu: bearerbox, smsbox, dan
wapbox. Bearerbox ini adalah inti dari kannel. Dia berfungsi sebagai koordinator
dari 2 komponen lainnya yaitu smsbox dan wapbox. Kira2 demikian deh )

C. Menginstall dan mensetup playsms

Untuk lengkapnya, baca file INSTALL dari playsms yah! Berikut cuplikannya:

1. It is important to meet all minimum requiments above (Its a must!)

2. Setup a system user named ‘playsms’ to manage PlaySMS

# adduser playsms

# passwd playsms

Note: on some Linux distributions adduser and passwd combined

3. On most Linux distributions actions (2) will create system user and group
named playsms

with home directory /home/playsms, there you will install all PlaySMS files

4. Create public_html on user’s home directory, if its not already exists

# mkdir /home/playsms/public_html

5. Extract PlaySMS package somewhere (Place in /usr/local/src if you want to)

# tar -zxvf playsms-x.x.x.tar.gz -C /usr/local/src

# cd /usr/local/src/playsms-x.x.x

6. Copy ‘web’ directory to public_html directory and set owner back to user
playsms again

(for security reason)

# cp -rR web/* /home/playsms/public_html

# chown -R playsms /home/playsms/public_html

# chmod 701 /home/playsms

7. Setup database (import database)

# mysqladmin -u root -p create playsms

# mysql -u root -p playsms < /usr/local/src/playsms-x.x.x/db/playsms.sql

Note: you dont need to use MySQL root access nor this method to setup PlaySMS

database, but this is beyond our scope, you should read MySQL manual’s for
custom

installation method

8. Edit config.php on playsms web directory
(/home/playsms/public_html/config.php)

Please read and fill all required fields carefully

9. Enter bin directory and copy playsmsd and playsmsd_start to /usr/local/bin

# cd /usr/local/src/playsms-x.x.x

# cd bin

# cp playsmsd playsmsd_start /usr/local/bin/

10. Enter /etc/init.d or /etc/rc.d/init.d and look for file rc.local, im sure
you’ll

found it. Edit that file and put “/usr/local/bin/playsmsd_start” (without
quotes) on the

bottom of the file (before exit if theres exit). This way playsmsd_start will be
run

everytime the system startup. You need ‘root’ access for this purpose.

11 Browse http://localhost/~playsms and login using default administrator user

username: admin

password: admin

12. At this point you should be able to logon PlaySMS webbased interface.

Lets move on to gateway module part, the hard one )

If you decide to use kannel gateway module, then you must install kannel on the
same

server where PlaySMS installed. There are discussion on hoto install Kannel on
separate machine

with PlaySMS.

Due to complexity of installation process for kannel, we decide to leave this
module for experts.

Well experts, there’s something you should see on this package
contrib/kannel/kannel.conf,

sms service ‘Default’ part.

Dont forget to:

1. Create kannel cache directory and make it writable to the web servers user

# mkdir /usr/local/cache

# mkdir /usr/local/cache/smsd

# chmod -R 777 /usr/local/cache

Note:

– make it writable to the world (chmod -R 777) just to simplify installation

– it is better if you know what is the web server’s user (eg: ‘nobody’)

and instead chmod -R 777 you use:

# chown -R nobody /usr/local/cache

2. Create log directory

# mkdir /var/log/kannel

3. Enter bin directory in this package, and copy kannel_incoming to
/usr/local/bin

If you decide to use kannel gateway module, but you dont want to use ‘exec’
method in sms service,

just replace you kannel.conf near to sms service ‘Default’ part, with sms
service ‘Default’ part in

this package contrib/kannel/kannel-geturl.conf

After copying sample configuration, dont forget to change
‘CHANGE_THIS_TO_YOUR_PLAYSMS_URL’

in your kannel.conf near to sms service ‘Default’ part, to your working PlaySMS
URL

Catatan:

Di FC4, secara default direktori home user ngga bisa diakses dari web. Untuk
membuatnya aktif, kita edit file /etc/httpd/conf/httpd.conf. Cari baris berikut
dan beri tanda comment di depan UserDir disable:

# UserDir: The name of the directory that is appended onto a user’s home

# UserDir is disabled by default since it can confirm the presence

# UserDir disable

Ok, sekarang kita restart apache, dan kemudian kita coba buka web playsmsnya.
Kalau ada di localhost, kita ketik ini di browser:

http://localhost/~playsms

Loginlah dengan username: admin, password: admin

Tinggalkan sebuah Komentar »

Belum ada komentar.

RSS feed for comments on this post. TrackBack URI

Tinggalkan Balasan

Please log in using one of these methods to post your comment:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Blog di WordPress.com.

%d blogger menyukai ini: