Xmpp from behind firewall via http proxy - what proxy software?

[As a new discourse user, I’m not allowed to put more than 2 links in this post. consequently I’ve had to change all occurrences of ‘http’ to ‘ttp’.]

I would like to use pidgin with xmpp from behind a corporate firewall, which allows only outgoing ttp/s. In the xmpp account setup in pidgin, there is a Proxy tab, in which I guess I can specify details of an http proxy.

At home I have a front-end apache web server with several vhosts configured, proxying to various back-end web services (nextcloud, wordpress, …). I have added a new vhost configuration so that ttp://xmpp-proxy.example.com/ reverse proxies my-xmpp-proxy-container:80 on my home network.

For the proxy software, I was hoping to use something light like socat, but when I run something like:

socat -v -d -d TCP-LISTEN:80,crlf,reuseaddr,fork TCP:jabber.de:5222

socat produces no output when i enable the account and I get a popup “Either the host name or port number specified for your given proxy type is invalid”.

I have verified that from behind the corporate firewall I can connect with telnet to xmpp-proxy.example.com:80, and then when I type:

GET /blah HTTP/1.1
Host:
Accept: text/html

then socat gets it, relays the request to jabber.de, which, understandably then complains about protocol, but at least I see it is getting through.

Okay, so socat probably wouldn’t know what to do with whatever pidgin sent it, but pidgin isn’t even establishing a connection through to socat.

So my questions are:

  1. why is pidgin not getting connected to socat? Have I misunderstood the proxy settings?

  2. how can I make socat correctly handle whatever pidgin says to it?

  3. if this is never going to work with socat, then what software should I be using instead?

Many thanks!

PS I will upgrade to https once I have this working with http.

Can you try opening the debug window from Help -> Debug Window and then try to connect? You should see something like proxy: connecting to ... and hopefully there will be something useful there.

Thanks for the suggestion. It did show that it was connecting so I think I must have done something stupid, and I also had a rethink and decided it would be less “deviant” to try to use BOSH, though I have questions there too, but I’ll open a new topic for that.