Kalkun SMS Manager adalah aplikasi open source berbasis web yang ditulis dalam Bahasa pemrograman PHP untuk manajemen teks singkat yang dikirimkan/diterima di telepon bergerak (mobile phone) yang lebih dikenal dengan istilah SMS (Short message service) dengan memanfaatkan Gammu SMS Daemon (http://wammu.eu/smsd).
Proses yang terjadi didalam kalkun dapat digambarkan sebagai berikut.
Kalkun <--> Database <--> Gammu-SMSD <--> Phone/Modem
Kalkun dapat didownload di website ini http://kalkun.sourceforge.net/, dan manual instalasinya dapat dibaca disini https://github.com/back2arie/Kalkun/wiki
Integrasi iDempiere dan kalkun dilakukan dengan mengutilisasi API (Application Programming Interface) yang menggunakan protocol SOAP. Lebih lanjut dengan kalkun API dapat dibaca disini https://github.com/back2arie/Kalkun/wiki/API.
Kemudian kita buat sebuah class di iDempiere plugin dengan kode sebagai berikut,
/** * Fungsi untuk mengirimkan pesan singkat dari iDempiere ke Kalkun * Server dengan menggunakan SOAP API * @param mobileNo * @param textMessage * @throws SOAPException */ public void sendSMS(String mobileNo,String textMessage) throws SOAPException { //definisi SOAP API Kalkun Server Private String kalkun = http_alamat_soap_api_kalkun //variable untuk menangkap hasil dari SOAP API Boolean soapResult; SOAPMessage message = MessageFactory.newInstance().createMessage(); SOAPHeader header = message.getSOAPHeader(); header.detachNode(); SOAPEnvelope envelope = message.getSOAPPart().getEnvelope(); envelope.setAttribute("namespace","namespaceUrl"); SOAPBody body = message.getSOAPBody(); QName bodyName = new QName("sendMessage"); SOAPBodyElement bodyElement = body.addBodyElement(bodyName); //Nomor handphone tujuan SOAPElement destNumber = bodyElement.addChildElement("destinationNumber"); destNumber.addTextNode(mobileNo); // isi SMS yang akan dikirim SOAPElement txtMessage = bodyElement.addChildElement("message"); txtMessage.addTextNode(textMessage); //Koneksi ke SOAP API Kalkun Server SOAPConnection connection = SOAPConnectionFactory.newInstance().createConnection(); SOAPMessage response = connection.call(message, kalkun); connection.close(); SOAPBody responseBody = response.getSOAPBody(); SOAPBodyElement responseElement = (SOAPBodyElement)responseBody.getChildElements().next(); SOAPElement returnElement = (SOAPElement)responseElement.getChildElements().next(); try { if(responseBody.getFault()!=null){ log.warning (“SMS Gagal dikirim”); } else { log.warning(“SMS terkirim”) } } catch (IOException e) { log.warning( e.getMessage()); } //Hasil pengiriman gagal atau tidak dicatat didalam log iDempiere if (log.isLoggable(Level.WARNING))log.log(Level.WARNING, "SMS Soap response" + getXmlFromSOAPMessage(message) + getXmlFromSOAPMessage(response)); } // End of fungsi sendSMS
Sekarang fungsi untuk menjembatani antara iDempiere dengan kalkun SMS Server dengan menggunakan SOAP API yang ada di kalkun sudah dapat digunakan.
Kelemahan dari SOAP API kalkun adalah sms dapat dikirim tanpa harus login ke kalkun, ini sangat berbahaya, untuk mengakalinya koneksi ke kalkun server dapat diproteksi dengan firewall yang hanya memperbolehkan koneksi dari IP iDempiere Server.
Semoga bermanfaat.
Tidak ada komentar:
Posting Komentar