No workgroups visible from external fastpath server

I have a tricky setup that’s giving me a bit of trouble:

Openfire is installed on a local server behind a firewall, while fastpath webchat is installed on a production server “outside” my domain. My domain is visible from outside at xxxx.dyndns.org. I setup fastpath to xxxx.dyndns.org/xxxx.dyndns.org/PPPP (PPPP=port redirected because of firewall).

Problem is, I can’t see an workgroups…

This setup passes the test-connection.jsp test. If i disconnect Openfire, the production server gives an error and requests I change its configuration. If I set fastpath to openfire.my.domain (real local address)/xxxx.dyndns.org/PPPP it fails to find the server…

Is there any port other then 5222 that should be open between the two servers? Most of my ports are closed.

Funny thing is that if i manualy type the required link, for example:

http://production.server:8080/webchat/userinfo.jsp?chatID=0&workgroup=workgroup@ workgroup.openfire.my.domain8080/webchat/userinfo.jsp?chatID=0&workgroup=workgroup@workgroup.openfire.my.domain

the chat works (if there are agents the propt screen apears, if not the Live Chat Not Available page apears).

I had fastpath installed as explained: http://community.igniterealtime.org/docs/DOC-1744

Any help would be appreciated.

I think I may be on to the source of the problem. The warn log is filling up with this:

2011.05.19 16:03:11 Error trying to connect to remote server: local(DNS lookup: local:5269)
java.net.UnknownHostException: local
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.createOutgoingSess ion(LocalOutgoingServerSession.java:278)
at org.jivesoftware.openfire.session.LocalOutgoingServerSession.authenticateDomain (LocalOutgoingServerSession.java:208)
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.sendPa cket(OutgoingSessionPromise.java:261)
at org.jivesoftware.openfire.server.OutgoingSessionPromise$PacketsProcessor.run(Ou tgoingSessionPromise.java:238)
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)

I don’t think local is a good server address

I think it should be my external server, but I can’t find where to configure this…

Fixed!

It turns out I used the alias im.my.domain in the confuguration on the pruduction server instead of the actual name serverX.my.domain.

Config now looks like:

Host: xxxx.dyndns.org

Domain: serverX.my.domain

Port: PPPP

Looks like this isn’t the end of my troubles.

After the original fix, my external server now shows workgoups for about 5 minutes and then they disapear…

Restarting the internal Openfire service causes the workgroups to reapear, but then disapear again after a few minutes…

The external faspath is running on tomcat 5.

Upgraded my external server to Tomcat6, same problem.

I noticed that my internal and external servers are trying to comunicate on some random ports (47xxx) which are of course closed by my ISP. I have a very short list of open ports on my firewall (those needed for regular surfing and a few redirected ones like 5222 for Openfire). Is there any other port I should open for Openfire?

I think that 5222 port is only for an incoming client connections, but a server itself can use various (maybe random) ports for its communication. I think i have observed this with tcpview some time ago on my test server.

Well, that kind of sucks…

At the moment I see my internal server spamming my firewall looking for random open ports (34000-56000), which of course are all closed…

Every time I lose the groups, I get this error when I test the connection:

Could not connect to local-server:port.: remote-server-timeout(504) Could not connect to local-server:port. – caused by: java.net.UnknownHostException: local-serve at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection. java:799) at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:1252) at org.apache.jsp.test_002dconnection_jsp._jspService(test_002dconnection_jsp.java :91) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil terChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain .java:206) at org.jivesoftware.webchat.SetCharacterEncodingFilter.doFilter(SetCharacterEncodi ngFilter.java:45) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil terChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain .java:206) at org.jivesoftware.webchat.SetupFilter.doFilter(SetupFilter.java:92) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil terChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain .java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java: 233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java: 191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:10 9) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11P rotocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:662)Nested Exception: java.net.UnknownHostException: server13.adriatic.local at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:195) at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:366) at java.net.Socket.connect(Socket.java:529) at java.net.Socket.connect(Socket.java:478) at java.net.Socket.(Socket.java:375) at java.net.Socket.(Socket.java:189) at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection. java:791) at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:1252) at org.apache.jsp.test_002dconnection_jsp._jspService(test_002dconnection_jsp.java :91) at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377) at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil terChain.java:290) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain .java:206) at org.jivesoftware.webchat.SetCharacterEncodingFilter.doFilter(SetCharacterEncodi ngFilter.java:45) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil terChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain .java:206) at org.jivesoftware.webchat.SetupFilter.doFilter(SetupFilter.java:92) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil terChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain .java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java: 233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java: 191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:10 9) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11P rotocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:662)

It seems that the above error isn’t the problem, since the test-connection.jsp fails even when fastpath works!

From what I can tell, all connections are being made and all packets are passing though my firewall, the only thing is my external server isn’t updating its list of agents properly (regularly/fast enough?).

I tried turning off disconnecting of idle clients and servers, but it dosen’t seem to help…

Finaly got it fixed.

The firewall was to blame. For some reason “Balancing per host” was enabled for the IM’s rule. That caused the firewall to swap the IMs connection every so often, which in turn caused the external server to loose it’s connection to the internal server.

It’s allways the simplest thing that are overlooked…

Hello,

I don’t have any firewall. I am in the test environment with server and client sitting next to each other. I have installed it on W2K server. If I give URL as,

http://HOST:7070/webchat/, a page opens that says,

Fastpath Web Chat

List of available workgroups within Fastpath

Click on one of the following workgroups to join.

But there is no workgroup listed in there. If I type URL as,

http://HOST:7070/webchat/userinfo.jsp?chatID=0&workgroup=support@workgroup.domai n

It works.

Any help???

Parag