Forum OpenACS Development: chat module and jabber server

Collapse
Posted by Claudio Cerasoli on
It's possible integrate chat module and jabber message server http://www.jabber.org
in openacs 4.0?
Collapse
Posted by Talli Somekh on
that's an interesting idea.  what's your vision?

t

Collapse
Posted by Michael Feldstein on
This is also interesting from the perspective of people interested in distance learning. The ACS is currently lacking a quality synchronous communications layer (although I haven't yet seen the new Java chat client). Inclusion of Jabber could be just the ticket, if it works.
Collapse
Posted by Adam Farkas on
Ben and I have been wringing our hands over this issue. Integration with Jabber would be killer, but realistically, I don't see it happening in the near future unless someone needs to build it for a client ($$$), _or_ we can inspire community members to take charge & make it a reality.

Any takers? 😊

Collapse
Posted by Mohan Pakkurti on
Adam, do you mean integrating with openacs 4.0, or even support for OpenACS 3.2.4.

I learned about jabber only recently, and am curious about the technology. Have you and Ben come up with any ideas/issues/leads from your discussions that others can maybe explore and research!?! :)

Collapse
Posted by Adam Farkas on
Well, remember that jabber is more than IM.

It's an XML-based platform for sending information in real-time.

Some ideas for integration are straightforward. Like - when you read a bboard page, the user's status (currently online/offline) could be rendered into the page; a single click would initiate a real-time chat with that person.) Or, a slightly more complex example: Say you requested e-mail notification when a new message was posted to a bboard, indicating that you are really interested in what's going on with this particular thread... You could have jabber notify you in real-time of a post.

Even more interesting, you could have the system set up so that all the people who wanted to be notified could be part of an automatically generated real-time chat room, focused on the particular bboard topic. (that is, clicking a single link would allow you to initiate or enter a group chat with all interested parties.)

these are just simple examples; i'm sure that people who are more creative than me can come up with interesting applications.

Collapse
Posted by Michael Feldstein on
It's possible that I could find some client money to throw at this problem over time, but I think we'd first need to come up with a set of concrete proposals about what the system could do. In general, the world of synchronous communication is pretty impoverished right now, and instant messaging is definitely not the be-all and end-all here. For my part, I'd need to see good one-to-many or many-to-many applications (e.g., chats, chat stadiums, application sharing, white boarding) as well as one-to-one applications (i.e., IM) to be able to find sponsorship. If those who are familiar with jabber can educate us on the possibilities, then we'll all have a better chance of finding clients who might need what it offers.
Collapse
Posted by Edmund Lian on
Regarding one-to-many... I'm just about to begin writing a one-to-many notification system, to deliver content to an arbitrary device (SMS phone, pager, email, etc.) The idea is that content producers shouldn't have to worry about what device a user has, how many devices they have, or where they want to receive content. I'm not sure to what extent I'll be able to integrate it into ACS... it's a rewrite/redesign of a system I had developed independantly of ACS sometime ago (never did like the naming conventions, hacked code, etc. of versions 1 to 3).
Collapse
Posted by Andrew Piskorski on
In practice, the content producer ALWAYS has to worry about what the recipient device is, because of things like the 160 character limit to SMS messages, etc., no?
Collapse
Posted by Edmund Lian on
<blockquote>>In practice, the content producer ALWAYS has to worry about what the recipient device is, because of things like the 160 character limit to SMS messages, etc., no?<<
</blockquote>

Yes, but for now, rather than providing content reformatting/translation (this will have to wait for XML/XSLT stuff) I'll just truncate based on device limits. Nothing ambitious. What I need is a generalized notification system that supports multiple content sources and multiple devices per user.

Collapse
Posted by Erik Rogneby on
What makes Jabber a killer in the IM realm is the gateway modules.  The gateways let send messages to pretty much any of the other IM servers.  Aol, ICQ, MSN, and others I'm sure.

Anyhow, I think chatrooms and stuff would be cool and all, but the most straight forward thing to roll into the ACS would be IM notification.  Select what flavor you use, and your screen name and bam! a message with a url to the forum, ticket, or whatever.

Thoughts?

Collapse
Posted by Roberto Mello on
That's a great idea Erick. What do you think of writing the design docs for such module with other interested members of the community? OpenACS 4 is coming so you could write for that platform. Then you (or someone else) could coordinate the implementation of such module.
Collapse
13: IM notification package (response to 1)
Posted by Erik Rogneby on
Thanks Roberto,

It seems to me that an instant (messenger) notification package wouldn't need to be that database heavy.  I am wondering if it would be better to make it independent or build off the notification package. I believe notifications is a core package.

