Customize the xmpp openfire - xmpp

I have a requirement of building an chat app using XMPP protocol.I already installed the open-fire and configured MySQL database, i am successfully able to send and receive messages over XMPP. But as per the requirement i want to customized the XMPP and their database, so can anybody guide me how to do that?

Look at the openfire plugin development if you want to extend the functionality of the openfire server. In case if you want to change the openfire server itself, start putting hands in to the source code and read the API spefication docs (perhaps around the defaultauthprovider, hybridauthprovider for databases stuff, not really sure if this can help you).

Related

Creating customised xmpp server

I am making a chat system and am new to xmpp technology.For server I am confused among ejabbered , openfire or tigase.I don't know erlang.And am good at java.
I am looking in a case where I have to change a user roster again and again everytimes a user logged in.And that too completely.So I am thinking to control user roster by myself and not by xmpp server.Morever I want to control what to do when a user went idle/busy. And many more.And for security it will be great if it can be done on server side rather than client side.
so how should I customize the xmpp server.And as I need to customise a lot which server should I use?Based on how easy its to learn them and customise them?
I have done similar kinds of customization in Tigase. I will recommend you to choose Tigase if and only if you are looking for high scalability . For Tigase scalability look at Scaling Tigase XMPP server on Amazon EC2 . The other part of Tigase is you need to dig into the code on your own there isn't much help available else than Tigase offical website.
In openfire you can get much community support in term of blogs and tutorials as compared to Tigase. But openfire isn't salable as Tigase. Also Openfire has a wide range of plugins available.
One more thing about Tigase is that Tigase maintains in memory rosters once user gets login.
We used Vysper (http://mina.apache.org/vysper-project/) as our XMPP server for custom clients, actually have it within an OSGi bundle so can hot deploy it.
It has needed some updates and XEP work when we needed something more detailed, but has been a great server to get started with.

xmpp : message protocol format

I am relatively new to XMPP and Jabber protocol. I am using Ubuntu 12.0 LTS OS. I need to find out various XMPP / Japper message formats that a client needs to send to an ejabberd IM server.
Please let me know what is the easiest way to know them - like chat, shat group, file sharing etc.
Is there any standard library (with example) avaiable on Internet. I prefer to use Python for such a purpose. My aim is to develop a command line tool that can connect to ejabberd server and dump various message formats that client needs to send to an Xmpp/Jabber server.
Thanks in advance
For getting started with XMPP in Python, I recommend the SleekXMPP library. It provides a lot of features, and makes using XMPP very easy. The documentation is good, and it has many simple examples.
While Lloyd is correct about the protocol documentation he links to, I strongly believe that you should get started by using a ready-made library instead of trying to create everything yourself from scratch. You can do that later, if you want, once you understand XMPP more.
All you need to know is here: http://xmpp.org/xmpp-protocols/xmpp-extensions/
For python I believe the current favourite is sleepxmpp: https://github.com/fritzy/SleekXMPP/wiki
For a list of libraries see: http://xmpp.org/xmpp-software/libraries/

Openfire vs ejabberd for customer service chat evolving to full chat solution

I need to setup chat as a solution for customer service on a website. Openfire and some of it's plugins (fastpath and webchat) were very simple to setup locally and offer all of the customer service experience options I'd need, and will integrate properly into our CRM.
We have a clustered ejabberd instance running for something else. Before I looked into openfire, this was the obvious choice, since it's already been made secure and tailored to our environment. Having to duplicate all of the customer service functionality in an ejabberd module when it comes out of the box with openfire seems like a bad investment of resources.
Eventually, we would like to enable user to user chat as well, and perhaps turn it into a full scale messaging system.
Is it possible and/or recommended, using s2s or some other technique, to share the same database instance between the two different servers ? Does anyone else have any experience running both servers ? I'm sure there will be lots of gotchas if we go down this route, anything obvious ?
In my case, i was obliged to move to openfire for compatibility reasons.
I have a user list in a sql-server database and the external authentification is really hard and not supported for updated versions of ejabberd.
For me openfire is more open to different database and easy to integrate in existing plateforms

Chat widget for Liferay

Can anybody recommend a chat client solution to integrate within Liferay, supporting chat rooms and to be used together with an XMPP server such as OpenFire? Obviously the more customisable, the better, also one that displays within the current page such as the native Liferay one, if possible.
Please try Spark as your chat client,
You can customize it.

How do I query LDAP in GWT?

I am fairly new to GWT and have built an application to manage working times. So far it was convenient to register/create the users in the datastore manually, which made testing a little easier. Now, to verify a login and automatically create the users, I want to retrieve the usernames and the passwords by querying an LDAP server.
My problem is that I was not able to find any examples, tutorials or forum entries that helped me completing this task. My so far only hope of success was an example using the javax.naming package which turned out not to be supported by GWT.
My question now is: is a database connection using LDAP supported by GWT at all? And if it is: how do I retrieve the data I need?
Thank you in advance!
You will need to construct a remote service that the GWT client talks to that communicates with your backends. There are several frameworks to choose from, depending on your needs. See the Communications DevGuide and the RequestFactory DevGuide for introductory material.
GWT client <-- XHR request --> Remote Service-+--> LDAP
|--> Other Database(s)