Membuat sms gateway itu gampang, jangan dipersulit !!!
Berhubung banyaknya pengunjung yang nyasar ke blog ini, gara-gara keyword “sms gateway” saya jadi merasa bersalah klo enggax ikut-ikutan membahas artikel yang satu ini he he he
.
Walaupun sudah banyak blog yang membahas tentang masalah ini, tapi kayaxnya tema “sms gateway” masih hangat dan saru eh… seru untuk dibahas
, dan tentunya dengan adanya artikel ini saya berharap lebih banyak lagi yang tersesat ke blog ini
.
Oke jadi kasusnya apa nih, kita ambil aja sample sederhana yaitu “pembuatan sms gateway untuk request nilai siswa” dan untuk menyederhanakan pembahasan keywordnya kita batasi saja yaitu request nilai tugas dan ulangan.
Apa yang harus di persiapkan, pertama kita rancang dulu databasenya dan berhubung artikel saya yang membahas tentang database SQLite masih hangat jadi untuk databasenya kita menggunakan SQLite saja.
SQLite adalah database standalone yang kecil, mungil dan gratis. Bagaimana cara membuat database di SQLite sudah saya bahas disini kemudian bagaimana mengaksesnya dari aplikasi juga sudah saya bahasa disini.
Berikut adalah rancangan sederhana database sms yang akan kita buat :
Ada banyak cara untuk membaca sms masuk dan membalasanya, salah satunya adalah menggunakan perintah AT COMMAND dan Microsoft sendiri sudah menyediakan komponen yang bisa mengeksekusi perintah-perintah tersebut.
Tentunya cara ini (menggunakan AT COMMAND) bukan cara yang favorit dikalangan programmer instan seperti Anda dan Saya
, jadi diartikel ini saya menggunakan komponen pihak ketiga.
Ingat komponen ini adalah shareware, segala resiko (kemudahan dalam membuat aplikasi sms gateway) ditanggung sendiri
, saya disini hanya share dan tidak terikat kerja sama dengan pihak ketiga tersebut.
Halah pernyataan ngawur
Berikut adalah cuplikan source code untuk membaca dan mengirim sms menggunakan komponen ActiveXpert SMS
1. Membaca SMS Masuk
Private Sub cmdBacaSMS_Click()
Dim objGsmIn As ASmsCtrl.GsmIn
Set objGsmIn = New ASmsCtrl.GsmIn
With objGsmIn
.Activate "XXX-XXXX-XXXX-XXXXX" 'diisi serial number yg Anda dapatkan secara ilegal
.Device = "COM1" 'disesuaikan dengan port COM yang digunakan
.DeviceSpeed = 19200 'default = 0
.Storage = 2 '0=sim 1=device 2=any
.DeleteAfterReceive = True
.Receive
If .LastError = 0 Or .LastError = 23140 Then ' Success
.GetFirstMessage
While .LastError = 0
Debug.Print "Pengirim : " & .MessageSender
Debug.Print "Isi SMS : " & .MessageData
'TODO : INSERT KE TABEL SMS_IN
.GetNextMessage
Wend
End If
End With
Set objGsmIn = Nothing
End Sub
2. Mengirim sms
Private Sub cmdKirimSMS_Click()
Dim objGsmOut As ASmsCtrl.GsmOut
Dim objConstants As ASmsCtrl.Constants
Set objGsmOut = New ASmsCtrl.GsmOut
Set objConstants = New ASmsCtrl.Constants
With objGsmOut
.Activate "XXX-XXXX-XXXX-XXXXX" 'diisi serial number yg Anda dapatkan secara ilegal
.Device = "COM1" 'disesuaikan dengan port COM yang digunakan
.DeviceSpeed = 19200 'default = 0
.RequestStatusReport = False
.MessageType = objConstants.asMESSAGETYPE_TEXT 'mengirim pesan maksimal 160 karakter
'.MessageType = objConstants.asMESSAGETYPE_TEXT_MULTIPART 'jika lebih dari 160 karakter gunakan opsi ini
.MessageRecipient = "nomor tujuan" 'biasanya menggunakan prefix +62
.MessageData = "isi pesan"
.Send 'kirim
End With
Set objConstants = Nothing
Set objGsmOut = Nothing
End Sub
Jadi cukup dengan bermodalkan 2 cuplikan kode diatas kita akan menyelesaikan aplikasi yg dibahas pada artikel kali ini.
Adapun untuk keyword yang akan digunakan sebagai berikut :
1. Request nilai tugas
keyword : tgs#nis
contoh :
tgs#9941224165
balasan :
Nilai tugas (NAMA SISWA) : BI=95, IPA=75, IPS=80, MTK=85
2. Request nilai ulangan harian
keyword : uh#nis
contoh :
uh#9941224165
balasan :
Nilai ulangan (NAMA SISWA) : BI=95, IPA=75, IPS=80, MTK=85
Berikut penjelasan ringkas beberapa cuplikan source code yang digunakan dalam pembuatan aplikasi sms gateway ini.
Private Function connectToDevice(ByVal device As String) As Boolean
Dim objGsm As ASmsCtrl.GsmOut
Dim manufaktur As String
On Error GoTo errHandle
Set objGsm = New ASmsCtrl.GsmOut
With objGsm
.Activate SERIAL_NUMBER
.device = device
manufaktur = .SendCommand("AT+CGMI", 500) 'menampilkan informasi manufactur
manufaktur = Replace$(manufaktur, vbCrLf, "")
manufaktur = Replace$(manufaktur, "OK", "")
manufaktur = Replace$(manufaktur, "ERROR", "")
manufaktur = Replace$(manufaktur, "AT+CGMI", "")
End With
Set objGsm = Nothing
If Len(manufaktur) > 0 Then
txtModem.Text = manufaktur
connectToDevice = True
End If
Exit Function
errHandle:
connectToDevice = False
End Function
Sesuai namanya fungsi connectToDevice digunakan untuk mengecek status modem sms yang terpasang, salah satu caranya adalah dengan mengirimkan AT COMMAND “AT+CGM”, AT COMMAND ini berfungsi untuk mendapatkan informasi manufaktur.
Sebagai contoh jika modem sms yg digunakan adalah hp siemens maka nilai yg dihasilkan dari perintah ini adalah “SIEMENS” dan tentunya hp yg bersangkutan juga harus mendukung AT COMMAND.
Private Sub readSMS()
Dim objGsmIn As ASmsCtrl.GsmIn
Dim objConstants As ASmsCtrl.Constants
Dim cmd As cCommand
Dim keyword As String
Dim phoneNumber As String
Dim i As Integer
On Error GoTo errHandle
Screen.MousePointer = vbHourglass
cmdStop.Enabled = False
tmrReceiveSms.Enabled = False
DoEvents
Set objGsmIn = New ASmsCtrl.GsmIn
Set objConstants = New ASmsCtrl.Constants
With objGsmIn
.Activate SERIAL_NUMBER
.device = cmbPORT.Text
.DeviceSpeed = 0
.Storage = cmbStorage.ItemData(cmbStorage.ListIndex)
.DeleteAfterReceive = True 'hapus sms jika sudah dibaca
.Receive
If .LastError = 0 Or .LastError = 23140 Then 'baca sms sukses
.GetFirstMessage
strSql = "INSERT INTO sms_in (phone_number, sms_keyword, date_in, time_in) VALUES (?, ?, ?, ?)"
Set cmd = conn.CreateCommand(strSql)
conn.BeginTrans
i = 1
While .LastError = 0
phoneNumber = rep0to62(.MessageSender)
keyword = .MessageData
cmd.SetText 1, phoneNumber
cmd.SetText 2, keyword
cmd.SetDate 3, Format(Now, "yyyy/MM/dd")
cmd.SetTime 4, Format(Now, "hh:mm:ss")
cmd.Execute
If i Mod 10 = 0 Then
conn.CommitTrans
DoEvents
conn.BeginTrans
End If
i = i + 1
.GetNextMessage
Wend
conn.CommitTrans
Set cmd = Nothing
End If
End With
Set objGsmIn = Nothing
If cekSMSIn Then
Call sendSMS
Else
Call Wait(5000)
End If
cmdStop.Enabled = True
Screen.MousePointer = vbDefault
tmrReceiveSms.Enabled = True
Exit Sub
errHandle:
tmrReceiveSms.Enabled = True
End Sub
Prosedur readSMS digunakan untuk membaca sms masuk dan menyimpannya ke tabel sms_in, berhubung komponen ActiveXpert SMS tidak mempunyai event yg menandai adanya sms masuk maka sebagai gantinya kita menggunakan timer untuk memanggil prosedur readSMS.
Salah satu properties penting yang dimiliki oleh ActiveXpert SMS adalah DeleteAfterReceive, jika nilainya diset true maka sms yg masuk akan otomatis dihapus dan tentunya setelah smsnya dibaca.
Private Function cekSMSIn() As Boolean
Dim ret As Integer
strSql = "SELECT COUNT(*) FROM sms_in WHERE status = 0" 'jika status = 0 berarti sms masuk belum di proses
ret = CInt(dbGetValue(strSql, 0))
If ret > 0 Then 'ada sms yg belum diproses
cekSMSIn = True
End If
End Function
Prosedur cekSMSIn dibutuhkan oleh prosedur readSMS, jadi dengan adanya prosedur cekSMSIn ini program akan mengetahui kapan waktu yg tepat untuk memanggil prosedur sendSMS.
Private Sub sendSMS()
Dim rsSend As cRecordset
Dim cmd As cCommand
Dim objGsmOut As ASmsCtrl.GsmOut
Dim objConstants As ASmsCtrl.Constants
Dim phoneNumber As String
Dim keyword As String
Dim smsBalasan As String
On Error GoTo errHandle
'cek sms yang belum di proses, ditandai dg status = 0
strSql = "SELECT id, phone_number, sms_keyword " & _
"FROM sms_in " & _
"WHERE status = 0 " & _
"ORDER BY id"
Set rsSend = conn.OpenRecordset(strSql)
If Not rsSend.EOF Then
Set objGsmOut = New ASmsCtrl.GsmOut
Set objConstants = New ASmsCtrl.Constants
objGsmOut.Activate SERIAL_NUMBER
objGsmOut.device = cmbPORT.Text
objGsmOut.DeviceSpeed = 0
objGsmOut.RequestStatusReport = False
objGsmOut.MessageType = objConstants.asMESSAGETYPE_TEXT_MULTIPART
Do While Not rsSend.EOF
'ganti prefix nomor hp 0 -> +62
phoneNumber = rep0to62("" & rsSend("phone_number").Value)
keyword = rsSend("sms_keyword").Value
smsBalasan = getBalasanSms(keyword, phoneNumber)
objGsmOut.MessageRecipient = phoneNumber
objGsmOut.MessageData = smsBalasan
objGsmOut.Send
If objGsmOut.LastError = 0 Or objGsmOut.LastError = 23140 Then 'sms sukses dikirim
'update status sms -> 1
strSql = "UPDATE sms_in SET status = ?, no_ref = ? " & _
"WHERE id = ?"
Set cmd = conn.CreateCommand(strSql)
With cmd
.SetInt32 1, 1
.SetInt32 2, objGsmOut.MessageReference
.SetInt32 3, rsSend("id").Value
.Execute
End With
Set cmd = Nothing
'insert ke tabel sms_out, untuk histori sms keluar
strSql = "INSERT INTO sms_out (phone_number, replay_msg, date_out, time_out) VALUES (?, ?, ?, ?)"
Set cmd = conn.CreateCommand(strSql)
With cmd
.SetText 1, phoneNumber
.SetText 2, smsBalasan
.SetDate 3, Format(Now, "yyyy/MM/dd")
.SetTime 4, Format(Now, "hh:mm:ss")
.Execute
End With
Set cmd = Nothing
Else 'sms gagal dikirim
'update status sms -> 1
'ini masih bisa dikembangkan lagi dengan menambah kolom max_jumlah_kirim di tabel sms_in
'jadi bisa diberi aturan sms yg gagal dikirim > 3x baru status smsnya diupdate menjadi 1
strSql = "UPDATE sms_in SET status = ?, no_ref = ? " & _
"WHERE id = ?"
Set cmd = conn.CreateCommand(strSql)
With cmd
.SetInt32 1, 1
.SetInt32 2, objGsmOut.MessageReference
.SetInt32 3, rsSend("id").Value
.Execute
End With
Set cmd = Nothing
End If
Call Wait(5000)
rsSend.MoveNext
Loop
Set objConstants = Nothing
Set objGsmOut = Nothing
End If
Exit Sub
errHandle:
Resume Next
End Sub
Prosedur sendSMS akan mengolah sms masuk yg belum di proses (ditandai dengan status = 0), mengupdate statusnya menjadi 1 jika berhasil mengirimkan sms, kemudian menyimpannya ke tabel sms_out sebagai histori pengiriman sms.
Public Function rep0to62(ByVal phoneNumber As String) As String
'fungsi untuk mengganti prefix 0 -> +62
rep0to62 = phoneNumber
If Left(phoneNumber, 1) = "0" Then rep0to62 = "+62" & Right(phoneNumber, Len(phoneNumber) - 1)
End Function
Sesuai namanya fungsi ini berguna untuk mengganti prefix nomor hp 0 menjadi +62 (kode indonesia).
Terakhir fungsi untuk memproses keyword sms yang masuk dan sekaligus sebagai balasan untuk sms keluar.
Public Function getBalasanSms(ByVal keywordSms As String, ByVal phoneNumber As String) As String
Dim rs As cRecordset
Dim param1 As String
Dim arrKeyword() As String
Dim prefix As String
Dim nilai As String
Dim nama As String
Dim tha As String
Dim semester As String
If Len(keywordSms) > 0 Then
If InStr(1, keywordSms, "#") > 0 Then 'karakter # -> separator keyword
arrKeyword = Split(keywordSms, "#")
If Not (Len(arrKeyword(0)) > 0) Then
getBalasanSms = "Keyword sms salah"
Exit Function
Else
'do nothing
End If
Else
ReDim arrKeyword(0)
arrKeyword(0) = keywordSms
End If
Else
getBalasanSms = "Keyword sms salah"
Exit Function
End If
prefix = arrKeyword(0)
prefix = UCase$(prefix)
If UBound(arrKeyword) > 0 Then param1 = arrKeyword(1) 'untuk contoh disini param1 bernilai nomor induk siswa
'untuk pengembangan lebih lanjut tahun ajaran dan semester dibuat settingan tersendiri
tha = "2009/2010"
semester = 2
Select Case prefix
Case "TGS"
'validasi nis siswa
If Not isValidNIS(param1) Then getBalasanSms = Replace(NIS_SALAH, "<nis>", param1): Exit Function
'validasi no hp siswa
'nama sekolah sebaiknya disimpan didalam variabel
If Not isValidHPSiswa(param1, phoneNumber) Then
getBalasanSms = Replace(HP_UNREG, "<nama_sekolah>", "SMA Negeri Yogyakarta")
getBalasanSms = Replace(getBalasanSms, "<no_hp>", phoneNumber): Exit Function
End If
strSql = "SELECT UPPER(nama) FROM siswa WHERE nis = '" & param1 & "'"
nama = CStr(dbGetValue(strSql, ""))
'mulai proses pencarian nilai
strSql = "SELECT matapelajaran_kode, nilai " & _
"FROM nilai_tugas " & _
"WHERE siswa_nis = '" & param1 & "' AND tahun_ajaran = '" & tha & "' AND semester = " & semester & " " & _
"ORDER BY matapelajaran_kode"
Set rs = conn.OpenRecordset(strSql)
If Not rs.EOF Then
Do While Not rs.EOF
nilai = nilai & rs("matapelajaran_kode").Value & "=" & rs("nilai").Value & ", "
rs.MoveNext
Loop
End If
If Len(nilai) > 0 Then
nilai = Left(nilai, Len(nilai) - 2)
getBalasanSms = "Nilai tugas (" & nama & ") : " & nilai
Else
getBalasanSms = "Nilai tugas (" & nama & ") sedang dalam proses pendataan"
End If
Case "UH"
'validasi nis siswa
If Not isValidNIS(param1) Then getBalasanSms = Replace(NIS_SALAH, "<nis>", param1): Exit Function
'validasi no hp siswa
'nama sekolah sebaiknya disimpan didalam variabel
If Not isValidHPSiswa(param1, phoneNumber) Then
getBalasanSms = Replace(HP_UNREG, "<nama_sekolah>", "SMA Negeri Yogyakarta")
getBalasanSms = Replace(getBalasanSms, "<no_hp>", phoneNumber): Exit Function
End If
strSql = "SELECT UPPER(nama) FROM siswa WHERE nis = '" & param1 & "'"
nama = CStr(dbGetValue(strSql, ""))
'mulai proses pencarian nilai
strSql = "SELECT matapelajaran_kode, nilai " & _
"FROM nilai_ulangan " & _
"WHERE siswa_nis = '" & param1 & "' AND tahun_ajaran = '" & tha & "' AND semester = " & semester & " " & _
"ORDER BY matapelajaran_kode"
Set rs = conn.OpenRecordset(strSql)
If Not rs.EOF Then
Do While Not rs.EOF
nilai = nilai & rs("matapelajaran_kode").Value & "=" & rs("nilai").Value & ", "
rs.MoveNext
Loop
End If
If Len(nilai) > 0 Then
nilai = Left(nilai, Len(nilai) - 2)
getBalasanSms = "Nilai ulangan (" & nama & ") : " & nilai
Else
getBalasanSms = "Nilai ulangan (" & nama & ") sedang dalam proses pendataan"
End If
Case Else
getBalasanSms = "Keyword sms salah"
End Select
End Function
Untuk mengetahui daftar hp/modem apa saja yang didukung, jangan sungkan dan malu-malu untuk mengklik link ini.
Selamat MENCOBA







