Silakan tunggu sedang proses
Kamis Wage 28 Maret 2024 15:30
learn make rich
share make it perfect
Ayat Suci
Sesungguhnya orang-orang kafir dan mereka mati dalam keadaan kafir, mereka itu mendapat laknat Allah, para malaikat dan manusia seluruhnya.
(QS. AL BAQARAH:161)

 otomatis refresh

Javascript ayat
Daftar Fungsi
pasaran
Mencari nama hari dan nama pasaran
pdu2sms
Konversi dari PDU ke Teks SMS
bacarss
Membaca RSS dari beberapa situs
Para Rekan
MyWeblog

Membaca SMS dari PC

Aryo Sanjaya
Kirim-kiriman SMS memang asyik, apalagi kalo menggunakan PC, meski tetep aja bayar :-)

Aryo Sanjaya
Selasa Pahing, 14 Juni 2005

Pembukaan

Bagi yang sering kirim-kiriman SMS, kalo cuma mengandalkan kapasitas penyimpanan dalam handset (handphone), suatu saat pasti pernah mengalami penuhnya inbox. Hal tersebut berlaku untuk jenis manusia yang sayang untuk menghapus SMS kiriman dari someone special. Tapi tidak berlaku untuk jenis manusia yang suka menulis ulang isi SMS ke dalam MS-Word (aku pernah menemukan manusia jenis ini)., sehingga Inboxnya tidak pernah penuh.

Jika anda ingin mengandalkan PC untuk menyimpan isi inbox, anda dapat menggunakan banyak aplikasi siap pakai yang dapat digunakan untuk menyimpan atau mentransfer SMS. Saya sering menggunakan aplikasi bawaan dari vendor HP (PC Suite untuk Nokia, Data Suite untuk Siemens, ada juga untuk SonyEricsson), juga ada Logo Manager buatan pihak ketiga.

Selain menggunakan aplikasi siap pakai tersebut, kali ini saya membahas bagaimana cara berkomunikasi langsung dengan HP, menggunakan AT-Command, lewat port serial.

Format PDU

Hal pertama yang saya bahas adalah, bahwa setiap pengiriman SMS, baik dari HP menuju operator, atau sebaliknya, selalu menggunakan format PDU (Protocol Data Unit), yaitu paket data dimana pesan SMS dikemas, bersama informasi tanggal, nomor tujuan, nomor pengirim, nomor operator, jenis skema SMS, masa valid SMS, dan beberapa hal lain (tergantung jenis paketnya).

Berikut ini adalah contoh PDU yang diterima oleh HP (New SMS atau Inbox):

07 91 2658050000F0 04 0C 91 265836164900 00 00 506020 31133180 04 C830FB0D

Dengan keterangan sebagai berikut:

Oktet / Digit HexaKeterangan
07Panjang atau jumlah pasangan digit dari nomor SMSC (service number) yang digunakan, dalam hal ini adalah 7 pasangan (14 digit berikutnya)
91Jenis nomor SMSC. Angka 91 menandakan format nomor internasional (misal +6281xxx). Untuk 081xxx menggunakan angka 81.
2658050000F0 Nomor SMSC yang digunakan. Karena jumlah digit nomor SMS adalah ganjil, maka digit paling belakang dipasangkan dengan huruf F. Kalau diterjemahkan, nomor SMSC yang digunakan adalah +62855000000 (IM3)
04Oktet pertama untuk pesan SMS yang diterima
0BPanjang digit dari nomor pengirim (0C hex = 12 desimal)
91Jenis nomor pengirim (sama dengan jenis nomor SMSC)
265836164900Nomor pengirim SMS, yang jika diterjemahkan adalah +628563619400
00Pengenal protokol, dalam hal ini adalah 0
00Skema pengkodean SMS, juga bernilai 0
506020 311331 80Waktu pengiriman, yang berarti 05-06-02 (2 Juni 2005), dan jam 13:31:13. Sedangkan 80 adalah Timezone yang digunakan.
04Panjang dari pesan SMS, dalam hal ini adalah 4 huruf (dalam mode 7 bit).
C830FB0DPesan SMS dalam mode 7 bit. Jika diterjemahkan kedalam 8 bit, lalu dirubah ke ASCII, maka didapat pesan 'Halo'

