Ada beberapa software untuk SMS gateway, namun setelah saya banding-bandingkan SMSlib lah yang paling lengkap fiturnya, terutama pada kemampuan menangani SMS lebih dari 160 karakter (multipart). SMSlib dikembangkan berbasis Java, sehingga bisa dijalankan di berbagai sistem operasi. Untuk kali ini saya pakai Ubuntu Server 10.04 LTS. Seharusnya Versi terbaru atau distro Debian sama saja. Untuk Versi Windows, logikanya sama saja. Silahkan cek di http://smslib.org/doc/installation/
Asumsinya Anda sudah punya server yang sudah diinstal Ubuntu dengan konfigurasi Jaringan yang bisa terhubung ke Internet (Untuk ambil file yang diperlukan). Dan Anda dari PC yang sudah terhubung SSH ke server tersebut melalui putty misalnya.
INSTALL JDK
Download Sun JDK (Sekarang Oracle) di http://java.sun.com/javase/downloads/widget/jdk6.jsp (Atau versi 7 yang terbaru. Untuk kali ini saya pakai yang versi jdk1.6.0_37). Anda harus daftar sebagai member lalu download melalui browser Firefox atau Chrome. Nah, saat dalam proses download itu stop download, dan klik kanan pada download file lalu copy link, pastekan di sheel dengan cara klik kanan di shell.
$ apt-get install wget
$ cd /usr/src
$ wget http://download.oracle.com/otn/java/jdk/6u37-b06/jdk-6u37-linux-i586.bin?AuthParam=1357142400_9be1c9645d18d994488cb41ba371b5a8
$mv jdk-6u37-linux-i586.bin?AuthParam=1357142400_9be1c9645d18d994488cb41ba371b5a8 jdk-6u37-linux-i586.bin
$ chmod +x jdk-6u37-linux-i586.bin
$ ./jdk-6u37-linux-i586.bin
Edit file ~/.bashrc dan tambahkan export PATH=”/usr/src/jdk1.6.0_37/bin:$PATH” pada file tersebut.
$ export PATH=”/usr/src/jdk1.6.0_37/bin:$PATH”
$ java -version
java version “1.6.0_37”
Java(TM) SE Runtime Environment (build 1.6.0_37-b06)
Java HotSpot(TM) Client VM (build 20.12-b01, mixed mode, sharing)
INSTALL DATABASE SMSlib dengan MYSQL SERVER
$ apt-get install mysql-server
Anda akan diminta membuat password root untuk MySQL.
$ mysql -p -u root
mysql> create database smslib ;
Query OK, 0 rows affected (0.01 sec)
mysql> grant all on smslib.* to smslib@localhost identified by ‘smslib’ ;
Query OK, 0 rows affected (0.02 sec)
PREPARE SMServer and DEPENDENCIES
$ cd /usr/src
$ mkdir smslib_sources
$ cd smslib_sources
$ mkdir smslib
$ cd smslib
$ wget http://smslib.googlecode.com/files/smslib-v3.5.2.zip
$ apt-get install unzip
$ unzip smslib-v3.5.2.zip
Install Dependencies
$ apt-get install librxtx-java
$ cp /usr/share/java/RXTXcomm.jar /usr/src/jdk1.6.0_37/jre/lib/ext/
$ cd /usr/src/smslib_sources/
$ wget http://www.trieuvan.com/apache/ant/binaries/apache-ant-1.8.4-bin.tar.gz
$ tar xzvf apache-ant-1.8.4-bin.tar.gz
Edit file ~/.bashrc dan pada bagian ini menjadi export PATH=”/usr/src/jdk1.6.0_37/bin:/usr/src/smslib_source/apache-ant-1.8.4/bin:$PATH” pada file tersebut.
$ export PATH=”/usr/src/jdk1.6.0_37/bin:/usr/src/smslib_source/apache-ant-1.8.4/bin:$PATH”
$ ant -version
Apache Ant(TM) version 1.8.4 compiled on May 22 2012
$ wget http://www.eng.lsu.edu/mirrors/apache/logging/log4j/1.2.17/log4j-1.2.17.tar.gz
$ tar xzvf log4j-1.2.17.tar.gz
$ cp apache-log4j-1.2.17/log4j-1.2.17.jar /usr/src/jdk1.6.0_37/jre/lib/ext/
$ wget http://jsmpp.googlecode.com/files/jsmpp-2.1.0-bin.zip
$ unzip jsmpp-2.1.0-bin.zip
$ cp jsmpp-2.1.0/*.jar /usr/src/jdk1.6.0_37/jre/lib/ext/
$ wget http://mirror.nexcess.net/apache/commons/net/binaries/commons-net-3.2-bin.tar.gz
$ tar xzvf commons-net-3.2-bin.tar.gz
$ cp commons-net-3.2/*.jar /usr/src/jdk1.6.0_37/jre/lib/ext/
$ wget http://cdn.mysql.com/Downloads/Connector-J/mysql-connector-java-5.1.22.tar.gz
$ tar xzvf mysql-connector-java-5.1.22.tar.gz
$ cp mysql-connector-java-5.1.22/mysql-connector-java-5.1.22-bin.jar /usr/src/jdk1.6.0_37/jre/lib/ext/
COMPILE SMSServer
$ cd /usr/src/smslib_source/smslib
$ ant
$ ant clean
$ ant build-smsserver
$ cd dist/classes/
$ cp ../../src/java/org/smslib/smsserver/SMSServer.conf . (Jangan lupa ada spasi dan titik di belakang)
Sesuaikan Konfigurasi yang diinginkan di file SMSServer.conf (Dokumentasi ada di www.smslib.org). Jalankan SMSServer dengan perintah sebagai berikut:
$ java org.smslib.smsserver.SMSServer (Atau sesuaikan dengan opsi yang diinginkan, misalnya limit RAM, dll. Silahkan cek dokumentasi Java)
That’s all.