Jumat, 14 November 2008

OKE GAK SICH PUNYA SMS SERVER (5)

Pada pokok bahasan kali ini aku mau tulis tentang program VB buat bantu kamu komunikasi dengan device kamu (HP/modem GSM). Ini hanya Hyperterminal kecil buat debugging program kamu. Di dalamnya gak ada tuh library kirim sms gimana atau baca sms. Tools ini sifatnya umum dan terbuka. So, kamu bisa ketik AT Command sesuka kamu dan kamu bisa lihat langsung respons dari device di layar. yach... mirip2 hyperterminal deh.

Komponen yang aku pergunakan masih sama dengan penjelasan artikel aku sebelumnya. Aku masih pake MsComm kok! Aku masih suka memanfaatkan event MsComm_onComm untuk memunculkan respons dari device. Kali ini respons tersebut aku tempatkan di Textbox dan aku tampilkan apa adanya tanpa di olah terlebih dahulu. Aku tidak melakukan pengolahan regex atau concatenation... ciee... bule banget sich istilahnya... so, untuk pengolahan lebih lanjut sebaiknya kamu bikin program kamu sendiri yach..

Cara Pake Programnya,
1. klik menu "CommPort", udah itu klik "properties". Jendela baru yg muncul adalah Properties untuk device kamu. Kamu tentukan deh device kamu itu nempel di Com brapa, Trus Speednya, databit, parity, dan stopbit. Kalo dah kelar klik "OK".
2. Nah, di bagian ini kamu tinggal pake Hyperterminal kecil ini. Tapi sebelumnya koneksinya di sambung dulu. Caranya klik "CommPort" trus lanjutin klik "Port Open". Maka nyambung atau tidaknya ketauan dari status di bawah atau image bulat di sudut kanan atas. Kalo nyambung warnanya Hijau tapi kalau putus warnanya merah. Cara lain untuk konek dan putus yaitu langsung klik image bulatnya. Gitu deh... Inget yach konek gaknya ditentukan properties yang kamu masukin sebelumnya.
3. Kalo dah konek, kamu tinggal ketik AT commandnya seperti di hyperterminal. Dari sini cara kerjanya sama dengan hyperterminal.

Kamu coba-coba deh. Dari sini smoga ada gambaran gimana caranya bikin sendiri program SMS Server kamu. Smoga berhasil yach... Insya Allah aku akan tulis lagi untuk pembahasan lanjut. Tapi aku blom tahu dan blom mood sampe sekarang nih. hehehe...

Download File :

>>Download Hyperterminal Aku di sini nih
>>Password : sholat

Wass.

Arnie

16 komentar:

Anonim mengatakan...

Hmm... kaya na da pernah lihat deh Source Code na??? cuma lupa dimana yach??? :D

btw sip dech Artikel na nich.. ARNIE ALI

Arnie mengatakan...

kalo kamu pernah cari2 di www.planetsourcecode.com mungkin kamu pernah dapet yg setipe ini. Tapi sayangnya belakangan contoh hyperterminal vb oleh yg empunya dah diturunkan tidak ditayangkan lagi... Makanya aku kasih nih biar pada gak nyari lagi deh... gak sehebat yg di situs sana sich... tapi insya Allah ngebantu banyak kamu untuk bikin sms server..

Hermawan Eriadi mengatakan...

Makasi tulisan & source-code nya. Saya mau buat SMS-Server pake' CDMA. Karena AT-Command nya beda2 tergantung merk, jadi saya perlu modifikasi sendiri. Untung ada Arnie yg mau membagi ilmunya. Terima kasih ya..
Semoga barokah. *Hermawan http://akses-research.com

Arnie mengatakan...

Iya, lebih aman kamu pake PDU. soalnya support untuk semua jenis HP/Modem. Nah, AT Command yang support juga untuk CDMA itu adalah AT Command Standard. Bukan yg Extended. Karena yg Extended itu tergantung jenis HP/Modem. So, kalo cuma baca sms, hapus, atau kirim sms masih sama... Tapi kalo dah akses keypad, baterai, sinyal, dll akan berbeda sintaks.

Ini AT Command CDMA wireless Modem dari MultiTech System... Pelajari aja deh... Kali aja ada gambaran buat kamu...

