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 :)
Alo Susiadi, Banyak sih software jadi, baik yang untuk mengirim SMS lewat internet atau langsung lewat HP. Seperti ini: Connection Software, miliknya www.csoft.co.uk, untuk mengirim SMS via internet. Kalo yang langsung lewat HP, lebih banyak lagi, misalnya Nokia PC Suite, Oxygen Phone Manager, Logo Manager, dll... Yang dibahas di sini adalah teknik pengiriman, dari sudut pandang programmer, sehingga nantinya bisa bikin software dengan kemampuan untuk membaca dan mengirim SMS.
Kalau yang sudah jadi saja apa gak ada ya? Jadi kita tinggal install dan kirim lewat internet misalnya?
lha kan udah ada di tutorialnya mas aryo. Kalo menurut saya sih yang jelas : 1. Komputer 2. Kabel data 3. HP 4. Software delphi 6 ke atas 5. Makanan ringan & soft drink 6. Kursi Yang empuk mentul-mentul Biar gak sakit pinggang he he he Nb. Tidak semua HP support AT Command Yang setau saya : 1. Siemens C35i 2. Siemens S35 3. Siemens ME45 4. Siemens M55 Kalo tulisan diatas ada yang salah tolong saya diberitau ya....
Jadi sebelum saya menulis program sms ke dalam komputer Hardware dan sofware apa yang mesti saya sediakan? Maaf saya tidak mengikuti dari awal, mohon penjelasan lebih rinci. Sofware Delphi yang saudara ceritakan saya juga belum mengenal??
Buat C-nyo: nambah 1 lagi: 7. MP3 KORN, biar bisa lebih konsen Memang tidak semua HP support AT Command, tapi justru saat ini lebih sulit untuk mencari HP yang tidak support itu, karena rata-rata saat ini sudah support semua. Asal bukan HP ekstrim lama. Buat Susiadi: Setauku Siemens lah pelopor HP dengan modem built-in. HP dia yang lawas banget, semacam c35i saja sudah dibekali AT Command. Tapi itu bukan masalah, karena HP dari vendor lain (Nokia, SE) sudah memperhatikan hal ini. Seperti yang saya katakan di atas, rata-rata sudah support AT Command. Mengenai Internet, tentu saja tidak ada hubungan sama sekali, karena yang dibahas adalah cara komunikasi antara PC dengan HP. Jadi kirim-kiriman SMS dalam hal ini, prinsipnya sama persis dengan SMS-an lewat HP, cuma dikontrol lewat PC. Tetep bayar sebagaimana biasanya. Infrared atau Bluetooth hanya berupa media, sebagaimana kabel data, yang gunanya untuk menghubungkan HP dengan PC. Dari sisi program, tidak ada bedanya koneksi yang digunakan apakah kabel, Bluetooth atau Infrared. Itu sudah diatur oleh sistem operasi. Yang dibutuhkan program hanyalah port yang terhubung ke HP. Kalo mengenai jangkauan, Infrared hanya berkisar 50cm, sudut kemiringan sekitar 40 derajat. Tapi itu kembali pada IRDA yang digunakan kok. Sedangkan Bluetooth, tergantung pada class-nya. Ada yang sanggup radius 10m, ada pula yang 100m. Susiadi menggunakan merk HP dan koneksi apa?
Kok siemen semua? Apa lagi iklan Siemen ya? Bagaina kalau Son Eric J200i. Terus itu perlu internet gak? Soalnya ada yang pakai infrared atau Bluetut, jadi wireless tapi apa jangkauanya jauh apa gak aku gak tahu... Thanks.
Saya pakai Sony ericsson j200i, Bagaimana kalau telpon saya pakai telpon rumah? Sekarang kan bisa sms pakai telpon rumah.
saya udah coba untuk kirim SMS tapi tidak berhasil, setelah saya periksa ternyata yang bermasalah panjang pdu yang harus dikirim pertama kali. Pada procedure convertText, pada bag
p := length(tmp);
tmp tidak termasuk '07' (jml pasangan SMSC) shg berpengaruh pada lkirim.
kmd saya ubah menjadi
lkirim := (length(PDU) - (p+2)) div 2;
Saya coba lagi berhasil!
Halo Susiadi:
Aku belum pernah pake SE j200i, tapi untuk HP sekelas itu, saya rasa sudah mendukung. Itu kayaknya pake Bluetooth ya?
Kalo pake telpon rumah, tentu pake teknik lain. Hal itu karena yang kita gunakan di sini adalah pengiriman dalam jaringan GSM. Untuk telpon rumah, saya kurang paham strukturnya.
Buat Sri:
Wah, terima kasih udah nemukan 'bug' pada source saya.
Sekarang sudah saya revisi, tapi belum saya test.
Anda mau ngeteskan buat saya?
tutornya bagus. Ada tuntunan coding nya lagi. Tapi setelah saya coba, koq byk error message dimana2 ya? disengaja gitu
» 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 :-)