XMPP-Presence Module How-To (and problems)
I've been wanting to play with the xmpp-presence module (http://www.projectwonderland.com/index.php?option=com_docman&task=doc_de...) ever since Josh posted about it on the Wonderblog here: http://blogs.sun.com/wonderland/entry/wonderland_presence_in_your_buddy
I finally found some time to play around with it and I've run into a number of problems. Since the module is undocumented, I thought I'd document my progress here and also try to get some help. Please see the bottom of this post for a description of the problems I encountered.
Step-by-step how-to for enabling and configuring the xmpp-presence module:
1. Download a Jabber client (I'm using Adium on Mac)
2. Create a Jabber account (try at jabber.org) for your Wonderland world. You can name it anything.
3. Download the presence module from the Module Warehouse (xmpp-presence.jar)
4. Install the presence module via Server Admin-->Manage Modules-->Install a New Module
5. In Server Admin, navigate to Manage Server
6. Locate the Darkstar Server entry and select "edit" under the Actions heading
7. Add the following properties (from wonderland-modules/unstable/xmpp-presence/src/classes/org/jdesktop/wonderland/modules/xmpp_presence/server/service/XMPPPresenceService.java)
a.) wonderland.modules.xmpp-presence.server: The XMPP server you want to connect to. (This service has only been tested with jabber.org. Other servers have different authentication schemes; to get them to connect, you may need to change the connection code. The Smack Forums (http://www.igniterealtime.org/community/community/developers/smack) have helped me with this in the past.
b.) wonderland.modules.xmpp-presence.port: The server port. Defaults to 5222.
c.) wonderland.modules.xmpp-presence.account: The login name for the specified server. Sometimes this includes the domain name, sometimes it doesn't (for instance jabber.org doesn't, gtalk does)
d.) wonderland.modules.xmpp-presence.password: The password for the account specified in .login. Be aware that by default, this password is sent in clear text, so it should be a password unique to this service.
e.) wonderland.modules.xmpp-presence.domain-whitelist: A comma separated list of domains from which the Service should accept access requests from. If this is empty, requests from all domain are accepted. Otherwise, users not from the specified domains will not be able to add this account to their buddy list. (NOT SUPPORTED YET.)
8.) Log in to your Jabber client (e.g., Adium) using a Jabber account (I used my Google Talk account)
9.) Add the Jabber account that you created in step 2 to your buddy/contact list
10.) Restart the Darkstar server
11.) If you configured everything correctly, you should receive a message in your Jabber client that looks like this: "Hi! Any messages you type to me will be sent in-world. You can join the world here: http://your.wonderland.server/wonderland-web-front/app/Wonderland.jnlp"
12.) Launch a Wonderland client
13.) When the client has loaded, send a text chat via Jabber by entering the message into the Text Chat All window. The message MUST begin with the "@" sign for it to be sent via Jabber.
Example: "hi guys" --> will not be sent via Jabber
"@ hi guys" --> will be sent via Jabber
Shortly after I receive the confirmation message from step 11 above, the Wonderland Jabber account disconnects from my local Jabber client and is no longer visible in my buddy/contact list.
I can send messages to my Google Talk account from inside Wonderland, but I cannot send messages from my Google Talk account to Wonderland. However, this only works for a short time, after which I receive the message "Server: my.IM.firstname.lastname@example.org has disconnected" and sending of messages no longer works.
I know the xmpp-presence module was released back in June... has anything changed that may have broken it?
I will try a different Jabber service and see if that has any impact.