Skip to main content

XMPP-Presence Module How-To (and problems)

5 replies [Last post]
matty_x
Offline
Joined: 2008-06-16

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

Problems::

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.account@gmail.com 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.

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
maggiel
Offline
Joined: 2003-06-10

It mostly works for me, including inbound messages.

pw-community
3 users in-world: sasxprovider, sasxprovider, admin http://204.153.12.99:8080/wonderland-web-front/app/Wonderland.jnlp
pw-community@programmer-art.org

pw-matrisync
2 users in-world: sasxprovider, sasxprovider http://faithhold.dyndns.org:8088/wonderland-web-front/app/Wonderland.jnlp
pw-matrisync@programmer-art.org

As you can see, it's a little wonky as to exactly who is in-world. And connections with GTalk seem to come and go. But if you send Wonderland a message the connection comes back and wonderland hears you.

Message was edited by: maggiel

nnjones
Offline
Joined: 2006-09-26

When I restart my darkstar server, the connection is solid, and I can receive messages FROM wonderland. The other direction isn't working. And it times out after a few minutes. I checked my properties (deployment file) and it looks correct. Anyone have any ideas?

matty_x
Offline
Joined: 2008-06-16

This is the same problem I'm having.

maggiel
Offline
Joined: 2003-06-10

I was following that procedure and discovered that jabber.org is not enrolling accounts on their website at this time. Don't know the backstory on that one.

matty_x
Offline
Joined: 2008-06-16

I had a Jabber account from back in the day... but since I needed another, I used the service at the following URL to create a new account:

jabber.iitsp.com