Friday, June 12, 2009

Membuat SMS Gateway Dengan Java dan Mysql (Making SMS GATEWAY with Java and Mysql) part1

source code bisa didownload disini mirror1

SMS (Short Messaging Services) Data SMS (Short Messaging Services) yang kita kirim atau yang kita terima sebenarnya memiliki format tersendiri untuk dapat diterjemahkan oleh sebuah mobile phone. Format atau mode yang dipakai untuk mengirim dan menerima SMS sebenarnya ada dua yaitu mode text dan mode PDU (Protocol Data Unit). Akan tetapi, sistem mode text tidak didukung oleh semua operator GSM maupun terminal.

1. Text Mode Mode ini adalah cara termudah untuk mengirim pesan. Pada mode teks pesan yang kita kirim tidak dilakukan konversi. Teks yang dikirim tetap dalam bentuk aslinya dengan panjang mencapai 160 (7 bit default alphabet) atau 140 (8 bit) karakter. Sesungguhnya, mode teks adalah hasil encode yang direpresentasikan dalam format PDU. Kelemahannya, kita tidak dapat menyisipkan gambar dan nada dering ke dalam pesan yang akan dikirim serta terbatasnya tipe encoding.

2. PDU (Protocol Data Unit) Mode PDU mode adalah format message dalam heksadesimal octet dan semi-desimal octet dengan panjang mencapai 160 (7 bit default alphabet) atau 140 (8 bit) karakter. Kelebihan menggunakan mode PDU adalah kita dapat melakukan encoding sendiri yang tentunya harus pula didukung oleh hardware dan operator GSM, melakukan kompresi data, menambahkan nada dering dan gambar pada pesan yang dikirim. Beberapa tipe encoding yang umum digunakan adalah “PCCP437”, “PCDN”, “8859-1”, “IRA” dan “GSM”. Kita juga dapat menambahkan header ke dalam pesan yang akan dikirim, seperti timestamp, nomor SMSC dan meta-informasi lainnya. 2.1.1 Sistem Kerja SMS Pada saat kita mengirim pesan SMS dari handphone (mobile originated) pesan tersebut tidak langsung dikirim ke handphone tujuan (mobile terminated), akan tetapi dikirim terlebih dahulu ke SMS Center (SMSC), baru kemudian pesan tersebut diteruskan ke handphone tujuan.


Gambar 1
Dengan adanya SMSC ini dapat mengetahui status dari pesan SMS yang telah dikirim, apakah telah sampai atau gagal diterima oleh handphone tujuan. Apabila handphone tujuan dalam keadaan aktif dan dapat menerima pesan SMS yang dikirim, ia akan mengirim kembali pesan konfirmasi ke SMSC yang menyatakan bahwa pesan telah diterima. Kemudian SMSC mengirimkannya kembali status tersebut kepada si pengirim. Jika handphone dalam keadaan mati, pesan yang dikirimkan akan disimpan pada SMSC sampai period-validity terpenuhi. 2.1.2 Koneksi ke SMSC Untuk dapat mengirim dan menerima pesan, kita harus melakukan koneksi ke SMSC. Ada beberapa cara untuk melakukan koneksi ke SMSC antara lain : · Menggunakan terminal baik berupa GSM modem atau handphone. Cara ini adalah yang paling mudah tetapi memiliki kekurangan antara lain jumlah pesan yang dikirim per menit sangat terbatas (sekitar 6-10 pesan per menit). Untuk mengantisipasi hal ini biasanya digunakan lebih dari satu terminal.

· Koneksi langsung ke SMSC Dengan melakukan koneksi langsung ke SMSC kita dapat mengirim pesan dalam jumlah banyak, dapat mencapai sekitar 600 SMS per menit bergantung pada kapasitas dari SMSC itu sendiri. Untuk melakukan koneksi ke SMSC diperlukan protocol penghubung. Protocol yang umum digunakan adalah UCP, SMPP, CIMD2, OIS dan TAP. Masing–masing operator GSM menyediakan tipe protocol yang berbeda-beda.

· Menggunakan software Bantu Saat ini banyak vendor telekomunikasi menawarkan software bantu untuk melakukan koneksi ke SMSC, dari yang bersifat freeware, open source sampai dengan yang komersial. Pemilihan koneksi ke SMSC biasanya disesuaikan dengan jumlah pesan SMS yang akan dikirim. Gambar dibawah ini menunjukkan skema tipe koneksi ke SMSC.


2.1.3 Mode Pengiriman dan Penerimaan SMS dengan PDU

Data yang mengalir ke atau dari SMS-Center harus berbentuk PDU (Protokol Data Unit). PDU berisi bilangan-bilangan heksadesimal yang mencerminkan bahasa I/O. PDU berisi atas beberapa header. Header untuk kirim SMS ke SMS-Center berbeda dengan SMS yang diterima dari SMS-Center.

