Modul SMS dengan Gnokii di Fedora 10

Gnokii adalah sebuah aplikasi/tool yang dirancang sebagai media komunikasi antara PC/Komputer dengan sebuah handphone/modem. Gnokii sendiri pada awalnya adalah aplikasi yang berjalan di sistem operasi Unix/Linux namun seiring perkembangannya gnokii saat ini juga sudah tersedia untuk sistem operasi lainnya seperti Microsoft Windows dan Mac OS. Gnokii bisa juga digunakan untuk keperluan selain sms seperti nelpon, mengakses phonebook, setting alarm, mengatur logo, dll.

Sedikit cerita tentang pengalaman saya.. Laughing

Ketika saya masih kuliah kebetulan saya mengambil judul Tugas Akhir yaitu tentang Aplikasi SMS Gateway untuk keperluan Akademik. Tapi pada saat itu saya menggunakan Gammu dengan sistem operasi Windows XP sebagai experimen. Ini dikarenakan saya belum mengenal jauh dunia Linux khususnya Fedora sehingga saya masih enggan untuk menggunakannya, dan juga dikarenakan batas waktu yang cukup singkat yaitu sekitar 1 bulan lagi untuk membuat sebuah aplikasi sms gateway berjalan dengan. Namun sampai saat ini saya masih penasaran dengan aplikasi yang satu ini, maka mumpung ada waktu luang saya pergunakan untuk explore lebih jauh di Fedora saya Laughing.

Baiklah langsung saja kita bahas bagaimana cara membuat aplikasi sms daemon dengan mengunakan Gnokii di Fedora dan saya menggunakan Fedora 10 sebagai tempat eksperimen. Hal-hal yang diperlukan dipersiapkan yaitu :

  1. Sebuah PC/Notebook dengan sistem operasi Fedora didalamnya.
  2. Aplikasi Gnokii yang sudah terinstall dengan baik (gnokii sudah include di dalam CD/DVD Instalasi Fedora).
  3. Modem/Handphone dengan koneksi USB (saya menggunakan USB Modem).
  4. Kopi, Rokok dan Cemilan secukupnya. Laughing

Persiapkan dengan baik seperti yang sudah dijelaskan diatas dan jangan lupa isi pulsa kamu yang banyak (gimana mau sms kalau gak ada pulsanya.. hiiiks..hiiks.. ). Colokkan modem kesalah satu port yang ada di PC, kemudian buka terminal dan login sebagai root lalu ketikkan perintah berikut untuk melihat modem terdeteksi pada tty berapa di Fedora.

#dmesg

Jika modem terdeteksi dengan baik di Fedora maka akan terlihat pada tty berapa ditampilkan.


Pada gambar diatas modem terdeteksi sebagai ttyUSB0 dan selanjutnya adalah melakukan konfigurasi gnokii yang ada di  file /etc/gnokiirc  lalu sesuaikan dengan paramater koneksi ke modem.

#vim /etc/gnokiirc

Ubah beberapa paramater didalamnya sesuai dengan modem yang digunakan, dibawah ini adalah parameter yang saya gunakan.

# This is a sample ~/.gnokiirc file.  Copy it into your

# home directory and name it .gnokiirc.

# See http://wiki.gnokii.org/index.php/Config for working examples.

#

[global]

# Set port to the physical port used to connect to your phone.

# Linux version is:

port = /dev/ttyUSB0

#

# For MacOSX you will need something like:

# port = /dev/cu.USA28X1P1.1

#

# For Win32 you want to use:

# port = com1:

# or similiar.

#

# FreeBSD (probably NetBSD and OpenBSD too) use:

# port = /dev/cuaa0

#

# With Linux-IrDA you will want to use

# port = /dev/ircomm0

# or similiar.

#

# Use this setting also for the Bluetooth connection:

# port = aa:bb:cc:dd:ee:ff

# when using it with AT driver set it to:

# port = /dev/rfcomm0

# or similiar.

#

# For the Linux USB cables you will need one of the following settings (or

# similiar)

# port = /dev/ttyUSB0

# port = /dev/tts/USB0

# port = /dev/ttyACM0

# the last one will work only with AT driver. The correct setting should be

# given in the dmesg output.