Yah, itu adalah sekilas tentang PDU, yang sering dihadapi untuk berurusan dengan SMS. Kecuali jika HP yang anda gunakan mendukung AT+CMGF=1, yang berarti kita dapat berkomunikasi dengan HP dalam Mode Teks! seperti HP saya, SE T610 :-)
Kalau menggunakan mode teks, anda tidak berurusan dengan PDU, meski antara HP dengan operator masih menggunakan PDU.

Secara online, anda dapat menerjemahkan PDU kedalam mode teks, dengan menggunakan link ini: http://home.student.utwente.nl/

Koneksi ke PC

Selanjutnya, adalah menghubungkan HP anda dengan PC. Banyak alternatif untuk itu, diantaranya:

  • Menggunakan kabel data. Biasanya spesifik untuk setiap merk HP. Nokia punya sendiri, siemens juga punya, semoga anda juga punya :-)
    Kabel ini akan menancap di port COM, atau ada juga yang di USB port.
  • Menggunakan IrDA (Infrared). Nantinya akan tercipta sebuah port COM virtual.
  • Menggunakan Bluetooth, juga menciptakan port COM bayangan.

Yang sangat perlu diperhatikan, jika anda menggunakan kabel data sebagai alat koneksi, silakan lakukan di Windows 98, karena Direct Port Programming di Windows XP/2000 sangat rumit, dan tidak menjamin kebenarannya :-)

Anda boleh menggunakan HP jenis apapun, yang penting punya kabel datanya, dan musti support AT-Command.
Dulu saya sempat debat sama temen saya, tentang apakah semua HP support AT-Command. Sampai saat ini saya masih percaya kalau ada HP yang tidak support AT-Command.

HP yang saya gunakan adalah Siemens C35i, dengan kabel data serial hasil pinjaman :-)

Setelah punya HP dan kabelnya, silakan pasang ditempat yang seharusnya, dan pastikan HP dalam keadaan nyala.

Jika anda menggunakan IrDA atau Bluetooth, pastikan bahwa sudah tercipta port COM (biasanya dengan nomor tertinggi, misal COM4 atau COM5).

Programming

Silakan buka Borland Delphi. Saya sarankan untuk memakai Delphi versi 6 ke atas, karena ada fungsi SecondsBetween yang saya sukai :-)

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
  • Akan muncul beberapa dialog berikutnya, pilih saja yes atau ok :-)

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.

Komunikasi

Buat sebuah tombol (Command Button) pada Form, beri caption 'Konek'. Lalu pada event On-Click tombol tersebut, ketik program berikut ini:

procedure TForm1.Button1Click(Sender: TObject);
var     waktu: tDateTime;
	buffer: string;
	konek: boolean;
begin
  if MSComm1.PortOpen then 
      MSComm1.PortOpen := false;
  MSComm1.CommPort := 1;  
        // isi dengan nomor COM 
	//  yang terhubung ke HP,
	//  misal COM1, isi dengan 1
  MSComm1.Settings := '19200,N,8,1'; 
	// sesuaikan baudrate
	// dengan HP anda.
	// kebanyakan support 19200
  MSComm1.InputLen := 0;
  MSComm1.PortOpen := true;

  Sleep(800);
  waktu := now;
  repeat
    MSComm1.Output := 'ATE1'#13;
    buffer := '';
    repeat
	buffer := buffer + MSComm1.Input;
    until (Pos('OK', buffer) > 0) or 
                  (Pos('ERROR', buffer) > 0)
	or (secondsbetween(waktu, now) > 10);
  until (Pos('OK', buffer) > 0) or 
           (secondsbetween(waktu, now) > 10);
  Konek := (Pos('OK', buffer) > 0);
  If Konek Then
	MessageDlg('Sukses konek ke HP', 
		mtInformation, [mbOk], 0)
  else
	MessageDlg('Tidak dapat konek ke HP',
		mtError, [mbOk], 0);
end;

Jalankan program, semoga tidak error. Lalu tekan tombol Button1. Jika koneksi sukses, yaitu jika HP merespon perintah 'ATE1' dengan ucapan 'OK', berarti koneksi dengan HP telah berhasil. Jika tidak, mungkin terjadi kekeliruan pada kabel, nomor Port atau setting BaudRate. Silakan dicek.

