Joining a chat room that is on a different server?

If I log into server A (running wildfire), I can join the chat rooms on server A. While still logged into server A, can I open a chat room that is on server B (also running wildfire) and participate in the chat room from server B (i.e. joining chat rooms on a different server than the one I’'m logged into)?

If possible, how do you go about doing this?

Thanks.

Hi,

may one assume that server A is connected to server B using s2s?

You should have no problems to do this, just join the conference room or send an invitation to the other user.

LG

1 Like

Hi,

In my admin screen for the wildfire server, I have both of my wildfire servers (version 2.5.0) on each other’'s “white list” using the default port 5269.

The conference service on each machine is “conference.<server.domain.name>”. Using the Spark client (version 1.1.1), in the “conference” tab, I tried to “Add Conference Service” using “conference.myserver.at.mydomain” (format) by clicking on the “+” button (i.e. the conference service that is on the other machine) and it pops up a window saying “Service could not be located”.

What am I doing wrong?

Thanks - Alan

Help please?

1 Like

Hi Alan,

did you set up DNS records? You should be able to resolve jabber.org and conference.jabber.org if jabber.org is your domain name.

LG

Hi Alan,

did you set up DNS records? You should be able to

resolve jabber.org and conference.jabber.org if

jabber.org is your domain name.

LG

I’‘m on a local LAN with our own DNS server behind a firewall. Those 2 machines can definitely find each other using their domain names, i.e. without the “conference.” word in front of it. I can get to the admin pages for both machines using their domain names. If I log into each machine individually, I can join its chat rooms but I can’‘t join the chat rooms on the other machine - this is my problem. From what I’‘ve read in the archives, the s2s connectivity should allow me to join the chat room on the other “white listed” machine but I can’'t seem to get it to work hence my frustration…

Thanks for your replies - Alan

Hi Alan,

did you set up DNS records? You should be able to

resolve jabber.org and conference.jabber.org if

jabber.org is your domain name.

LG

Maybe I misunderstood your post. If my server’‘s domain name is “alan.at.work” with IP 123.20.30.40, are you saying that I need to have an entry for “conference.alan.at.work” to point to the SAME IP address of 123.20.30.40 in my “hosts” file? One server is on a Linux box, the other is on my PC running Windows XP - we’‘re running some connectivity tests for a project that I’'m working on…

Hi Alan,

back to the jabber.org example:

nslookup jabber.org

Address: 208.245.212.98

nslookup conference.jabber.org

Address: 208.245.212.98

So you need this, but as a DNS entry or in the hosts file of every client (not sure about this), this may be too much hosts files you need to edit.

LG

Hi Alan,

back to the jabber.org example:

nslookup jabber.org

Address: 208.245.212.98

nslookup conference.jabber.org

Address: 208.245.212.98

So you need this, but as a DNS entry or in the hosts

file of every client (not sure about this), this may

be too much hosts files you need to edit.

LG

I tried your suggestion, I’‘ve added the domain names to the hosts file for both machines (I only have to worry about 2 for testing purposes) with the “conference.” string in front of the domain names then tried adding the new domain name to the “Conference Service” window in Spark and it still doesn’'t like it.

I tried adding just the domain name without the “conference.” string in front of the domain name and it was happy to prepend the “conference.” string to the domain so that in my window I now have “conference.alan.at.work” (as an example).

When I double-click or browse that service (e.g. “conference.alan.at.work”), it now comes back with a pop up window saying:

Unable to retrieve conference information. Please try back later.

In the admin console of each machine, I clicked on the “Sessions” tab then the “Server Sessions” button and both admin consoles show the Incoming and Outgoing session streams and their IDs match up correctly.

So the new question is why can’‘t I “browse” the other server’'s services (i.e. chat rooms, etc.)? Do I have to do something special in the admin console on a server so that its clients can see its services (e.g. all the chat rooms that are available in its system)?

Using the Spark IM client, you have to browse the services on a server such as the chat rooms before you can select a chat room to join.

Message was edited by: avinh

Hi Alan,

so you see in Spark

conference.alan.local

conference.alan.at.work

and conference.alan.at.work which is remote is not working for you while the local one runs fine?

In the s2s Tab you see three connections for conference.alan.at.work, alan.at.work and search.alan.at.work ?

So I must wonder what’'s the problem, are there any errors in the log files?

LG

Hi Alan,

so you see in Spark

conference.alan.local

conference.alan.at.work

and conference.alan.at.work which is remote is not

working for you while the local one runs fine?

Correct, on the local machine, I can browse and pick the chat rooms to join. For the remote server, I get an error window as stated in the other post if I try to browse it.

In the s2s Tab you see three connections for

conference.alan.at.work, alan.at.work and

search.alan.at.work ?

No, on both machines, they only show 1 session - i.e. the session with the remote machine. So the local machine (server1) shows a session with the remote machine (server2), while server2 shows a connection with server1. No other server sessions are shown.

So I must wonder what’'s the problem, are there any

errors in the log files?

The Spark Client has the following errors at the bottom of its error.log file:

Mar 15, 2006 5:34:19 PM com.jivesoftware.spark.util.log.Logger logError

SEVERE: Unable to retrieve list of rooms.

(404)

at org.jivesoftware.smackx.ServiceDiscoveryManager.discoverItems(ServiceDiscoveryM anager.java:407)

at org.jivesoftware.smackx.ServiceDiscoveryManager.discoverItems(ServiceDiscoveryM anager.java:373)

at org.jivesoftware.smackx.muc.MultiUserChat.getHostedRooms(MultiUserChat.java:240 )

at com.jivesoftware.spark.ui.conferences.ConferenceRooms.getRoomList(ConferenceRoo ms.java:546)

at com.jivesoftware.spark.ui.conferences.ConferenceRooms.access$1200(ConferenceRoo ms.java:85)

at com.jivesoftware.spark.ui.conferences.ConferenceRooms$6.construct(ConferenceRoo ms.java:345)

at com.jivesoftware.spark.util.SwingWorker$2.run(SwingWorker.java:121)

at java.lang.Thread.run(Unknown Source)

Mar 15, 2006 5:34:22 PM com.jivesoftware.spark.util.log.Logger logError

SEVERE: Error setting up GroupChatTable

java.lang.NullPointerException

at com.jivesoftware.spark.ui.conferences.ConferenceRooms$6.finished(ConferenceRoom s.java:362)

at com.jivesoftware.spark.util.SwingWorker$3.run(SwingWorker.java:128)

at java.awt.event.InvocationEvent.dispatch(Unknown Source)

at java.awt.EventQueue.dispatchEvent(Unknown Source)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.pumpEvents(Unknown Source)

at java.awt.EventDispatchThread.run(Unknown Source)

Message was edited by: avinh

Hi Alan,

I’'m more interested in the server log files.

Can you use the search service or does this also fail?

It seems that the s2s connection causes the problem. I see the three sessions for each server in my setup.

LG

Hi Alan,

I’'m more interested in the server log files.

Can you use the search service or does this also

fail?

It seems that the s2s connection causes the problem.

I see the three sessions for each server in my

setup.

LG

When I browse the remote machine (i.e. seurat.cbt.nist.gov, a Linux box), my local Wildfire logs the following errors:[/b]

2006.03.15 18:01:18 [org.jivesoftware.wildfire.server.OutgoingServerSession.createOutgoingSession(O utgoingServerSession.java:315)

] Error creating secured outgoing session to remote server: seurat.cbt.nist.gov(DNS lookup: seurat.cbt.nist.gov:5269)

javax.net.ssl.SSLHandshakeException: General SSLEngine problem

at com.sun.net.ssl.internal.ssl.Handshaker.checkThrown(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.checkTaskThrown(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeAppRecord(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.wrap(Unknown Source)

at javax.net.ssl.SSLEngine.wrap(Unknown Source)

at org.jivesoftware.wildfire.net.TLSStreamHandler.doHandshake(TLSStreamHandler.jav a:320)

at org.jivesoftware.wildfire.net.TLSStreamHandler.(TLSStreamHandler.java:206)

at org.jivesoftware.wildfire.net.SocketConnection.startTLS(SocketConnection.java:1 50)

at org.jivesoftware.wildfire.server.OutgoingServerSession.secureAndAuthenticate(Ou tgoingServerSession.java:343)

at org.jivesoftware.wildfire.server.OutgoingServerSession.createOutgoingSession(Ou tgoingServerSession.java:296)

at org.jivesoftware.wildfire.server.OutgoingServerSession.authenticateDomain(Outgo ingServerSession.java:139)

at org.jivesoftware.wildfire.server.OutgoingSessionPromise.createSessionAndSendPac ket(OutgoingSessionPromise.java:126)

at org.jivesoftware.wildfire.server.OutgoingSessionPromise.access$300(OutgoingSess ionPromise.java:37)

at org.jivesoftware.wildfire.server.OutgoingSessionPromise$1$1.run(OutgoingSession Promise.java:91)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem

at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at com.sun.net.ssl.internal.ssl.Handshaker$DelegatedTask.run(Unknown Source)

at org.jivesoftware.wildfire.net.TLSStreamHandler.doTasks(TLSStreamHandler.java:37 1)

at org.jivesoftware.wildfire.net.TLSStreamHandler.doHandshake(TLSStreamHandler.jav a:281)

… 11 more

Caused by: java.security.cert.CertificateException: root certificate not trusted of

at org.jivesoftware.wildfire.net.ServerTrustManager.checkServerTrusted(ServerTrust Manager.java:133)

at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(Unknown Source)

… 19 more

2006.03.15 18:01:18 [org.jivesoftware.wildfire.net.SocketReader.run(SocketReader.java:159)

] Connection closed before session established

Socket[addr=/129.6.162.240,port=42543,localport=5269]

2006.03.15 18:01:18 [org.jivesoftware.wildfire.net.SocketReader.negotiateTLS(SocketReader.java:680)

] Error while negotiating TLS

javax.net.ssl.SSLException: Unsupported record version Unknown-47.115

at com.sun.net.ssl.internal.ssl.EngineInputRecord.bytesInCompletePacket(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.readNetRecord(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.unwrap(Unknown Source)

at javax.net.ssl.SSLEngine.unwrap(Unknown Source)

at org.jivesoftware.wildfire.net.TLSStreamHandler.doHandshake(TLSStreamHandler.jav a:268)

at org.jivesoftware.wildfire.net.TLSStreamHandler.(TLSStreamHandler.java:206)

at org.jivesoftware.wildfire.net.SocketConnection.startTLS(SocketConnection.java:1 50)

at org.jivesoftware.wildfire.net.SocketReader.negotiateTLS(SocketReader.java:677)

at org.jivesoftware.wildfire.net.SocketReader.readStream(SocketReader.java:266)

at org.jivesoftware.wildfire.net.SocketReader.run(SocketReader.java:119)

at java.lang.Thread.run(Unknown Source)

2006.03.15 18:01:18 [org.jivesoftware.wildfire.net.SocketReader.run(SocketReader.java:159)

] Connection closed before session established

Socket[addr=/129.6.162.240,port=42544,localport=5269]

The remote machine (seurat) wildfire logs has the following errors, note that p623572.campus.nist.gov is my PC:[/b]

2006.03.15 17:54:16 org.jivesoftware.wildfire.net.SocketReader.negotiateTLS(SocketReader.java:680) Error while negotiating TLS

javax.net.ssl.SSLException: Unsupported record version Unknown-47.115

at com.sun.net.ssl.internal.ssl.EngineInputRecord.bytesInCompletePacket(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.readNetRecord(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.unwrap(Unknown Source)

at javax.net.ssl.SSLEngine.unwrap(Unknown Source)

at org.jivesoftware.wildfire.net.TLSStreamHandler.doHandshake(TLSStreamHandler.jav a:268)

at org.jivesoftware.wildfire.net.TLSStreamHandler.(TLSStreamHandler.java:206)

at org.jivesoftware.wildfire.net.SocketConnection.startTLS(SocketConnection.java:1 50)

at org.jivesoftware.wildfire.net.SocketReader.negotiateTLS(SocketReader.java:677)

at org.jivesoftware.wildfire.net.SocketReader.readStream(SocketReader.java:266)

at org.jivesoftware.wildfire.net.SocketReader.run(SocketReader.java:119)

at java.lang.Thread.run(Unknown Source)

2006.03.15 17:54:16 org.jivesoftware.wildfire.net.SocketReader.run(SocketReader.java:159) Connection closed before session established

Socket[addr=/129.6.162.91,port=2772,localport=5269]

2006.03.15 17:54:16 org.jivesoftware.wildfire.server.OutgoingServerSession.createOutgoingSession(Out goingServerSession.java:315) Error creating secured outgoing session to remote server: p623572.campus.nist.gov(DNS lookup: p623572.campus.nist.gov:5269)

javax.net.ssl.SSLHandshakeException: General SSLEngine problem

at com.sun.net.ssl.internal.ssl.Handshaker.checkThrown(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.checkTaskThrown(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.writeAppRecord(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.wrap(Unknown Source)

at javax.net.ssl.SSLEngine.wrap(Unknown Source)

at org.jivesoftware.wildfire.net.TLSStreamHandler.doHandshake(TLSStreamHandler.jav a:320)

at org.jivesoftware.wildfire.net.TLSStreamHandler.(TLSStreamHandler.java:206)

at org.jivesoftware.wildfire.net.SocketConnection.startTLS(SocketConnection.java:1 50)

at org.jivesoftware.wildfire.server.OutgoingServerSession.secureAndAuthenticate(Ou tgoingServerSession.java:343)

at org.jivesoftware.wildfire.server.OutgoingServerSession.createOutgoingSession(Ou tgoingServerSession.java:296)

at org.jivesoftware.wildfire.server.OutgoingServerSession.authenticateDomain(Outgo ingServerSession.java:139)

at org.jivesoftware.wildfire.server.OutgoingSessionPromise.createSessionAndSendPac ket(OutgoingSessionPromise.java:126)

at org.jivesoftware.wildfire.server.OutgoingSessionPromise.access$300(OutgoingSess ionPromise.java:37)

at org.jivesoftware.wildfire.server.OutgoingSessionPromise$1$1.run(OutgoingSession Promise.java:91)

at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)

at java.lang.Thread.run(Unknown Source)

Caused by: javax.net.ssl.SSLHandshakeException: General SSLEngine problem

at com.sun.net.ssl.internal.ssl.Alerts.getSSLException(Unknown Source)

at com.sun.net.ssl.internal.ssl.SSLEngineImpl.fatal(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker.fatalSE(Unknown Source)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.serverCertificate(Unknown Source)

at com.sun.net.ssl.internal.ssl.ClientHandshaker.processMessage(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker.processLoop(Unknown Source)

at com.sun.net.ssl.internal.ssl.Handshaker$1.run(Unknown Source)

at java.security.AccessController.doPrivileged(Native Method)

at com.sun.net.ssl.internal.ssl.Handshaker$DelegatedTask.run(Unknown Source)

at org.jivesoftware.wildfire.net.TLSStreamHandler.doTasks(TLSStreamHandler.java:37 1)

at org.jivesoftware.wildfire.net.TLSStreamHandler.doHandshake(TLSStreamHandler.jav a:281)

… 11 more

Caused by: java.security.cert.CertificateException: root certificate not trusted of

at org.jivesoftware.wildfire.net.ServerTrustManager.checkServerTrusted(ServerTrust Manager.java:133)

at com.sun.net.ssl.internal.ssl.JsseX509TrustManager.checkServerTrusted(Unknown Source)

… 19 more

2006.03.15 17:54:16 org.jivesoftware.wildfire.net.SocketReader.run(SocketReader.java:159) Connection closed before session established

Socket[addr=/129.6.162.91,port=2774,localport=5269]

Looks like some sort of TLS problem between the 2 machines?[/b]

NOTE: I do use TLS on port 5223 to log into both machines when I bring up the Spark Client - there is no problem logging in on either machines. I also have both machines using OpenLDAP for user verification purposes.

Hi Alan,

Can you use the search service or does this also

fail?

LG

Search works for local users, how do I search for a user on the remote machine? I.e. what do I enter in the search field?

For a local user, I can just enter my ID “abvinh” and it shows up fine. How do I check for “abvinh” on seurat.cbt.nist.gov? I tried “abvinh@seurat.cbt.nist.gov” and it returns:

User not found. Please try a different search.[/i]

Hi LG,

Did the server’'s log helped any? Is there anything else you would like me to try?

Thanks - Alan

If you want to search for remote users, then open the search window, make it wider, and press ‘‘add service’’, type in ‘‘search.seurat.cbt.nist.gov’’. Wait for the remote search form to load, then do your search.

If you want to search for remote users, then open the

search window, make it wider, and press ''add

service’', type in ‘‘search.seurat.cbt.nist.gov’’. Wait

for the remote search form to load, then do your

search.

Hi normanr,

I’‘m sorry, I’‘m not following what you’‘re saying correctly. In the wildfire admin console, I go to “Users/Groups”, then under that there are the buttons/links for “User Search” and “Advance User Search”. I don’‘t see any place to do the “add service” you’'re speaking of?

Thanks - Alan

In the wildfire admin console

woops, I meant using the spark client. You have to press enter in the ‘‘find box’’ at the bottom of the window, then you can make the window bigger to see the add button.

In the wildfire admin console

woops, I meant using the spark client. You have to

press enter in the ‘‘find box’’ at the bottom of the

window, then you can make the window bigger to see

the add button.

I tried the search feature as you have described, I entered the server’'s name - search.seurat.cbt.nist.gov AND seurat.cbt.nist.gov. They both popped up a window saying:

Unable to contact search service[/b]

I believe it may have something to do with SSL/TLS or maybe related to the s2s problem I’'m having.

Are you running with SSL/TLS on port 5223 against your server?

It could be s2s TLS/SSL related:

On the admin console go to security settings, and for ‘‘Server Connection Security’’, make it custom and change TLS to Not Available. This should disable any TLS attempts during s2s connections.

There are two (or three) places that SSL/TLS is used: Clients connections: 5223 (SSL is enabled from the word go), 5222 (TLS is enabled via STARTTLS after the connection is made). Server connetions: 5269 TLS is optionally enabled via STARTTLS.

Server-to-Server TLS/SSL is a firaly new feature, so it’‘s possible that it’'s breaking something. By disabling it, you might be able to work around the s2s connection problems.

FYI: SSL and TLS are really exactly the same thing, just SSL is older and is generally enabled as the connection is made. TLS is really the same thing, but is optionally enabled once the connection has been made and some headers have been sent back and forth.