Anda di halaman 1dari 45

Mengenal Sistem Kerja SMS

Short Message Service (SMS) merupakan salah satu fitur GSM yang dikembangkan dan distandarisasi oleh ETSI. Pada proses pengiriman SMS dari handphone, SMS tersebut tidak langsung dikirim ke handphone tujuan, tetapi terlebih dahulu dikirim ke SMS center (SMSC), kemudian dengan sistem store and forward SMS tersebut dikirimkan ke hadphone tujuan.

Pengirim

SMSC

Penerima

Mengenal Sistem Kerja SMS

Dengan keberadaan SMSC kita dapat mengetahui status SMS, apakah sudah terkirim atau gagal terkirim. Jika handphone tujuan dalam keadaan aktif dan berada dalam jangkauan, maka handphone tersebut mengirim konfirmasi ke SMSC bahwa SMS telah diterima, sebaliknya jika handphone tujuan mati atau di luar jangkauan, maka SMS akan disimpan di SMSC sampai periode validitas terpenuhi. Jika sampai periode validitas terpenuhi, SMSC akan mengirimkan pesan ke handphone pengirim bahwa SMS gagal dikirimkan

MENGENAL FORMAT PDU DALAM PENGIRIMAN DAN PENERIMAAN SMS

Dalam pengiriman/penerimaan SMS ada dua mode yakni mode PDU (Protocol Data Unit) dan mode teks. Mode PDU merupakan format pesan dalam bentuk oktet heksadesimal dan oktet semidesimal dengan panjang mencapai 160 karakter (7 bit) atau 140 karakter (8 bit). Mode teks merupakan hasil pengkodean PDU. Pada pengiriman SMS ada 2 mobile, yakni mobile terminated (Handphone penerima) dan mobile originated (Handphone pengirim)

SMS PDU PENGIRIM (Mobile Originated)

SMS yang dikirim oleh terminal masih dalam bentuk teks, sedangkan pada pengiriman ke SMSC harus dalam bentuk PDU, oleh karena itu, terminal (HP) mengubah format text ke PDU (encodec). Skema SMS PDU pengirim telah diatur oleh ETSI sebagai berikut: PDU MR DA PID DCS VP UDL UD Type Misalnya kita akan mengirim SMS ke 6281510093290 dengan isi pesan Budi Luhur, dengan batas waktu pengiriman 5 hari, maka format PDU-nya adalah: SCA

0011000C912618150039920000AB0C0C3A 390E62D6D175F9DA0E

Service Center Address (SCA)


SCA adalah alamat (nomor) SMSC. SCA memiliki 3 komponen yaitu: Len Panjang informasi SMSC dalam oktet Hasil : 00 Type of number Nomor dari SMSC 81h = format lokal 91h = format internasional Dalam pengiriman SMS nomor SMS tidak dicantumkan Service center number Nomor SMSC operator pengirim Jika panjangnya ganjil maka karakter terakhir ditambahkan OFh Pada pengiriman SMS nomor SMSC operator pengirim tidak dicantumkan

PDU type

Nilai default PDU type adalah 11 hexa (00010001 binary) yang memiliki arti:
No bit Nama Nilai 7 RP 0 6 UDHI 0 5 SRR 0 4 VPF 1 3 VPF 0 2 RD 0 1 MTI 0 0 MTI 1

RP

: Replay Path : User Data Header Indicator : Status Report Request : Validity Period Format : Reject Duplicates : Message Type Indicator

Alur yang menunjukkan bahwa ada alur jawaban

UDHI

Bernilai 1 jika SMS menggunakan judul


Bernilai 1 jika laporan status pengiriman diminta Batas waktu pengiriman jika pesan gagal dikirim Parameter yang menunjukkan ya atau tidak Service Center akan menerima satu pengiriman SMS yang masih disimpan dalam Service Center tersebut Bernilai 0 menunjukkan SMS-DELIVER

SRR

VPF

RD

MTI

Message Reference (MR) & Destination Address (DA)


