Quantcast
Channel: Ignite Realtime : Discussion List - All Communities
Viewing all articles
Browse latest Browse all 10742

Problem with Openfire http-bind / bosh - clients wont connect fully

$
0
0

Hi,

 

I am running a debian 7.6 machine with kolab (email/calendar) and installed openfire 3.9.3 from .deb package.

(this is all in a testing vm locally on 192.168.0.150 as gedv.local, I want verified configurations before installing on production)

 

the web service is provided by apache2, ldap service provided by 389 (red hat)

 

i managed to get openfire with ldap-auth working.

openfire works fine with thunderbird or pigdin when connection via normal xmpp protocol.

 

now I would like to integrate the converse plugin into roundcubemail. for that I need http-bind connections (local) to work.

(this plugin will enable a chat window connected to openfire running on the same host in webmail)

 

it seemed pretty easy but I cant manage to get it to work.

 

Of course http binding is enabled (port 7070)

scripting syntax is enabled (I tried disabled, too)

cors support: enabled with * (tried disabled)

xff: enabled (tried disabled)

cross-domain policy: unchanged

 

apprently to use converse I need to enable proxypass

I enabled the proxypass for /http-bind in apache

 

i tried with firefox:

--> http://192.168.0.150:7070/http-bind ----> gives Bad Request (Jetty)

--> http://192.168.0.150/http-bind -----> also gives Bad Request (Jetty)

 

pigdin settings:

xmpp

username: myname

domain: gedv.local

ressource: [empty]

password: ********

 

use encryption if available

[x] allow cleartext auth over unencrypted channel

port 7070 *

server: [empty]

proxy: [empty]

bosh-url: http://192.168.0.150/http-bind **

 

* also tried empty or 80

** also tried with port 7070

 

[ to be clear:

pigdin is NOT running on the same host as openfire.

BUT converse will be.

but before I try to get converse to run I want to confirm

http-bind is working! ]

 

now pigdin is connecting and keeps connecting without any error. but it never fully logs on.

unfortunately, I dont have too much experience with openfire and bosh or java to delve deeper into the problem.

 

ive also tried strophe.js to test the http-bind (basic test).

setting: var BOSH_SERVICE = 'http://192.168.0.150/http-bind'

alternative: var BOSH_SERVICE = 'http://192.168.0.150:7070/http-bind'

 

output

Strophe is connecting.

SENT: <body rid='3764513684' xmlns='http://jabber.org/protocol/httpbind' to='gedv.local' xml:lang='en' wait='60' hold='1' content='text/xml; charset=utf-8' ver='1.6' xmpp:version='1.0' xmlns:xmpp='urn:xmpp:xbosh'/>

RECV: <body xmlns='http://jabber.org/protocol/httpbind' xmlns:stream='http://etherx.jabber.org/streams' from='gedv.local' authid='6edd06d9' sid='6edd06d9' secure='true' requests='2' inactivity='30' polling='5' wait='60' hold='1' ack='3764513684' maxpause='300' ver='1.6'><stream:features><mechanisms xmlns='urn:ietf:params:xml:ns:xmpp-sasl'><mechanism>PLAIN</mechanism></mechanis ms><compression xmlns='http://jabber.org/features/compress'><method>zlib</method></compression><bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'/><session xmlns='urn:ietf:params:xml:ns:xmpp-session'/></stream:features></body>

SENT: <body rid='3764513685' xmlns='http://jabber.org/protocol/httpbind' sid='6edd06d9'><auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>c2Nob2VuZmVsZHRAZ2Vkdi5sb2NhbABzY2hvZW5mZWxkdABzY290dHkzNA==< /auth></body>

SENT: <body rid='3764513685' xmlns='http://jabber.org/protocol/httpbind' sid='6edd06d9'><auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>c2Nob2VuZmVsZHRAZ2Vkdi5sb2NhbABzY2hvZW5mZWxkdABzY290dHkzNA==< /auth></body>

