(Note: This proposal has been submitted)
// Idea Summary
The idea is to improve, and implement a feature-rich XMPP API (Extensible Messaging and Presence Protocol) in Drupal 6. Such an API will allow communication between Drupal and other XMPP clients. This will give an alternative on how Drupal systems can notify users of changes/updates. Users might also remotely interact with Drupal, using IM. A generic API will also benefit the Drupal universe as other modules can hook into XMPP when needed.
// Project Details
The development of the project can be divided into two broad sub-parts:
1. Communication from Drupal to users with XMPP clients.
2. Communication from XMPP clients to the Drupal system.
(I know that a previous XMPP API already exists for Drupal 5.x. I shall refer to that code, improving at places and re-writing at others, as and when needed. Some other open source libraries might also be used, they are mentioned later. But, no external XMPP software will be used, it will be a pure PHP/Drupal codebase.)
Drupal-to-clients: I shall not write a full XMPP server in PHP, as time is a constraint. Instead, I shall implement an "XMPP bot" in PHP. This bot will play the partial role of a server, by "talking" with other XMPP clients. By this way, Drupal can easily contact clients when needed. Hooks will be implemented for other modules to connect into. Some features will be inspired from the Druplicon bot also.
Clients-to-Drupal: One way I see this is remotely updating content on a website running Drupal. This method will have to include security so that users are verified before any site updates. The bot will have to automatically authorize "friend requests" so that clients can easily connect to Drupal. Administrative work can be done on the site using small commands sent through IM, though a permissions system will be made for this.
I shall be using and consulting other code libraries, some of which are Jatter (ref. http://sourceforge.net/projects/jatter), xmpphp (ref. http://code.google.com/p/xmpphp). Even though these are pure PHP libraries, I shall properly "drupalise" the code so that it blends in with the rest of the system.
// Timeline (estimated)
I have estimated a development timeline, as follows:
April 21 to May 20: Announce my idea in the Drupal and XMPP community, discuss the pros and cons of various ways of implementation, get familiar with project system and CVS on drupal.org. I will also get familiar with how XMPP works internally. I am taking into account my 4th semester exams during this period. In short, ensuring I can rocket off as soon as Kick-off day comes.
May 20 to June end: Build the basic bot frame, test it with community help. Drupalise the code well, implement necessary hooks. Pings can be tried out with the help of other modules. Ensure constant improvements from feedback of the community.
Till 20th July: Test XMPP client to Drupal connections, including security issues and permissions. Test updating basic content remotely, test some intuitive features (like switch to site-offline with one IM). I shall ship the module with some functions, others can be suitably added by hooking. Again, monitor for community responses.
Till August 10: Get everything ready for public release, clean up code, strengthen up weak points, do necessary documentation. Hope everyone is happy, and life is good :)
// Advantages
Some of the advantages I see (and some suggested by the community) are:
- Remotely update content on a Drupal site, like a micro-blog as in twitter.com
- Inform users of site updates, internal Drupal messages etc. This can be linked up with actions.module also (now part of core)
- Small administration tasks (like switching to maintainence mode) can be done via a single IM to Drupal.
(These are practical uses of the API, but apart from these, developers might see more uses, due to the generic nature of this API.)
walkah and me discussed this on IRC, and he is interested in mentoring this project.
Suggestions and improvements to this proposal are very welcome. Thanks!
PS: A practical implementation of this idea can be a Twitter like site. This module, along with the mailhandler.module as easily be used to whip up something like Twitter. Just a friendly thought I had for a long time :)