A. PDU untuk kirim SMS ke SMS-Center Terdapat delapan header untuk mengirim SMS, yaitu : 1. Nomor SMS-Center Header pertama ini terbagi atas tiga subheader, yaitu :
a. Jumlah pasangan Heksadesimal SMSC dalam bilangan heksa
b. National/International code
* untuk National, kode subheader-nya yaitu 81
* untuk International, kode subheader-nya yaitu 91
c. No SMS-Center-nya sendiri, dalam pasangan heksa dibalik-balik. Jika tertinggal satu angka heksa yang tidak memiliki pasangan, angka tersebut akan dipasangkan dengan huruf F didepannya. Contoh : untuk nomor SMSC Excelcom 62818445009 dapat diubah menjadi
a. 07 --> ada 7 pasang
b. 91 --> 1 pasang
c. 26-18-48-54-00-F9 --> 6 pasang
Digabung menjadi : 07912618485400F9
1. Telkomsel 62811000000 07912618010000F0
2. Satelindo 62816125 059126181652
3. Exelcom 62818445009 07912618485400F9
4. Indosat-M3 62855000000 07912658050000F0


2. Tipe SMS
Untuk SEND tipe SMS = 1. Jadi bilangan heksanya adalah 01.
3. Nomor Referensi SMS
Nomor referensi ini dibiarkan dulu 0, jadi bilangan heksanya adalah 00. Nanti akan diberikan nomor referensi otomatis oleh ponsel atau alat SMS gateway.
4. Nomor Ponsel Penerima

a. Jumlah bilangan desimal nomor ponsel yang dituju dalam bilangan heksa.
b. National/International code * untuk National, kode subheader-nya yaitu 81 * untuk International, kode subheader-nya yaitu 91

c. Nomor ponsel yang dituju, dalam pasangan Heksa dibalik-balik. Sama dengan cara penulisan subheader SMSC.

Contoh : untuk nomor ponsel yang dituju = 628129573337 dapat diubah menjadi
a. 0C à ada 12 angka
b. 91 c. 26-18-92-75-33-73 Digabung menjadi 0C91 261892753373

5. Bentuk SMS, antara lain : 0 à 00 à dikirim sebagai SMS
1 --> 01 --> dikirim sebagai telex
2 -->02 --> dikirim sebagai fax 6. Skema Encoding Data I/O Ada dua skema, yaitu :

a. Skema 7 bit à ditandai dengan angka 0 -->00
b. Skema 8 bit à ditandai dengan angka lebih besar dari 0 à diubah ke heksa Kebanyakan ponsel atau SMS gateway yang ada di pasaran sekarang menggunakan skema 7 bit.


7. Jangka Waktu Sebelum SMS Expired
Agar SMS kita pasti terkirim sampai ke ponsel penerima, sebaiknya kita tidak memberikan batasan waktu validnya.

8. Isi SMS
Header ini terdiri atas dua subheader, yaitu :

a. Panjang isi (jumlah huruf dari isi)
Misalnya : untuk kata “hello” --> ada 5 huruf --> 05
b. Isi berupa pasangan bilangan heksa

· Untuk ponsel/SMS gateway berskema encoding 7 bit, jika kita mengetikkan suatu huruf dari keypad-nya, berarti kita telah membuat 7 angka 1/0 berurutan.

Ada dua langkah yang harus dilakukan untuk mengkonversi isi SMS, yaitu :
1. mengubah menjadi kode 7 bit, contoh kata “hello”

bit 7 1
h -->110 1000
e -->110 0101
l --> 110 1100
l --> 110 1100
o --> 110 1111

mengubah kode 7 bit menjadi 8 bit, yang diwakili oleh pasangan heksa. E 8

h 1 110 1000 3 2
e 00 11 0010 9 B
l 100 1 1011 F D
l 1111 1101 0 6
o 0000 0 110

Dengan demikian kata “hello” hasil konversinya E8329BFD06
Menggabungkan kedelapan header untuk mengirim kata “hello” ke ponsel nomor 628129573337 lewat SMS-Center Excelcom, tanpa membatasi jangka waktu valid, maka PDU lengkapnya adalah : 07912618485400F901000C9126189275337300000E8329BFD06



Bersambung.............................


Technorati Profile

5 comments:

  1. Mas... part2 nya mana???
    :D

    Bagus2... ini yang tak cari2 dari dulu...

    ReplyDelete
  2. bagaimana cara pengaturan pulsanya mas..??
    thx

    ReplyDelete
  3. mas.. filenya gak bisa ke download?? teman2 yang lain bisa bantu kirimin aku hasil downloadnya donk.. makasih

    ReplyDelete