HTML Logo by World Wide Web Consortium ( Click to learn more about our commitment to accessibility and standards.

Moving forward with Composr

ocPortal has been relaunched as Composr CMS. ocPortal 9 is superseded by Composr 10.

Head over to for our new site, and to our migration roadmap. Existing ocPortal member accounts have been mirrored.


This addon replaces the standard ocPortal chat room with any Jabber chatrooms running on your server. Usage Instructions:
  1. You will need a dedicated server; we assume it is Linux and Apache.
  2. We assume ocPortal is installed to use MySQL.
  3. We assume that users are set up with standard ocPortal password hashing, or md5 hashing, or plain passwords, or vbulletin hashing.
  4. Install ejabberd on on your server (it supports builtin BOSH connections – which are needed for our web interface). Make sure it's not version 1, that has problems.
  5. It is important mod_http_bind has been enabled on your ejabberd configuration, as well as mod_muc (they are by default).
  6. Edit ejabberd.cfg to enable the mod_muc_log module, setting the save path to be <ocpbasepath>/data_custom/jabber-logs (optional).
  7. Install this ocPortal addon to replace ocPortal's normal chat backend with your new XMPP server.
  8. Turn on our authentication script by editing ejabberd.cfg…. a) Comment out "{auth_method, internal}." b) Add in: "<ocpbasepath>/data_custom/modules/chat/ejabberd_auth.php" c) Set execute file permissions on the above referenced script, "chmod a+x <ocpbasepath>/data_custom/modules/chat/ejabberd_auth.php"
  9. In ocPortal you should deny access to Guests to the chat module, they are not supported at this time.
  10. Instructions for XMPP usage by users have been placed on the chat lobby screen. Note that as an administrator you now need to manage chat rooms via a normal XMPP client: the admin/CMS chat modules will no longer be functional.
  11. You may need to set up Proxy server (we're not sure why, but on some PHP configurations our proxying script does not work). Something similar to the following needs to be in the Apache configuration to workaround the problem: LoadModule proxy_module /usr/lib/apache2/modules/ LoadModule proxy_http_module /usr/lib/apache2/modules/ ProxyRequests Off ProxyPass /data_custom/xmpp_proxy.php http://<yourdomainname>:5280/http-bind/ Credits: We used xmpp4js to integrate with our chat frontend, and the ocP/jabber authentication was based on lissyx's work.

System Requirements / Dependencies

Dedicated server running ejabberd, Chat Rooms



Additional credits/attributions

Harlan Iverson