panjang juga ya caranya…
Iya namanya juga pengembangannya om, klo perintah basicnyakan sederhana.
Wah si om kayaxnya jago mati-matian eh matematika nih
Mengunduh (download) sms gateway itu gampang, jangan dipersulit !!!
Iya om benar, tinggal klik diSINI
.
Mengunduh sms gateway aja kok repot he he…. https://s-ssl.wordpress.com/wp-includes/images/smilies/icon_biggrin.gif
pak dosen, itu contoh utk request ulangan harian masih salah.
disitu tertulis :
2. Request nilai ulangan harian
keyword : uh#nis
contoh :
tgs#9941224165
tolong dikoreksi lg
Oke om udah dikoreksi, tq
sama-sama
wah ane keduluan upload sms gateway pake ActiveXpert SMS, gpp lah nanti ana banyakin tutorial Crystal Reportnya pake database SQLite
dalam bentuk video,,,
Izin copy paste pa,,,,
He he he keduluan ya om
, oke om ditunggu tutorialnya, jadi udah mulai coba SQLite juga nih
Nambah lagi koleksi Q…
Donlot oM…
Oke om
Om..
Kalau menggunakan ActiveXpert SMS Stabil untuk aplikasi SMS Gateway
Yg pernah saya coba untuk pendaftaran PSB menggunakan hp siemens c55 sehari bisa menghandle sekitar 900an sms.
Saya sendiri bergerak di bidang SMS gateway, tapi bukan di bagian coding-nya. Wah, kalau gak ngerti coding, ternyata rumit juga ya bikinnya, hehehe… salam kenal ya
Salam kenal juga mas tq sudah berkunjung
Aplikasi SMS databipnya keren mas? basisnya apa ya? web atw desktop
Pak Admin, cara kerjanya bagaimana?
Masa’ belom bisa sih om?
1. Install kabel data hpnya, lengkapnya di SINI
2. Jalankan source trus klik tombol start, klo hpnya di support otomatis keluar nama vendornya
3. klo langkah 2 sukses, coba keyword berikut :
Sudah Pak, tapi kok tidak ada SMS ke HP saya?
Oke om selamat mendebug prosedur readSMS dan sendSMS
mau tanya nih
kalo mau merubah nomor hp menjadi nama gimana ya script php nya.
contoh => jika kita isi pulsa kan ada laporan dari M-TRONIK bukan nomor hp atau klo ada info dari INDOSAT itu kan gak nomor, padahal kita gak mnyimpan nomor hp yang bernama INDOSAT.
gimana tuh caranya…jika ada yang tau mohon balas di blog saya => http://syfakumala.blogspot.com
Klo SENDER IDnya menggunakan nama terserah kita seperti yg om maksud itu kayaxnya tinggal pesan/beli ke operator deh, jadi enggak di handle via kode.
Klo enggak salah istilahnya MSID
CMIIW
Pk mohon pencerahannya…sy coba utk yg procedure cmdbacaSMS kok ga jalan…..sms ga ke baca…sy pake modem itegno3800..mohon pencerahannya om tq
Sy tanya dulu om :
1. Serial Numbernya diisi apa?
2. Posisi devicenya (port COMnya) udah benar belum
3. Jangan langsung mencoba prosedure cmdBacaSMS tapi coba dulu fungsi connectToDevice diatas, klo hasilnya false ada kemungkinan modemnya enggak disupport. Coba cek link INI untuk mengecek daftar modem yg disupport.
Mas, pake aja gammu. Bisa kok gammu diintegrasikan pake VB atau JAVA atau bahasa lainnya.
Tq om udah mampir n komennya
Berdasarkan pengalaman, banyak yg males make gammu karna keterbatasan akses databasenya.
Pertanyaannya selalu “Bisa enggak ya pake Ms Access” atau “Pake SQL Server” sedangkan utk saat ini Gammu baru mendukung database dg tipe file, MySQL, PostgreSQL dan SQLite (khusus linux)
Walaupun kekurangan ini bisa diatasi dg langsung mengakses gammu command, tetapi menggunakan gammu command sendiri lumayan lambat dan sedikit lebih rumit
CMIIW
mas..mau tanya nih..gmn cara n source codenya mengambil data dari port serial COM dengan visual basic n trus menyimpannya di database m.access
Harus tau dulu inputannya dari apa ? barcode ? atw lainnya
Di visual basic udah ada komponen untuk menghandle masalah ini namanya “Microsoft Comm Control 6.0″
inputnya dari port serial COM.yang saya bingungkan bagaimana caranya agar data dari port tersebut dapat dibaca di visual basic dan dapat tersimpan di database microsoft access
inputannya dari PC yang lain
Masih belum jelas
, maksudnya 2 komputer dihubungkan menggunakan kabel RS232?
Emg data yang diinput dari pc lain berupa apa?
link program yg dikasih itu cuman buat detect hape aja y mas??
kalo bentuk sms gateway nya gmn y??
Ya enggak itu udah sample aplikasi sms gatewaynya kok, coba di baca lagi artikelnya pelan2x trus dicoba juga sample programnya.
untuk HP, kabel datanya harus pake kabel serial atau bisa kabel USB pak? sekarang cari kabel serial agak susah soalnya
Pake yg USB aja om, ya tergantung HPnya sih.
Setelah driver kabel datanya diinstall tinggal cek aja dikenali sebagai COM brp?
Informasi lengkapnya disini
Pak klo mau nampilin Imei, databits, provider nya gimana ????????
Klo nampilin imei cukup seperti ini (masih menggunakan ActiveXpert SMS)
Private Sub cmdCekIMEI_Click() Dim objGsm As ASmsCtrl.GsmOut Dim imei As String Set objGsm = New ASmsCtrl.GsmOut With objGsm .Activate SERIAL_NUMBER .device = cmbPORT.Text imei = .SendCommand("AT+CGSN", 500) imei = Replace$(imei, vbCrLf, "") imei = Replace$(imei, "OK", "") imei = Replace$(imei, "AT+CGSN", "") End With Set objGsm = Nothing MsgBox "Imei : " & imei End Submsh belum jelas
pake at+command AT+CREG klo error berarti hpnya enggak support, info at+command yg lain bisa dilihat disini
com yang digunakan modem misalnya com 76…… gimana?
Tinggal ganti aja properties style ComboBoxnya menjadi Dropdown Combo jadi klo ada COM yg belum tersedia langsung bisa diketik.
Tapi sy baru tau klo port COM itu nyampe 76
hmm ok….. komp saya bener2x sampai com76…..semua dah ok berrjalan lancar tp tidak ada sms masuk setelah ngirim sms????
Pembacaan sms masuk berhubungan dengan setting storage(sim, device, any) coba aja diganti devicenya om, soalnya hp sekarang biasanya defaultnya menggunakan device.
Jadi tidak semua mendukung pilihan any, tapi untung hp jelex saya (siemens c55) masih mendukung pilihan any
hmm hrs ganti hp nie biar ok…
ActiveXpert SMS juga sm ga bisa bc sms masuk… hars bnyk bljar nie…. thank ilmu na Om
Mas kalau kirim sms da bisa, tp kalau terima belum bisa . saya pakai hp soni ericson k320i. storage nya pakai any .
coba pilihan storagenya diganti device om.
Mas, kalo mo baca phonebook dari simcard gimana ya?
Coba seperti ini om :
Private Sub cekPhonebook_Click() Dim objGsm As ASmsCtrl.GsmOut Dim phoneBook As String Set objGsm = New ASmsCtrl.GsmOut With objGsm .Activate SERIAL_NUMBER .device = cmbPORT.Text phoneBook = .SendCommand("AT+CPBR=1,5", 1000) 'membaca phonebook lokasi 1 s.d 5 End With Set objGsm = Nothing Debug.Print phoneBook End SubTapi kode diatas blom sy coba langsung, kelupaan bw kabel data
Sip mass.. Well done..
mas, klo mo stop kok ga bisa, disable tombolnya, proses Call Wait(5000) kok ga jalan ya…ditambah syntax apa biar bs stop… trims ya
secara normal tombol stopnya akan aktif setiap 5 detik, tp jika ada proses membaca/mengirim sms otomatis prosesnya(membaca/mengirim sms) akan diselesaikan terlebih dahulu.
makanya dibatasi di programnya, misalnya maksimal setiap pengiriman hanya 5 sms. jadi akan ada jeda waktu agar tombol stopnya bisa aktif lagi
Membuat SMS Gateway dengan Visual Basic itu mudah.
—-
saya bantu SEO hehehe
wah tq banget om, sy sendiri belum sempat belajar SEO
SEO asal2an kok om.. hahahahaha
Oke om yg penting udah dibantu. Tq
sama2 om
Assalamu’alaikum akhi, programnya keren.
boleh g ana minta sourecodenya di share juga. Habis, bingung cara praktekin code di atas. Thanks
Waalaikumussalam
Sourcecodenya bisa didownload disini.
ommmm doseennnn.. ane mo nanya nih..
yang punya om khan cuma bisa untuk simpan satu nomer hape persiswa klo supaya bisa nerima dua nomer hape persiswa ato lebih gimana om..
(siswa sekarang terkadang bisa punya hape lebih dari satu)
kira2 yg di edit apanya om..
Gini om mahasiswa langkah-langkahnya :
1. Tambah field baru di tabel siswa, misal no_hp2
2. Trus lakukan revisi di fungsi isValidHPSiswa
Private Function isValidHPSiswa(ByVal nis As String, ByVal phoneNumber As String) As Boolean On Error GoTo errHandle ' query sebelumnya 'strSql = "SELECT COUNT(*) " & _ ' "FROM siswa " & _ ' "WHERE nis = '" & nis & "' AND no_hp = '" & phoneNumber & "'" ' query baru, ada penambahan pengecekan field no_hp2 strSql = "SELECT COUNT(*) " & _ "FROM siswa " & _ "WHERE nis = '" & nis & "' AND (no_hp = '" & phoneNumber & "' OR no_hp2 = '" & phoneNumber & "')" ret = CLng(dbGetValue(strSql, 0)) If ret > 0 Then isValidHPSiswa = True Exit Function errHandle: isValidHPSiswa = False End FunctionSelamat mencoba
Om.. kodenya udah ane coba alhamdulillah bisa tapi kaya nya gk bisa dinamis yah Om.. klo ane mo tambahin nomer hape menjadi 4 berarti ane musti bikin ato tambah field lagi dong om..
bisa gk yah om klo dibuat tetep menggunakan satu field tapi di dalam isi fieldnya masing2 nomer hape di pisahin dengan koma ato titik koma kaya nya ini lebih praktis om.. tapi ane bingung gimana kode untuk mengeceknya..
solusinya dong Om..
Seperti itu bisa, tp solusi yg lebih baik buat aja tabel baru misal dg nama hp_siswa isinya cukup 2 field aja yaitu nis dan no_hp.
Trus tinggal sesuaikan aja query yg ada di fungsi isValidHPSiswa :
Selamat mencoba
Bang admin mau tanya, kalau untuk membaca port comm menggunakan komponen mscomm
kalau untuk membaca port usb pakai apa y? apa bisa?
thx b4
Klo itu sy belom pernah coba om, tapi biasanya port USBnya sudah ada perwakilan port COMnya.
Jadi enggak perlu report2x ngakses port USBnya cukup mengakses port COM perwakilannya tadi (klo istilahnya dulu sy enggak tau n skrg lupa he he
)
Coba merujuk ke link ini, cara mengecek port USBnya jadi COM brp.
Selamat mencoba
Mas, mo tanya Lagi. KaLo buat perintah panggiLan gimana ya? (ex: cek puLsa)
Sama gimana ya kaLo mo baca hasiL USSD? (ex: baca hasiL cek puLsa)
Maaf ya mas ngerepotin.
Coba gunakan perintah AT+CKPD=keys,timepressed,pause.
Contoh klo menggunakan kartu simpati dengan perintah : *888#
Private Sub cekPhonebook_Click() Dim objGsm As ASmsCtrl.GsmOut Dim phoneBook As String Dim ret As String Set objGsm = New ASmsCtrl.GsmOut With objGsm .Activate SERIAL_NUMBER .device = cmbPORT.Text ret = .SendCommand("AT+CKPD=" & Chr(34) & "*888#" & Chr(34) & ",3,10", 1000) End With Set objGsm = Nothing Debug.Print ret End SubKlo untuk membacanya sy juga belum berhasil om
, soalnya hasilnya kan enggak kesimpan tapi langsung nampil ke layar.
Selamat mencoba
maaf mas..sya coba USSD / Dial nya kok ga jdi yah?
ga ngerespon sma skali…
klau pake MSComm dri windows bisa dengan menggunakan AT Command ATD & txtDial & “;”
sdng kan klau menggunakan “AT+CKPD=” menekan keypad di modem..
tp sya aplikasikan ke ASmsCtrl ga bisa jalan untuk ATD nya…ada solusi mas?
mksh sblum nya..
Oom.. thanks banget infonya.., saya dah download, dan coba migrasi ke VB.NET 2008, soalnya dah nggak punya VB6 lagi,
Hanya saja di modul “modWait” nya om, saya ada kendala di sini oom :
Public Declare Function SetTimer Lib “user32″ (ByVal hwnd As Long, ByVal nIDEvent As Long, ByVal uElapse As Long, ByVal lpTimerFunc As Long) As Long
Public Declare Function GetMessage Lib “user32″ Alias “GetMessageA” (ByVal lpMsg As MSG, ByVal hwnd As Long, ByVal wMsgFilterMin As Long, ByVal wMsgFilterMax As Long) As Long
Public Declare Function TranslateMessage Lib “user32″ (ByVal lpMsg As MSG) As Long
Public Declare Function DispatchMessage Lib “user32″ Alias “DispatchMessageA” (ByVal lpMsg As MSG) As Long
Public Declare Function KillTimer Lib “user32″ (ByVal hwnd As Long, ByVal nIDEvent As Long) As Long
ketemu errornya waktu disini :
TimerID = SetTimer(0, 0, mSecs, AddressOf TimerProc)
Pesan errornya :
‘AddressOf’ expression cannot be converted to ‘Long’ because ‘Long’ is not a delegate type
Udah saya minta bantuan ama oom google.. tapi hasilnya makin bingung.
Mohon bantuannya oom, atau sebenarnya coding diatas bisa dibikin dalam bentuk lain.
Thanks.
Coba deklarasi fungsi SetTimer direvisi menjadi :
Kemudian revisi juga bagian kode TimerID = SetTimer menjadi
Selamat mencoba
It’s done…., thanks oom…
btw saya bingung.. modul ini gunanya untuk apa yah?
Atau ada refrensi yang bisa oom share agar saya bisa lebih memahami maksud dibuatnya modul ini…
THNKS AGAIN..!!
Sesuai namanya modul untuk menunda suatu proses, tetapi proses lain tetap bisa berjalan.
Ya agak mirip dengan konsep thread di java (CMIIW)
.
Contoh :
Private Sub Command1_Click() Dim i As Integer For i = 1 To 5 List1.AddItem i Call Wait(2000) ' tunda 2 detik Next i End Sub Private Sub Command2_Click() Dim i As Integer For i = 1 To 5 List2.AddItem i Call Wait(2000) ' tunda 2 detik Next i End SubOm tetap bisa mengklik tombol Command2, walaupun proses perulangan di Command1 belum selesai.
Selamat mencoba
Thanks, Oom, atas penjelasannya.. tapi bukankah di VB.NET juga sudah ada konsep Thread nya sendiri?
Btw saya dah selesaikan coding sesuai dengan petunjuk, tapi sekarang setiap abis reply satu sms akan muncul pesan spt ini oom :
A callback was made on a garbage collected delegate of type ‘System.Windows.Forms!System.Windows.Forms.MethodInvoker::Invoke’. This may cause application crashes, corruption and data loss. When passing delegates to unmanaged code, they must be kept alive by the managed application until it is guaranteed that they will never be called.
Mohon pencerahannya… thanks…
Wedewww mengerikan om pesannya, kayaxnya codenya benar2 unsafe deh
soalnya sy juga belom pernah coba di vb.net mendingan diganti aja deh, seperti kata om coba pelajari lagi konsep thread di vb.net
Ini ada contoh yang bagus.
Selamat mencoba
Mas, kaLo nge-cLose device-nya gimana ya? Matiin fungsi connectToDevice-nya. Hee….
Kok dimatiin, entar enggak bisa konek donk
Hee… Maksudnya, kaLo kita pengen masang Lebih dari satu port misaLny. Bisa dua, tiga, dst. KaLo kita pengen non-aktifin koneksi ke device yang ga ingin kita jaLankan mas.
LaLu, misaL di tengah jaLan koneksinya putus. Indikatornya apa ya. Hee…
KaLo pake Timer, kurang efektif ya kaLo pengen nambah port Lebih dari satu.
Saya jadi bingung meLuapkan daLam bentuk kaLimatnya ini. Maaf ya mas kaLo kurang jeLas.
Kalo mau bisa akses beberapa port sekaligus ya otomatis menggunakan array (var objGsmOut, objGsmIn, combo port, timernya) semuanya dijadikan array.
Klo ngirim manual ada indikatornya enggak ya?
Klo enggak salah ActiveXpert SMS punya method QueryStatus di coba aja.
Ya itulah kekurangan ActiveXpert SMS enggak punya event untuk mengecek sms masuk, otomatis ya harus pake timer.
Sory yo enggak bisa ngasih sample, soalnya lagi “sibuk coding demi sesuap nasi”
OK suhu.
Tak uji nyaLi duLu. Eh, uji coba duLu.
Selamat mencoba
mas,, sy kan pakai hp nokia 5800 sebagai modemnya…
kira2 ada tamabahan ga atau ada yang perlu dirubah ga di codyng vb nya…
kalo ada tolong kasih tau ya mas……
Kurang tau nih om, yg penting cari info aja hp nokia 5800 udah support AT+COMMAND enggak
bang ko Toolkit yea trial g full versi,,,, punya Cr4ck ya g …. !!
Enggak om
salam sukses!!
mas, saya sedang menulis TA, kebetulan tema yg diambil sms gateway. saya boleh ngobrol2 byk tentang ini ga mas kepada mas sendiri??
klo boleh tau alamat YM, atau facebooknya?
YM : k4m4r82
Tapi sory yo om, sy jarang OL
klo alamat FB nya blh tau juga gaaa?
Ini om
bos maw nany kondisi objGsmIn.lasterror = 0 itu terjadi kapan ya? kq ane pke ericsoon k320i pke storage any, device maupun SIM ndk kebaca smsny.. dan kondisi ObjGsmIn.laterror = 23140 trus.. kira2 napa ya bos..
LastError = 0 artinya sukses mengirim sms, klo 23140 setelah sy cek kok enggak ketemunya ya? jangan2x sy salah ketik lagi
Atau om bisa cek langsung di ActiveXperts Error Codes.
Mas,nanya ya. Aku dah donlot ActiveXpert,aku coba aplikasi vb.net yg udah jadi(project bawaan).
HP saya Soner W580,dan smsnya jalan,bisa terkirim dan diterima di hp.
Tapi untuk contoh aplikasi di atas,saya jalankan kok loading start/stop terus ya.
Padahal udah terdetek com port dan tipe handphone nya. Mohon penjelasannya.
Trima kasih
Iya om soalnya contoh aplikasi diatas udah otomatis membaca dan mengirim sms secara otomatis.
Untuk tombol stop sifatnya aktif/non-aktif jadi klo lg ada proses otomatis tombolnya menjadi non-aktif, tunggu aja beberapa detik nanti tombolnya aktif sendiri kok.
Mas, aku ari. mau tanya nih..kok kadang activeXpert suka generic open port error ya?cara benerinnya gmn ya mas kira2?aq pake modem wavecom M1206B yg USB. Apa mungkin gara2 USB nya?klo di resend baru akhirnya terkirim.mohon bantuannya ya..ke email sy di: ari_ns1504@yahoo.co.id
Mungkin ada aplikasi lain om yang mengakses port modemnya
mas, saya boleh minta sreenshot hasil apliksi yg didemokan oleh mas??
Loh bukannya diatas udah ada sreenshot demo aplikasinya om
tu kan pake vb ya om, klo selain pake vb bisa ga??
Bisa om, untuk lengkapnya coba cek disini.
mau tanya lagi om, bedanya activexpert dengan menggunakan gammu apa ya? bagaimana perbedaan secara detailnya? klo dilihat kok mudah pake gammu ya
Klo gammu berupa service om sedangkan activexpert sms berupa activex dll.
Memang sih klo cuma dilihat mudahhan gammu, klo ada sms masuk tinggal cek tabel inbox untuk mengirim tinggal insert ke tabel outbox, tapi masalahnya gammu kan terbatas dukungannya databasenya, beda dengan activexpert sms mau pake database apa juga enggak masalah.
Maaf Pak bisa tahu bagaimana cara mengambil status reportnya, terkirim atau tidaknya msg, terima kasih
Coba gini om :
Private Sub cmdSend_Click() Dim objGsmOut As ASmsCtrl.GsmOut Dim objGsmConst As ASmsCtrl.Constants Set objGsmOut = New ASmsCtrl.GsmOut Set objGsmConst = New ASmsCtrl.Constants objGsmOut.Activate SERIAL_NUMBER objGsmOut.device = "DEVICE_MODEM" objGsmOut.deviceSpeed = 0 objGsmOut.RequestStatusReport = True ' di set true objGsmOut.MessageType = objGsmConst.asMESSAGETYPE_TEXT_MULTIPART objGsmOut.MessageRecipient = phoneNumber objGsmOut.MessageData = msg objGsmOut.Send If objGsmOut.LastError = 0 Then ' Success Call Wait(20000) ' tunggu 20 detik objGsmOut.QueryStatus If objGsmOut.LastError = 0 Then Debug.Print "Status pengiriman: " & objGsmOut.GetStatusDescription(objGsmOut.StatusCode) End If End If End SubSelamat mencoba
O ya berhasil Pak
, terima kasih
Oke om sama2x
kak, kalau saya mau buat sms gateway ini untuk memberitahukan kejadian penting yg terjadi, katakanlah peringatan, bisa tidak ya kalau dikirimkan keribuan pengguna nomor di indonesia, dengan syarat mereka harus registrasi ke nomor yg telah kita siapkan agar nomor mereka terdaftar kedalam dabes secara otomatis, kemudian bila ada peringatan, maka si operator langsung mengirim pesan saja… trima kasih…
Yg jelas bisa om, tinggal kembangin aja source diatas.
Nah masalahnya untuk mengirim ke ribuan pengguna ini nih yg belum pernah sy coba
.
Tapi klo mau coba juga, cari modem sms yg bagus misal WaveCom trus waktu mau ngirim loopingnya jangan langsung ribuan nomor batasi aja misal 20 nomor sekali kirim dan jangan lupa nomor2x yg udah dikirim dikasih status.
Selamat mencoba
klo send sms ke banyak nomor coding nya gimana om???
Sama seperti diatas om, tinggal perintah ngirim smsnya dimasukkan kedalam perulangan
waduh, aku gak bisa om.. kok susah banget se?
Tinggal jalanin aja kok om sourcenya masa’ gitu aja ribet, gimana klo disuruh buat
Assalamu’alaikum Wr.Wb.
mas…. tolong saya nich…!!!
saya sekarang lagi skripsi dan kebetulan tentang masalah sms gateway….
berikut judul skripsi saya…
RANCANG BANGUN SISTEM INFORMASI NILAI SISWA BERBASIS SMS GATEWAY MENGGUNAKAN WEB
kalau sekiranya mas punya artikel lengkapnya tolong di uploadkan dong….!!! soalnya aku pengen tau cara membuatnya… tapi saya g tau sama sekali tentang SMS Gatway ini…!!! mohon dengan sangat yach… mas…!!!
Wassalamu’alaikum Wr.Wb.
Klo basis web pake gammu om, mungkin om bisa coba artikel ini tentang pengenalan gammu.
makasih tutornya, kan saya coba aplikasikan di sekolah….! mohon do’anya, hehe
Oke om semoga sukses
kalau memakai lebih dari 1 modem gimana caranya?
Ya tinggal dijadikan array om objeknya
maksudnya supaya bisa reply otomatis secara simultan
atau bs sending secara simultan gitu….
klo cm dijadiin array langsung bs apa om
Yg pernah sy coba satu modem utk nerima dan satunya lagi buat balas
kalau buat balasnya pakai lebih dari 1 modem gimana kira2?
trus misalkan sending ke 1000 nmr, itu sendingnya pakai lebih dari 1 modem, misal 4 modem bisa sending secara simultan ke 1000 nmr tersebut?
Ya tetap aja menggunakan array om, kan nanti diprogramnya untuk masing2x modemkan udah dikasi penanda yg mana untuk menerima dan membalas.
Trus waktu ada sms masuk langsung aja dikasih penanda juga nanti membalasanya pake modem yang mana.
Misal klo ada 1000 sms berarti dibagi aja 4 :
Modam 1 -> 250
Modem 2 -> 250
Modem 3 -> 250
Modem 4 -> 250
CMIIW
mas kalo bahasa pemrogramannya pakek delphi 7 gimana? karena aku baru belajar n pingin bisa makanya aku buka terus blog anda karena aku berharap anda mau bagi-bagi ilmu ama aku. makasih n tolong jawabannya
Untuk delphi 7 juga bisa kok om, coba lihat disini
Mas,mau tanya kalo penerimaan&pengiriman mms gateway gmn ya.
Dimana hp server dhubngkan dg pc server lalu bisa mengirimkan k hp clien.dg ctatan di pc server g di instal dg hp server tp menggunakan AT+Command biar operasinya g dijalankan scra manual.
Mohon bantuannya mas.
Tugas akhir saya tentang sistem monitoring ruang kerja scra streaming berbasis web dan mms gateway.
Kalau web,dll udah jalan,tinggal mms gateway yg jd kendala.
Tlg di emailkan k sobeb_17@yahoo.co.id
Partisipasi mas sangat saya harapkan untk meringankan beban ini.
Terima kasih
Sy paling tidak suka klo ditanya jawabannya minta diemail.
Ada kaidah yg baik om dalam belajar “Ilmu itu didatangi, bukan mendatangi“.
Om coba dulu program diatas, sy yakin klo sudah dicoba sedikit banyaknya om akan punya gambaran bagaimana menyelesaikan masalah om.
Atau klo om sudah terbiasanya memprogram berbasis web om bisa mencoba solusi lain yaitu menggunakan GAMMU.
Coba aja cari referensinya dengan keyword GAMMU+PHP, meluangkan waktu mengklik satu2x link hasil pencarian juga sy anggap sebagai proses mendatangi ilmu.
Ok om.
Hehe
om pernah bikin mms gateway g?
Yg jelas pake komponen diatas bisa kok om, contohnya ada disini.
thx om
Yuph sama2x om
Pak dosen, bagi ilmu cara mnegirim perintah USSD ke siemens C55 dong….
Matur Tangkyu
Udah ada yg nanya om diatas, coba dicek lagi.
om,blognya mantap pisan,..!!tp apakah lulusun smp sperti saya apa bisa membuat program sms gateway,?mohon bimbinganya ya om,..!!walapun agak membuat kepala pusing,apa itu SQLite/database tp asik juga nih buat nambah2 ilmu,..!!klw progran yg tinggal instal z ada ga yah?
Yg jelas bisa om, trus pelajari dulu basic2x pemrogramming untuk databasenya bisa nyusul
om ada contoh source sms gateway yang menggunakan lebih dari 1 modem?
untuk mengakses menu kartu sim kodenya gimana om?
thx b4….
Makasih om bagi-bagi ilmunya…,newbie mau tanya om… untuk membuat paket instalasi VB+SQlite dengan inno setup caranya gimana om? kalo di tutor Om yang sebelumnya khan dengan menggunakan MySQL versi non installer.., ya pinginnya pada saat user instal aplikasinya tinggal pencet next dan next
tanpa perlu setting database. Makasih ya Om..
db SQlitenya dianggap aja seperti file biasa om, jadi enggak perlu ada konfigurasi khusus
om bisa tolong bikinin sms gateway project.vbp buat ngisi pulsa mkios ga
1. conection comport
a. combobox buat milih comport
b. botton conect
c. label status conect / disconect comport
2. dial number isi pulsa
a. textbox1 buat masukan no hp yang di isi
b. combobox buat milih nominal pulsa (5,10,20,25)
c. botton kirim, simpan, print dengan perintah:
- dial *777*NO_HP*NOMINAL*PIN#
expl. *777*081234567890*10*1234#
- menyimpan transaksi di data base.mdb
- print struk kecil
d. label status berhasil / dengan msgrib
sebelumnya matur nuwun dan kirimin project.vbp nya ke emailku ya om. thannnkkkkkksss
Enggak sempat om
thanks inponya n slam knal om…
Salam kenal juga om
itu komponennya trial ya ?
Udah full om
makasih gan, tutorialnya mantap…… mampir juga di blog saya gan .!!!!!!!!!!!!1
Pak mau tanya, ini kan saya pake hp nokia 5800 waktu tak jalanin aplikasi sms gatewaynya untuk ngirim bisa tapi untuk baca smsnya kok ga bisa. Kenapa ya? Bisa mohon pencerahannya. Tolong pak ya. txs
Pilihan storagenya ganti SIM om
ok tak coba dulu maksih banyak pak, tapi ntar klo ga bisa q comment lagi ya pak. txs.
Pak aku sudah coba ganti STORAGE nya pake yang SIM tapi tetep kok ga bisa ya. tolong ya..
Klo pilihan STORAGE nya sudah diganti DEVICE tp tetap enggak mau juga berarti mungkin hape om enggak disupport, kerena memang ada beberapa jenis hp yang hanya support untuk menerima saja atw menggirim saja.
Oh gitu ya pak, aku sudah coba storage tiga2nya tp tetep ga bisa. makasih ya infonya. klo datanya ditampilin ke listview gmn ya codingannya?. maaf tanya terus, soalnya lagi belajar vb nih pak.
Klo mau nampilin di Listview coba meluncur kesini om
Terima kasih banyak pak.
sama2x om
ActiveXpert SMS?…bisa nggak kalo pake mscomm saja, buat emparsing n more?…jd ngk usah ketergantungan ma komponen, yg ada ma…, komponen kena virus aplikasinya ngeload virus deh…,n musti install ActiveXpert SMS lg….think aboout it brow…..
Kelamaan om, programmer itu juga sama seperti dokter ada spesialisasinya ada yang fokus ke pemrograman grafis, database, hardware dll.
Sy jarang sekali ngeliat ada ada virus yang kurang kerjaan menginfeksi file dll/ocx klo pun ada itu pun mungkin buatannya om
so bikin komponen anak negeri sendiri….jd usah pake GAMMU,ActiveXpert SMS, atw ya berbau komponen asing….buktikan loe emg VB man sejati….brow…lets make original engine from indonesian VB…salam M??Editor
Sy setuju banget om tapi spesialisasi sy bukan ke pemrograman ActiveX DLL/Control (klo sy mau ini gampang sekali om) spesialisasi sy lebih kearah pengembangan sistem informasi.
Seorang dokter suntik sejati kan enggak harus bisa buat alat suntiknya yg penting bisa makenya.
Klo ukuran sejatinya harus bisa buat alat suntik, di negeri kita jadi kekurangan doktek suntik donk om
Pak, saya ud download and mau dicoba, tapi baru klik start_button ud error, ” user -defined type not defined” di Dim objGsm As ASmsCtrl.GsmOut pada line 1 Connecttodevice, apakah ada yang kelewat yang harus dilakukan, Add Reference AsmsCtrl.dll dkk sudah dilakukan… Mohon pencerahannya – baru belajar vb6…. Thanks
Setelah file SMSGateway.rarnya diekstrak lakukan langkah2x berikut :
1. cek folder dll didalamnya ada file install atw install.cmd, jalankan file tersebut
2. buka source sms gateway kemudian klik menu Project -> References… harusnya library ActiveXPerst SMS … dan dhRichClient3 sudah tercontreng otomatis
Lihat gambar
permisi omm….
sebelumnya maaf ya kalau pertanyaan/permintaan saya agak gak tau diri..
ini kan bahasanya pake visual basic, ada yang visual C# nya gak omm..?
btw saya pake ActiveXperts yang SMS and Pager Toolkit
*Visual C# .NET
Kan library ActiveXpert SMSnya masih dibisa dipake om di C#.
Ini sy coba di C# 2008, masih bisa :
private void ReadSMS() { ASmsCtrl.GsmIn objGsmIn = new ASmsCtrl.GsmIn(); objGsmIn.Activate("XXX-XXXX-XXXX-XXXXX"); objGsmIn.Device = "COM4"; objGsmIn.DeviceSpeed = 0; //default = 0 objGsmIn.Storage = 0; //0=sim 1=device 2=any objGsmIn.DeleteAfterReceive = 1; // hapus klo udah dibaca objGsmIn.Receive(); if (objGsmIn.LastError == 0 || objGsmIn.LastError == 23140) // Success { objGsmIn.GetFirstMessage(); while (objGsmIn.LastError == 0) { listBox1.Items.Add("Pengirim : " + objGsmIn.MessageSender); listBox1.Items.Add("Isi SMS : " + objGsmIn.MessageData); objGsmIn.GetNextMessage(); } } }sebelumnya makasi banyak ya omm udah mau ngerespon
maaf ngerepotin,, ini saya mau tes dulu ya omm
ada lagi ni pertanyaannya,, kan yang om pake tuh activexperts yang Mobile Messaging Toolkit
nahh saya pakeknya yang SMS and Pager Toolkit (kompeni maunya pake yang legal. dulu udah beli soalnya)
kira2 yang ini bisa konek ke database gak ya om? soalnya saya udah cari2 di manualnya..gak nemu soal konek ke database
trus saya pengen jadiin multiport.. ada masukan..? atau ada pengalaman pernah pake yang ini?
Library ActiveXpert SMSnya kan enggak ada hubungan dg database om, fungsinyakan cuma untuk membaca dan mengirim sms.
hoo..iya sih..
brarti harus pake yang SMS Messaging Server dong ya..supaya dia bisa multiport juga..?
oke deh omm.. makasi banyak ya!! :-bd
Oke sama2x om
Pak, salam kenal saya juga termasuk yg terdampar di sini setelah sekian lama googling
terimkasih.
Saya tertarik untuk mencoba tapi masih belum tahu cara dapetin yg ini :
“Activate “XXX-XXXX-XXXX-XXXXX” ‘diisi serial number yg Anda dapatkan secara ilegal”
maaf mungkin terlalu ndeso pertanyaannya
Coba link ini om.
Makasih Pak, programnya sudah bisa di run dan konek dg HP siemens
Terus untuk mengakses datanya kira2 pakai keyword sms apa ya? Jazakallah.
Coba dibaca lagi om postingan diatas kan sudah disebutin keyword apa saja yg bisa digunakan.
Okay Om, maaf bacanya kecepetan
jadi keywordnya terlewatkan. Programnya sudah sukses merespon keywordnya dan mengirim sms tapi dengan cara edit status sms in yg sudah ada di databasenya menjadi 0 . Soalnya sms yg dikirim belum berhasil di retrieve oleh programnya. Kira2 problemnya ada di mana ya Om? Jazakallah.
Sy jadi bingung
Trus
Bukannya merespon keywordnya itu sama prosesnya dg retrieve om ???
Maksude Om.. SMS yg di HP tdk bisa di retrieve (tdk terbaca) jadi gak masuk ke Data Base. Kemaren itu coba2 edit statusnya SMS in yg bawaannya program
Thx
Coba pilihan storagenya diganti SIM om
Masih belum bisa Om..
Ganti hp aja om
, soalnya sy juga baru coba di hp siemens c55 dan modem wavecom
Ow gitu om ya
.. tapi saya masih penasaran nih. Maaf, soalnya kalo pake program lainnya bisa berjalan normal. Apakah mungkin komponen ActiveXpert SMS nya ga support utk HP yg saya pakai ya?. Saya pakai SIEMENS S57. Thx
Oke om coba cek fungsi readSMS, trus ganti :
Menjadi :
Klo udah dicoba lagi programnya n coba satu2x pilihan storagenya
Alhamdulillah, Om Master problemnya sudah solved. Boleh tahu penjelasannya Om. Thx
Ya bug aja sih om, seharusnya memang
Properties Storage mewakili tempat disimpannya SMS
cmbStorage.ListIndex = 0 -> SIM
cmbStorage.ListIndex = 1 -> Storage/Phone
cmbStorage.ListIndex = 2 -> Any (SIM/Phone) cuma enggak semua hp mendukung fitur Any
Makasih Om petunjuknya.. sekarang penasaran pengen bisa customize responnya and bikin keyword baru lainnya
Oke om slamet berexplorasi
Mas Kalo SMS Gateway buat transfer pulsa gimana yah, trus gax masalahkan kalo pake HP Nokia?
Tolong Balasannya yah..
Batasan aplikasi transfer pulsanya sampe mana om ?
Untuk hp nokia selama masih mendukung at+command seharusnya enggak masalah
Bang, itu pake vb6 ya.. Kalo pake vb.net ada ga tutornya?? Soalnya saya dari awal langsung belajar vb.net, jadi saya ga paham dengan vb6.. Mohon dibantu ya.. tq sebelumnya..
Gampang om, tinggal buka aja project diatas menggukan vb .net 2003 atw 2005
mas saya coba menjalankan sms gateway tapi pas saya terima sms kok tidak dapat masuk ke tabel sms_in ya.. mohon pencerahanaya
Udah ada yg nanya om, coba dicek lagi komentar diatas mulai dari komentar #162
Terima Kasih OM Aku udah nyoba sukses… tinggal coba2 dikembangkan.. Matur nuwun..
Sama2x om
Serial Number yg mas kasih buat apa ya??
Saya baru mau bikin nih programnya
Can’t Find Project or Library, kurang apa ya?
Coba sample lengkapnya disini om.
Yg td udah…
trus yg ini ga bisa
Dim objGsm As ASmsCtrl.GsmOut
Emg pesan errornya apa om?
Sy sdh pernah bikin,untuk kirim smsnya sdh bisa
trus kalo mau membaca isi sms yg ada di sim card untuk ditampilkan ke listview atau disimpan ke database gimana?
Klo untuk menampilkan data ke ListView om bisa coba postingan saya yg disini.
kalo yg om postingin sdh biasa sy bikin maksudnya sms yg ada di simcard mau dibaca lewat listview atau bs disimpan ke database trus bs ditampilkan jg ke listview…
Mohon bantuannya om….mksh sblumnnya..
Di postingan diatas kan sudah ada prosedure readSMS om, isinya membaca sms yg ada disimcard trus menyimpan kedatabase.
Berhubung om sudah berpengalaman menampilkan data dg listview jadi enggak perlu kita bahas kan ?
wah…, nice share boz…, smoga ilmu ada terus bertambah seiring byaknya ilmu yang anda share… good luck
Amin
Om Mau tanya lagi ne om kalo untuk menampilkan no telepon yang tersimpan di HP ke grid codingnya seperti apa om.. terima kasih sebelumnya..
Coba luangkan sedikit waktu untuk membaca komentar diatas om, sudah ada yg nanya cek komentar #45 dan #46
Terima kasih buat tutorialnya ane coba dan sukses, mo nanya Om, kalo database-Nya pake MYSQL, gimana yah om???udah download tool2-Nya : mysql, mysql-connector-odbc trus pake VBMySQLDirect, udah dicoba2, loading-Nya lama, trus akhirnya gak konek ke hp,
trus Om masih bingung di procedur readSMS, buat ganti metode CreateCommand kalo pake MYSQL apa yah???
Artikel sy yg disini juga bisa diterapkan untuk MySQL om, disitu sudah ada contoh untuk INSERT, UPDATE, DELETE dan SELECTnya
Untuk konektornya pake MySQL ODBC Connector aja
Salam kenal, Mas trimakasih atas tutornya sy minta database smsnya dunk biar buat belajar
Download disini om.
wah … seruuuu ….
jadi pengin ikutan nyoba … pak ustadz
masalahnya saya pake delphi7, sedangkan pak ustadz pke vb … adakah tutorialnya yg pke delphi7 ….
thx ustadz …
tambahan ustadz …
saya pke delphi7, mySQL & koneksinya pke DACforSQL (mySQLDAC)
thx
Untuk sample delphi bisa dicek disini om.
Terima kasih Om atas jawabannya, udah saya coba om, cuman kok gak konek2 yah pas diintegrasikan ke Mysql, jadi bingung saya, host, user, password ama database udah disetting, errornya dimana lagi, mo pake cCommand diatas gak bisa (itukan buat sqlite yah om gak bisa dipake buat yang lain)???
Ya jelas enggak bisa om, klo databasenya mysql membutuhkan MySQL ODBC/Connector.
Sudah banyak sekali om artikel yg membahas masalah ini, coba digooling dulu.
Ok…. Om, dah dicoba, cuma masih bingung om kalo formatnya 3 kata gimana ya om, misalkan seperti ini : total#nama_barang#qty????mentok di metode getBalasanSms, udah dicoba, kalo format tidak sesuai balasan smsNya tampil (“keyword salah”), tapi kalo format sesuai malah balasan smsNya kosong (Bingungnya disini-nih). Om minta solusinya dong seperti apa souce codeNya,…
Terima Kash…
Emg kode yg udah om buat seperti apa ?
Code-nya sama kaya yang Om kasih, cuman dimodifikasi aja sih, tapi terima kasih om udah berhasil… diobok2, cari sono-cari sini refrensinya, heheheheeeee. yang masih bingung sih nampilin data sms input ke dalam DataGrid kok gak bisa update2 yah, paling berubahnya kalo form udah dimattin terus dibuka lagi baru data terbaru tampil, pake yang ini nih om :
strsql = “SELECT * FROM t_jual ORDER by ID ASC”
rs.open conn, adOpenStatic, adLockOptimistic
dataGrid1.dataSouce = rs
datadataGrid1.refresh
kok gak bisa yah Om????
Jadi gini aja misal tambahkan prosedure baru misal dg nama LoadData :
Private Sub LoadData() strsql = "SELECT * FROM t_jual ORDER by ID ASC" rs.open conn, adOpenStatic, adLockOptimistic dataGrid1.dataSouce = rs datadataGrid1.Refresh End SubTrus tinggal panggil di event Form_Load dan pada saat sukses insert ke tabel sms masuk
Om.. mau tanya neh ? gimana tuh cara nambah PORT nya ?? soalnya PORT modem saya nomer COM11 dan itu cuman nyampe port COM6 aja ?? tolong om bingung neh
Masa’ gitu aja udah bingung om, gimana klo menghadapi kasus yg lebih rumit.?
Coba pilih objek cmbPORT trus cari properties List, tinggal ketik aja port COM11 nya disitu
Salam kenal mas. terma ksih tutornya.. udah saya coba, tapi koneksi ke dbasenya gagal.kira2x mslahnya d mna ya mas?
Mungkin ada librarynya yg belum didownload om, coba kesini dulu.
ikut nimbung pak dosen. Keluar dari tema nih. activeXpertSMS bisa kirim sms dengan panjang lebih dari 160 karakter (1sms) ga? mohon pencerahanya. maturnuwun….
Yang jelas bisa om, sy udah coba bisa ngirim sampe 500 karakter lebih
om saya mau tanya.. sebelum saya koneksikan ke komputer di inbox sudah ada isinya setelah saya koneksikan ke komputer secara otomatis membaca sms di inbok tapi berulang-ulang tida berhenti.. mohon pencerahanya.. jadi di sms_in datanya double2..
Seharusnya setelah baca inbox sms langsung dihapus om, biar enggak double2x
untuk prosesdur hapus inbox setelah terbaca sudah saya aktifkan dan saya coba tetep aja baca sms inbox terus padahal di sms inbox sudah kosong om.. mohon pencerahanya lagi om.. untuk prosedurnya sama persis dengan kode yang di atas.. saya saat ini menggunakan hp sony ericson G502 dan W300i..
tapi kalau hp saya konekan terlebih dahulu ke komputer terus ada sms masuk itu gak maslah lancar2 saja.. berjalan normal..
Klo untuk prosedur baca smsnya memang diset om setiap beberapa detik, maklum komponenya belum ada fitur notifkasi sms masuk jadi ya harus diakalin menggunakan timer.
om dah punya code untuk modem cdmanya ??
Lom om, soalnya enggak punya modem cdma jadi enggak bs coba
Assalamu’alaikum akhi,
minta bantuannya donk. Ane lagi bikin SMS Gateway juga, ane masih bingung di koding buat ngebaca SMS masuk & menyeleksi format SMS yg masuk tp pke Gammu & VB6. jadi rencana ane mo bikin format SMS:
1. REG#NIS#Nama#Kelas
2. UNREG#NIS
3. SARAN#Isi Saran
ane udah baca koding antum di atas tp masih bingung ngedit kodingnya, harap maklum ane masih newbie, jadi masih bingung query2 dan kode dalam VB.
ane juga udah terlanjur pake Gammu.
Langsung query aja akh ke tabel inboxnya
query yg dipake SELECT CASE akh??
Iya nyeleksinya tetap pake select case
Private Sub readSMS() Dim keyword As String Dim arrKeyword() As String strSql = "SELECT id, textdecoded " & _ "FROM inbox " & _ "WHERE processed = 'false'" Set rs = New ADODB.Recordset rs.Open strSql, conn, adOpenForwardOnly, adLockReadOnly If Not rs.EOF Then Do While Not rs.EOF keyword = "" & rs("textdecoded").Value If InStr(1, keyword, "#") > 0 Then arrKeyword = Split(keyword, "#") Select Case UCase$(arrKeyword(0)) Case "REG" Debug.Print "NIS : " & arrKeyword(1) & ", Nama = " & arrKeyword(2) & ", Kelas = " & arrKeyword(3) Case "UNREG" Debug.Print "NIS : " & arrKeyword(1) Case "SARAN" Debug.Print "Saran : " & arrKeyword(1) End Select Else ReDim arrKeyword(0) arrKeyword(0) = keyword End If ' update pesan yg sudah diproses strSql = "UPDATE inbox SET processed = 'true' WHERE id = " & rs("id").Value conn.Execute strSql rs.MoveNext Loop End If rs.Close Set rs = Nothing End SubTrus tinggal panggil prosedur ReadSMSnya dari objek timer
ane coba dulu, syukron akh
ane coba dulu, syukron akh
Yuph
Permisi mas…numpang tanya..
gmna cara nya agar bisa kirim secara simultan dengan bbrpa modem ya?
bisa mnta dibuatkan contoh array nya ga? terima kasih sblm nya
Coba tes seperti ini dulu om :
Private Sub cmdTest_Click() Dim objGsm(1) As ASmsCtrl.GsmOut Dim arrModem(1) As String Dim i As Integer Dim manufaktur As String arrModem(0) = "COM1" arrModem(1) = "COM2" For i = 0 To UBound(objGsm) Set objGsm(i) = New ASmsCtrl.GsmOut With objGsm(i) .Activate "SERIAL NUMBER" .Device = arrModem(i) manufaktur = .SendCommand("AT+CGMI", 500) manufaktur = Replace$(manufaktur, vbCrLf, "") manufaktur = Replace$(manufaktur, "OK", "") manufaktur = Replace$(manufaktur, "ERROR", "") End With Debug.Print "Manufaktur : " & manufaktur Next i End SubContoh diatas dg asumsi menggunakan 2 modem
makasihh pak atas tutornya saya sudah coba ternyata tidak ada masalah, cuma saya ada sedikit pertanyaan pak mohon bimbingannya: bagaimana jika pulsanya habis untuk hp yang digunakan sms gateway-nya bisakah aplikasinya memberitahukan ke no hp yang lain untuk coding di vb-nya bagaimana?
Sekali lagi makasih pak..!
maaf pak pertanyaannya saya ulang, maksudnya bagaimana jika pulsanya habis aplikasinya otomatis bisa memberitahukan misalnya pake alarm atau kirim email, bisa dibantu kasih codingnya pak. makasih sebelumnya.
Untuk mengcek pulsa coba gunakan perintah AT+CKPD=keys,timepressed,pause.
Contoh klo menggunakan kartu simpati dengan perintah : *888#
Private Sub cekPhonebook_Click() Dim objGsm As ASmsCtrl.GsmOut Dim phoneBook As String Dim ret As String Set objGsm = New ASmsCtrl.GsmOut With objGsm .Activate SERIAL_NUMBER .device = cmbPORT.Text ret = .SendCommand("AT+CKPD=" & Chr(34) & "*888#" & Chr(34) & ",3,10", 1000) End With Set objGsm = Nothing Debug.Print ret End SubMasalahnya adalah hasil perintah diatas tidak masuk ke inbox tapi langsung nampil ke layar, sehingga sulit untuk diproses lebih lanjut.
maaf mas..numpang tanya..knp coding autoreply sya ga berfungsi yah? apa nya yg slah..jd bingung
‘======================================================================
Public Sub CekSMS()
Dim keyword As String
Dim arrKeyword() As String
Dim xPesan As String
Dim cmd As cCommand
Dim xFormat1 As String, xFormat2 As String, xFormat3 As String
SQL = “Select * From Inbox WHERE status = ’0′”
Set RS = Cnns.OpenRecordset(SQL)
If Not RS.EOF Then
Do While Not RS.EOF
keyword = RS(“isi_reply”).Value
If InStr(RS(“No_tujuan”).Value, “+62″) = 1 Then
xNomor = “0″ & Mid(RS(“No_tujuan”).Value, 4)
ElseIf InStr(RS(“No_tujuan”).Value, “08″) = 1 Then
xNomor = RS(“No_tujuan”).Value
Else
xNomor = RS(“No_tujuan”).Value
End If
If InStr(1, keyword, “#”) > 0 Then
arrKeyword = Split(keyword, “#”)
Select Case UCase$(arrKeyword(0))
Case “REG”
xFormat1 = arrKeyword(1)
xFormat2 = arrKeyword(2)
xFormat3 = arrKeyword(3)
xPesan = “”
xPesan = “Terima Kasih ” & xFormat1 & ” Sudah Melakukan Registrasi” _
& “(SMS Center Kenjisoft Indonesia).”
‘Input Data User
‘SQL = “INSERT INTO user (Nama, No_HP, Alamat) VALUES (?, ?, ?)”
‘Set cmd = Cnns.CreateCommand(SQL)
‘With cmd
‘.SetText 1, xFormat1
‘.SetText 2, xNomor
‘.SetText 3, xFormat2
‘.Execute
‘End With
‘Set cmd = Nothing
‘Input ke outbox
SQL = “INSERT INTO outbox (No_tujuan, isi_reply, tanggal, jam) VALUES (?, ?, ?, ?)”
Set cmd = Cnns.CreateCommand(SQL)
With cmd
.SetText 1, xNomor
.SetText 2, xPesan
.SetDate 3, Format(Now, “yyyy/MM/dd”)
.SetTime 4, Format(Now, “hh:mm:ss”)
.Execute
End With
Set cmd = Nothing
Case “UNREG”
Debug.Print “Nama : ” & arrKeyword(1)
Case “SARAN”
Debug.Print “Saran : ” & arrKeyword(1)
End Select
Else
ReDim arrKeyword(0)
arrKeyword(0) = keyword
End If
‘ update pesan yg sudah diproses
SQL = “UPDATE Inbox SET status = ’1′ WHERE id = ‘” & RS(“id”).Value & “‘”
Cnns.Execute SQL
RS.MoveNext
Loop
End If
Set RS = Nothing
End Sub
Private Sub Timer7_Timer()
Call CekSMS
End Sub
‘======================================================================
untuk inbox nya dpt terbaca dan langsung diupdate ke status “1″ (sdh diproses)..tp ga mau nginput ke tabel user & outbox nya..knp ya mas?
mksh sblum nya..
Berarti kondisi
tidak pernah terpenuhi alias false terus, coba dibreakpoint aja kode
If InStr(1, keyword, "#") > 0 Then arrKeyword = Split(keyword, "#")untuk melihat nilainya
terima kasih mas…ternyata slah di coding modul sms nya
oh ya..untuk untuk arrKeyword dibuat maximal 3 aja bgamna ya mas?
jdi REG#NAMA#ALAMAT#TANGGAL
jdi klau misal kirim REG#NAMA#ALAMAT saja tanpa TANGGAL…dapat reply salah/gagal registrasi..
sya coba pakai coding sya diatas muncul error nya
Tinggal dicek aja nilai UBound(arrKeyword) nya harus = 3
maaf mas..bisa mnta contoh nya ga?
If InStr(1, keyword, "#") > 0 Then arrKeyword = Split(keyword, "#") If UBound(arrKeyword) = 3 Then ' TODO : lanjutkan pengecekan keyword Else ' TODO : parameter tidak valid End If Else ReDim arrKeyword(0) arrKeyword(0) = keyword End IfMksh mas..udah bisa untuk keyword nya..
tpi ada permslahan baru nih..setlah di compile menjdi file *.exe
setiap aplikasi di close..muncul pesan error yg berbeda2..knp ya?
Error 1: http://i39.tinypic.com/16gwwtt.jpg, Error2: http://i42.tinypic.com/xkwt1d.jpg, Error3: http://i40.tinypic.com/rt3ler.jpg, Error4: http://i41.tinypic.com/2q40ba0.jpg
kira2 knp ya mas? soal nya sblum nya ga muncul error
mksh sblum nya..
Wah ini justru malah keren om, sy jarang2x ketemu yg ginian
Coba nonaktifkan dulu masukkan kode sy yg kmrn mana tau penyebabnya itu
mas saya menggunakan mode flexy net..
source code nya beda atau nggak,?
saya pake cara di atas tapi ttp sj tdk mau konek.modem saya di port 3
Coba cek dulu om, modem flexy nya support AT-COMMAND enggak ?
ok mas saya cek dulu…
kalau lewat hp..tinggal di sambungin lewat usb aja,
atau di setting dulu ??
trmksh untuk infonya…tp klo mw buat sms biar si penerima sms ga bs balas pesan ( menu balas g aktif) gmn ya maz???
Ya tinggal nonaktifkan aja prosedur balas smsnya
trs caranya gmn maz???? mklm masih belajar maz…
Buka sample programnya trus nonaktifkan kode pemanggilan method sendSMS.
Sy harap tidak ada pertanyaan susulan bagaimana menonaktifkan kode program.
Kalo pake multiport kok engga stabil ya… kalo 1 hp lancar jaya.. solusinya gimana om?
Enggak stabilnya dimana ? Klo sy udah pernah coba 2 model 1 untuk nerima yg lainnya utk balas, kayaxnya lancar2x aja
“With objGsmIn.Activate “XXX-XXXX-XXXX-XXXXX” ‘diisi serial number yg Anda dapatkan secara ilegal” mo nanya coding diatas minta serial number maksudnya apaan gan, makasih atas penjelasannya
Serialnya udah include disample programnya om.
om .. itu activeXexpert di http://www.activexperts.com/sms-messaging-server/ trial 30 hari aja .. ada gk yang free …
Klo yg gratis coba yg ini om.
perlu pake komponen file tambahan ga?, saya coba kok ga jalan ya?
ijin bookmark bosss. makasih sharing nya
Siiipp
Silahkan om
Aku dimana??? (Nyasar ke blog ini)
Wah. Wah.. kebetulan nih harus bikin sms gateway.. let’s try..
Doumo Arigatou Gozaimashita…
Sama2x om, mudah2xan sering nyasar kesini
Salam Kenal,
Saya pernah buat smsgateway pake nowsms,
lumayan bagus kok hasilnya dan gak ribet, tapi kendalanya waktu digunakan adalah masalah tarif sms.
Tarif sms yang murah hanya ketika operatornya sama, padahal siswa dan orang tua kan no HP-nya dari operator yang beda2.
Yah,… sekarang dah nggak kepake lagi.
Jika ada temen2 yang mau coba smsgateway pake nowsms coba mampir di http://ptkguru.com/?darmajaya=index&daryono=base&action=listmenu&skins=1&id=412&tkt=2
Makasih….
Tq om buat info linknya
Aslmkm,,
om, ane lgi buat SMS Gateway untuk cek absen siswa dalam 1 bulan.
kebingungan buat code reply smsnya ni om.
mohon pencerahan ya..
Bingung g mana om ? Udah jelas diatas ada sample replay smsnya. Udah dicoba belum om ?
Fokusnya om kan seharusnya cuma buat fungsi untuk mengambil informasi absensi siswa dalam 1 bulan trus memanggilnya di prosedur kirim sms
kalau pake oracle 8i pak, kira2 bagaimana caranya yah?
Bisa om, tinggal ganti aja string koneksinya info lengkapnya coba meluncur kesini.
bang,
mau tanya nih, klo pake komponenen activeXpert bisa buat multi handphone or modem dalam 1 aplikasi gak?
Bisa om tinggal diarray aja object activeXpertnya
mohon contohnya bang…….
please dah yo…..
Contoh untuk 2 modem
Private Sub cmdBacaSMS_Click() Dim objGsmIn(1) As ASmsCtrl.GsmIn Dim device(1) As String Dim i As Integer device(0) = "COM1" device(1) = "COM2" For i = 0 To UBound(objGsmIn) Set objGsmIn(i) = New ASmsCtrl.GsmIn With objGsmIn(i) .Activate "XXX-XXXX-XXXX-XXXXX" .device = device(i) 'disesuaikan dengan port COM yang digunakan .DeviceSpeed = 19200 'default = 0 .Storage = 2 '0=sim 1=device 2=any .DeleteAfterReceive = True .Receive If .LastError = 0 Or .LastError = 23140 Then ' Success .GetFirstMessage While .LastError = 0 Debug.Print "Pengirim : " & .MessageSender Debug.Print "Isi SMS : " & .MessageData 'TODO : INSERT KE TABEL SMS_IN .GetNextMessage Wend End If End With Set objGsmIn(i) = Nothing Next End Subterima kasih banyak kang…….
Sama2x om, wah kayaxnya lagi ada orderan nih
heheheh gak juga kang. cuma mau buatin ortu program kecil buat isi pulsa,,,
nah kang, mau tanya nih, gimana cara mengetahui kata/karakter/angka yang tertulis sebelum tanda silang(“x”) dan jumlah angka yang tertulis setelah tanda silang(“x”) seperti di bawah ini??
karakter sebelum silang1x1
karakter sebelum silang2x10
karakter sebelum silang3x100
karakter sebelum silang4x10
karakter sebelum silang5x5
karakter sebelum silang[n]x[n]
sedangkan jumlah karakter untuk sebelum tanda silang tidak ada batasan jumlah dalam dalam smsnya….
jadi nanti klo di tampilkan dalam listview tampilannya seperti ini
===================================================
No Pengirim |SMS |Jumlah Isi |
===================================================
085643400078 |Karakter sebelum silang5 |5
085643400078 |Karakter sebelum silang4 |10
085643400078 |Karakter sebelum silang3 |100
085643400078 |Karakter sebelum silang2 |10
085643400078 |Karakter sebelum silang[n] |[n]
===================================================
Pake split om :
Private Sub Command1_Click() Dim str As String Dim arrStr() As String str = "karakter sebelum silang3x100" arrStr = Split(str, "x") MsgBox arrStr(0) & vbCrLf & arrStr(1) End Subsekedar share aja untuk USSD, sudah di coba di wavecom sukses..
Private Sub cmdTes_Click() Dim strResponse As String Dim strCommand As String Dim strFields MousePointer = vbHourglass Set objGsmOut = New ASmsCtrl.GsmOut dial = InputBox("Masukan Nomor", "Search Teks Pesan", "*888#") strCommand = "AT+CUSD=1," & Chr(34) & dial & Chr(34) With objGsmOut .Activate SERIAL_NUMBER .device = SERIAL_PORT .DeviceSpeed = 0 End With strResponse = objGsmOut.SendCommand(strCommand, 10000) If (InStr(strResponse, "OK") > 0) Then strResponse = objGsmOut.SendCommand("", 15000) If (InStr(strResponse, "+CUSD:") > 0) Then strFields = Split(strResponse, Chr(34)) strResponse = strFields(1) End If End If If (objGsmOut.LastError = 0) Then TextResponse.Text = "N / A" TextResult.Text = "ERROR #" & objGsmOut.LastError & " (" & objGsmOut.GetErrorDescription(objGsmOut.LastError) & ")" Else TextResponse.Text = strResponse TextResult.Text = "SUCCESS" End If TextResponse.Text = strResponse MousePointer = vbDefault End SubTq om atas sharenya
cara mengetahui serial number nya dari mana masbro..???
agak bingung nih
koneksi ke database gagal. gmna tuh om.? mohon pencerahannya.
Jangan terlalu bersemangat om, sebelum membuka dan menjalankan sourcecodenya baca dulu petunjuk penggunaannya.
omm .. bgaimna dengan kode_aktivasix .. itu bisa dipakekan selamanya ??
Setau sy sih bisa om, coba aja deh tahun komputer om diganti menjadi 2050 masih jalan enggak ya ?
permisi om,mau tanya, modem yang supprot untuk program ini apa ya? saya coba pake modem O2, ga ngerespon, stress aku
Klo O2 kayaxnya memang enggak support om.
hahaaa .. ok dh om .. mantapp …
kang…..
mau tanya lagi…
misalnya, klo dalam 1x pengiriman sms memiliki lebih dari 1 keyword (perbaris per keyword) seperti ini:
tgs#9941224165
tgs#9941224164
tgs#9941224166
tgs#9941224169
atau misalnya dalam kasus saya
S.10.08123456789.1234
S.10.08123455457.1234
S.10.08123455457.1234
atau dalam 1 baris terdapat multi keyword (yang memisahkan tanda koma dalam tiap keyword) contoh:
S.10.08123456789.1234, S.10.08123455457.1234, S.10.08123455457.1234, keyword[n]
kira-kira bisa gak kang??
Ya jelas bisa om, tetap pake fungsi split, selain itu sebaiknya hindari penggunaan spasi
Private Sub Command1_Click() Dim objGsmOut As ASmsCtrl.GsmOut Dim objConstants As ASmsCtrl.Constants Dim pesan As String Dim arrPesan() As String Dim i As Integer Set objGsmOut = New ASmsCtrl.GsmOut Set objConstants = New ASmsCtrl.Constants With objGsmOut .Activate "XXX-XXXX-XXXX-XXXXX" 'SERIAL NUMBER .Device = "COM1" 'disesuaikan dengan port COM yang digunakan .DeviceSpeed = 19200 'default = 0 .RequestStatusReport = False .MessageType = objConstants.asMESSAGETYPE_TEXT 'mengirim pesan maksimal 160 karakter .MessageRecipient = "SMS CENTER PULSA" 'biasanya menggunakan prefix +62 pesan = "S.10.08123456789.1234,S.10.08123455457.1234,S.10.08123455457.1234" arrPesan = Split(pesan, ",") For i = 0 To UBound(arrPesan) .MessageData = arrPesan(i) .Send 'kirim DoEvents Next i End With End Subwah… om admin ini bener2 hebat, semua pertanyaan dilayani dan dijawab dengan baik, saya belum pernah coba buat sms gateway, hanya baru rencana. pun hanya untuk coba2 saja.
sekalian nanya dikit ya om. kalau buat portal SMS semisal sms 4 digit itu /kayak iklan di tipi2 itu pake apa ya om?
Nah itu udah ada info bagus dari om afdoal
maksudnya yang empat nomor tujuan gitu (ex. ketik bla.. bla.. bla.. dan kirim ke: 1234) ??
<< maaf kang admin, tak jawab
empat nomor itu klo gak salah istilahnya premium number (itupun klo gak salah….)
dan utuk dapatinnya, main2 aja ke kantor provider2 yang ada
Oke om sippp, klo bisa sering2x aja
kang….. tanya lagi nih
gimana menggunakan fungsi instr untuk menegcek text/sms yang masuk??
Misalnya:
strValidKarakter=”.”, “Angka 1-9)
text/SMS yang benar adalah terdapat karakter strValidKarakter
apabila tidak ada karakter2 tersebut maka Salah
klo textnya = “ab123cd9e” dianggap benar enggak ya ?
yang di boleh kan:
Angka: 1-9
Tanda : “.”, “#”, dan “$”
Coba gini om :
Private Function isValidMsg(ByVal msg As String) As Boolean Dim strValid As String Dim pos As Integer Dim i As Integer strValid = "0123456789.#$" isValidMsg = True For i = 1 To Len(msg) pos = InStr(strValid, Mid$(msg, i, 1)) If pos = 0 Then ' ilegal karakter isValidMsg = False Exit For End If Next i End FunctionContoh :
Private Sub Command1_Click() Dim msg As String msg = "123456889#." Debug.Print isValidMsg(msg) ' output true msg = "123a45X6889#." Debug.Print isValidMsg(msg) ' output false, karena ada karakter a dan X End Subwadow…..
saya juga buat fungsi yang sama dan bedanya saya gak pake perulangan (maksudnya gak kepikiran tuk make perulangan). pantas aja dari kemarin gagal terus…………
terima kasih banyak kang…/.
case Close
Yah itulah bedanya antara yg udah expert dan expret
satuju…………………..
hehhehehe
om cara dapetin activex ASmsCtrl gimana ya?
Download disini om.
salam knal mas,
mau nanya,,, Itu berarti aplikasi nya mesti reload setiap beberapa deti g? buat ngecek sms d database untuk d kirim….?
maaf nubi
Iya om betul sekali
Salam kenal mas.
mas saya bikin sms gateway tp slalu error kalo kirim sms lebih dari 160 karakter,saya pake comport
ComPort1.Open;
ComPort1.WriteStr(‘at+cmgf=1′+#13#10);
ComPort1.WriteStr(‘at+cscs=”GSM”‘+#13#10);
ComPort1.WriteStr(‘at+cmgs=”‘enomor.text’”‘+#13#10);
ComPort1.WriteStr(eisi.Text);
ComPort1.WriteStr(#26);
mohon pencerahanya dong.
terimakasih
Klo displit aja g mana om ? Jadi klo lebih dari 160 karakter dipecah menjadi 2 sms
displit gmana mas, maaf nubi
kalo dipecah berarti jika smsnya lebih dr 160 karakter jadi 2 sms gt mas?
bs dicontohkan ?
Tambahkan fungsi berikut :
Private Function pembulatanKeAtas(ByVal X As Double, Optional ByVal Factor As Double = 1) As Double Dim temp As Double temp = Int(X * Factor) pembulatanKeAtas = (temp + IIf(X = temp, 0, 1)) / Factor End Function Private Function splitMsg(ByVal msg As String, ByVal maxKarakter As Integer) As String() Dim div As Integer Dim lengthMsg As Integer Dim n As Integer Dim i As Integer Dim arrTmp() As String lengthMsg = Len(msg) If lengthMsg > maxKarakter Then div = pembulatanKeAtas(lengthMsg / maxKarakter) ReDim arrTmp(div) n = 1 For i = 1 To div arrTmp(i - 1) = Mid(msg, n, maxKarakter) n = n + maxKarakter Next i Else ReDim arrTmp(0) arrTmp(0) = msg End If splitMsg = arrTmp End FunctionContoh penggunaaan :
Private Sub Command1_Click() Dim arrMsg() As String Dim msg As String Dim i As Integer msg = "Aplikasi ini berfungsi sebagai aplikasi untuk pencarian " & _ "data-data buku selain itu juga bisa digunakan untuk mencatat data-data pengunjung, " & _ "aplikasi ini sudah terintegrasi dengan Smart Library School yg juga disediakan secara gratis di blog ini" arrMsg = splitMsg(msg, 160) For i = 0 To UBound(arrMsg) If Len(arrMsg(i)) Then ' TODO : perintah kirim smsnya disini Debug.Print arrMsg(i) End If Next i End SubOke om sippp
apa g berat itu om….
main formnya di load?
ato mungkin ada cara lain?
Enggak juga biasa aja, sy sudah sering menggunakan cara ini normal2x aja.
Solusi lain ya menggunakan library sms yg support notifikasi otomatis ketika ada sms masuk, nah kebetulan komponen yg sy bahas dipostingan ini belum mempunya fitur ini, sehingga solusinya ya menggunakan timer.
mas, saya dah jalanin fungsi readsms
Private Sub cmdBacaSMS_Click() <<—
bgitu dijalanin, kluar smua sms2 yg ada
TAPI
ketika dijalankan lagi, kok malah kosong?… (kode tidak diubah pas berhasl retrieve data sms)
saya curiga dengan setting ini, .DeleteAfterReceive = True <<—
trus saya coba aja kirim sms sendiri (lewat hp) kenomor sendiri sbanyak 3 kali (kali aja emang data kedelete dibagian memori ato apalah)
Private Sub cmdBacaSMS_Click() <<— pas dicoba lagi , tetep kosong (padahal dicek di hp, daftar sms ada) dan fungsi sendsms tetep jalan
tu gimana yah mas?
Ya iya om klo property DeleteAfterReceive = True, otomatis akan menghapus data diinbox saat memanggil method Receive
Ya iya om klo property DeleteAfterReceive = True, otomatis akan menghapus data diinbox saat memanggil method Receive <<— inbox nya kehapus, thats why, skarang aku kirim sms kediri sendiri (jadi inboxnya sudah ada lagi)
pas di run, kok masih kosong ?…. (kompi belum tak restart sih, gk tau ngaruh pa gak)
.Storage = 2 ’0=sim 1=device 2=any <<—- ini nih biang keroknya
aku pake '.Storage = 2' , karena sepertinya mbaca dari 'sim' maupun 'device'
tpi pas dijalanin, data kosong
ketika tak ubah menjadi 0 (sim) '.Storage = 0'
skarang dah lancar, dah kliatan
okey, keep on sharing TS
Wah sipp udah otomatis case closed sendiri
om,.. klo sy lihat dari komponen ini ada yg agak kurang gereget di proses readsms nya,.. agak lama dan aplikasi jadi blank sejenak .. kira2 knp om ,..
Makanya jeda refresh pembacaan sms masuknya jangan hitung detik om, coba 1 atw 2 menit soalnya proses pengecekan sms masuk itu memang lumayan berat.
ijin nyoba om…
oy, kalo mau refesh halamn kira2 scripnya gmna y …hehehee…
Halaman g mana om ? Kayax web programing aja ?
kan itu setiap beberapa detik perlu ngerefresh main page buat ngecek outbok y…?
nah kira2 skrip buat ngerefresh main page nya itu om,… hehehhee
Kan sample diatas udah gitu om, katanya ijin nyoba ternyata belum dicoba.
Klo udah nyoba pasti enggak kan nanya hal2x seperti ini.
ookek, tengkyu om…
saya mau tanya,
kalau mau ngirim sms lebih dari 160 karakter dalam netbeans bagaimana caranya???
Pertanyaan si om ini harus sy luruskan dulu, NetBeans itu hanyalah sebuah tool atau IDE yg digunakan untuk mempermudah kita menulis program apakah menggunakan bahasa java, php, c++ atw bahasa lain yg didukung oleh netbeans itu sendiri.
Nah pertanyaannya om menggunakan bahasa yg mana ? Klo java berarti pertanyaan yg seharusnya adalah “bagaimana mengirim sms lebih dari 160 karakter menggunakan java”.
Dan berhubung sy bukan programmer java, coba om googling dulu menggunakan keyword “sms library for java”, tadi sudah sy coba banyak sekali link library gratis yg bisa om coba.
mantap… sdh dicoba pake wavecom.. berhasil. trims tutorialnya
sori kalo fungsi wait(5000) utk apa ya?
Cuma buat istirahat aja kok om, kan cape juga klo harus baca dan kirim sms terus
hari ini smsgatewynya error waktu di uji coba lagi. nomor portnya sdh benar com13, sesuai informasi dari device manager.lampunya di wavecom juga berkedip-kedip normal.
)
tapi muncul pesan koneksi ke modem diport13 gagal!
sy coba kemudian pake gammu, waktu sy cek pake gammu identify, muncul pesan “No response in specified timeout. Probably phone not connected” ….. ada masukan om? mustikah ganti modem …..? (mb modemnya ini mash baru
Coba diuninstall ulang aja om driver modemnya
Om, Dosen yah? Dosen dimana, kayanya asik kalo diajar situ :p
hehe, btw.. Saya mau tanya, program yang saya download di 4shared itu, apa udah bisa dipake? minimal, apa yang harus asya instal dan sediakan. Soalnya saya ada tugas untuk bikin program sms dan kurang lebihnya konsepnya sama kaya di artikel ini..
Ah itu sih cuma hoak om
Yg penting sebelum membuka source codenya jalankan terlebih dulu file install.cmd yg ada di folder “dll”
Udah saya instal dot batnya, terus gimana? itu file file visual basic yah? Saya mau liat source codenya gimana?
Iya om itu visual basic 6 jadi diinstall dulu
Pa dosen.. Ini untuk testernya apa aja yang dibutuhin? Bisa pake modem usb ga?
Bisa om sy udah pernah make modem huawei yg usb lancar
Pa, help me.. Untuk bisa tester program ini apa aja yang harus disiapin.
Klo skrg g mana udah bisa ?
Iya, kemaren saya udah coba pake Huwaei bisa kedetek.. tapi ko loading nya lama yah setelah saya klik ‘start’… Ga ada respon lagi.. Source code nya belum ada yang saya rubah, dan saya udah install ActiveXpert SMS. itu gunanya untuk apa yah pa?
Oh iya, ActiveXpert SMS masih trial a.k.a Evaluation :p
Kan diawal tulisan ini udah sy buat pernyataan seperti berikut om
Hehe. iya, tapi dipake buat apa yah itu actiExpertnya… Sampe sekarang masih tetep error mas setiap kali saya klik start… Itu kira kira kenapa yah?
Emg pesan errornya apaan om ?
Om kalo db pake sqllite, dan tidak pake library .dll di artikel ini, koneksi ke DBnya perlu pake komponen tambahankah? trimakasih…
Pake SQLite ODBC Driver om.
Ngga ada error sama sekali mas.. Diem begitu aja, sampe akhirnya saya harus end process.. Dan kalo udah begitu, ga bisa lagi statrt. Selalu gagal koneksi ke com yang sebelumnya bisa ngedetel (uda keliatan di box nya ada tulisan Huawei)
Itu kira kira kenapa yah mas?
Coba settingan properties Storagenya diset 0 (membaca sim) klo enggak salah disamplenya sy set 2 (any) jadi mungkin aja enggak disupport.
ass. makasih infonya bermanfaat. sy coba pk modem advan kartunya 3. tapi coba konek gak bisa kenapa ya mas. com nya sy periksa com 5. tapi dicoba semua com tetep gak bisa knp ya mas. trm kasih banyak.
Waalaikumussalam
Ada beberapa kemungkinan om :
1. Modemnya juga diakses olah aplikasi lain (misal aplikasi bawaan)
2. Salah mengidentifikasi port modemnya (coba di cek di device manager node port)
3. Modemnya enggak support AT-COMMAND, karena pada saat mengecek modemnya menggunakan perintah AT-COMMAND.
pangen nyoba tp bngung mulainya dr mana…
soalnya masih bru msuk dunia IT
itu softwarenya pke Visual Basic ap pak?
Iya om pake VB 6
Pa, kalo modem saya kedetek sebagai COM8, COM9 apa yang harus saya tamnbahin di codenya?
Ditambah manual aja om, soalnya contoh diatas daftar COMnya baru nyampe COM6
Sekedar share info ,. ada yg memodifikasi dl nya activexpert yg dari om admin tapi ditambah ocx lagi dan hasilnya source code yg diperlukan tdk jd panjang,
nii linknya http://forum.technosoft-id.com/index.php?topic=7.0
Tq om infonya
Pagi Pa.. dengan modem huawei,. sudah saya set Storagenya jadi 0 a.k.a SIM. Tapi tetep gabisa, tombol ‘stop’ berulang kali mati-idup tanpa ada proses apa apa lagi.
Sekarang saya ganti modem, tapi kedeteknya COM8 dan COM9. Untuk nambahin com tersebut di sourcecodenya di bagian mana yah? saya search ga huruf yang berhubungan dengan ‘COM’ :p
Ditambahkan manual aja om, lewat properties List objek ComboBoxnya
mas, saya lagi belajar bikin sms gateway buat penjualan pulsa elektrik tapi pake modem USB bisa ga?trus ane udah coba2 bikin pake komponen MFBUS.OCX tapi ternyata gak support Win 7 os ane soalnya win 7,,ada solusi selain pake MSBUS ?soalnya ane lg bikin Tugas Akhir bikin multi aplikasi penjualan om…thx
@om kahfi : om silakan dicoba pake ini support win 7 , Modem USB dan source code simple >> http://forum.technosoft-id.com/index.php?topic=7.0
udah nyoba mas….saya buat tugas akhir klo pake itu gak support untuk penjualan pulsa…karena saya ingin buat tugas akhir multi aplikasi klo pake technosoft di smsnya ada iklan..jadi pesan yg di tampilin ada tambahannya…
waduh jadi malu nih…ternyata support win 7 cuma gara2 UAC jadi gak keregister dllnya….mas ada referensi contoh gateway sms untuk penjualan pulsa g?yang terkoneksi database access
ane dah coba sourcecode yang om admin kasih..jalan..tapi begitu di start responnya lama bgd mas…gak jalan2…saya pake modem huawei. kayanya jalannya cuma di baudrate 115200 aj deh modem saya mas…ad solusi?
Klo sy enggak pernah ngotak-atik nilai baudratenya om
om klo pake java hibernate sama atau tidak iaa dengan java EE source codenya??
Setau sy java itu cuma punya tiga edisi om, Java ME, Java SE dan Java EE klo hibernate itu cuma framework untuk mempermudah access database dg konsep ORM.
assalamualaikum,
kalo yang pakek php ada gak??
kalo bisa tolong dibantu ya , ,
terima kasih
Waalaikumussalam
Klo php bisa memanfaatkan Gammu om
gimana cara buat sms gateway dengan modem smart ce682
Harus enggak ada masalah yg penting support AT-COMMAND