Menyambung artikel Membaca SMS dari PC, kali ini dibahas cara mengirim SMS melalui PC.
Masih tetap menggunakan Borland Delphi, kita memulai pembahasan dengan bagaimana cara membentuk PDU untuk dikirim.
PDU yang diterima dari HP berbeda dengan PDU yang untuk dikirim, namun tetap menggunakan aturan yang sama. Perbedaannya terutama pada field yang dikandung, baik nilai maupun fungsinya. Untuk lebih detail mengenai PDU yang diterima, silakan membaca artikel sebelumnya.
Berikut ini struktur PDU untuk dikirim:
07 91 2658050000F0 11 00 0C 91 265836164900 00 00 FF 04 C830FB0D
Keterangan:
Oktet / Digit Hexa | Keterangan |
---|---|
07 | Panjang atau jumlah pasangan digit dari nomor SMSC (service number) yang digunakan, dalam hal ini adalah 7 pasangan (14 digit berikutnya) |
91 | Jenis 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) |
11 | Oktet pertama untuk PDU SMS untuk dikirim (SMS SUBMIT). Untuk penjelasannya, silakan lihat artikel ini. |
00 | TP-Message-Reference. Diisi "00" agar diisi otomatis oleh handphone. |
0C | Panjang digit dari nomor penerima (0C hex = 12 desimal) |
91 | Jenis nomor penerima (sama dengan jenis nomor SMSC) |
265836164900 | Nomor penerima SMS, yang jika diterjemahkan adalah +628563619400 |
00 | Pengenal protokol, dalam hal ini adalah 0. Silakan baca keterangan di sini. |
00 | Skema pengkodean SMS, juga bernilai 0. |
FF | Validitas waktu. FF berarti maksimum. Silakan baca keterangan di sini. |
04 | Panjang dari pesan SMS, dalam hal ini adalah 4 huruf (dalam mode 7 bit). |
C830FB0D | Pesan SMS dalam mode 7 bit. Jika diterjemahkan kedalam 8 bit, lalu dirubah ke ASCII, maka didapat pesan 'Halo' |
Untuk handphone tertentu, kita dapat menghilangkan pemberian nomor SMSC pada PDU, untuk kemudian akan diisi oleh handphone sesuai dengan kartu yang sedang digunakan. Tapi untuk lebih amannya, kita sebutkan nomor SMSC yang digunakan.
Ketika PDU SMS selesai dibentuk, maka langkah selanjutnya adalah melakukan pengiriman PDU tersebut melalui port serial yang digunakan. Perintah yang pertama kali digunakan adalah AT+CMGS, dengan aturan sebagai berikut:
AT+CMGS=<jumlah oktet PDU>
<jumlah oktet PDU> diisi dengan jumlah pasangan dalam PDU yang terbentuk, dengan dikurangi SMSC. Dengan kata lain, kita menghitung jumlah oktet mulai dari kode SMS SUBMIT (11). Untuk contoh di atas, berarti jumlah digit dalam PDU adalah 36, yang berarti terdiri dari 18 oktet. Sehingga perintah yang digunakan adalah:
AT+CMGS=18
Setelah itu, tunggu respon dari handphone. Kalau gagal, dengan berbagai
alasan, maka yang dikembalikan adalah ERROR.
Sedangkan jika perintah tersebut diijinkan, maka yang dikembalikan adalah
karakter '>' (lebih besar).
Jika perintah tersebut sukses, selanjutnya adalah menuliskan semua PDU
tersebut ke handphone, dan diakhiri dengan penulisan karakter ASCII 26 (CTRL+Z).
Jika sukses, maka yang dikembalikan adalah OK. SMS terkirim, semoga.
Dari semua penjelasan di atas, diharapkan dapat dipahami langkah-langkah pengiriman SMS melalui PC. Untuk lebih jelasnya, silakan download source-code dalam program Delphi. Unit ini dapat digabungkan dengan unit untuk membaca SMS pada artikel sebelumnya.
Yang perlu diperhatikan adalah tentang pengaturan koneksinya. Karena masing-masing proses (kirim dan terima) membutuhkan koneksi ke handphone, maka harus diatur agar tidak terjadi proses terima dan kirim secara bersamaan.
Sekian pembahasan mengenai SMS. Jika ada pertanyaan atau kritik dan masukan, silakan kirim ke aryo.sanjaya@gmail.com.
Happy coding :)
Halo Mr Lamsidjan,
Sayang sekali aplikasi ini belum mendukung teknologi CDMA, jadi belum bisa menggunakan perangkat Quasar CDMA.
Jika ingin menggunakan modem saja, anda bisa mencoba GSM Modem.
Atau untuk beberapa tipe HP, misalnya Sony Ericsson K750i, dia selalu mengisi battre selama terhubung ke PC, jadi tidak perlu kuatir tentang battrey-nya.
Selamat mencoba
mas aryo, kenapa program aplikasi handphone begitu dibuka diberi pesan error TXComm not found. padahal MSComm32.ocx nya sudah diinstall?
Halo Andri,
Untuk source yang terbaru, MSComm32 sudah tidak digunakan lagi.
Error TXComm not found, karena komponen TXComm belum kamu install.
- Download ini dulu:
http://www.bengkelprogram.com/download-ouxcom.zip
- Extract di suatu directory, misalnya C:ouxcom
- Buka Delphi
- Open file .dpk dari c:ouxcom
- Tekan install
- Masuk menu Tools > Environment Options > Library
- Tambahkan direktori c:ouxcom pada daftar Library Path
- Library sudah terinstall
Selamat mencoba.
mas aryo..
saya mencoba program ini :
procedure TForm1.Button3Click(Sender: TObject);
begin
CekSMS(Memo1);
end;
program konek dan membaca smsnya sih sudah bisa tapi ceknya masih ada error seperti ini :
[Error] Unit1.pas(88): Undeclared identifier: 'CekSMS'
[Fatal Error] Project1.dpr(5): Could not compile used unit 'Unit1.pas'
kenapa ya?..
maaf mas nanya2 trus soale saya buta sekali tentang delphi..
pak, klo nyari standar IEEE tu tentang istilah2 handphone yang saya tanyain wkt tu gmn ya pak?? soalnya saya disuruh dosen pembimbing saya tuk cari berdasarkan standar IEEE bukan dari sembarangan situs, harus bener2 akurat dan bisa dipertanggungjawabkan.dia ngasih situs IEEE.org tapi begitu saya buka sama saja seperti serching di google.give me a solution ya pak............
Halo miing,
Kalo udah sampe bisa cek sinyal dan IMEI, mestinya sih bisa. Idealnya sih gitu
Kalo boleh tau, perintah untuk cek SMS seperti apa mas?
Perlu diperhatikan mengenai mode SMS, apakah mode PDU atau mode teks.
Karena cara cek SMS untuk kedua mode tersebut beda.
Untuk cek dengan mode PDU, rubah dulu modenya ke PDU:
AT CMGF=0
lalu cek SMS:
AT CMGL=1
Sedangkan mode teks:
AT CMGF=1
cek SMS:
AT CMGL="REC READ"
Mungkin errornya karena itu. Silakan dicoba ya.
Oh ya, makasih saran mengenai urutan messagenya. Dipertimbangkan
pak,saya mo tanya soal source code buat koneksi infrared ma bluetooth ke PC pake delphi.oya pak download yang bapak kasi tu pake infrared or bluetooth???trus tu udah da program koneksi pake infrared or bluetoothnya pa belum???klo udh source codenya yang mana pak???thanks ya pak
Halo tie lagi
Error itu karena fungsi/procedure CekSMS tidak dikenali.
Penyebabnya kemungkinan unit uTerimaSMS.pas belum kamu ikutkan dalam daftar Uses pada unit1.
Periksa lagi daftar Uses kamu.
Tapi procedure CekSMS(Memo1) itu untuk unit uTerimaSMS.pas yang lama, karena untuk uTerimaSMS.pas yang ikut dalam source HPApp itu sudah berubah.
Unit yang lama masih ada di daftar download.
Gpp nanya terus, karena itulah situs ini ada
sebelumnya saya ucapkan banyak terima kasih atas pemberitahuannya dan saya akan mencoba tutorial yang
pak aryo sanjaya berikan sekali lagi saya ucapkan banyak-banyak terima kasih
tuk KOenam looping pake timer.interval:=1000;
tinggal set pada properties pada interval diisi n pada skripna dipanggil aja
» Membaca SMS dari PC (162)Kompilasi beberapa unit yang digunakan untuk mengirim dan membaca SMS, dan menampilkan informasi handphone
Kirim-kiriman SMS memang asyik, apalagi kalo menggunakan PC, meski tetep aja bayar :-)