Laman

Like BloG_bLoK_bLoC

Monday, January 23, 2012

Format data SMS (Short Messaging Service)

A. PDU sebagai Bahasa SMS dan bagian-bagiannya

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

Maksud dari bilangan heksa desimal adalah bilangan yang terdiri atas 0, 1, 2 , 3, 4, 5 ,6 ,7 ,8 ,9 ,A ,B ,C ,D ,E ,F.

Sebagai contoh, untuk angka desimal 1000, bilangan heksa desimalnya adalah 3E8.

Cara mengkonversikanya :

1000 : 16 = 62 sisa 8 à 8

62 : 16 = 3 sisa 14 à E

3 : 16 = 0 sisa 3 à 3
B. PDU untuk kirim SMS ke SMS-Centre
Delapan Header untuk kirim SMS. PDU untuk mengirim SMS terdiri atas delapan header, sebagai berikut:


1. Nomor SMS-Centre

Header pertama ini terbagi atas tiga bagian subheader, yaitu:

a. Jumlah Pasangan Hexsadesimal SMS-Centre dalam bilangan heksa.

b. National/International Code

- untuk National, kode subheader-nya yaitu 81

- untuk International, kode subheader-nya yaitu 91

c. No SMS-Centre-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 SMS-Centre Excelcom dapat ditulis dengan dua cara sebagi berikut:

Cara pertama:

0818445009 diubah menjadi:

a. 06 à karena 1 + 5 = 6 pasang

b. 81 à 1 pasang

c. 80-81-44-05-90 à 5 pasang

Digabung menjadi: 06818081440590

Cara kedua:

0818445009 diubah menjadi:

d. 07 à karena 1 + 6 = 7 pasang

e. 91 à 1 pasang

f. 26-18-48-54-00-F9à 6 pasang

Digabung menjadi: 07912618485400F9

Berikut ini berupa beberapa no SMS-Centre operator seluler di Indonesia.

Cara pertama:
No Operator Selular SMS-Centre No Kode PDU
1. Telkomsel 0811000000 06818011000000
2. Satelindo 0816124 0581806121F4
3 Excelcom 0818445009 06818081440590
4. Indosat-M3 0855000000 06818055000000


Cara kedua:
No Operator Selular SMS-Centre No Kode PDU
1. Telkomsel 62811000000 07912618010000F0
2. Satelindo 62816124 059126181642
3 Excelcom 62818445009 07912618485400F9
4. Indosat-M3 62855000000 07912658050000F0


2. Tipe SMS

Untuk tipe 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 sebuah nomor referensi otomatis oleh handphone atau alat SMS-getway.

4. Nomor Handphone Penerima

Sama seperti cara menulis PDU Header untuk SMS-Centre, header ini juga terbagi atas tiga bagian, sebagi berikut:

§ Jumlah bilangan desimal nomor ponsel yang dituju dalam bilangan heksa

§ National/international Code.

- Untuk national, kode subheader-nya: 81

- Untuk international, kode subheader-nya: 91

§ Nomor handphone yang dituju, dalam pasangan heksa dibalik-balik. Jika tertinggal satu angka heksa yang tidak memiliki pasangan, angka tersebut dipasangkan dengan huruf F didepannya.

Contoh:

Untuk nomor handphone yang dituju = 628129573337 dapat ditulis dengan dua cara sebagi berikut:

Cara pertama: 08129573337 diubah menjadi:

a. 0B à ada 11 angka

b. 81

c. 80-21-59-37-33-F7

Digabung menjadi: 0B818021593733F7

Cara kedua: 628129573337 diubah menjadi:

d. 0C à ada 11 angka

e. 91

f. 26-18-92-75-33-73

Digabung menjadi: 0C91261892753373

5. Bentuk SMS, antara lain:

0à 00 à dikirim sebagi SMS

1à 01 à dikirim sebagai telex

2à 02 à dikirim sebagai fax

Dalam hal ini, untuk mengirim dalam bentuk SMS tentu saja kita memakai 00.

6. Skema Encoding Data I/O

Ada dua skema, yaitu:
Skema 7 bit à ditandai dengan angka 0 à 00
Skema 8 bit à ditandai dengan angka lebih besar dari 0 à diubah ke heksa

Kebanyakan handphone/SMS Gateway yang ada di pasaran sekarang menggunakan skema 7 bit sehingga kita menggunakan kode 00.

7. Jangka Waktu sebelum SMS Expired

Jika bagian ini di-skip, itu berarti kita tidak membatasi waktu berlakunya SMS. Sedangkan jika kita isi dengan suatu bilangan integer yang kemudian diubah ke pasangan heksa tertentu, bilangan yang kita berikan tersebut akan mewakili jumlah waktu validitas SMS tersebut.

Rumus untuk menghitung jangka waktu validasi SMS adalah sebagi berikut:
Integer (INT) Jangka Waktu Validasi SMS
0-143 (INT +1) menit (berarti:5 menit s/d 12 jam)
144-167 12 jam + (INT-143) x 30 menit
168-196 (INT – 166) x 1 hari
197-255 (INT – 192) x 1 minggu