Message Reference adalah acuan dari pengaturan pesan SMS. Untuk membiarkan pengaturan SMS diatur sendiri oleh handphone tujuan, maka nilai yang diberikan adalah 00 Destination Address adalah nomor tujuan, yang terdiri dari len, type of number dan nomor tujuan.

Len menunjukkan panjang nomor tujuan Type of number menunjukkan format dari nomor tujuan

81 untuk format lokal 91 untk format international

Nomor tujuan adalah alamat (nomor) handphone yang akan dikirim SMS

Protocol Identifier (PID) & Data Coding Sceme (DCS)

Protocol Identifier (PID) adalah format dari pengiriman pesan, biasanya diatur oleh handphone, apakah pesan berupa Text, Fax, E-mail, telex dan lain-lainl. Nilai default dari PID adalah 00 yang berarti pesan yang dikirim berupa teks standar. Data Coding Sceme adalah rencana dari pengkodean data untuk enentukan SMS yang akan dikirim apakah berupa SMS teks standar, bliking SMS, atau flash SMS. Nilai default DCS adalah 00 yang menunjukkan bahwa SMS yang dikirim berupa teks standar.

Validity Period (VP) & User Data Length (UDL)

Validity period adalah lama waktu pesan SMS disimpan di SMSC apabila pesan tersebut gagal diterima oleh handphone penerima
Waktu VP 5 menit 720 menit (12 jam) 12.5 jam 24 jam 2 30 hari Lebih dari 4 minggu Nilai VP (waktu VP/5)-1 143 + ((waktu VP 12)*2) 166 + waktu VP 192 + waktu VP

User Data Length adalah panjang pesan SMS yang akan dikirim dalam bentuk teks standard

User Data (UD)

User Data adalah isi pesan yang akan dikirim dalam format heksadesimal. Pengkodean dari teks standar ke format heksadesimal dilakukan dengan bantuan default alphabet yang dibakukan oleh ETSI GSM, seperti pada tabel di slide berikut.

User Data
Desimal 0 1 2 LF OR 0 1 2 3 4 5 6 7 8 9

3
4 5 6 7 ( 2 < F ) 3 = G

SP
* 4 > H

!
+ 5 ? I

, 6 @ J

#
7 A K

$
. 8 B L

%
/ 9 C M

&
0 : D N

1 ; E O

8
9 10 11 12

P
Z d n x

Q
[ e o y

R
\ f p z

S
] g q {

T
^ h R |

U
_ i s }