SENT: <body rid='3764513685' xmlns='http://jabber.org/protocol/httpbind' sid='6edd06d9'><auth xmlns='urn:ietf:params:xml:ns:xmpp-sasl' mechanism='PLAIN'>c2Nob2VuZmVsZHRAZ2Vkdi5sb2NhbABzY2hvZW5mZWxkdABzY290dHkzNA==< /auth></body>

 

found some hint that one should add the body rid setting to see if bosh is working...

loading with firefox:

http://192.168.0.150/http-bind/?<body rid="1"/>

http://192.168.0.150:7070/http-bind/?<body rid="1"/>

 

output (both ports)
_BOSH_("<body xmlns=\"http://jabber.org/protocol/httpbind\" xmlns:stream=\"http://etherx.jabber.org/streams\" from=\"gedv.local\" authid=\"60296394\" sid=\"60296394\" secure=\"true\" requests=\"2\" inactivity=\"30\" polling=\"5\" wait=\"60\"><stream:features><mechanisms xmlns=\"urn:ietf:params:xml:ns:xmpp-sasl\"><mechanism>PLAIN</mechanism></mechan isms><compression xmlns=\"http://jabber.org/features/compress\"><method>zlib</method></compression><bind xmlns=\"urn:ietf:params:xml:ns:xmpp-bind\"/><session xmlns=\"urn:ietf:params:xml:ns:xmpp-session\"/></stream:features></body>")

 

 

pigdin debug is showing:

pigdin debug:

 

(22:30:53) dnsquery: Performing DNS lookup for 192.168.0.150
(22:30:53) dnsquery: IP resolved for 192.168.0.150
(22:30:53) proxy: Attempting connection to 192.168.0.150
(22:30:53) proxy: Connecting to 192.168.0.150:80 with no proxy
(22:30:53) proxy: Connection in progress
(22:30:53) proxy: Connecting to 192.168.0.150:80.
(22:30:53) proxy: Connected to 192.168.0.150:80.
(22:30:53) jabber: bosh: httpconn 06B11B00 re-connected
(22:30:53) jabber: BOSH session already exists. Trying to reuse it.
(22:31:14) jabber: BOSH server closed the connection (06B11B00)
(22:31:27) jabber: RecvBOSH (57): <body xmlns="http://jabber.org/protocol/httpbind"></body>
(22:31:27) jabber: BOSH: Sending an empty request
(22:31:27) jabber: BOSH server closed the connection (05012CC0)
(22:31:29) jabber: bosh: Reconnecting httpconn (0, 05012CC0)
(22:31:29) dnsquery: Performing DNS lookup for 192.168.0.150
(22:31:29) dnsquery: IP resolved for 192.168.0.150

 

 

i cant see any problem in apache log

 

openfire info.log is showing:

2014.09.24 22:25:42 org.jivesoftware.openfire.http.HttpSessionManager - Closing idle session: gedv.local/b38545f 
2014.09.24 22:29:07 org.jivesoftware.openfire.http.HttpSessionManager - Closing idle session: gedv.local/bf107330

 

in warn.log what i found is:

at org.jivesoftware.openfire.http.HttpSessionManager$HttpPacketSender.init(HttpSes sionManager.java:429)

at org.jivesoftware.openfire.http.HttpSessionManager$HttpPacketSender.access$200(H ttpSessionManager.java:417) 
at org.jivesoftware.openfire.http.HttpSessionManager.forwardRequest(HttpSessionMan ager.java:326) 
at org.jivesoftware.openfire.http.HttpBindServlet.handleSessionRequest(HttpBindSer vlet.java:254) 
at org.jivesoftware.openfire.http.HttpBindServlet.parseDocument(HttpBindServlet.ja va:176) 
at org.jivesoftware.openfire.http.HttpBindServlet.doPost(HttpBindServlet.java:145) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) 
at org.jivesoftware.openfire.http.HttpBindServlet.service(HttpBindServlet.java:104 )

 

 

if you have more questions and/or need more logs I will gladly provide them...

 

any help would be appreciated!


Viewing all articles
Browse latest Browse all 10742

Trending Articles