Skip to content
This repository

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP

An ejabberd module that pre binds an anonymous sasl session, returning the authenticated session.

branch: master

This branch is 0 commits ahead and 0 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time

README
mod_http_pre_bind for ejabberd. 

When using anonymous users the authentication process through BOSH can
take a second or two.  These seconds can be saved by doing all of the
authentication and bosh session setup on one call. mod_http_pre_bind
does this and returns a jid, sid, and rid of a valid BOSH session.

It requires mod_http_bind.  Modifications are needed to
src/web/ejabberd_http_bind.erl. The start, http_get, http_put,
handle_session_start, and prepare_response functions need to be made
public in the module code.  This prebind module simply calls those
functions to initiate and handle a session.

To build run the build.sh script and install the resulting beam files
in your ejabberd ebin directory.

Install both in ejabberd.cfg.


{5288, ejabberd_http, [
                         http_bind, 
                         web_admin,
                         {request_handlers, 
                          [{["http-pre-bind"], 
                            mod_http_pre_bind}]}
                        ]}


%%
%% Modules enabled in all ejabberd virtual hosts.
%%
{modules,
 [
  {mod_http_bind,      []},
  {mod_http_pre_bind,      []},


Example post and response:

POST
<body to='example.com' rid='1234567' wait='60' hold='1' />



Response:
 <body xmlns='http://jabber.org/protocol/httpbind'   
       sid='892efca20cea238958f0603f89a6f8472ef790fe'   
       rid='1234568'>  
   <iq xmlns='jabber:client'  
       id='_bind_auth_2'  
       type='result'>  
     <bind xmlns='urn:ietf:params:xml:ns:xmpp-bind'>  
       <jid>22720631691260831658412599@example.com/37436661951260831658614586</jid>  
     </bind>  
   </iq>  
</body>
Something went wrong with that request. Please try again.