I will go poke around the jabber development boards and see what I can find out.  I would be suprised if nobody has written a lightweight server-side client.

Collapse
Posted by Michael Feldstein on
Honestly, I'm not so sure that IM notification is much of an advance. Email notifications provide the same sort of real-time messaging with more room for text. And, unlike the IM, the email text is persistent. I can store it for later review. So I'm not clear on how using Jabber in this way would provide benefits that the platform doesn't already have. Am I missing something?
Collapse
15: IM vs. e-mail (response to 1)
Posted by Erik Rogneby on
Michael,

Yours is an excellent point.  It is something I've been thinking about.  The weak answer is that it would offer folks another way to recieve information, one which they may prefer for one reason or another.  To find a better answer I think we need to examine what is useful about IM.

To plug a send_jabber proc in where ns_sendmail sits now would be bad.  Following the full text of a discussion via IM would not be fun.  I am thinking about a much more sparse and much more cusomizable set of notifications.  My thinking is a: "USER ACTION PLACE {WHAT}" model.  WHAT being optional information to recieve.

For example any time Ben or Don create a new Question I would like to know.
Example:
[openacs_bb_bot] Ben Adida created a new question in OpenACS 4.0 Design entitled "Guidlines"

What the question was called may or may not be important to you.  Or as the current notifications work, the user may not be important to you.  If that was the case then your notification would be keyed off ACTION PLACE.

And of course a hyper-link to what happened.

Thoughts?

Collapse
Posted by Michael Feldstein on
<p>Hmm...</p>

