Archive for the ‘Jabber/XMPP in English’ Category

Fusion of XMPP, .NET Messenger Service (MSN) and Gadu-Gadu

Thursday, April 1st, 2010

Edit afterwards: this was an old April joke. If ever you come by and read this article, don’t think there is anything true about it. Fortunately!

Great news everyone! After lengthy secret discussions between the XMPP Standards Foundation, Microsoft and Gadu-Gadu (leader of Instant Messaging in Poland), an agreement has been born today. There should be soon an official communique by the XSF but I thought important to relay this wonderful news as soon as I got it. So here it is: the three networks are to be melted into a single one on the following bases:

  • The protocol will stay open, hence freely and without any charge implementable by anyone. The technical base is still XMPP’s, yet as some features are being imported from our — from now on — partner-protocols, protected under many software patents, it is now asked that developpers sign a « Non Disclosure Agreement » therefore protecting them from being sued by our partners, providing that these technologies are not disclosed in any publication without the agreement of the XSF, and that they are not used outside of an XMPP related development. Details of this « Non Disclosure Agreement » will be revealed later when the — newly created — XSF’s juridical service will have finished writing it.
  • XSF keeps control and decision power over the protocol. But each partner will have from now on a member in the XMPP Council and in the Board of Directors (with no more nor less power than any other member).
  • A new XEP has been written, enabling native targeted advertisements through the protocol (thanks to automatic analysis of your discussions — yet remaining of course respectful of your privacy) by hosting servers. We are this way finally creating a sustainable economical environment for XMPP services. Of course as for any XEP, it is not mandatory to implement it but a XMPP client not featuring the advertisement XEP will not be considered fully compliant (note that this XEP has been submitted to IETF to become a RFC) and won’t be anymore displayed on the clients’ official list.
  • Jingle, deceptful, will be dropped in favor of the — so more reliable — Microsoft’s VOIP technology.

These changes are planned to be effective as of end of 2010 if anything goes according to the plan. Similar negociations are ongoing with other currently private networks owners, as for instance Yahoo! and AIM (Skype seems to refuse any discussion until now though we would have liked to use their secret VOIP technology instead). So stay tuned for news! This all is such a great step towards our big dream of an open messaging network, without any barrier and border, usable and used by anyone. Of course it implied a few concessions, but this is the price of liberty. Isn’t it?

Jabber Feed 0.5 released

Sunday, January 24th, 2010


As I announced in a recent message (in French though), I am coming back to more visible activity on this public diary. To begin with, here is the new version of my Wordpress plugin: Jabber Feed 0.5. As a reminder, this plugin publishes your articles and the comments on XMPP’s pubsub nodes.


Asides for minor fixes, here are the three main changes:

  • A Wordpress widget has been added, enabling for any Wordpress administrator (even not computer-technically skilled) to add the XMPP feeds in one’s sidebar by simple drag-and-drop. This is part of the reason I redesigned my website a few hours ago with a new themes enabling the widgets (my old theme was coming from a time before widgets)!
  • The NET_DNS dependency has been removed for SRV Records support, under the assumption the server is running Windows with PHP 5.3.0 or superior, or GNU/Linux (any PHP version). For BSD (Mac included), the NET_DNS library is still required. Consequently my plugin has an intelligent behaviour, testing then using NET_DNS if available, otherwise the base PHP function when possible, or else it will deactivate SRV support.
  • Implementation of the algorithm for dealing with priority and weight of SRV records’ targets as described in RFC 2782. The SRV support is now nearly fully compliant (only the Time To Live parameter’s support still needs to be added).

My own tests succeeded, but I am welcoming any bug report or any feedback, obviously! Do not hesitate.
As a side information, I wanted to inform there exists now a XMPP pubsub reader, the first publicly released, as far as I know: OneChannel, by Process One. Unfortunately my MIPS machine does not handle well flash (and this software uses the Adobe AIR technology) so I am not able to try it out. If anyone out there wants to try and tell me how it reacts to the pubsub messages generated by my plugin, I am wide-eye-opened. Bye!

Best Practices (for and between servers and clients) to handle other entities’ features

Thursday, July 3rd, 2008

This ticket is a proposition of the adviced way of using “Feature Discovery and Knowledge” efficiently. Indeed the current reality in Jabber/XMPP implementations and my work on my PubSub plugin showed me some really bad behaviours of both servers and clients which mostly lead to possible data loss. The principal reason is probably that the current XEPs were focalized on the idea that only the client had to know what the server can do, hence acting according to this knowledge. But the reality is that the server should also know what the client can do before sending anything.

I began this ticket a few days ago and finalized it after a discussion on the Standards mailing list. It is mostly based on 3 existing XEPs: Service Discovery, Entity Capabilities and Resource Application Priority

(more…)

Jabber Feed v0.2 released: Jabber publication plugin for Wordpress

Wednesday, June 25th, 2008