Membaca SMS

Berikutnya adalah membaca SMS.

Silakan tambahkan obyek Memo pada form, dan tambahkan tombol Button2, kemudian tuliskan kode ini pada event OnClick Button2:

procedure TForm1.Button2Click(Sender: TObject);
var     waktu: tDateTime;
	buffer: string;
begin
  MSComm1.Output := 'AT+CMGL=1' + #13;
  Sleep(500);
  waktu := now;
  repeat
    buffer := MSComm1.Input;
    Memo1.Text := Memo1.Text + buffer;
  until (pos(sOK, s) > 0) or (pos(sERROR, s) > 0) or
    (SecondsBetween(waktu,now) > 180);
end;

Jika program dijalankan, lalu ditekan tombol Button2, maka program akan mengirim perintah AT+CMGL=1 ke HP, yang berarti, 'berikan aku daftar SMS yang ada di Inbox'. Sehingga nantinya semua isi Inbox akan dikirimkan ke program, tetapi masih dalam format PDU.

Untuk menterjemahkan dari PDU menjadi teks, diperlukan rutin lagi. Silakan download source baca SMS, yang merupakan unit untuk membaca SMS

Silakan gunakan unit tersebut pada aplikasi anda ini, lalu buat tombol Button3. Pada event OnClick Button3, tulis program singkat ini:

procedure TForm1.Button3Click(Sender: TObject);
begin
	CekSMS(Memo1);
end;

Ketika tombol Button3 ditekan, maka SMS dalam Inbox dan SMS baru, akan dimasukkan kedalam Memo1.

Berikut ini ketentuan AT+CMGL,

  • AT+CMGL=0 : SMS baru
  • AT+CMGL=1 : SMS dalam Inbox (yang sudah terbaca)
  • AT+CMGL=2 : SMS Draft (belum terkirim)
  • AT+CMGL=3 : SMS Outbox (terkirim)
  • AT+CMGL=4 : Seluruh SMS (semua yang ada di Inbox, Outbox, Draft)

Daftar lengkap perintah AT-Command dapat diperoleh disini: namun kadang ada HP yang tidak support AT-Command tertentu.

Penutup

Artikel cara pengiriman SMS dapat dilihat di Mengirim SMS dari PC.

Silakan kirim kritikan, saran atau pertanyaan ke aryo.sanjaya@gmail.com, terima kasih.

(Aryo Sanjaya)

Komentar

Halaman Komentar:   < 1 2 3 4 5 6 ... 17 >

Aryo Sanjaya

Kamis Pon, 26 Januari 2006

Halo Jay, Itu bukan masalah di Delphi, karena component itu tidak ikut dalam paketnya Borland. Komponen MSCOMM32.OCX adalah bawaan Runtimenya Visual Studio, dan mungkin saja bawaan aplikasi yang pernah kamu install. Kalo misalnya di komputer kamu tidak ada komponen itu, kamu bisa nyari di komputer teman atau tetangga :) Kopikan file MSCOMM32.* ke direktori WindowsSystem32, dan lakukan registrasi. Cara resgistrasi dan kemungkinan error sudah dibahas di atas, di bagian tanya jawab ini. Semoga sukses ;)

tie

Senin Pahing, 30 Januari 2006

saya sekarang sedang mengerjakan proyek akhir tentang aplikasi gateway yang judulnya intinya tentang pengaksesan kamus via sms,menggunakan hp siemens c35,database MySQL,bahasa pemrograman delphi.sebelum pencarian data pada database terlebih dahulu dilakukan pencarian pada file index dengan menggunakan metode binary search hal ini dilakukan untuk mempercepat proses pencarian data.yang ingin saya tanyakan adalah tolong sebutin urutan cara kerja dari sms gateway tersebut mulai dari user mengirimkan sms ke perangkat sms gateway,untuk pengiriman sms balasan ke user apakah langsung dari pc ke hp user atau dari hp server ke hp server dahulu baru kemudian melalui hp server dikirimkan sms balasan ke hp user.trimakasih atas jawabannya..........

jay

Senin Pahing, 30 Januari 2006

