Andriod ChatIf you are tin-foil hat wearing person who looked at the acquisition of whatsapp by facebook with disdain and anger and wondered how easy or hard it is to setup your own chat service then I have just what the doctor ordered. Before you embark on your journey of rebellion you have to be warned of the perils of high technology and pits of despair while testing but stand firm pilgrim.

First off you need to understand what protocols the chat services use, whatsapp uses highly modified versions of xmpp both on the server side and for handling things like authentication…but will try to keep this not too technical.

Server
Let’s first get our server software and for this bit we will be using openfire which can be downloaded at www.igniterealtime.org/projects/openfire
Server - Open FireOpenfire (previously known as Wildfire, and Jive Messenger) is an instant messaging (IM) and groupchat server that uses XMPP server written in Java
Installation of openfire is very straight forward and provides the much needed backbone for our chat service. After installation you will be able to login and manage the server, with ability to add users, chat rooms, the entire works.

Openfire Launcher
Figure 1 Openfire Launcher

Openfire Login
Figure 2 Openfire login


Figure 3 Openfire user management
Alright, so we have our server what we need are desktop and mobile clients. For whatever platform you use you can easily look for any XMPP clients and you should find a variety of those available for download.

Clients

Pidgin
Pidgin (formerly named Gaim) is a free and open-source multi-platform instant messaging client, based on a library named libpurple and it can be found at https://pidgin.im/
This client is available for most desktop environments and supports many XMPP based chat networks including Google talk(for now anyway), yahoo, ICQ and many others.

Xabber
Xabber is the most popular open-source XMPP client for Android. It supports multiple XEPs, Off-The-Record (OTR) chat encryption and is available in multiple languages. You can get more information of download xabber from http://www.xabber.com/ . Configuration of your account created using the openfire server should be as easy as adding the username and password

The process of setting up your own chat service is trivial at best but to build a truly unique and wonderful user experience for your service will require advanced knowledge in programming in languages like C# , Java and it would also require a good understanding of the XMPP to enable you develop custom desktop clients and custom mobile apps.