<p>Suppose that we add the ability to output to email as well as to IM/chat clients. (The Jabber architecture should allow this, shouldn't it?) Then, it seems to me, you could merge it with the proposed acs-messaging/general comments merge proposed on <a href="https://web.archive.org/web/20010911090808/http://www.arsdigita.com/bboard/q-and-a-fetch-msg?msg_id=000IuZ">this thread</a>. This strikes me as a very powerful general-purpose approach that would make it much easier to retarget messages to various different devices.</p>

Collapse
Posted by Adam Farkas on
beyond the notification issue...

ArsDigita uses AIM extensively (internally) and it's a crying shame that all of these conversations are lost instead of being archived.

Would it not be possible, though, to set up real-time, communal chat rooms for all people who are interested in a thread, and have the data captured & stored in the DB?

That is, use jabber to spawn a new chat room based on the thread name, with invitations to all who asked to be invited.

Having searchable archives of real-time messages along side the more traditional bboards would seem to be to be a valuable addition to openacs. (and not something that i've seen before..)

Collapse
Posted by Michael Feldstein on
Adam, this is exactly the sort of application I had in mind when I originally said eLearning clients would be interested in Jabber. This would be very valuable.
Collapse
Posted by Erik Rogneby on
There are two ways I can see this going.

1. The "ACS-IM-bot" acts as a one to many repeater much like a e-mail list server.  A middle-man passing messages along, and archiving at the same time.  The one issue I can think of is figuring out what topic someone was replying to.  I suppose this could be solved by creating a "bot" for each topic.

2. The "ACS-IM-bot" actually creates a chatroom, and invites everyone on the list to join it.  It would be present in the room to archive the chat.  This model presents a few issues.  Chatrooms are seperate from the normal IM app and must be joined.  The creation of a chatroom would need to be keyed off of some consensus event.  (when do you ring the church bell?)

As I type this I can imagine a hybrid... A live chatroom that could be monitored in list-server form by those not in the room, and replies "channeled" by the bot.

Perhaps "X messages" passing through the list in "Y time" could be what triggers a chatroom's creation and the ringing of the bell.

turning off IM-notifications on a topic via IM would be pretty useful as well.

Collapse
Posted by Talli Somekh on
As I've been mulling over the uses of XML, I hit upon an idea that's a bit of an extension of the bboard concept Adam proposed.
<p>
Imagine if a group of people in distributed offices were waiting on Widget-A of info that was assigned to Guy in Office A.  Offices B, C and D are all waiting on that widget and need to know the <i>instant</i> Guy has received, processed and posted it to the DB.  I imagine, by extrapolation of the comments in this thread, that this functionality could be done no prob with Jabber.
<p>
The big question for me is how agnostic can the system be to the widget and it's place in the DB?  In other words, given that Jabber is built with XML, can I generate and place tags in the system so that I'm notified when someone changes <i>any</i> piece of info in?  Can I do it with limited knowledge of the system, appropriate but not total permission and to my heart's content?
<p>
In other words, if I'm Gal in Office E, can I choose, at any time, to stick a tag on Widget-B to find out when Guy has worked it out?
<p>
Also, it seems for system administration purposes, Jabber could take the place of Cassandracle (or whatever the those apps are called).  Imagine if AdminDude can create and stick a tag somewhere in the system to find out how the server is doing, to drop him a note when it hits a certain number hits, when the DB has done a certain number of processes, etc. all without having to get into the guts of the code.  It could potentially create some helpful abstraction.
<p>
It seems to me that this kind of functionality, not really IM, would really be something new and a big win for the system.  It would "speed up" collaboration because it would make the system that much more transparent.  Also, if we could really use XML the way I'm imagining it, there are probably hundreds of other applications as well.
<p>
I definitely don't understand how XML is defined and used, so i guess the big question I have is: Am I making sense?
Collapse
Posted by Talli Somekh on
is anyone working on the jabber integration now?

tal

Collapse
22: maybe after the 4.x port (response to 1)
Posted by Erik Rogneby on
Talli,

I am still interested, but I haven't had any time to really dig into it.  Also I think it will probably make sense to tackle it after the 4.x port.  My idea of implementation is an extension of a fairly open notifications system, and seeing as I can think of at least four seperate notification systems in 3.x it will probably be a lot cleaner to wait on 4.x

Collapse
Posted by Malte Sussdorff on
For a client we try to get Jabber integration on the table (and be paid for it). Yes, it will be in ACES, but yes, we would write a package and keep OpenACS 4.x in mind.

Requirement:

  • Integration of the community with AIM/ICQ and improved chat functionality.
  • You should be able to click on the users ICQ or AIM information and start a chat with this person.
  • If you are in your community, you should be able join a groupchat for this community.
  • You should see, which persons are online and who are chat-able.
  • If a user wants to chat, the website needs to know whether a client is already running, and if not, start a client on the users computer.

How do we tackle the situation:

  • Install a jabber server with transportation protocols enabled to aim and ICQ.
  • Have an unchattable user on the server side monitor the user names of the system.
  • Transfer the users of the webservice on a regular basis to the rooster of the server.
  • Store the buddys of a user from the webservice in the rooster of the user.
  • If you look at the user information page have the webservice check the jabber server whether that user is online with a chat client.
  • If you want to chat with that person, have the system first check whether you are online with a chat client. If you are, display a page telling you to contact this person via this or that method, or close your client. If you are not, start the Jabber applet with connection to the jabber server and a chat window open to the other person.
  • Bonus feature: Hack the request processor so that a user, who is not chatable will be alerted on the next page view, that someone wants to talk to him and offer to open the chat window.
  • As an opt out option have the system start the Chat Applet everytime a user logs in to the system.

This was just some of the ideas, which came into our mind when we talked to the client and we will keep you updated how (if) the process goes.

Collapse
Posted by Michael Feldstein on
Malte, this is wonderful. Please do keep us posted on your
progress.
Collapse
Posted by Ben Koot on
Hi folks, We have been asked to create an interactive corporate environment for a major Dutch consulting firm (650 people). A sollution like this would be of great benefit for them. We are also thinking of enhancing the current chat environment in ACS with sound and icons Like the people at chatspace have done. I have been testing these 2 features for over 6 months and can only say my members love to be able to play around with these features. We also use the sound feature to allert poelpe to come to their PC and start chatting . Would it be an idea to get our heads together and try to dream up a workable concept that could be used to enhance the current chat module? Unfortunately we are not realy programmers, but I immagine it can't be that complicated to add some extra features tot the ACS java Chat, so it shows more than the blank screen.
Collapse
Posted by Michael Feldstein on
Ben, I would strongly recommend that you consider using Jabber or some other third-party chat system rather than the ACS chat module. The old ACS chat client is terrible, and the new one is untested while being only marginally better. Plus, nobody within the OpenACS community has (publicly) expressed any interest in working on the ACS chat module. The only conversations that have come up around chat have been about integrating Jabber. Even ArsDigita is considering dumping the chat module in favor of Jabber. So you'd be working with a poor code base and (probably) without much community support.
Collapse
Posted by Wolfgang Winkler on
Malte,

is there already a module in progress? I'm interested in a module
that combines an IM and ACS. I could lend a helping hand in porting
it to openACS.

Collapse
Posted by Reuven Lerner on
Is there any progress at all on a chat module for OpenACS 4.x?  I realize that lots of people hate it (based on this and other threads), but I have a client who is interested in moving from 3.x to 4.x, who absolutely must have the chat functionality.  And regardless of what you (or I) might think of the existing chat module, this client is rather pleased with how it works, even though it's simple, limited, and inefficient.

I would be more than happy to help an effort already in progress -- for something original, or as a front end to either Jabber or IRC.  If there isn't any such effort, then I may simply do a quick-and-dirty port of the 3.x chat module into 4.x.