Connecting a client behind a firewall to a server using HTTP-binding

  1. have Openfire 3.3.2 installed and working on my home network (gateway plugin can even connect to the other protocols I need - cool!) on a standalone FreeBSD server that sits behind a router with a static IP

  2. I have http-binding enabled, and open on ports 8080 and 8483, and the router points any requests to those ports to the server that Openfire is running on

  3. From work inside the Corp firewall, if I visit http://myhomeip:8080 I get the page:

Openfire HTTP Binding Service

  1. From work inside the Corp firewall, if I visit https://myhomeip:8483 I get the page:

Openfire HTTP Binding Service

  1. From work inside the Corp firewall, I cannot get Pidgin to work, even when I point it to my server, and tell it to use 8080 or 8483. I’ve set it to use the server, also set it on the 2nd tab to use the server as the ‘connect’ server, I’ve tried setting it as a HTTP Proxy on that 2nd tab - I always get the error from Pigdin: "Could not establish a connection with the server:

Windows socket error #10060"

-so-

Here’s my setup:

Me - IM client

|

|

Corp firewall

|

|

INTERNET

|

|

home IP/router

|

|

Openfire listening with HTTP-binding on 8080/8483

Things work fine at home out to the Internet - I have services on the server (email, www, etc) that have worked for years, so I know those, and the router, are setup correctly. What am I missing? Is there an end-to-end HOWTO on this that I’m missing? (I’ll write it if I can get this working) How can I connect Pidgin from within the Corp firewall to the server running Openfire on HTTP-binding? Do I need to just run JWChat on the Openfire server and connect that way? Do I have to have the rewrite rule for Apache to send: :8080/ /http-bind? I skipped that since I can do NAT with my router (not at home now otherwise I’d look into it)

Thanks

As far as I know Pidgin does not support HTTP binding.

Alex

It might be worth your time downloading the Spark Client and giving that a go.

Thanks for the replies, I tried Spark first, and it failed. I’ve done plenty of Googling, but can’t find a list of Clients that support HTTP-binding - it can’t just be JWChat, can it? I would like to have a client talk to my server using HTTP-binding on 8080 or 8483…how can I do this?

Thanks

Always look to the logs I say, it just seems so foreign when I’m running on Windows! So, here is the output from error.log after a failed connection from Spark -> home Openfire server - lokos like remote-server-error(502) : connection timed out. What does that tell us?

$ cat error.log

XMPPError connecting to myhomeip:8080.: remote-server-error(502) XMPPError connecting to myhomeip:8080.

– caused by: java.net.ConnectException: Connection timed out: connect

at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection. java:830)

at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:1276)

at org.jivesoftware.LoginDialog$LoginPanel.login(LoginDialog.java:822)

at org.jivesoftware.LoginDialog$LoginPanel.access$400(LoginDialog.java:196)

at org.jivesoftware.LoginDialog$LoginPanel$1.construct(LoginDialog.java:594)

at org.jivesoftware.spark.util.SwingWorker$2.run(SwingWorker.java:129)

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

Nested Exception:

java.net.ConnectException: Connection timed out: connect

at java.net.PlainSocketImpl.socketConnect(Native Method)

at java.net.PlainSocketImpl.doConnect(Unknown Source)

at java.net.PlainSocketImpl.connectToAddress(Unknown Source)

at java.net.PlainSocketImpl.connect(Unknown Source)

at java.net.SocksSocketImpl.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at java.net.Socket.connect(Unknown Source)

at java.net.Socket.(Unknown Source)

at java.net.Socket.(Unknown Source)

at org.jivesoftware.smack.XMPPConnection.connectUsingConfiguration(XMPPConnection. java:815)

at org.jivesoftware.smack.XMPPConnection.connect(XMPPConnection.java:1276)

at org.jivesoftware.LoginDialog$LoginPanel.login(LoginDialog.java:822)

at org.jivesoftware.LoginDialog$LoginPanel.access$400(LoginDialog.java:196)

at org.jivesoftware.LoginDialog$LoginPanel$1.construct(LoginDialog.java:594)

at org.jivesoftware.spark.util.SwingWorker$2.run(SwingWorker.java:129)

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

I can tell you beyond the shadow of a doubt that it is not available in Spark, if it were, I would’ve likely programmed it as I made the support in Openfire. I know of no rich aka desktop clients that can use HTTP binding, though if you have programming chops I can provide guidance if you decide to add it to a client on your own.