[Sms Gateway] Membaca Sms Pada Modem (Smslib)

Ok, ini lanjutan dari seri SMS Gateway. SMS Gateway tidak terlepas adanya acara mendapatkan dan mengirimkan SMS. Nah untuk memahami cara aplikasi dalam membaca SMS pada aplikasi SMS Gateway, berikut ini saya menyebarkan sebuah project java untuk mendapatkan SMS.

Lakukan pengaturan library menyerupai pada tutorial Pengaturan Java Library untuk SMS Gateway memakai SMSLib, atau kalau tidak mau repot mendownload library-library nya , silahkan download arahan sumbernya terlebih dahulu (ada dibagian bawah tutorial).

Dalam project saya sudah sertakan library penunjang.

File-file jarnya, dipakai sebagai library pada project, dan yang lainnya silahkan copykan sesuai dengan foldernya.
Dalam project hanya terdapat 1 Class, berikut arahan yang terdapat didalammnya:

package javadanphp.smsgateway;  import java.io.IOException; import java.util.ArrayList; import java.util.List; import org.smslib.AGateway; import org.smslib.AGateway.GatewayStatuses; import org.smslib.AGateway.Protocols; import org.smslib.ICallNotification; import org.smslib.IGatewayStatusNotification; import org.smslib.IInboundMessageNotification; import org.smslib.IOrphanedMessageNotification; import org.smslib.InboundMessage; import org.smslib.InboundMessage.MessageClasses; import org.smslib.Message.MessageTypes; import org.smslib.SMSLibException; import org.smslib.Service; import org.smslib.modem.SerialModemGateway;  public class ReadMessage {      public void mulaiService() throws Exception {         List msgList;         //Setting notifikasi/pemberitahuan pesan         //jika ada pesan masuk maka class/fungsi ini akan dijalankan         InboundNotification inboundNotification = new InboundNotification();          //Setting notifikasi/pemberitahuan panggilan         //jika ada panggilan masuk maka class/fungsi ini akan dijalankan         CallNotification callNotification = new CallNotification();         //Setting notifikasi/pemberitahuan perubahan status gateway         //Jika status gateway berubah, sanggup jadi berhenti, eroor dll, maka class ini akan dijalankan         GatewayStatusNotification statusNotification = new GatewayStatusNotification();                  OrphanedMessageNotification orphanedMessageNotification = new OrphanedMessageNotification();                  //menjalankan service         try {             System.out.println("APLIKASI: Membaca pesan dari modem.");             System.out.println("-----------------------------------");                          // Inisialisasi Gateway/Pengaturan modem GSM modem.             SerialModemGateway gateway = new SerialModemGateway("modem.com4", "COM8", 115200, "Wavecom", "Fastrack");                          gateway.setProtocol(Protocols.PDU);                          // memakai modem sebagai akseptor pesan             gateway.setInbound(true);                          // memakai modem sebagai pengirim pesan             gateway.setOutbound(true);                          // mengatur sim Pin (jika sim memakai pin, kalau tidak masukan 0000)             gateway.setSimPin("0000");                          // Setting notifikasi yang telah di inisialisasi sebelumnya kedalam gateway             Service.getInstance().setInboundMessageNotification(inboundNotification);             Service.getInstance().setCallNotification(callNotification);             Service.getInstance().setGatewayStatusNotification(statusNotification);             Service.getInstance().setOrphanedMessageNotification(orphanedMessageNotification);                          // Menambahkan gateway ke service             Service.getInstance().addGateway(gateway);                          // Memulai Servce             Service.getInstance().startService();                                       // Mengambil beberap informasi penting dari modem             System.out.println();             System.out.println("Detail Informasi Modem:");             System.out.println("  Pembuat: " + gateway.getManufacturer());             System.out.println("  Model: " + gateway.getModel());             System.out.println("  Serial No: " + gateway.getSerialNo());             System.out.println("  SIM IMSI: " + gateway.getImsi());             System.out.println("  Signal: " + gateway.getSignalLevel() + " dBm");             System.out.println("  Baterai: " + gateway.getBatteryLevel() + "%");             System.out.println();                          //Mulai Membaca pesan             msgList = new ArrayList<>();             Service.getInstance().readMessages(msgList, MessageClasses.ALL);             if(msgList.isEmpty()){             for (InboundMessage msg : msgList) {                 System.out.println(msg);             }             }else{                 System.out.println("Saat ini, tidak ada pesan dalam modem");             }             //Jika pesan sudah dibaca dan ditampilkan semuanya, service akan masuk pada mode tunggu             System.out.println("---------------------------------------------");             System.out.println();             System.out.println("Mode Tunggu - tekan  untuk menghentikan service.");             System.in.read();         } catch (SMSLibException | IOException | InterruptedException e) {             System.out.println("ERROR: " + e.getMessage());         } finally {             Service.getInstance().stopService();         }     }      public class InboundNotification implements IInboundMessageNotification {          @Override         public void process(AGateway gateway, MessageTypes msgType, InboundMessage msg) {             if (msgType == MessageTypes.INBOUND) {                 System.out.println(">>>Pesan masuk pada gateway/modem: " + gateway.getGatewayId());             } else if (msgType == MessageTypes.STATUSREPORT) {                 System.out.println(">>>Laporan pengiriman pesan dari gateway: " + gateway.getGatewayId());             }             System.out.println("PESAN:");             System.out.println(msg);         }     }      public class CallNotification implements ICallNotification {          @Override         public void process(AGateway gateway, String callerId) {             System.out.println(">>>Ada panggilan masuk: " + gateway.getGatewayId() + " : " + callerId);         }     }      public class GatewayStatusNotification implements IGatewayStatusNotification {          @Override         public void process(AGateway gateway, GatewayStatuses oldStatus, GatewayStatuses newStatus) {             System.out.println(">>>Perubahan status gateway " + gateway.getGatewayId() + ", dari: " + oldStatus + " menjadi: " + newStatus);         }     }      public class OrphanedMessageNotification implements IOrphanedMessageNotification {          @Override         public boolean process(AGateway gateway, InboundMessage msg) {             System.out.println(">>>Pesan Orphaned diterima dari gateway: " + gateway.getGatewayId());             System.out.println(msg);             // Masih dalam tahap test (keterangan dari SMSLIB)             System.out.println("PESAN:");             return false;         }     }      public static void main(String args[]) {         ReadMessage app = new ReadMessage();         try {             app.mulaiService();         } catch (Exception e) {             System.out.println("ERROR: " + e.getMessage());         }     } }

Nah berikut hasil running arahan diatas:
 SMS Gateway tidak terlepas adanya acara mendapatkan dan mengirimkan SMS [SMS Gateway] Membaca SMS pada Modem (SMSLib)
Tampilan aplikasi dikala dirunning dan berjalan dengan baik
 SMS Gateway tidak terlepas adanya acara mendapatkan dan mengirimkan SMS [SMS Gateway] Membaca SMS pada Modem (SMSLib)
Tampilan aplikasi dikala ada telepon masuk (telepon akan otomatis di tutup oleh aplikasi)
 SMS Gateway tidak terlepas adanya acara mendapatkan dan mengirimkan SMS [SMS Gateway] Membaca SMS pada Modem (SMSLib)
Tampilan aplikasi dikala ada SMS masuk

Download projectnya:
 


Silahkan berikan feedback kalau ada yang kurang dimengerti.

Terima kasih sudah meluangkan waktu untuk mengunjungi blog ini.

Belum ada Komentar untuk "[Sms Gateway] Membaca Sms Pada Modem (Smslib)"

Posting Komentar

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel