MyBB Community Forums

Full Version: [1.8.*] [DEV] MyBB JSXC - XMPP/Jabber integration
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2

What is this?
MyBB JSXC is a chat system completely embedded in MyBB, it’s based on the XMPP/Jabber protocol. You can run your own instance of eJabberd, use an external hosted Jabber instance or just use an experimental integrated xmpp script without needing any Jabber server at all.
The chat design is completely variable and can easy changed with templates.

eJabberd is already supported via an Rest API, it's get fully integrated in MyBB, the user accounts are synchronized and the users will not need a Jabber Client. They will just register on your MyBB page and they will automatically get their chat account.
They are also able to use external clients.

Your community now is able to be more familiar and stay in contact at any time. For example: from their phone, or from the page itself.

Main key features
  • OTR - Off-the-Record Messaging - End-to-end encrypted communication
  • Uninterrupted - Browse the page without interrupting the chat
  • File transfer - send and receive files
  • Video Calls - secured by SRTP - without plugin (planned)
  • Audio Calls - secured by SRTP - without plugin (planned)
  • MUC - Multi User Chat Rooms
  • Localization - I18next, define the default language, the chat automatic detect which language is needed for each client
  • Notifications - Don't miss a single message, audio notifications (different sounds, mozilla firefox/google chrome push notification
  • Responsive - Use JSXC on every device (PC, Smartphone, Tablet)
  • Emoticons - Use smiles on phone, page, external clients
  • Multi-Tab - Browse your sites as usual no matter if you open the page in more than one tab
  • Screen sharing - Give support if needed
  • Offline Messages - Don't miss a message if you are offline
  • Chat State Notifications - Define your own online status
  • vCard-Based Avatars
  • Message Delivery Receipts
  • Delayed Delivery
  • The /me Command
  • Message Archive Management
  • Template System - Easy to customize

Supported Web Servers
  • Apache
  • lighttpd
  • Nginx

Supported Locales
  • Arabish (not finished)
  • Deutsch (complete)
  • English (complete)
  • Spanish (complete)
  • Französisch (complete)
  • Ungarisch (nearly completed)
  • Italienisch (nearly completed)
  • Niederländisch (complete)
  • Polnisch (complete)
  • Portugiesisch (complete)
  • Rumänisch (complete)
  • Russisch (newly completed)
  • Türkisch (complete)
  • Chinesisch (complete)

Supported XMPP/Jabber Servers
  • eJabberd via Rest API

Planed Support for XMPP/Jabber Servers to be added in future
  • Prosody (credits to Lunorian)

What integration features are finished
  • Automatic register jabber account after confirm registration in MyBB
    • supporting instant registration
    • supporting email verification
    • supporting random password registration
    • supporting email/admin verification
    • admin creating user
  • Password syncron between MyBB and chat account
    • when user reset password in MyBB
    • when user change password in UserCP
    • when admin change password in ACP
  • Chat with external clients
  • Automatic login to chat
    • when users login into MyBB
    • when users come back on page and stay logged in is active in MyBB
  • Automatic logout when user logout from MyBB
  • Synchronized chat on all clients and MyBB
  • Advanced logging feature in ACP disable/normal/debug levels supported

What integration features are in dev
  • Synchronize Avatar in chat with MyBB Avatar
  • Synchronize MyBB Buddy with Rooster Contacts
  • Admin managed Rooster Groups with Contact list sharing
  • Admin managed MUC Rooms

Time for preview Wink

ACP Settings
[Image: basic_settings.png]
The basic options where you setup your xmpp server or even the interlan experimental server.

[Image: ejabberd_api_settings.png]
The eJabberd API settings where you enable the API and define the log level.

[Image: ejabberd_api_functions.png]
The eJabberd API functions can enabled and disabled one by one.

[Image: ice_server.png]
The ICE Server / Stun/TURN API settings for WebRTC NAT support.

[Image: screen_sharing.png]
The settings for the screen sharing function, with detailed instructions for the needed plugin.

[Image: csp.png]
CSP filter options for securing the client.

[Image: logging.png]
The log file view for the xmpp api (currently in dev and logs are not parsed)

The Chat in action
[Image: add_contact.png]
Adding a contact independently from Buddy system.

[Image: contact_request.png]
Contact request received.

[Image: rooster_toggle.png]
Rooster is toggleable via side bar and button.

[Image: rooster_toggled.png]
The Rooster on the right side is toggled in, the chat show the approve that the message is received and readed.

[Image: toggeble_roster.png]
The Rooster menu including options per client and MUC support.

[Image: user_to_user.png]
The user to user chat page/MyBB intern.

[Image: chat_external_1.png]
The chat even works with an external client, in this example Pidgin, other clients possible for example on Android/IPhone, PC Win/Linux/Mac.

[Image: chat_external_2.png]
Showing the vCard-Based support for avatar and status informations.

[Image: chat_options.png]
Chat based options and features, OTR, Authentication, Clearing History, Sending File, Screen Sharing.

[Image: starting_otr.png]
Different possible ways to start a OTR secured encryption.
  • Manually verifying the fingerprint of both parties' keys
  • Providing a question to which only your contact knows the answer
  • Entering a secret you agreed on offline

I am working hard on the implementation of jsxc in MyBB. I hope you enjoy the preview. When i finish up the planned feature integrations i will publish this plugin and are free for improvements. So leave some suggestions and feedback. Wink Thx for your time.
awesome job man Big Grin
I'm waiting to test it Wink
Still need some working time for the other features but when the time is near i will start some beta testings.
I would love to test it yeah . Is it going to be free or paid one ?
Not sure right now, currently first rewrite the base in oop then adding other features... the current feature list have more then 100 points. Todo have more the the double ^^, i think it's get a paid plugin, but if so then cheap Wink.
Looks pretty nice, good luck with it broatcast! Big Grin
This looks great,only part i am worried is server resources ,wont it require a lot ?
No there are not much resources needed cause its not based on ajax, the client it self is js based, so all will run on client side. You only need a jabber server eg. eJabberd, eJabberd can be runned on realy small VPS's. For example a VPS with 3GB Ram and 2 Cores can handle +10k Users connected at the same time to the Server, eJabberd already include an ICE, STUN, TURN and Proxy65 so you can run all at the same machine. I will publish installation notes and tutorials after finish this plugin.
Looks grear Big Grin
Pages: 1 2