Agar SMS kita pasti terkirim sampai ke handphone penerima, sebaiknya kita tidak memberikan batasan waktu validnya.

8. Isi SMS

Header ini terdiri atas dua subheader, yaitu:
Panjang isi (jumlah huruf dari isi)
Isi berupa pasangan bilangan heksa

§ Untuk handphone/SMS Gateway berskema encoding 7 bit, jika kita mengetikan suatu huruf dari keypad-nya, berarti kita telah mebuat 7 angka 1/o berurutan.

Skema 7 bit tersebut diperlihatkan pada dibawah ini :

Ada dua langkah yang harus kita lakukan untuk mengkonversi isi SMS, yaitu:

Langkah Pertama : mengubahnya menjadi kode 7 bit

Langkah kedua : mengubahnya kode 7 bit menjadi 8 bit, yang diwakili oleh pasangan heksa

Contoh: untuk kata “hello”

Langkah pertama:
Bit 7 1
h 110 1000
e 110 0101
l 110 1100
l 110 1100

o 110 1111
Langkah kedua:
E 8
h 1 110 1000
3 2
e 00 11 0010 1
9 B
l 100 1 1011 00
F D
l 1111 1101 100
0 6

o 0000 0 110 1111
Oleh karena itu total 7 bit x 5 huruf=35 bit, sedangkan yang kita perlukan adalah 8 bit x 5 huruf=40 bit, maka diperlukan 5 bit dummy yang diisi dengan bilangan0.
Setiap 8 bit mewakili suatu pasangan heksa. Tiap 4 bit mewakili suatu angka heksa, tentu saja karena secara logika 24=16.
Dengan demikian kata “hallo” hasil konversinya menjadi: E8329BFD06
Ø Menggabungkan kedelapan header

Setelah kita mempelajari masing-masing header maupun subheader untuk mengirim SMS di atas, kini kita akan menggabungkannya menjadi PDU yang lengkap.

Contoh:

Untuk mengirimkan kata “hallo” ke nomor handphone 618129573337 lewat SMS-Centre Excelcom, tanpa membatasi jangka waktu valid, maka PDU lengkapnya adalah:
07912618485400F901000C91261892753373000005E8329BFD06

( 07912618485400F9,01,00,0C91261892753373,00,00,05E8329BFD06 )

Tabel 2-1: Tabel Skema 7 bit
b7 0 0 0 0 0 1 1 1
B6 0 0 1 1 0 0 1 1
B5 0 1 0 1 0 1 0 1
b4 b3 b2 B1 0 1 2 3 4 5 6 7
0 0 0 0 0 @ D SP 0 - P p
0 0 0 1 1 ! 1 A Q a q
0 0 1 0 2 F “ 2 B R b r
0 0 1 1 3 $ G # 3 C S c s
0 1 0 0 4 L 4 D T d t
0 1 0 1 5 W % 5 E U e u
0 1 1 0 6 P & 6 F V f v
0 1 1 1 7 Y ‘ 7 G W g w
1 0 0 0 8 S ( 8 H X h x
1 0 0 1 9 Q ) 9 I Y i y
1 0 1 0 10 LF X * : J Z j z
1 0 1 1 11 + ; K Ä k ä
1 1 0 0 12 , < L Ö l ö
1 1 0 1 13 CR - = M m
1 1 1 0 14 b . > N Ü n ü
1 1 1 1 15 / ? O o

C. PDU untuk SMS Terima dari SMS-Centre

Delapan Header untuk SMS-Terima. Kebanyakan header dibawah ini telah dibahas sebelumnya, kecuali beberapa yang berbeda, dijelaskan di bawah ini:

1. No SMS-Centre.

2. Tipe SMS à untuk SMS-Terima = 4 à 04

3. Nomor handphone pengirim.

4. Bentuk SMS.

5. Skema encoding.

6. Tanggal dan waktu SMS di-stamo di SMS-Centre

Diwakili oleh 12 bilangan heksa( 6 pasang) yang berarti:yy/mm/dd hh:mm:ss

Contoh: 207022512380à 01/07/22 15:32:08à 22 Juli 2002 15:32:08 Wib

7. Batas validasi waktu jika tidak dibatasi dilambangkan dengan 00

8. Isi SMS.

Membedah Kedelapan Header

Setelah mengupas satu demi satu header untuk SMS-Terima ini, maka untuk PDU dibawah ini:

07912658050000F0040C9126581610739800002070225123800005E8329BFD06
07912658050000F0,04,0C91265816107398,00,00,207022512380,00,05E8329BFD06

Dapat diartikan sebagi berikut:

1. SMS tersebut dikirim lewat SMS-Centre:62855000000

2. SMS tersebut merupakan SMS-Terima

3. SMS tersebut dikirim dari hadnphone dengan nomor Sim Card:628561013789

4. SMS tersebut diterima dalam bentuk SMS

5. SMS tersebut memiliki skema encoding 7 bit

6. SMS tersebut sampai di SMS-Centre pada tanggal 22-07-02, pukul: 15:32:08 Wib