File :
http://www.4shared.com/file/82049801/e41c008d/CDMA_AT_Commands.html

Smoga Membantu.

Anonim mengatakan...

dear mbak arnie,
assalamualaikum wbb.

saya buka blog mbak, dan saya ikuti pembahasan tentang SMS GATEWAY.
saya udah lakukan percobaan VB (MsComm) dengan HP HiTech H38 (pake USB port).
hasilnya :
pengiriman SMS tidak stabil, kadang2 terkirim, kadang2 HP ga ada respon,
padahal MsComm.Input nya OK...gimana tuh mbak, ada saran ??
saya udah coba pake timer dg interval 1000, 1200,1500 gejalanya sama.
saya sampe pusing.

oya, yang sms beberapa hari yg lalu itu saya..dan begitu echo-nya di centang, tulisan
di HyperTerminal udah mau muncul.

beberapa bulan yang lalu, saya mencoba membuat smsgateway dengan MFBUS1.5
dan berhasil..tapi kali ini saya mau mencoba menggunakan MSCOMM+AT COMMAND.
target saya program yang saya buat bisa konek ke beberapa HP sekaligus (GSM+CDMA) dan berbagai merk.

sekalian tanya :
1. untuk MFBUS1.5 kan ada event mfbus_IncomingCall(ByVal sIncomingNumber As String), event ini apa kegunaannya sama dengan event OnComm di MsCOmm ??
2. pada event OnComm bisa tau ada SMS masuk. cara ini didapat dari respon AT+CMNI atau dengan cara membaca simcard ? soalnya kalo didapat dari AT+CMNI maka tidak
semua merk HP support AT+CMNI, dan jika dengan cara membaca simcard bisa-bisa simcardnya jebol karena terlalu sering dibaca (itu kata referensi di suatu forum).

mohon pencerahannya...

ok gitu dulu
trim atas kesediaannya berbagi, semoga menjadi amal dan dapat balasan setimpal.
wassalam

Arnie mengatakan...

wa'alaikum salam wr. wb.

Oh, gitu yach? Saran aku, kamu harus tentukan dulu penggunaan memory untk perintah At nya... Misalnya kamu pake memori HP atau pake memori Kartu. Soalnya penggunaan memori juga mempengaruhi stabilitas read dan write sms. Perintahnya pake AT+CPMS="SM", atau AT+CPMS="ME", atau AT+CPMS="MT". insya Allah ini akan membantu masalah kamu mengenai stabilitas.
Atau kamu juga bisa menggantikan perintah AT+CMGS dengan AT+CMGW (ketik sms di memori) trus kirim pake AT+CMSS. Nah kalo pake perintah ini gak stabil juga, artinya kalo kamu ketik langsung di keypad HP maka hasilnya akan sama.. hihihi.. (soalnya perintah yg terakhir ini adalah cara kerja kalo kita ketik sms di keypad HP).

oh, itu kamu yach yg kirim sms... bikin kaget aja...

Iya, betul sekali. Kamu harus pake AT Command standard agar bisa komunikasi dengan berbagai macam merek HP/modem. Kalo pake FBUS gratisan dia cuma support FBUS aja.. dan lagian... Unjuk kerja komponen tersebut lumayan memberatkan Komputer kita.

Untuk respons CNMI memang betul tergantung dari jenis HP/Modem. Pengaktifan CNMI dilakukan hanya sekali, tidak berkali-kali loh... kalo berkali-kali nti HP kamu bingung dong... hihihi.. Kamu set sekali aja, trus nti setiap ada sms masuk maka di event OnComm ada string +CMTI storage, indeks. Begitu... jadi kamu bisa manfaatkan ini untuk trigger pembacaan sms masuk dengan AT+CMGL dan memulai proses parsing dan kemudian ditutup dengan AT+CMGD=barisan indeks pesan yg akan dihapus.

Atau kalo gak support, kamu pake timer aja kirim AT+CMGL="ALL" untuk mode teks, atau AT+CMGL=4 untuk mode PDU. (Cara set mode teks & PDU dah bisa kan?). Setiap ada list pesan sebelum string OK kamu ambil deh trus jgn lupa dihapus.