makasih atas balesannya kemarin, sy udh ambil mscomm dari internet, skrg udh bisa, tp pas di run tnyt sperti kasus mas sandy tidak dapat konek ke hp, padahal kalo aku coba pake hyper terminal di windows dia mau respondgn baik, kok di program ga mau ya dengan settingan yang sama 19200,8,n,1! sy coba pake sl 45, c65 dan a55 sama, eror: ga mau konek ke hp! mohon bantuannya ya mas aryo

sandy

Senin Pahing, 30 Januari 2006

Wah, mas aryo, aku kok belum bisa ya. Aku pke nokia 3550. programnya udah sama kyk punya mas aryo. Tapi kok munculnya tidak dapat konen ke HP. Trus aku pake PC-Suitenya nokia jg gitu tidak mau koneksi. Kenapa ya? mohon bantuannya. Makasih yaa

Aryo Sanjaya

Selasa Pon, 31 Januari 2006

Halo tie, Mengenai sistem pencarian data di database dan di file index, saya rasa itu di luar pembahasan (agar fokus), tapi gpp, itu dapat dibahas lain kali :) Sedangkan mengenai urutan, tiap programmer dapat memiliki cara yang berbeda. Untuk kasus tie yang menggunakan HP, maka urutan yang dapat saya sebutkan adalah: 1. user mengirim SMS 2. HP diterima oleh operator (sesuai kartu yang digunakan oleh user tersebut, sampe di sini SMS tersebut di luar kendali kita). 3. SMS diterima oleh HP Siemens c35 4. Aplikasi melakukan pengecekan SMS (periodik), membaca SMS di HP. 5. SMS yang masuk diterima (dibaca). 6. SMS diparsing, untuk mengetahui kata apa yang dimasukkan, dan apa yang diinginkan (English -> Indonesia atau sebaliknya) 7. Aplikasi melakukan search kata di file index/database (saya rasa tie udah tau ini). 8. Kata ditemukan/tidak ditemukan, aplikasi membuat SMS respon. 9. Aplikasi mengirim SMS melalui HP. 10. SMS diterima oleh operator yang bersangkutan (sesuai kartu SIM pada HP tersebut). 11. SMS jawaban diterima oleh user. Dari penjelasan urutan di atas, mungkin tie sudah bisa menebak, bahwa pengiriman balasan ke user adalah dari PC menuju ke HP, lalu ke operator dan akhirnya nyampe ke user. Yang perlu diingat, bahwa pengiriman SMS lewat PC di sini hanyalah sebagai otomatisasi pengiriman SMS melalui HP, sedangkan proses setelah itu (setelah terkirim), akan tetap sama seperti kita ngirim langsung secara manual lewat HP. Semoga ga tambah bingung :)

Aryo Sanjaya

Selasa Pon, 31 Januari 2006

Halo Sandy dan Jay, Wah, masalahnya masih general neh, karena penyebabnya masih banyak kemungkinan. Untuk Sandy (mas/mbak?), coba pastikan koneksi HP dan PC sudah ok. Oh ya, koneksi kamu pake apa? Saya belum pernah tau Nokia 3550 :) apakah pake IrDA, kabel DKU/CA? Kalo sampe PC Suite sendiri ga bisa konek, berarti kesalahan ada pada driver. Atau salah versi PC Suite? Setelah driver untuk koneksi sudah terinstall dengan baik, mestinya akan muncul satu modem di Control Panel -> Phone and Modem Options, coba kamu lihat. Kalo belum terdaftar di situ, cek lagi koneksi fisiknya. Kalo sudah muncul, test modem dengan aplikasi Hyper Terminal. Meski ga menjamin bahwa kalo di sini bisa berarti sukses, tapi minimal buat ngetes. Oh ya, kalo akan mengakses langsung modem pada HP, maka koneksi PC Suite mesti dinon-aktifkan. Pada Connection Manager PC Suite, buang semua cawang, yang artinya PC Suite tidak berwenang lagi pada HP. Kalo tidak, biasanya port modem tidak mau diopen. Kalo semua checklist di atas sudah bisa, baru melanjutkan ke program Delphi :) Untuk Jay, pastikan kalo kamu telah memilih nomor Port yang benar, aku sering nemukan kasus, dia ga sadar kalo nomor portnya udah ganti. Biasanya kalo perintah konek (Open) mengalami kegagalan, akan ditampilkan pesan errornya. Nah, punya kamu menampilkan error gimana? Kalo errornya ada pada bagian koneksi, coba kamu paste di sini kodenya, semoga bisa kita lihat sama-sama :D Setauku HP-HP yang kamu sebutkan itu, semua sudah mendukung baudrate 57600 ke atas, sudah dicoba? Ok, tetap semangat :)

