set proxy in apache for XMPP chat
Posted
by
Hunt
on Server Fault
See other posts from Server Fault
or by Hunt
Published on 2012-02-06T15:36:42Z
Indexed on
2012/11/01
17:04 UTC
Read the original article
Hit count: 513
I want to setup a proxy settings in Apache to use Facebook XMPP Chat
So far I have setup ejabber server and I am able to access xmpp service using
http://mydomain.com:5280/xmpp-http-bind
I am able to create Jabber Account too.
Now as I want to integrate Facebook XMPP chat , I want my server to sit in between client and chat.facebook.com because I want to implement Facebook chat and custom chat too.
So I have read this article and come to know that I need to serve BOSH Service as a proxy in apache to access Facebook Chat service.
So I don't know how to set up a proxy in a apache httpd.conf as I have tried following
<Proxy *>
Order deny,allow
Allow from all
</Proxy>
ProxyPass /xmpp-httpbind http://www.mydomain.com:5280/xmpp-http-bind
ProxyPassReverse /xmpp-httpbind http://www.mydomain.com:5280/xmpp-http-bind
But whenever I request http://www.mydomain.com:5280/xmpp-http-bind from strophe.js I am getting following response from server
<body type='terminate' condition='internal-server-error' xmlns='http://jabber.org/protocol/httpbind'>
BOSH module not started
</body>
and server log says following
E(<0.567.0>:ejabberd_http_bind:1239) : You are trying to use BOSH (HTTP Bind) in host "chat.facebook.com", but the module mod_http_bind is not started in that host. Configure your BOSH client to connect to the correct host, or add your desired host to the configuration, or check your 'modules' section in your ejabberd configuration file.
here is my existing settings of ejabberd.cfg , but still no luck
{5280, ejabberd_http, [
{access,all},
{request_handlers,
[
{["pub", "archive"], mod_http_fileserver},
{["xmpp-http-bind"], mod_http_bind}
]},
captcha,
http_bind,
http_poll,
register,
web_admin
]}
]}.
in a module section
{mod_http_bind, [{max_inactivity, 120}]},
and whenever i fire http://www.mydomain.com:5280/xmpp-http-bind url independently
am getting following message
ejabberd mod_http_bind
An implementation of XMPP over BOSH (XEP-0206)
This web page is only informative. To use HTTP-Bind you need a Jabber/XMPP client that supports it.
I have added chat.facebook.com in a list of host in ejabber.cfg as follows
{hosts, ["localhost","mydomain.com","chat.facebook.com"]}
and now i am getting following response
<body xmlns='http://jabber.org/protocol/httpbind'
sid='710da2568460512eeb546545a65980c2704d9a27'
wait='300'
requests='2'
inactivity='120'
maxpause='120'
polling='2'
ver='1.8'
from='chat.facebook.com'
secure='true'
authid='1917430584'
xmlns:xmpp='urn:xmpp:xbosh'
xmlns:stream='http://etherx.jabber.org/streams'
xmpp:version='1.0'>
<stream:features xmlns:stream='http://etherx.jabber.org/streams'>
<mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>
<mechanism>DIGEST-MD5</mechanism>
<mechanism>PLAIN</mechanism>
</mechanisms>
<c xmlns='http://jabber.org/protocol/caps'
hash='sha-1'
node='http://www.process-one.net/en/ejabberd/'
ver='yy7di5kE0syuCXOQTXNBTclpNTo='/>
<register xmlns='http://jabber.org/features/iq-register'/>
</stream:features>
</body>
if i use valid BOSH service created my jack moffit http://bosh.metajack.im:5280/xmpp-httpbind
then i am getting following valid XML from facebook , but from my server i am not getting this
<body xmlns='http://jabber.org/protocol/httpbind'
inactivity='60'
secure='true'
authid='B8732AA1'
content='text/xml;
charset=utf-8'
window='3'
polling='15'
sid='928073b02da55d34eb3c3464b4a40a37'
requests='2'
wait='300'>
<stream:features xmlns:stream='http://etherx.jabber.org/streams' xmlns='jabber:client'>
<mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'>
<mechanism>X-FACEBOOK-PLATFORM</mechanism>
<mechanism>DIGEST-MD5</mechanism>
</mechanisms>
</stream:features>
</body>
Can anyone please help me to resolve the issue
© Server Fault or respective owner