iya, btul sekali. Incomming call itu dihandel juga oleh OnComm. pokoknya semua response yg masuk ke HP kamu akan muncul di OnComm.. nanti kamu tinggal memilah-milah saja mana Fax, mana File, mana string... udah tahu kan caranya? Kan aku kasih di contoh hperterminal khususnya di event OnComm. kamu lihat aja...

NB:
Yb bikin HP jebol itu bukan banyaknya kita akses ke HP, tetapi lebih kepada ketahanan HP/modem terhadap peningkatan suhu. Untuk HP memang agak rentan kalo terus2an nyala atau sambil dicharge. bisa kena displaynya atau IC nya.
Nah, untuk itu orang lebih banyak pake Modem dibanding HP jika masalahnya adalah Panas dan kecepatan komunikasi.

Iya, sama2.. amien...

Smoga banyak membantu.

Wassalam,

Anonim mengatakan...

assalamuaikum wrwbb
dear mbak arnie.
wah makasih mbak atas masukkannya. nanti aku coba.
saya barusan donlot PDU_TO_TEKS dan TEKS_TO_PDU nya mbak yang 4shared. nanti sekalian aku coba. soalnya aku pake siemen M55 dan ternyata AT+CMGF ga mau di set ke 1 tapi ke 0 (PDU) berarti aku butuh converter yang mbak bikin.

sekalian tanya mbak :
- untuk HP CDMA apa sama AT COMMAND nya dengan GSM? kalo lain tolong kalo ada
referensi contoh2 program VB nya.

trim udah mau share..
doakan juga saya bisa manfatin ilmu yang didapat dari mbak untuk hal2 yang benar..
ada keinginan mau saya tularkan ke anak2 didik saya di SMKN 1 Nganjuk, tapi kalo algoritmanya udah OK semua..tentunya dengan dukungan dari mbah, soalnya nyari
orang yang mau share kayak mbak sulit (muji ni ceritanya)

OK gitu aja dulu...
wassalamualaikum wrbb

Arnie mengatakan...

wa'alaykum salam,

Iya, lebih aman kamu pake PDU. soalnya support untuk semua jenis HP/Modem. Nah, AT Command yang support juga untuk CDMA itu adalah AT Command Standar. Bukan yg Extended atau tingkat lanjut. So, kalo cuma baca sms, hapus, atau kirim sms masih sama... Tapi kalo dah akses keypad, baterai, sinyal, dll akan berbeda sintaks.

Ini aku kirim AT Command CDMA wireless Modem dari MultiTech System... Pelajari aja deh...
Kalo ada kesulitan, kamu kirim aja sample sourcecode kamu nanti aku kasih komentar dan hasil editingnya...

Hehe muji aku yach... terima kasih...
Yach begini deh.. karena hobinya jadi Programmer.. eh, teman2nya cowok smua... Apa Bidang pemrograman ini tidak menarik yach bagi kaum Hawa...? Who Knows? :)


amien... Smoga Berhasil...

NB: Jgn Lupa Credit titlenya ada Alamat Blog aku yach :P (Ngarep Iklan... hihihi)

File :
http://www.4shared.com/file/82049801/e41c008d/CDMA_AT_Commands.html

Wassalam,

Anonim mengatakan...

Salam kenal mbak arnie...
Nama saya adi...
Saya mau tanya...bisa gak ya nokia 6100 dipake untuk akses keypad??..
Saya pake 6100 kabel data ca 53...uda coba at+ckpd tp kok ga bisa ya??

Arnie mengatakan...

iya, salam kenal juga...

untuk akses keypad, memang benar menggunakan perintah tsb. Sayangnya perintah ini tergantung dari jenis HP kamu. Mohon maaf aku blom pernah coba untuk tipe 6100.

Asumsinya kamu dah bisa komunikasi dengan HP 6100. misalnya keik AT, atau AT+CGMI, atau AT+CPMS="SM", responsnya OK. Nah, untuk perintah pengetikan keypad adalah menggunakan AT+CKPD. Tetapi sebelumnya kamu harus mengaktifkan feature keypad dengan perintah AT+CMEC ME. Coba keluarkan hasil query dengan AT+CMEC=? lihat support apa aja... trus juga AT+CMEC? untuk current settingnya..
default AT+CMEC ini 0,0. artinya ME cuma bisa diakses melalui keypad. gak bisa pake perintah CKPD. supaya bisa pake CKPD brarti kamu harus ketik AT+CMEC=2,2. gitu deh... selanjutnya kamu bisa coba2 CKPD nya yach.... bisa dongg....