tie

Rabu Wage, 1 Februari 2006

makasih atas jawabannya mas aryo, menurut mas aryo perlu ga sih pencarian kata di file index terlebih dahulu kemudian baru diquery di database.kan perasaan bukannya akan lebih mudah dan cepat jika langsung diquery aja langsung ke databasenya.mohon pendapatnya.makasih.....

astrid

Rabu Wage, 1 Februari 2006

maaf..saya baru pertama kali mengunjungi website ini,kebetulan saya sedang mengerjakan tugas akhir tentang WAP.apakah Anda dapat membantu saya mengenai contoh2 pemrograman dengan WML dan PHP? trima kasih

Aryo Sanjaya

Jum'at Legi, 3 Februari 2006

tie: Mungkin di sini kurang jelas mengenai file index kamu itu. Bisa jadi struktur database kamus punya kamu itu gak sesuai dengan bayanganku :) Setauku, database sendiri itu sudah menggunakan index. MySQL kan pake ISAM. Kenapa harus dilakukan pencarian dulu di index? apa maksudnya adalah cache? Kalo maksudmu file index ini adalah sebuah cache, bisa jadi proses pencarian akan menjadi lebih cepat, dibanding jika langsung ke database. Tapi jika jumlah cache sudah semakin banyak, maka akan tergantung pada OS. Setauku kalo di FreeBSD proses file lebih cepat ketimbang di database. Ga tau kebenarannya sih. Tapi jika file index yang kamu maksud adalah index betulan, ya ga tau, karena masih belum paham dengan proses index ini. Coba kamu jelaskan tentang index ini dulu :)

Aryo Sanjaya

Jum'at Legi, 3 Februari 2006

Halo Astrid: Kalo mau lihat beberapa contoh PHP + WML yang lumayan bagus, silakan masuk ke sini: http://www.zend.com/zend/tut/wap.php Pake Inggris sih, tapi simple dan mendasar. Ok, semoga sukses.


Halaman Komentar:   < 1 2 3 4 5 6 ... 17 >

Mengisi Komentar





untuk kode program, apit dengan tanda [code][/code].
contoh:

[code]
(kode program)
[/code]



Daftar Artikel Delphi

» Aplikasi Handphone (250)
Senin Pon, 20 Februari 2006

Kompilasi beberapa unit yang digunakan untuk mengirim dan membaca SMS, dan menampilkan informasi handphone

» Mengirim SMS dari PC (208)
Senin Wage, 28 November 2005

Jika sebelumnya sudah dibahas cara membaca SMS lewat PC, belum lengkap rasanya kalau tidak dibahas tentang proses pengiriman SMS lewat PC.



Halaman:    1  

Artikel Rame
Aplikasi Handphone (250)
Senin Pon, 20 Februari 2006

Mengirim SMS dari PC (208)
Senin Wage, 28 November 2005

Membaca SMS dari PC (162)
Selasa Pahing, 14 Juni 2005

Source SMS Autorespond (66)
Senin Legi, 24 April 2006

Penyembunyian Password di Database (36)
Kamis Kliwon, 2 Juni 2005

Bukutamu
» Imam Izzatir Rizzan
Jum'at Kliwon
7 Juli 2006

» adindri
Selasa Pahing
4 Juli 2006

» Je Malakian
Selasa Pahing
4 Juli 2006

» A.Azis
Jum'at Pon
30 Juni 2006

» zorro
Kamis Pahing
29 Juni 2006


Halaman Bukutamu
Lain-lain
User online: 17
User login: 0

user/passwd: bpuser

Status Y!M
Saya sedang Offline. Silakan gunakan menu Kontak atau tinggalkan pesan di Yahoo! Messenger pada Id: aryo_sanjaya
© 2005-2024 BengkelProgram.com