Comments
interesting but will it be useful ?
How do you think It will be useful to drupal, except for the XMPP support ? Like a microblogging site ? What kind of market do you see for a microblogging site ? What benefit will underlying drupal framework brings in if we are able to put up microblogging profile ..
I know same question can be asked for social networking sites but I still see them in a broader category of implementation and something developers would wanna make .. Can you see it with microblogging ? I am kind of thinking narrow here but surely think it will be fun coding it .. specially XMPP can have some benefits not related to a CMS though but homepages and personal blogs ..
Btw I got this link from social networking group .. Might be useful for you :)
http://www.russellbeattie.com/blog/nearly-a-million-users-and-no-spam-or...
Dipen Chaudhary
http://dipenchaudhary.com
http://playdrupal.com (under construction)
Dipen Chaudhary
Founder, QED42 http://www.qed42.com Drupal development
mailhandler
Improving mailhandler module would be very useful in it's own right - more seamless integration with subscriptions/notifications so you can use organic groups to run mailing lists transparently. For that matter blogapi could do with a refresh as well - I don't think either can handle CCK fields for example. Would be nice to see this generalised a bit more to 'fix up posting content from remote sources' with XMPP + patches to mailhandler as one implementation.
Can be done
Thanks for the link, it kinda does prove my point what market share micro-blogging might take on in the coming time. But I dont see this as the only advantage, I want my project to be generic enough so that other modules can hook up as well.
Yes this can be considered. Thanks :)
Drupal having a twitter like functionality
hmm I believe in the chastity and complete logical integration of the application .. Twitter has amazing event notification system, can we get that support from drupal we have actions and triggers but we need to sit and analyze (I think event notification should not be a tough problem) .. It has a amazing tracking system .. Tht for me stands out for twitter and I see it as a more difficult problem to crack .. I mean I would love to see it build and as for my market share queries they were honest doubts and not skeptical .. That was more like talking to myself .. I find twitter as a very dynamic SNS, If you have time to kill then read of my virgin impression of twitter http://blog.dipenchaudhary.com/2008/02/twitter-my-current-fav-web-20-app...
We use drupal for blogging but again thats not drupal's speciality, Beauty of drupal is the way pieces fit and we can think of microblogging via normal nodes (or like to think).. I mean I am not sure myself, Hopefully someone sane will reply here .. But it sure sound as a interesting thing to work on .. XMPP and mailhandler are in visible vicinity and lots more to do to make drupal work like twitter .. Even a start is applaudable :)
Dipen Chaudhary
http://dipenchaudhary.com
http://playdrupal.com (under construction)
Dipen Chaudhary
Founder, QED42 http://www.qed42.com Drupal development
+1 for this
If my vote counts at all .. Everything has a start and yeh I just love twitter and love drupal .. So yeh marriage ..
It can start and find its way .. As I said it needs more sane review ..
Dipen Chaudhary
http://dipenchaudhary.com
http://playdrupal.com (under construction)
Dipen Chaudhary
Founder, QED42 http://www.qed42.com Drupal development
XMPP
The XMPP API would have to be ported to Drupal 6, as well as have some integration with the Actions module (now in core). Would be great to make it a bit more user friendly as well.
:S
The idea is good, so good that it is in my roadmap for the following months. As I indicated in my post on Dries' thread on http://drupal.org/node/216301#comment-715140 I am working on adding XMPP as a Service server/client module. Thus it will be able to provide the twitter-like functionality out of the box. I am in the very early stages of trying to adapt the existing XMPP API from last year.
I am not applying for SoC this year, and am very excited about my plans for XMPP, but I also don't want to kick a valuable contributer out of Drupal... honestly i am not sure how to proceed.
+1
I have been working on twitter integration as well and released twitterfeeds 5.x-1.0 last January. I tried to find a co-maintainer and publish it on Drupal/CVS but got busy and it was placed into hiatus.
The module works like a re-blog where you can blog about a status posted by another user then post to your own twitter account the blog url. Feel free to check it out and use it for your project.
support portal use
XMPP capability will be a great addition to my existing 6.x based customer support portal.
XMPPClient
My employer, OpenBand, is sponsoring a lot of work on XMPP / Drupal integration on behalf of one of our clients, and we already have a very nice web-based Jabber / XMPP client working for Drupal 6. See http://drupal.org/project/xmppclient for more information.