Jika Anda sedang mencoba program ini atau ini, dan seakan-akan programnya tidak merespon jika ada SMS masuk, mungkin artikel berikut dapat membantu Anda melakukan troubleshoot. Sistem kerja program autoreply sms memang membutuhkan respon yang cepat sesaat setelah sms datang. Oleh karena itu, script programnya harus bisa mendeteksi jika ada event sms masuk. Nah, dalam at command, indikasi adanya sms masuk ditunjukkan dengan adanya karakter/sub string ‘+CMTI: XX,YY’ dengan XX menunjukkan media penyimpanan/memori SMS (option : ‘SM’=Sim Card, ‘ME’=modem/handphone) dan YY menunjukkan indeks memori dimana SMS tersebut disimpan.
Beberapa modem secara default diset untuk menampilkan indikator sms masuk ini, namun beberapa tipe yang lain tidak diset secara default. Untuk mengetahui status indikator SMS masuk ini dapat dilakukan dengan memberikan command ‘at+cnmi?’ . Gunakan program hyperterminal atau 7G Terminal untuk melakukan komunikasi dengan modem/handphone. Berikut syntax sekaligus arti dari parameter dalam command at+cnmi :
1. At+cnmi?
Command ini untuk menanyakan current setting cnmi, termasuk diantaranya adalah status indikasi sms (diaktifkan atau tidak)
2. At+cnmi=?
Command ini digunakan untuk melihat fitur apa saja yang disupport modem/handphone dalam hubungannya dengan command ‘cnmi’
3. At+cnmi=a,b,c,d,e
Command ini bersifat eksekusi, artinya digunakan untuk mengeset modem sesuai dengan parameter yang diberikan (a, b, c, d, e)
Kalau kita perhatikan penjelasan dan gambar di atas, ada lima parameter yang mengiringi command at+cnmi yakni (kita sebut saja) a,b, c, d, e. Arti dari parameter tersebut adalah sebagai berikut :
Parameter | Arti | Nilai | Penjelasan |
a | mode | 0 – 3 (tergantung tipe modem) | Mengontrol handling kode indikasi sms masuk |
0 | Kode indikasi sms masuk disimpan di modem, jika penuh kode akan di-replace oleh kode baru yang datang | ||
1 | Kode indikasi sms masuk tidak disimpan di modem dan ditampilkan di terminal | ||
2 | Kode indikasi sms masuk disimpan di modem dan ditampilkan di terminal | ||
3 | Kode indikasi sms masuk langsung ditampilkan di terminal | ||
b | Format indikator | 0 | Kode indikasi sms masuk tidak diaktifkan |
1 | Kode indikasi sms masuk diaktifkan dengan format +CMTI=<memori>,<indeks> | ||
2 | Kode indikasi sms masuk tidak diaktifkan, namun isi SMS langsung dibaca | ||
c | Cell broadcast | 0 | Cell broadcast tidak ditampilkan |
2 | Cell broadcast ditampilkan | ||
d | Status report | 0 | Status report tidak ditampilkan |
1 | Status report ditampilkan | ||
e | buffer | 0 | Command di-buffer di modem/handphone dan diteruskan ke terminal |
1 | Command tidak di-buffer |
Berikut adalah contoh penggunaan command at+cnmi untuk mengaktifkan format indikator sms masuk menjadi ‘+CMTI:<memori>, indeks’ (at+cnmi=1,1,2,1,1). Perhatikan, ketika ada SMS datang, langsung keluar substring ‘+CMTI: “SM”,0’ , yang artinya ‘ada SMS datang, SMS tersebut disimpan di ‘SM’ (SIM card) dan berada di indeks memori ‘0’.
Dan berikut adalah contoh at command untuk mengaktifkan format indikasi SMS masuk ke mode 2 yakni SMS yang masuk tersebut langsung di baca (perhatikan parameter kedua/parameter ‘b’ yang dijelaskan pada tabel di atas).
Perhatikan begitu perintah at+cnmi=1,2,2,1,0 diberikan, tampak begitu ada SMS datang, SMS tersebut langsung dibaca.
Demikian sedikit penjelasan tentang pengaktifan kode/indikasi SMS masuk. Indikator ini sangat penting dalam pemrograman/sistem yang membutuhkan reaksi/respon cepat terhadap isi sms yang dikirim. Yang perlu diingat bahwa kapabilitas modem/handphone dalam command at+cnmi adalah berbeda. Cobalah Anda periksa fitur modem/handphone dengan command ’ at+cnmi=?’ (lihat gambar di atas sebagai contoh) baru kemudian Anda tentukan teknik pemrograman sesuai tujuan Anda membuat program. Semoga bermanfaat.
a Technopreneur – writer – Enthusiastic about learning AI, IoT, Robotics, Raspberry Pi, Arduino, ESP8266, Delphi, Python, Javascript, PHP, etc. Founder of startup Indomaker.com
mas mau tanya
kalo pengin balas sms yang masuk gmana mas?
jadi gini ada sms masuk, trus kirim balasan
soalnya saya pake juga pake Uc 8535 dengan sim300C, trus saya bingung indikasi kalo ada sms masuk tuw apa, bingung dikodingannya
Salam kenal pak saptaji.. senang sekali bisa menemukan web bp. karena kebetulan sy lagi coba-2 belajar buat sms lewat komputer.
sekalian mau tanya sedikit boleh..?.. 🙂
sy coba pakai modem huawei sama modem wavecom. kenapa kok hasil pembacaan sms bisa beda ya pak.
bedanya :
kalau pakai huawei penerimaan sms bisa utuh satu blok mlai dari nomer pengirim sampai akhir isi sms tidak kepotong.
sedangkan kalau pakai wavecom… hasil kepotong-2 tidak beraturan..
ada yg kepotong 2 karakter, 5 karakter, 10 dst…
terimakasih atas informasnya pak saptaji. sukses selalu.
kemungkinan baudrate antara wavecom dan komputer tdk sama (baudrate default wavecom adl 115.200 bps). Mas didik bisa baca2 lebih lanjut ttg modem wavecom di http://saptaji.com/2011/11/19/khusus-modem-wavecom%E2%80%A6%E2%80%A6/
gmn bang contoh program interface dengan mikrokontroller avr atmega 32 untuk kendali running text, menggunakan code vision avr c language
best regards
di sony ericsson k700
at+cnmi=?
+CNMI: (2),(0,1,3),(0,2),(0,1),(0)
saya tidak bisa membuat SMS yang masuk tersebut langsung di baca,
saya sudah ganti-ganti parameternya, cuma bisa memberi tau kalau ada sms masuk saja
bagaimana solusi agar sms yang masuk bisa langsung dibaca di at command mas?
hapenya ga support mas. Kalo sms bs lgsg dibaca, parameter kedua cnmi hrs bernilai 2, misal at+cnmi=x,2,x,x,x. Sedangkan hasil respon hape stlh diberi command at+cnmi=? menunjukkan +CNMI: x,(0,1,3),x,x. Perhatikan parameter kedua tidak ada angka 2, berarti hapenya mmg tidak support
ok terima kasih mas
Tanya donk…
modem menggunakan modem usb huawei E173
modem support +CNMI: (0,1,2),(0,1,2,3),(0,2),(0,1,2),(0,1)
saya sudah setting cnmi 1,1,2,1,0 atau 1,2,2,1,0
tetapi saat ada sms masuk koq tetep tidak muncul notifikasi ya. kenapa ya?
terima kasih banyak sebelumnya
coba kasih command ‘at+cnmi?’ hasilnya apa?
Saya pun mengalami kejadian seprti ini dengan modem yang sama E173, hasil check nya ialah
at+cnmi=?
+CNMI: (0,1,2),(0,1,2,3),(0,2),(0,1,2),(0,1)
OK
Apanya yah kira2 ?
cara ngeceknya bukan pake command at+cnmi=? tapi at+cnmi? (tdk pake tanda ‘=’). Coba reply-kan lg respon modem jika dikasih command at+cnmi?
Asslmlkum Mas Aji . . .
kalo boleh saya tanyak,,,
kalo mau ngambil yg di sim card kan kan parameter nya “SM”, ,naaa kalo mau ambil yg di memori eksternal (misal micro SD) ,gmna masbrow ???
waalaikumsalam wr wb.
Cek dulu mas, modem/hapenya support mode apa saja –>pake command ini : at+cpms=?
kalo SM utk simcard, kalo ME untuk memori
dan ternyata hape saya ndak support . .hehe . .terima kasih banyak pencerahannya mas aji 🙂
Assalamualaikum,
Mas aji saya ingin bertanya, saya memakai modem Huawei E160 dan ketika saya menjalankan perintah at+cmni 1,1,2,1,0 atau 1,2,2,1,0 bisa berhasil dengan diikuti perintah OK. Namun ketika saya mencoba mengirimkan sms tidak ada sms yang dimunculkan padahal sudah jelas bahwa sms yang saya kirimkan berhasil terkirim.
Ketika saya coba cek dengan perintah at+cmni? muncul +cmni 1,1,2,1,0 atau 1,2,2,1,0 tergantung dari perintah at+cmni yang tadi saya gunakan. Mohon bantuannya mas. Saya rencana ingin menggunakannya untuk membuat tugas kuliah 🙂 Terimakasih
coba tambahkan atcpms=”SM” dan ate1
mas HP saya cnmi hasilnya
at+cnmi=?
+CNMI: (0,3),(0-2),(0),(0),(0)
OK
at+cnmi?
+CNMI: 0,0,0,0,0
OK
setting indikatornya gmn ya ?
dari putty/hyperterminal ketik command at+cnmi=1,2,0,0,0
error hasilnya saya pakai hyperterminal
ternyata hp nya cuma support 3 di type A.
di hyper terminal ada sms masuk langsung keluar angka2 gitu.
cuma pakai delphi gak ada respon apa2
sudah solved mas.
saya utak-atik terus 😀
na, gitu donk….sip
Mas, saya coba program yang untuk membaca SMS secara live ngak bisa juga. Padahal saya sudah setting indikatornya. Tapi ngak ada juga tanda-tanda SMS nya masuk. Tapi kalau saya coba buka pakai putty pesan SMSnya langsung terbaca. Kira2 traoublenya dimana ya mas ?
Setting mOdemnya saya set : 1,1,2,1,1
kl smsnya langsung terbaca harusnya settingan cnmi-nya adalah 1,2,2,1,1 bukan 1,1,2,1,1 (coba cek lagi). Tp apapun itu, kalo smsnya langsung terbaca programnya seharusnya langsung aja membaca sms tersebut di kotak memo (contohnya), jgn lagi menggunakan at+cmgr utk membaca sms masuk
Selain pengaktifan tanda SMS masuk yang di modem, koding yang di OnRxChar ada tergantung pada setingan yang lain ngak mas ?
Karena walaupun sms sudah masuk tapi koding yang di OnRxChar seperti ngak ada respon.
ga ada
Mas, mau tanya. modem saya settingan defaultnya at+cpms=”me”,”me”,”me” dan at+cnmi=3,1,0,0,0. *Pertanyaan pertama: saat sms pertama masuk, muncul notifikasi +CMTI: “ME”,0. lalu saat sms kedua masuk, tetap hanya muncul notifikasi +CMTI: “ME”,0, bukannya menjadi +CMTI: “ME”,1. Kemudian saat saya ingin membaca SMSnya, saya ketik at+cmgl=”all” namun hanya muncul jawaban OK tanpa muncul isi SMS. Mohon masukannya mas. Saya bermaksud agar saat ketik at+cmgl=”all” muncul semua isi SMSnya. *Pertanyaan Kedua: di inbox modemnya tampak bahwa batas sms yang mampu ditampung yaitu 3000 buah. Namun saat saya cek dengan “at+cpms?”, yang muncul yaitu +CPMS: “ME”,0,100,”ME”,0,100,”ME”,0,100 (berarti kapasitasnya hanya 100 SMS, kenapa begitu mas?)… Read more »
jawaban pertama : coba ketikkan ini dulu : at+cpms=”ME” trus at+cmgr=0. Responsnya spt apa?
jawaban kedua : mnrt sy sih kapasitas memori modem hanya 100, jarang ada modem yg gede memori ME nya. Yg biasanya gede memori ME-nya adalah handphone. Mungkin yg dimaksud 3000 sms adl kemampuan menyimpan sms di sisi software bawaan modemnya
jawaban ketiga : dibaca seperti biasa (at+cmgr/at+cmgl) – dicopy (bisa ke notepad/database) – delete sms yg sdh dicopy
I) jawaban pertama : coba ketikkan ini dulu : at+cpms=”ME” trus at+cmgr=0. Responsnya spt apa? ** Responsnya hanya “OK”, kenapa begitu ya? 2) jawaban kedua : mnrt sy sih kapasitas memori modem hanya 100, jarang ada modem yg gede memori ME nya. Yg biasanya gede memori ME-nya adalah handphone. Mungkin yg dimaksud 3000 sms adl kemampuan menyimpan sms di sisi software bawaan modemnya. **Oke thanks mas… 3)jawaban ketiga : dibaca seperti biasa (at+cmgr/at+cmgl) – dicopy (bisa ke notepad/database) – delete sms yg sdh dicopy ** ada syntax khusus ga supaya bisa otomatis dicopy ke PC tanpa copy paste secara manual?… Read more »
1. mas, coba software bawaan dimatiin trus sms ke modemnya trus cek sms pake at command lg
3. ngga ada mas, setidaknya setau saya spt itu
1. Sukses mas. Terima kasih banyak. Astaga selama berbulan-bulan ini saya selalu aktif software bawaannya, pantesan sering error. Sebelumnya saya kira yang penting cukup ga connect ke internet, ternyata mesti dimatikan juga software bawaannya.
Untunglah ketemu web anda, sekali lagi terima kasih banyak mas.
3. ok thanks
Mas Aji, bagaimana caranya menyimpan laporan SMS yang berhasil dikirim dan SMS yang Gagal terkirim ke database mysql? Saya beli buku mas Aji “Membuat SMS gateway dengan delphi 7” tidak dijelaskan (dibahas), yang dibahas hanya mnyimpan SMS yang diterima.. jadi kita tau mana yang berhasil dikirim dan mana yang gagal terkirim… terimakasih…
utk case spt itu mmg sudah ‘advanced’ mas, jd ga dimasukkin ke buku.
Pada intinya, sms yg berhasil terkirim masuk ke sent item dan secara at command akan muncul kode +CMGS:xx. Nah dari sini kita bisa memisahkan SMS mana yg berhasil terkirim mana yg gagal
Mau nanya mas… bagaimana cara menggabungkan teks sms yg dikirim dengan data masukan dari sensor dalam satu kalimat tanpa terpotong… contoh teks sms “suhu ruangan (25) C” yg didalam kurung itu data masukan dari sensor…
Trimakasih mas…
input sensor dimasukkan ke variabel dulu mas, setelah itu baru digabung ke variabel string, baru bisa dikirim via sms
Terimakasih banyak bang, tulisannya sangat bermanfaat, sangat membantu project saya. Semoga webnya semakin ramai pengunjung bang!
amiin….terima kasih 🙂
bagaimana setting agar sms yang masuk tidak tersimpan di memori sim card ??
jadi langsung masuk ke memori PC, karena untuk memori sim card sangat terbatas,,
Tks..
paling di-copy aja mas, caranya : dibaca pake command at+cmgl atau at+cmgr, kemudian di save ke database di PC. Habis itu memori simcard di hapus
kalo gini bisa dibantu ga pas codingnya ?
jadi pas ada indikasi sms masuk, otomatis command at+cmgd=0
at+cmgd=1
dst…
aktif..
jadi setiap kali sms masuk, otomatis kapasitas simcard bisa langsung kosong kembali…
maaf, utk coding sy ngga bisa bantu. Di buku saya udah ada contohnya semua, tinggal digabungin atau dipakai sesuai keperluan
Mas, saya mau bikin program kirim sms ke banyak no hp tetapi saya pingin ada delivery reportnya supaya saya tau no hp mana saja yg sudah menerima sms dan yang belum menerima sms, saya lihat di buku ada cara mengaktifkan delivery report tetapi tidak ada contoh programnya, apakah mas punya contoh programnya?, kl ada mau donk.
Terima kasih.
Assalamualaikum Wr Wb Mas Aji, Minal Aidin wal Faidzin, Mohon maaf lahir dan batin utk kesalahan yang di sengaja maupun tidak. . Punten mas aji, mau minta petunjuk, Projek sy menggunakan modem wavecom m1306b modul q2406b, Delphi 10.3 rio Percobaan dgn PuTTY: At+cnmi=1,2,2,1,0 Respon SMS masuk baik (sesuai dengan tutorial jenengan) : +CMT: “6283123456789”,,”17/05/2021.21:07:09+23″ percobaan terima SMS Percobaan pada Delphi 10.3 Rio: At+cnmi=1,2,2,1,0 Respon SMS masuk diterima namun tidak stabil: Terkadang yang muncul di memo: +CMT: “6283123456789”,,”17/05/2021.21:07:09+23″ percobaan terima SMS Terkadang muncul di memo: 83123456789″,,”17/05/2021.21:07:09+23″ percobaan terima SMS Terkadang muncul di memo: 283123456789″,,”17/05/2021.21:07:09+23″ percobaan terima SMS Dan masih banyak lagi… Read more »
coba dicek lagi event OnRxChar milik komponen CPort, apakah ada delay atau sesuatu yg menyebabkan karakter sms tidak semua diterima. Yang kedua, untuk eksekusi command at+cnmi=x,x,x,x cukup sekali aja tidak perlu berulang-ulang (mungkin dicek jg di script-nya)
Terimakasih banyak respon nya mas, ,saya coba kerjakan dulu