Wassalam,

Anonim mengatakan...

Assalamualaikum wrrbb
dear mbak arnie,

file nya udah aku terima..
tapi untuk lanjut ke CDMA belum bisa karena aku ada kesulitan.
gini ceritanya :

untuk sms yang masuk dengan interval waktu yang "cukup" renggang" algoritma autorespon yang aku buat udah bisa jalan..begitu ada sms masuk - dibaca - di conversi ke teks (pake conversinya mbak) - di tampilkan ke layar - langsung di balas (pake conversi PDU juga punya mbak).
suatu ketika ada murid saya yang tanya, "Pak, gimana kalo kita coba kirim SMS dari 2 HP dengan waktu yang bersamaan", walhasil setelah dicoba, 2 sms tersebut masuk dalam
interval waktu yang "hampir" bersamaan. tetapi yang mendapat balasan hanya sms pertama yang masuk.
aku coba pake timer (dengan mencoba beberapa nilai interval) untuk untuk men triger rutin
pengiriman sms balasan, tapi hasilnya tetep.

setelah coba dengan berbagai jurus mematikan, akhirnya aku nyerah. aku coba goggling juga ga nemu tutorialnya (kirim dan terima secara realtime dan simultan).

saat ini aku memutuskan untuk memisah antara HP untuk "terima" dan HP untuk "kirim" sms. Ini jurus saya selanjutnya :
semua SMS yang masuk aku tampung dulu di tabel (dengan MySql), lalu dengan interval tertentu (yang bersamaan dengan menerima SMS) semua SMS yang statusnya "belum dibalas" di conversi ke PDU lalu dikirim pake HP satunya lagi..jadi lalu lintas antara
"terima" dan "kirim" melalui jalur Port yang berbeda...
gimana mbak, ada saran ?

wassalam

Arnie mengatakan...

wa'alaikum salam wr. wb,

Maaf ya baru bales...
aku ngerti deh maksudnya.. insya Allah. maksud kamu kamu mendapat masalah dalam time management untuk handle sms masuk dan sms kirim yach... Jangan khawatir... Hal ini tidak dialami oleh kamu aja... tapi oleh orang sedunia... Tapi hanya beberapa loh... ihihihi...

Untuk kirim dan terima tidak selalu harus dipisah jalurnya... misalnya kamu pegang HP... trus kamu krim sms ke temen kamu... ketika lagi proses pengiriman kamu dapet sms dari temen kamu yg lain... Nah, pertanyaannya... Apakah sms kirim Gagal? Apakah sms Terima gagal? Kenyataannya kamu bisa kirim dan bisa terima kan di HP kamu....! Nah sekarang kamu pake aja kemampuan time managementnya HP kamu...

Caranya sederhana, Software kamu itu harus mengorbankans sedikit waktu untuk membentuk satu rangkaian kegiatan yg kontinu...

1. Membaca Daftar SMS di HP dan ditampilkan di Buffer
2. Menghapus SMS terbaca dari storage HP
3. Memproses SMS dalam antrian database yang hendak dikirim
4. Menjalankan Program eksternal seperti vbs dll.

Gitu deh...

Tempatkan semuanya dalam satu antrian... boleh pake timer boleh pake looping dengan disisipi doevents untuk memberikan kesempatan event lain memanfaatkan memori windows...

Intinya nomor 2 tidak boleh dijalankan sebelum nomor 1 selesai, nomor 3 tidak boleh jalan sebelum nomor 2 selesai... begitu seterusnya...

gitu dulu deh... Aku lg buru2...

nanti lanjut lagi...

Wass.


Arnie

Anonim mengatakan...

assalamualaikum wrrbb
dear mbak arnie,

titip pesan ke suamiya : met Imlek, gong xi ...apa tuh lupa terusannya...gong 2000 kalee..

saya setuju dengan konsep algoritma mbak,
tapi saat hp simpan lalu kirim sms, dan pada saat bersamaan ada indikator CMTI untuk sms ke 2 diterima oleh event OnComm (dengan DoEvents), maka comm.input kan "+CMTI:..." tuh..
padahal setelah sms pertama terkirim, comm.input menjadi "OK", yang "+CMTI" tertindas dengan "OK", ginini stepnya :