#

# If you use connection type dku2libusb use it to denote which use endpoint

# you'd wish to use. It is useful when you have more than one phone connected

# to your computer using DKU2 cable. Numbering goes from 1 upwards.

# Default is 1.

# port = 1

# Set model to the model number of your phone. For the

# Symbian phones use:

# model = symbian

# For other non-Nokia phones and when you want to use AT

# mode use:

# model = AT

# If you can't figure out what to put here read the FAQ.

# If it still doesn't help, consult gnokii-ml or #gnokii at freenode.

model = AT

# There are few main models that should make use of the certain drivers.

# These are: 6110, 7110, 6510, 3110, 2110, 6160.

# Set IrDA device name.

# If you use irda connection you may want gnokii to autodetect the irda

# device it connects to. This is fine for most of the cases. if you have

# more than one device in range you may want to give manually the device

# name so gnokii correctly recognizes it. Use the name that you can see

# in the discovery log when the phone with infrared is in the range of

# your irda port.

# Note that you need to set this for each phone_ section separately. It

# isn't nested from the global section.

# irda_string = Nokia 6610i

# Initlength controls the number of characters sent to the

# phone during initialisation.  You can either set it to

# the word "default" or a positive integer.

#

# You can try setting this value if you want to connect

# to the phone quicker.  If you've never noticed the

# connection to be slow, it is suggested that you

# leave this alone.  Read the initialisation code in fbus-xxxx

# to understand what this changes if you're curious.

initlength = default

# The type of the connection, for IR set this to infrared or irda.

# For the nk6110 driver only infrared is valid for the IrDA connection.

# See Docs/gnokii-ir-howto for more detailes on this.

# If you have 6210/6250/7110 phone and dau9p cable (the one you can

# use with 6100 series and cannot use hardware modem from the phone)

# you may want to use 'dau9p' value to get faster initialization.

# If you use dlr3 or dlr3p cable for nokia phones in FBUS mode (ie.

# you don't use model = AT) you may want to use 'dlr3p' value here.

# Note that it is recommended and currently the best way to use this

# cable with nk6510 driver.

connection = serial

# With DKU-2 cable use the following setting if you want to libusb driver

# (recommended):

# connection = dku2libusb

# or the following setting if you want to use Linux kernel driver

# connection = dku2

# With DKU-5 cable use the following setting

# connection = dku5

# For Bluetooth and AT driver use the following setting

# connection = serial

# For other Bluetooth settings use

# connection = bluetooth

# For infrared connection with phones other than Nokia 6110/6130/6150 use:

# connection = irda

# Don't forget to run: 'irattach irda0 -s' or similiar before running gnokii

# For connection with a PC/SC compatible Smart Card reader use:

# connection = pcsc

# Set this to 'yes' if you want gnokii to set and check the lock file in

# /var/lock directory. It avoids potential conflicts with other serial

# port software (eg. minicom). If you have wrong permissions for the

# directory, a warning will be generated. If you don't want a lockfile, set

# it to 'no'.

use_locking = no

# Baudrate to use on serial port connections.

# Currently used only by models AT and BIP/CIMD. Defaults to 19200.

serial_baudrate = 19200

# Force waiting after each sent character the specified usec time.

# Value -1 forces the fastest 'block' writing,

# value 0 writes each character separately without any explicit waiting,

# other positive values specify the appropriate 1/1000000 sec delaying.

# Siemens M20 requires at least "1"!  FIXME: Model-driven autodetection

#serial_write_usleep = 10000

# Force serial port handshaking mode, useful primarily for "AT" model.

# Gnokii "AT" model uses software handshake by default.

# Possible values: hardware (RTS/CTS - 7 wires) or software (XON/XOFF - 3 wires)

#handshake = software

# If defined (not commented out by '#') it will quit Gnokii anytime

# when DCD line will drop.

#require_dcd = 1

# If you are using a bluetooth connection, you can specify the rfcomm

# channel number here. If you don't specify the value, it is autodetected

# on connection (it may take an additional second). If none is detected,

# we assume default value: 1.

#rfcomm_channel = 1

# There may happen various timeouts during the communication with the phone.

# This parameter enables the retransmission policy. Ie. if the phone doesn't

