This month, I have a project from my laboratory about Smart Gateway. What smart gateway is it? It's a smart gateway system that allow multi-client-chat not only using internet but also SMS. Does it seem weird? Yeah, it will be used for rural area which is difficult to get internet access but still has SMS service. In this project, I take part in internet modul development.
There must be a server that can serve some users. There some applications that can be installed in the server to build a chat server. Firstly, I chose Ejabberd. Installation process for this application was so long. I installed it form its source code. This program was made by Erlang programming language. That's a new thing for me. I should installed Erlang's compiler. I found wrong site that gave difficult steps and I followed that difficult steps to install Erlang's compiler until I got stuck. Then, I found out that Ubuntu repository provides it. After that, I installed Ejabberd, built some configurations, and ran it. To make this server can be accessed by clients, it needs client application that can be installed either on server or clients. I chose JWChat, installed it on server, and built some configurations so this application could communicate with Ejabberd. Client can make a chat conference by access a web application which is on server from a browser. OK, that was the beginning. The main point of smart gateway chat server is to store internet chat data into a common database server like MySql which will be used by Gammu to store SMS messages. I also have to built a program that can make all data from internet and SMS can be synchronized. Ejabberd use Mnesia database, a built-in database from Ejabberd. Then, I made some configurations again for Ejabberd so it can store chat data to MySql. After spending a day I tried to fix its configuration, Ejabberd server still didn't want to work. It failed to start. I think, the problem is on connection to MySql because when I used internal database, it ran normally. I read the installation guide and configuration file carefully but couldn't find any mistake. Then, I though to move to another application to build server.
Openfire is another application to build chat server. It use Java programming language. I think that was great. I always like Java. The developer website for this application is also looks better then Ejabberd site. I feel that Openfire installation process was easier then Ejabberd. To configure the server, we can use web-based control panel that is provided by Openfire. Database configuration also can be done from that control panel. Openfire has provided MySql driver for Openfire so we don't have to install it separately. For server testing, I used client-side application. It's Spark, also from Openfire site. It worked nicely. After that, I must think again how to manage the database, update the source code of Openfire to support Smart Gateway system, and build more simple application for client. Openfire is more complex application than Ejabberd that use Java and many modules on it.
After three days of doing this work, I start to think better solution to finish this project as soon as possible. I think, If I make my own server application using Java, it will be more simple and can produce result as needed.