- sms 1 masuk, respon comm.input="+CMTI:..."
- sms 1 dibaca,simpan,balas ----- saat membalas ada sms ke 2 masuk, kan comm.input="CMTI" juga tuh....
- setelah balasan untuk sms 1 dikirim kan comm.input menjadi "OK", sehingga
indikator "+CMTI" sebagai indikator sms ke 2 masuk tertindas oleh "OK" dari hasil pengiriman balasan sms ke1.
nah itu mbak yang jadi masalah saya...

atu lagi,
waktu kita kirim sms, ada pesan error, ternyata baudrate yang di comm diperkecil jadi OK
pertanyaan saya, perintah apa at command yang digunakan untuk mengetahui baudrate yang ideal untuk HP terpasang?
ok..
segitu dulu...
wassalamualaikum

Arnie mengatakan...

wa'alaikum salam

Dah aku sampein salamnya...

Cara baca daftar sms itu ada 2 :
1. Memanfaatkan trigger dari +CMTI
Dengan cara ini menghemat resource memory, menjaga performansi komputer dg baik.
Ketika kamu mendapatkan respon +CMTI coba kamu tampilkan di layar textbox seperti contoh Hyperterminal VB aku. Kemudian kamu parsing string tersebut dari texbox (layar). Jika diperlukan bisa saja kamu kosongkan kembali layar untuk memulai proses berikutnya sehingga data akurat. kemudian kamu baca sms dan tampilkan di layar. kemudian kamu parsing kembali. Ingat jika dalam layar akibat respon yg kamu berikan ke device ada +CMTI, maka kamu simpan untuk trigger pembacaan looping berikutnya. Tapi sebelumnya selesaikan dulu looping pembacaan sms pertama sampai dengan selesai pengiriman. kemudian baru kamu selesaikan trigger yg kamu dapet sebelumnya ketika proses pembacaan sedang berlangsung... begitu seterusnya. Trigger +CMTI tidak seharusnya mengganggu parsing kamu jika kamu manage dengan baik, dikarenakan +CMTI bersifat otomatis dan tidak membutuhkan respons OK.
2. Memanfaatkan timer VB
Begitu pula dengan poin ini. Trigger dimulainya looping pembacaan sms sampai dengan pengiriman sms diserahkan pada timer secara berkala. Misalnya setiap 1 detik sekali atau kurang. Jika didalam proses ini ada trigger +CMTI maka bisa diabaikan saja. Karena poin ini, trigger tidak diambil dari +CMTI.

Untuk pertanyaan kedua, pengetahuan aku blum sampe ke sana. Hanya saja ada masukan dari aku, coba kamu cari cara lain untuk mendapatkan device setting yg terbaca windows untuk device terpilih. Kemudian baru kamu bisa berkomunikasi dengan device terpilih sesuai setting yg diberikan windows dengan at command. Ini semua dikarenakan kondisi ideal device adalah ditentukan driver yg terpasang di windows baik instalasi manual maupun sudah bawaan windows.

Wassalam,

Arnie

jieme' mengatakan...

mba..
quw orang yang awam banget ttg sms server,,
tapi quw g bikin TA ttg sms server (karena dapet judulnya itu)..
pa yang harus quw pelajari dulu??

makasih banget mba..
n quw butuh banget pertolongan mba..

Anonim mengatakan...

wah . . kayaknya sih manteb nih. baca 2 dulu ah. tapi komennya . . berat2 aja. klo ada yang simple boleh nih . . he he . .
btw mantab lah

Peraturan & Tata tertib

Bismillahirrohmanirrohiim, Assalamu'alaikum wr. wb,

Sourcecode yang aku sharing di sini dijelaskan terlebih dahulu alurnya disertai pembahasannya dan sifatnya GRATIS dengan syarat :

1. Kamu-kamu smua kasih komentar
2. Setiap pembuatan program dengan sourcecode dari BLOG aku dan sifatnya komersil WAJIB dan KUDU menyertakan NAMA dan BLOG aku lho!
3. Kamu-kamu jangan lupa isi Polling blog aku yach...

NB :
Donasi :
Rek mandiri No. 117-0005202486.
Arniaty Arsyad
















Wassalam,

Arnie