The second release of Jabber Feed is out today. It has been greatly improved though I will still have some work on it. Now all nodes are created automatically by the plugin when you configure it. Hence it will “tell” you if your Jabber account is wrong or if you don’t have the rights to create the node.

The posts will be published to a subnode ‘posts‘. So people can subscribe to this node in order to receive only notifications about new posts.
Comments are published under the subnode ‘comments/{id}‘ where ‘{id}’ is to be replaced by the post’s id. Hence people can subscribe to the comments of a single post. By subscribing to ‘comments’ node only, you will receive all comments, as long as the correct option to receive items of subnodes as well is set (unfortunately this option is not understood by ejabberd, the server which I made tests with, and the one of jabber.org. I don’t know for the other server softwares) in your subscription.

Of course we cannot ask people to “know” all this. This is why autodiscovery links are automatically set on every pages (you can subscribe to comments on a specific post only, to all posts, all comments, etc.). I also provide 2 templates to generate these links (either autodiscovery links for html header, or just simple ‘a’ tags, or even just bare XMPP urls) in order for you to use them as you like in your theme. For instance, I added a ‘a’ link to the post and comment nodes at the bottom of my test page, and a ‘a’ link above the comments for subscribing to comments of a post.

One of the other main points I improved since first version is that now, all nodes are created automatically for you! The blog admin don’t need to do anything, he doesn’t have to know XMPP and how it works. She or he simply has to know a pubsub server and choose an unchosen node on it.
You can also have a look at the improved configuration page which creates the nodes and tests the Jabber login (JID) when you aknowledge the configuration with the “Update” button.

To conclude this all, I will say that I am pretty happy of this all. This is still not perfect. Some details have to be improved, or even fixed (I keep a todo list you can read in the wordpress repository). But this is a nice step since first version and soon technically close to perfection from a publishing system point of view. :p Now I will work on higher priority on the syntax of the sent message because it is really ugly (and without content processing, it will probably fail with some special html character or tags). I especially want to process the posts and the comments’ content to make them XHTML-IM compliant before sending it. Note that I will probably provide this new version very soon (in a week, if my mind don’t get disturbed by other stuffs).

More information, as well as the plugin itself, are foundable on the Wordpress repository website.

Any feedback is more than welcome. :-)

P.S.: note that I don’t even use the plugin here (in fact yes, I enabled it but don’t show it by using the templates in my theme!) because ejabberd (the server software I use, and one of the most famous. For instance jabber.org also uses it) has a big bug on the pubsub implementation which prevents from creating and especially subscribing to a node from a JID of another server! So this is not a useful PubSub implementation if people cannot subscribe (or only people on the same server as you, which is a huuuuge limitation).
Yet I was told Tigase has currently a very good pubsub implementation (close to 100%). So I will make some tests soon (but first I have to install it, unless someone can forward me to one where I can run tests to spare time?) with it and maybe change my server for Tigase if it is really better.

More than just Instant Messaging: publication and notification using Jabber/XMPP

Tuesday, April 1st, 2008

Jabber (also called XMPP, as a protocol standardized l’IETF) is well known for being “just” an instant messaging system (and network) which can be compared to ICQ, Yahoo!, Live Messenger, AIM, Gadu-Gadu or others. But it is in fact far more. As a very young protocol for real-time communication, new features are continuously imagined, developped and improved. One of these features can be very interesting and may prove to have a nice future, in my own opinion: this is the “Publish-Subscribe” (abbreviated into pubsub).

As the name implies, this system enables users with a role of “publishers” and others as “subscribers”. Hence the publishers will obviously “publish” information on a Jabber node (with is simply a term defining some kind of Jabber address), whereas the subscribers will have the possibility to read this information, and configure their subscription according to their needs. For instance a common use would be to ask being notified when new information is added. This last use case gave me the idea to developp a small plugin for Wordpress (the publishing system used for this website), which I called: Jabber Feed.

Image de publication des Marmottages
Jabber Feed will enable readers of this website for instance to subscribe to a Jabber node, then asking to be notified in realtime of every new post, or even comment. People could compare this to RSS feed, though Jabber Feed has many advantages: it is realtime, it spares bandwith, and it can be highly customizable.

Yet the main big problem is that it is hardly supported currently by most Jabber clients (even the more advanced ones; for pubsub, Gajim being the better I have tried), and by servers but with many lacks of the full protocol (as far as I have tried at least). Thus my plugin is rather a Proof of Concept as for now. Anyway I will regularly improve it and update news on this development here. Hopefully soon more clients will have a better support. I created also a permanent page about it here and the code can be foundable on the official Wordpress’ plugin repository).

I will give later a node for my public diary (the one you are reading!) because someone noticed it is apparently unsubscribable from an exterior address and I have no time to look how to configure my server as I am leaving for 2 weeks of hollydays in Japan in a few hours.
So see you then!

Edit: here is the notification I received in Gajim (last subversion). This is not much, it does not support full content currently, but it is the only client (among the ones I have tested) which notified me at least!
Notification in Gajim