7. SMS tersebut tidak memiliki batas waktu valid

8. SMS tersebut isinya adalah “hello”.

D. Pemrograman Serial Port

Salah satu komponen penting dari Microsof Visual Basic untuk pemrograman serial port yaitu MSCOMM.ocx. Active-X ini biasanya sudah tersedia bersamaan dengan Microsof Visual Basic. Kita hanya perlu mengatifkan dari jendela Components dan cek lis. Jika ada menggunakan Bahasa pemrogrman Borland Delphi (pada Borland Delphi versi 6 ke atas terdapat fungsi SecondsBetween)

Ketika pertama kali masuk delphi, ada 1 komponen yang mesti kita install terlebih dahulu, yaitu MS-Comm, yang digunakan untuk berkomunikasi dengan Port COM. Cara instalasi adalah sebagai berikut:

· Dari IDE Delphi, pada menu Component, pilih menu Import Active-X Control

· Pada pilihan obyek, silakan pilih MSCommXX.ocx, lalu tekan tombol Install

· Setelah Active-X terinstall, pada Tab Palette Active-X, akan muncul sebuah tombol dengan gambar telepon. Klik dan letakkan komponen tersebut pada Form, maka akan tercipta sebuah obyek dengan nama MSComm1.

Ada beberapa function dan properties yang penting dari class MsComm, antara lain :

ü CommPort: Jenis integer, diisi dengan nomor serial port yang kita pakai.

ü Setting: Jenis String, diisi dengan Baud Rate, Parity, Data Bits, dan Stop Bits.

- Baud Rate, bergantung type handphone siemens/SMS device yang digunakan. Misalnya; 19200 untuk hanphone Siemens type C35/M35/C45 dan 57600 untuk hanphone Siemens type ME45.

- Parity, diisi dengan “N” : artinya No Parity.

- Data Bits, diisi dengan “8” artinya: skema I/O 8 bits

- Stop Bits, diisi dengan “1”

Sebagai pemisah digunakan tanda ”,” (tanda koma).

Contoh: “19200,N,8,1” untuk handphone dengan baudrate 19200 bps.

ü InputLen: Jenis integer, biasanya diisi dengan 0 pada awal komunikasi port, agar semua data input yang ada sebelumnya dikosongkan kembali.

ü PortOpen: Jenis boolean, kalau TRUE berarti port akan dibuka, sebaliknya FALSE untuk menutup port.

ü Output: Function untuk menuliskan AT Command ke port

ü Input: Function untuk membaca respons balik dari port.

4.3.3 AT Command untuk SMS

Dibalik tampilan menu Message pada sebuah hadphone sebenarnya adalah AT Commmand yang bertugas mengirim atau menerima data ke/dari SMS-Centre. AT Command tiap-tiap SMS device bisa berbeda-beda, tapi pada dasarnya sama. Hal-hal yang harus diperhatikan antara laian mengeset merek dan type handphone yang digunakan sebagai SMS device secara default, juga SIM-Card yang diguankan dan serial port yang digunakan untuk communication port.

ü AT Command untuk Komunikasi Port

AT Command sebenarnya hampir sama dengan perintah > (prompt) pada DOS. Perintah-perintah yang dimasukkan ke port dimulai dengan kata AT, lalu diikuti oleh karakter lainnya, yang memiliki fungsi-fungsi unik.

ü AT Command untuk Komunikasi dengan SMS-Centre

AT Command untuk SMS, biasanya diikuti oleh data I/O yang mewakili oleh unut-unit PDU. Beberapa AT Command yang penting untuk SMS yaitu sebagi berikut:

® AT+CMGS berfungsi untuk mengirim SMS

Dalam penulisannya adalah AT+CMGS=n?, dimana n adalah pasangan kesa PDU SMS dimulai setelah nomor SMS-Centre (maksimal 140)

Contoh: untuk mengirim kata “hallo” ke handphone dengan nomor SIM-Card 628129573337 lewat SMS-Centre Indosat-M3, tanpa membatasi jangaka waktu valid, maka:

SMS-Centre : 07912658050000F0

PDU berikutnya : 01000C91261892753373000005E8329BFD06

( ada 18 pasang heksa )

PDU Lengkap : 07912658050000F001000C91261892753373000005E8329BFD06

Jumlah pasang heksa di atas = 18, jadi n=18.

Berarti AT Command-nya menjadi: AT+CMGS=18.

® AT+CMGL berfungsi untuk memeriksa SMS

Dalam penulisannya adalah AT+CMGL=n?, dimana n adalah:

- n = 0 untuk SMS Baru di Inbox

- n = 1 untuk SMS Lama di Inbox

- n = 2 untuk SMS Unsent di Outbox

- n = 3 untuk SMS Sent di Outbox

- n = 4 untuk SMS semua SMS

® AT+CMGD berfungsi untuk menghapus SMS

Dalam penulisannya adalah AT+CMGD=n?, dimana n adalah nomor referensi SMS yang ingin dihapus







= SOURCE =

No comments:

Post a Comment

Related Posts Plugin for WordPress, Blogger...