V
` J t ~

W
a K u Del

Q
b l v

Y
c m W

SMS PDU Penerima (Mobile Terminated)

SMS PDU penerima adalah terminal menerima pesan yang masuk dari SMSC ke handphone dalam format PDU. Setelah pesan diterima dalam format PDU, handphone akan melakukan pengkodean pesan (decodec) menjadi format teks. Cara pengkodean format PDU sudah diatur dan distandarkan oleh ETSI, sebagai berikut:
SCA PDU Type OA PID DCS SCTS UDL UD

Service Center Address (SCA)


SCA adalah alamat (nomor) SMSC. SCA memiliki 3 komponen yaitu: Len Panjang informasi SMSC dalam oktet Hasil : 00 Type of number Nomor dari SMSC 81h = format lokal 91h = format internasional Service center number Nomor SMSC operator pengirim Jika panjangnya ganjil maka karakter terakhir ditambahkan OFh Beberapa service center number: Satelindo = 62816124 (PDU = 26181642) Telkomsel = 6281100000 (PDU = 2618010000) Excelcom = 62818445009 (PDU = 26184854009) IM3 = 62855000000 (PDU = 26580500000)

PDU type

Nilai default PDU type untuk SMS-deliver adalah 04 hexa (00000100) binary) yang memiliki arti:
No bit Nama Nilai 7 RP 0 6 UDHI 0 5 SRI 0 4 <00> 0 3 <00> 0 2 MMS 1 1 MTI 0 0 MTI 0

RP : Replay Path Alur yang menunjukkan bahwa ada alur jawaban UDHI : User Data Header Indicator Bernilai 1 jika SMS menggunakan judul SRI : Status Report Indication Bernilai 1 jika laporan status laporan akan dikembalikan MMS : More Message to Send Bernilai 1 jika ada pesan lebih yang akan dikirim MTI : Message Type Indicator Bernilai 0 menunjukkan bahwa PDU ini adalah SMS-DELIVER

Originator Address (OA)

OA adalah nomor pengirim yang terdiri dari len, type of number dan nomor tujuan.

Len menunjukkan panjang nomor tujuan Type of number menunjukkan format dari nomor tujuan

81 hexa untuk format lokal 91 hexa untuk format international

Nomor tujuan adalah alamat (nomor) handphone yang akan dikirim SMS

Protocol Identifier (PID) & Data Coding Sceme (DCS)

Protocol Identifier (PID) adalah format dari pengiriman pesan, biasanya diatur oleh handphone, apakah pesan berupa Text, Fax, E-mail, telex dan lain-lainl. Nilai default dari PID adalah 00 yang berarti pesan yang dikirim berupa teks standar. Data Coding Sceme adalah rencana dari pengkodean data untuk enentukan SMS yang akan dikirim apakah berupa SMS teks standar, bliking SMS, atau flash SMS. Nilai default DCS adalah 00 yang menunjukkan bahwa SMS yang dikirim berupa teks standar.

Service Center Time Stamp (SCTS), User Data Length (UDL) & User Data (UD)

SCTS adalah waktu dari penerimaan pesan oleh SMSC penerima. SCTS terdiri atas tahun (yy), bulan (MM), tanggal (dd), jam (hh), menit (mm), detik (ss) serta zone waktu.
Contoh : Jika SMS diterima pada 07 Maret 2008 jam 15.30.12 WIB maka SCTS bernilai 80307051032182 82 => time zone = 28 unit, 1 unit = 15 menit, maka 28 unit = 28*15/60 = 7 jam, sehingga menjadi GMT + 07.00 = WIB User Data Length adalah panjang pesan SMS yang diterima dalam bentuk teks standard User Data (UD) adalah pesan yang diterima dalam format heksa desimal

Mengenal AT Command

Sebelum membuat program kita akan melakukan koneksi handphone dengan komputer, hal ini bertujuan apakah kabel dan handphone terhubung dengan baik dengan komputer.

Mengenal AT Command
AT Command AT Keterangan Mengecek koneksi HP ke PC

AT+CMGF
AT+CSCS AT+CPMS AT+CMGL AT+CMGS AT+CMGR AT+CMGD

Menetapkan format mode


Menetapkan jenis encoding Mendeteksi SMS baru otomatis Membuka daftar SMS di SIM Mengirim pesan SMS Membaca pesan SMS Menghapus pesan SMS

AT+CNMI

Mendeteksi Kode HP

Menentukan Format Mode


Masukkan AT+CMGF=? Tindakan Enter Respons +CMGF: (list format yang mendukung) OK/ERROR

AT+CMGF=mode

Enter

Nama
Mode

Keterangan
Mode & format terminal 0 = format mode PDU 1 = format mode teks Mendukung / Tidak mendukung mode yang ditentukan

OK/ERROR

Menentukan Jenis Encoding


Masukkan AT+CMCS=? Tindakan Enter Respons +CSCS: (list encoding yang mendukung) OK/ERROR

AT+CSCS=chset

Enter

Nama
chset

Keterangan
Jenis encoding yang digunakan

OK/ERROR

Mendukung / Tidak mendukung chset yang ditentukan


Fakultas Teknologi Informasi Universitas Budi Luhur

Membuka Daftar SMS


Masukkan AT+CMGL=? Tindakan Enter Respons +CMGL: (stat) OK OK/ +CMGL:indeks, stat, [alpha], length, PDU OK

AT+CMGL=stat

Enter

Fakultas Teknologi Informasi Universitas Budi Luhur

Membuka Daftar SMS


Nama stat Keterangan 0 = SMS yang belum dibaca pada inbox SIM card 1 = SMS yang sudah dibaca pada inbox SIM card 2 = SMS yang belum terkirim pada outbox SIM card 3 = SMS yang sudah terkirim pada outbox SIM card 4 = semua SMS pada SIM card Nomor urut penyimpanan SMS Panjang PDU Pesan SMS dalam format PDU Mendukung / Tidak mendukung stat yang ditentukan

Index Length PDU OK/ERROR

Fakultas Teknologi Informasi Universitas Budi Luhur

Mendeteksi SMS baru secara Otomatis


Masukkan AT+CNMI=? AT+CNMI=mode, mt, bm, ds, bfr Ada SMS masuk Nama Mem Tindakan Enter Enter Respons +CNMI: mode, mt, bm, ds, bfr OK/ERROR +CMTI:mem, indeks Keterangan Jenis pesan yang masuk

Indeks
OK/ERROR

Nomor urut pesan SMS


Proses CNMI berhasil /gagal

Membaca Pesan SMS


Masukkan AT+CMGR=? AT+CMGR=indeks Tindakan Enter Enter Respons OK +CMGR: indeks PDU OK

Nama Indeks

Keterangan Nomor urut penyimpanan SMS

OK/ERROR

Pembacaan SMS berhasil / gagal

Menghapus Pesan SMS


Masukkan AT+CMGD=? Tindakan Enter Respons +CMGD: indeks, stat OK/ERROR AT+CMGD= indeks Enter

Nama Indeks OK/ERROR

Keterangan Nomor urut penyimpanan SMS Proses penghapusan SMS berhasil/gagal

Mengirim Pesan SMS


Masukkan Tindakan Respons

AT+CMGS=lenPDU
00+isiPDU

Enter
Ctrl+z

>
+CMGS: mr OK/ERROR

Nama

Keterangan

lenPDU isiPDU Mr
OK / ERROR

Panjang pesan PDU (oktet) Isi pesan PDU Acuan pesan


Proses pengiriman SMS berhasil / gagal

Mengirim SMS dengan format PDU


Kita akan mencoba mengirim pesan SMS ke nomor +628151009329 dengan isi Budi Luhurku dengan waktu validitas 5 hari. Setelah mengubah pesan ke format PDU, hasilnya adalah : 0011000C912618150039920000AB0C0C3A390E62D6D175F9D A0E yang terdiri dari 50 karakter (oktet 00 di awal tidak dihitung) atau 25 oktet Buka HiperTerminal dan lakukan koneksi dengan komputer, lalu ketik AT kemudian enter. Jika responsnya OK, lanjutkan dengan mengetik AT+CMGF=0 untuk mengetahui apakah terminal mendukung format PDU atau tidak. Jika responsnya OK lanjutkan dengan mengetik AT+CMGS=25 lalu enter, maka akan muncul >. Ketik isi PDU yang diperoleh yaitu: 0011001c91261850039920000AB0C0C3A390E62D6D175F9DA0 E, lalu tekan Ctrl+z Jika pengiriman SMS berhasil, maka respons yang didapat adalah +CMGS: mr OK

Merancang dan Membuat Program Utama SMS Server


Merancang arsitektur pada awal pembangunan suatu sistem merupakan hal yang penting. Dengan rancangan sistem yang baik maka suatu sistem juga akan memiliki konstruksi dan pengolahan data yang tepat dan akurat. Arsitektur alat dalam program utama SMS Server: Komputer yang memiliki port COM Handphone dan kabel data yang sesuai Arsitektur sistem dalam program utama SMS Server: SMS dikirim oleh pengguna (client) ke nomor SMS Server SMS Server menerima pesan yang masuk kemudian melakukan query ke database, sesuai dengan isi pesan Hasil query dari database kemudian dikirim ke SMS Server SMS server mengirim hasil dari database ke nomor client

Program Utama SMS Server

Proses-proses yang terdapat dalam SMS Server : SMS server akan melakukan koneksi dengan database Program utama SMS server akan menerima pesan dari client secara otomatis SMS Server membaca dan menghapus pesan dari SIM Card. SMS Server akan mengubah pesan dari format PDU ke format text. Pada proses ini data yang diambil adalah nomor telepon pengirim dan isi pesan. Lalu, data disimpan ke tabel terimasms dengan status Belum Diproses. SMS Server mengambil data dari tabel terimasms yang statusnya Belum Diproses, lalu memeriksa apakah kode yang diterima sesuai atau tidak. Jika sesuai maka proses dilanjutkan, sebaliknya jika tidak sesuai maka SMS akan mengirim pesan kesalahan ke nomor client, dan kemudian mengubah status menjadi Sudah Diproses pada tabel terimasms. Jika proses berlanjut, SMS Server akan melakukan query ke database untuk mengambil data-data yang diperlukan, dan kemudian menyimpannya ke tabel kirimsms dengan status Belum Dikirim

Program Utama SMS Server


SMS Server akan selalu mengambil data pada tabel terimasms dan kirimsms yang statusnya belum diproses dan belum dikirim SMS Server akan mengubah pesan SMS yang akan dikirim dari format text ke format PDU. SMS Server akan mengubah status pada tabel kirimsms menjadi Sudah Dikirim

SMS server berbasis J2SDK

Database berbasis Mysql

Mengenal Serial Port Di Java

Pada J2SDK belum disediakan fasilitas untuk hubungan dengan serial port, sehingga kita perlu menambahkan paket kelas untuk hubungan dengan serial port. Nama paket kelas tersebut adalah Java Communication Port, yang dapat didownload di : http://java.sun.com/product/javacomm Cara instalasinya adalah: Extract javacomm20-win32.zip ke direktori sementara Copy file win32com.dll ke direktory bin di tempat instalasi J2SDK. Copy comm.jar dan javac.comm.properties ke directory lib di tempat intalasi J2SDK Tambahkan comm.jar pada CLASSPATH, salah satu caranya dengan mengetik di command prompt: SET CLASSPATH = C:\j2sdk1.4.2\lib\comm.jar;%classpath%

Contoh Program Cari Port


import javax.comm.SerialPort; import javax.comm.CommPortIdentifier; import java.util.Enumeration; public class portList { public static void main(String[] args){ String portName = null; SerialPort port = null; Enumeration portList = null; CommPortIdentifier portId = null; int i=1; // Mencari daftar port-port yang tersedia portList = CommPortIdentifier.getPortIdentifiers(); while (portList.hasMoreElements()) { // Mengambil nilai-nilai port yang ditemukan portId = (CommPortIdentifier) portList.nextElement(); portName = portId.getName(); System.out.println("Port : "+i+". " + portName); i++; } //Akhir if port getName } }

Membalik Karakter pada Format PDU

Dalam format PDU ada bagian dimana bilangan desimal diubah hanya dengan membalikkan karakter, misalnya pada penulisan nomor telepon, time stamp, dll. Contoh: nomor telepon 6281510093290, akan diubah menjadi 621815003992F0 (ingat jika jumlah karakter nomor telepon ganjil maka ditambahkan F)

Ubah Desimal ke Hexa

Format PDU adalah bentuk pesan dalam heksadesimal. Sehingga kita perlu membuat methode untuk mengubah dari basis desimal ke basis heksadesimal. Cara mengkonversi bilangan desimal ke heksadesimal adalah dengan cara membagi bilangan desimal dengan 16 sebagai digit pertama dan sisa pembagian sebagai digit kedua. Contoh: 165d jika dibagi dengan 16 hasilnya adalah 10 (Ah) dan sisa pembagiannya adalah 5. Jadi 165d = A5 h Karakter I = bilangan_desimal / 16 Karakter II = bilangan_desimal % 16 Pada perubahan karakter menjadi heksadesimal bilangan tertinggi adalah 255 atau 11111111 b.

Mengubah dari 8 bit menjadi 7 bit


Pada format PDU penerima adalah perubahan pesan PDU ke text. Dalam format PDU penerima terdapat User Data (isi pesan SMS), proses pengubahan User Data dari format heksadesimal menjadi text sering disebut dengan istilah encoding. Proses encoding adalah mengubah bilangan heksadesimal menjadi 8 bit bilangan biner kemudian diubah lagi menjadi 7 bit bilangan biner yang kemudian dikonversi dengan sistem ASCII untuk mendapatkan bentuk text atau karakter. Contoh: D3E614 jika diubah menjadi text adalah sbb: Heksa 8 bit D3 11010011 E6 11100110 14 00010100 .

7 bit
Decimal Karakter

1010011
83 S

1001101
77 M

1010011
83 S

0000000
0 null

Mengubah 7 bit ke 8 bit

Untuk PDU pengirim, proses yang terjadi adalah mengubah format text ke format heksadesimal. Proses ini merupakan kebalikan dari proses PDU penerima. Proses ini sering disebut decodec. Proses decodec adalah mengubah format menjadi karakter ke tujuh bit biner, kemudian mengubah 7 bit biner ke 8 bit biner, dan terakhir mengubah 8 bit biner ke heksadesimal. Contoh: mengubah text SMS menjadi heksadesimal. Text S M S Decimal 83 77 83 Septet (7 bit) Oktet (8 bit) Heksa 1010011 1001101 1010011 11010011 11100110 00010100 D3 E6 14

Mengubah Pesan SMS dari format PDU menjadi format text


Setiap SMS yang masuk masih dalam bentuk PDU yang terditi dari bagian-bagian yang telah diatur oleh ETSI. Dalam mengubah format PDU menjadi text yang perlu diperhatikan adalah banyaknya digit dari setiap bagian, karena kita hanya akan mengambil nomor pengirim dan pesan SMS saja, sedangkan nilai-nilai yang lain diabaikan. Nomor pengirim terdapat dalam Originatir Address (OA) dan pesan SMS terdapat dalam User Data (UD). Adapun bagian-bagian dari pesan SMS PDU adalah: SCA (Service Number Addres)

Len 2 digit Type 2 digit Number len * 2 - 2

PDU Type

PDU Type 2 digit Len 2 digit Type 2 digit Number (nilai len) digit ------- akan diambil PID 2 digit DCS 2 digit SCTS 14 digit

OA (Orogonator Address)

PID (Protocol Identifier)

DCS (Data Coding Sceme)

SCTS (Service Center Time Stamp)

UDL (User Data Length)

UDL 2 digit
Akhir UDL sampai akhir PDU

UD (User Data)

Urutan Proses Pengambilan Bagian-bagian Pesan PDU


Mengambil nilai informasi SMSC yang terdiri atas panjang, tipe dan nomor SMSC Membuang nilai PDU Type, banyaknya digit yang dibuang adalah 2 digit. Mengambil panjang nomor telepon (len) pengirim yang dipakai untuk mengambil nomor telepon pengirim, jumlah digit yang diambil sesuai dengan nilai dari panjang nomor telepon (len). Membuang tipe nomor telepon, banyaknya 2 digit, sehingga diperoleh nomor telepon pengirim. Membuang PID (2 digit), DCS (2 digit), SCTS (14 digit), sehingga jumlah digit yang dibuang adalah 18 digit. Mengambil panjang pesan untuk keperluan encodec. Membuang nilai UDL dan mengambil isi pesan PDU lalu diubah ke format text..

Mengubah Format Text menjadi PDU

Pesan SMS yang akan dikirimkan dari terminal masih berupa text, padahal setiap SMS yang akan dikirim harus berupa PDU. Sebelum melakukan pengiriman pesan ke terminal, pesan SMS harus diubah terlebih dahulu ke format PDU. Jika pada pengubahan PDU menjadi text, ada digitdigit yang dibuang, maka pada proses pengubahan text menjadi PDU adalah sebaliknya yakni menambahkan digit-digit yang diperlukan

Tambahkan pada pesan PDU nilai default dari PDU Type yakni 11, dan nilai default dari MR (Message Reference) yakni 00. Tambahkan pada pesan PDU nilai panjang nomor telepon pengirim (len), lalu tambahkan nilai tipe nomor telepon yakni 91. Tambahkan nomor telepon pengirim (balik karakter), jika panjang nomor pengirim ganjil maka tambahkan F dibelakang digit terakhir. Tambahkan nilai default PID (00) dan DCS (00). Tambahkan nilai VP (validity period). Tambahkan panjang pesan (jumlah digit pesan SMS dalam bentuk text) dalam bentuk heksa desimal. Tambahkan nilai pesan dalam bentuk heksa desimal.

Anda mungkin juga menyukai