# respond, we send the frame again. This happened mainly with the older

# phones. You may want to enable it when you see mysterious timeouts.

# Be very careful with this option. It is suspected to cause phone breakage

# with new DCT4 phones (like Nokia 6100). By default it is switched off

# (sm_retry = 0)

#sm_retry = 1

# Run the specified script(s) right after opening and initializing the device

# and before any communication (right before closing for disconnect_script).

# You may find handy to use it to connect your modem to SMS Center

# when using BIP or CIMD protocols

# Non-absolute path is relative to the specific directory where gnokii is run!

#connect_script = /absolute/path/to/gnokii/Docs/sample/cimd-connect

#disconnect_script =

# When sending SMS you can experience timeouts. This is the feature of the

# overloaded SMSCs. The phones waits for the response from the SMSC confirming

# that it received the short message. When the SMSC is DoSed with many requests

# it will take more time to get the response. Adjust it to your needs. The

# value is given in seconds to wait. Defaults to 10 seconds. Set to 0 to wait

# forever.

smsc_timeout = 10

# Set this to 1 if you want to break your phone with xgnokii. Works only

# with few Nokia models and FBUS communication

[xgnokii]

allow_breakage = 0

# Set bindir to point to the location of the various gnokiid binaries.

# In particular ensure that mgnokiidev is in this location, with

# permissions 4750, owned by root, group gnokii.  Ensure you

# are in the gnokii group and that the group exists...

[gnokiid]

bindir = /usr/sbin/

# Any entries in the following two sections will be set as environment

# variables when running the scripts.

# Handy for use for $VAR substitutions in your chat(8) script.

[connect_script]

# Don't put your phone number here!!!

TELEPHONE = 12345678

[disconnect_script]

# The following parameters control how libgnokii handles the debugging messages.

# Currently there are three categories: "debug" controls the libgnokii

# normal debug output, "rlpdebug" controls the debug output of the RLP

# subsystem, and "xdebug" is used by the xgnokii or smsd.

[logging]

# where to log the debug output (on: stderr, off: /dev/null)

debug = on

# where to log the rlp debug output (on: stderr, off: /dev/null)

rlpdebug = off

# where to log X debug output (on: stderr, off: /dev/null)

xdebug = off

# Fake-phone can be used for testing Gnokii functionality without

# having a physical phone connected.

# Example usage:

# gnokii --config gnokiirc --phone fake --identify

[phone_fake]

port = foobar

model = fake

connection = serial

Jangan lupa simpan hasil konfigurasi dan copy file gnokiirc tesebut ke direktori home pada user yang kamu gunakan menjadi file .gnokiirc.

#cp /etc/gnokiirc /home/yafiz/.gnokiirc

Sekarang saatnya untuk melakukan percobaan apakah aplikasi gnokii sudah terkoneksi dengan baik dengan modem.

#gnokii --identify

Jika yang keluar seperti diatas itu berarti modem anda sudah bisa berkomunikasi dengan baik denga n gnokii. Dan perhatikan pada akhir yang menjelaskan tentang modem seperti IMEI, Manufacturer, Model, Product Name, dan Revision. Untuk melihat apakah service aplikasi gnokii berjalan dengan baik ketikkan perintah berikut di terminal.

#gnokii --monitor

Maka akan muncul hasil seperti gambar berikut.


Gambar diatas menandakan bahwa aplikasi gnokii berjalan dengan baik di mesin Fedora dan terus berulang-ulang tanpan henti. Dan sekarang coba lakukan pengiriman sms ke salah satu nomor HP kamu dengan format sebagai berikut :

#echo “Isi SMS” | gnokii --sendsms nomor_tujuan -r

contoh :

#echo “Test SMS dengan gnokii” | gnokii --sendsms 085664077527 -r

Gnokii bisa di integrasikan dengan bahasa pemrograman yang kamu sukai untuk membuat aplikasi sms gateway yang berbasis GUI seperti bahasa C, PHP, Perl, Java, dll.

Jika ingin menggunakan gnokii untuk keperluan lain seperti nelpon silahkan melihat halaman  manualnya untuk format paramaternya.

#man gnokii

Selamat mencoba Smile