XMPP with ISPConfig

Discussion in 'Developers' Forum' started by theWeird, Feb 20, 2015.

  1. theWeird

    theWeird Member

    At the moment I am writing on a modification of the code in ispconfig master branch to enable ISPConfig to manage XMPP domains and users.
    @till: can you estimate a planned release date for v3.1? Maybe I can place my first merge request in time for 3.1.

    Server Software:
    The XMPP server managed by my modification is Metronome, a lightwight, easy to configure and extend XMPP service forked from prosody im. It is also the preferred XMPP daemon for use with Jappix Webchat or Movim.
    All required steps to get metronome up and running on a debian based host will be included in my merge request.

    My Modification adds new client- and reseller-limits for XMPP domain and user count.
    It adds a new menu section to "E-Mail" Module: "XMPP" with the two menu links "XMPP Domains" and "XMPP Accounts". (Maybe renaming to "Communication" or "Mail & Chat"?)
    Of course it also adds required steps to the install routine of ISPConfig and server configuration options.

    Release v1. (merge request placed):
    Supported Domain Features (per Domain configuration):
    - List of Domain Admins (Jabber IDs)
    - Pubsub (Microblogging via XMPP)
    - Bytestream Proxy (used to bypass Firewalls for Firetransfer and Voice-/Videochat)
    - Status Host per Domain (Status of Server Components in JSON/XML format and 'Webpresence' for integration of users chat status on websites)
    - Anonymous Host per Domain (for WebChat with guest access)
    - Global BOSH support
    - MUC support (Multiuser Chatrooms) with pastebin (autoshorten or manuel triggerd link to server-stored paste instead of long text) and http_archive (Chatroom history)
    - Creation of SSL certificates and CSRs for entire server and every single hosted domain
    - Auto-Setup of required DNS records

    Supported Account Features:
    - active/inactive
    - server module for SQL authentication to identify users by their password from ispconfig database

    Release v1.1:
    New XMPP domain option: Account management method (Normal / By Mail Domain)
    Option "By Mail Domain" requires the corresponding mail domain to be created before the xmpp domain.
    OnInsert and OnUpdate this option will sync all mail accounts to xmpp accounts of this domain. It will not be possible to create/delete XMPP accounts for this domain or to change their passwords. They will be created, updated and deleted by management of corresponding mail accounts.
    Furthermore the mail domain cannot be deleted as long as there is a linked xmpp domain. First the XMPP must be deleted or switched back to management "normal".

    Further Ideas:
    Support of password changes and public registration
    Only if I can manage to create a plugin to handle this using ISPC Remote Api.
    Maybe, if this modification gets included to ISPC, I can get some support by the developer of Metronome to implement this.
    Last edited: Mar 5, 2015
    till likes this.
  2. till

    till Super Moderator Staff Member ISPConfig Developer

    This looks like a really nice addon!

    I'am currently working on bugfixes and hope that I can make a first alpha or beta version sooon. If you can do a merge request for your code in the next few weeks, then its likely that we can add it in the 3.1 release. If not, then thats no real problem as I've planned to have releases more often in future anyway. My idea is to switch to a release cycle like ubunt with 2 major releases every year.

    As you might have noticed, we have splitted the remote api into separate files, one for each module. so it should be easier now to extend the api for new modules.
  3. theWeird

    theWeird Member

    The problem is not ISPConfig. But there is no server module for the xmpp server yet to handle password changes and registrations with external data sources.
  4. dharman

    dharman ISPConfig Developer ISPConfig Developer

    I'm trying another solution. I'm using PROSODY:
    - Adding a new field, in table "mail_user", called disablexmpp
    - Enabling XMPP authentication through dovecot
    - Adding a new checkbox to module mail, on mailbox section, to achieve XMPP login
    Can we join our solutions?
  5. theWeird

    theWeird Member

    By adding only a field to the mail accounts you cannot control things like MUC or domain admins.
    Also you cannot decouple XMPP accounts from mail accounts. Perhaps some customers want to have seperate accounts for both services.
    Does your solution require to run dovecot and prosody on the same machine? I think this would break the multiserver concept to be able to run different servers on different machines.

    Furthermore, it is not possible to merge back from metronome to prosody but vice versa.
    Metronome has a more efficient storage structure for saving the account/chat data on disk and automatically converts from "old" prosody data structure.
  6. theWeird

    theWeird Member

    I placed merge request #170 with release v1.
    till likes this.

Share This Page