Follow onomatopej on Twitter Meet us on Facebook Blog Portfolio Publications Contact About

jabberd2 win32

A Windows build of jabberd2, popular Jabber server

jabberd2 binariesDescription

This page contains jabberd2 SVN version guide that allows compiling and running jabberd2 server natively on Windows machine. You may choose whether you want to build the Windows version by yourself using source code available at official jabberd2 project page / SVN repository or get the binaries I provide at Downloads.

Multi-User Conferencing

Multi-User Conferencing component extension is also available for Windows at MUC win32 page.

Note

Windows platforms prior to Windows 2000 are not supported, so this won’t work on Windows 95/98/ME/NT.

Installation

jabberd2 servicesjabberd2 binary package is provided at Downloads as MSI installer creating installation files at C:\Program Files\jabberd2 by default, setting up and running jabberd2 components as Windows services.

If you build jabberd2 manually and want to install some jabberd2 component as service type:

router.exe -I

to uninstall type:

router.exe -U

Follow jabberd2 manual to configure jabberd2 exactly same way as on unix machine.

Windows NTLogon authentication

SQLite is default storage & authentication module for my Windows builds. To change that behavior modify sm.xml and c2s.xml configuration files.You may be interested in using NTLogon authentication module, so all your Windows local users are jabberd2 users as well. To use this module edit c2s.xml:

  1. Setup auth module using: <module>ntlogon</module>.
  2. Since NTLogon module requires plain-text passwords you need to disable all authentication methods except plain-text under <mechanisms> use <!-- comments -->.
  3. You may require TLS so passwords are never sent trough unencrypted stream, add require-starttls='true' attribute to your <id>.
  4. If you want to authenticate domain users rather than your local accounts change realm='mydomain.local' attribute of <id> to match you domain.

Finally you need to enable (uncomment) <auto-create/> in sm.xml (Storage Manager) configuration, this is just because NTLogon let in all Windows users in, even those who have no Storage Manager entries yet.

Configuration

By default configuration files shipped with Windows jabberd2 build are set up to run on localhost with SQLite module for authentication and storage, with user registration and default TLS/SSL localhost certificate enabled.

Important

If you are willing to run jabberd2 as a XMPP server for sampledomain.com you need to change <id> entries in c2s.xml and sm.xml, so they match your domain: <id>sampledomain.com</id>, before you will be able to serve any XMPP clients for sampledomain.com. The sampledomain.com must be properly set up as DNS entry that resolves to the machine where jabberd2 services are installed and running.You may also need to open ports on your firewall for incoming connections:

  • 5222, 5223 (legacy port, if enabled in c2s.xml) – for client to your server connections
  • 5269 – for other server to your server connections (only if you plan to open for communication with other servers with s2s service)

If you want to know more about configuration of jabberd2 please read chapters starting from no. 3 of Jabberd 2 Installation and Administration Guide.

Building Windows jabberd2 using Visual Studio 2008 (SP1)

Thanks to Tomasz Sterna accepting my contributions, starting from revision #229 complete win32 support with Visual Studio 2005 project files is present in jabberd2 SVN repository. Starting from revision #751 project files require Visual Studio 2008 (SP1). To build jabberd2 win32 please read the rest of this section. If you are interested just in the binaries go to Downloads.

Prerequisites

All libraries shall be installed locally and added to VC Include files and Library files paths using Tools->Options->Project and Solutions->VC++ Directories. All libraries’ DLL files shall be copied to win32/bin folder and win32/bin/debug folder for Debug builds respectively.

  1. libidn version 1.7 or higher, source build using win32/libidn.sln, provides: libidn.lib
  2. libgsasl version 0.2.28 or higher, source build using win32/libgsasl.sln, provides: libgsasl.lib
  3. OpenSSL source build, read win32 build instructions provided along with sources, provides: libeay32.lib ssleay32.lib
  4. Expat XML Parser source build using expat.dsw (auto-converted), provides: libexpat.lib
  5. udns source build, provides: udns.lib, since there are no VC project files provided along with sources, please use patch files provided at Downloads.
  6. zlib source build, provides: zlib1.lib, convert & use VC project files at projects/visualc6, link to Win32_DLL_ASM_Release.
    If you encounter MASM error: .\inffas32.asm(647) : error A2070: invalid instruction operands
    Add a dword ptr type qualifier before [esp] as described here.
  7. MySQL (auth & storage module) binary, linking to: libmysql.lib
  8. SQLite (auth & storage module) source build, provides: sqlite3.lib. Since there are no libraries for VC except DLLs you shall make one using sqlite-amalgamation-3.x.zip from SQLite downloads.
  9. TortoiseSVN SubWCRev command present in PATH to generate version.h and version.wxi. Comes with TortoiseSVN bin folder, added to PATH by TortoiseSVN installer.
  10. WiX 3.0.4401.0 or newer for building MSI jabberd2 setup inside Visual Studio 2005 IDE
  11. ActivePerl (or any Perl distribution) perl command present in PATH (optional for generation of default configuration XML files)

Building

After all prerequisite libraries are configured for use within VC open win32/jabberd2.sln and build all projects.

Once it is completed you should have fresh & ready Windows build of jabberd2 and jabberd-svn-win32.msi installer at win32/bin folder !

License

jabberd - Jabber Open Source Server

Copyright © 2002 Jeremie Miller, Thomas Muldowney, Ryan Eatmon, Robert Norris

jabberd - win32 version patches & build

Copyright © 2005-2009 Adam Strzelecki. All rights reserved.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place – Suite 330, Boston, MA 02111-1307, USA.

Download

Binaries:

  • jabberd-2.2svn752-win32.msi 2009-03-05, 2.12 MB, win32 2.2 SVN revision #752 installer (contains OpenSSL), modules: SQLite (default) auth & storage, MySQL auth & storage, NTLogon auth module

Optional:

  • vcredist_x86.exe 2008-09-16, 4.0 MB, Microsoft Visual C++ 2008 SP1 Redistributable Package (x86), if your system does not have the runtime, jabberd2 setup will ask you to install it
  • jabberd-2.2svn752-win32-dbg.zip 2009-03-05, 8.37 MB, win32 2.2 SVN revision #752 debug binaries (for advanced users), Visual Studio 2008 (SP1) / VS2008SP1 Debug Runtime is required to use those debug binaries

Windows and Visual Studio compatibility patches:

  • udns-0.0.9-win32+VC8.patch 2008-08-18, 38.5 KB, a patch file containing Windows fixes and Visual Studio 2005 project files for udns library, use it together with official distribution sources, tested with version 0.0.9

126 Responses to “jabberd2 win32”

Pages: [1] 2 3 »

  1. 1
    Fadil

    Hi, I successfully run the server but I cant register any account though the c2s log says the client is connected. I’m using Exodus as client and MySQL as the database backend. The MySQL server is running but I dont see any data written in the tables.

    Can you please tell what should I do ?

    Regards,
    Fadil

  2. 2
    Draco

    Hi, I compiled the source successfully, but when I tried to debug an application (such as sm.exe), I got the error 0×80000003.

    Any help will be appreciated.

  3. 3
    Adam

    @Fadil: I don’t really know how can I help you, since I don’t know what’s the problem? Is Exodus “online” with your Jabber server. If you’re using NTLogon authentication which is default, you should use your Windows username & password in order to log in.
    If you want to use MySQL authentication you should change this in c2s.xml.
    Still if you’re getting connected, that’s fine. With NTLogon nothing is written into the tables until you change your vCard or get offline message, stored in the database.

  4. 4
    Adam

    @Draco: I think 0×80000003 may be related to missing VS 2005 runtime libraries. Did you install vcredist_x86.exe on the machine you want to run jabbberd2 first ?

  5. 5
    Draco

    Adam,

    Thanks for your reply. I had installed vcredist_x86.exe that I downloaded from Microsoft website. Only the debug application crashed, the release seems ok.

    Another question, when I tried to run the release sm.exe and/or c2s.exe, I got this error “[error] cannot stringprep id wangkl, aborting 101
    ” from log file.

    My machine’s name is wangkl (ip: 192.168.1.84), I run everyone at the same machine.

    Any reply appreciated.

  6. 6
    Adam

    @Draco: Debug crashes because normally you need to copy stuff from C:\Program Files\Microsoft Visual Studio 8\VC\redist\Debug_NonRedist\x86\Microsoft.VC80.DebugCRT into the folder of application on remote machine that is compiled with “debug” CRT, as “debug” CRT is non-distributable.

    Regarding the [error] cannot stringprep id wangkl this points that there’s something wrong with your libidn. Did you used recipe from this page for compilation of libidn? Maybe you got some older files somewhere? Please check that libidn project is referring to proper win32/ files from libidn-0.6.x-win32-VC8-project.zip.

  7. 7
    Draco

    Adam,

    I download the libidn-0.6.x-win32-VC8-project.zip and unzip it, open the sln file by VC8.

    When compile it, there are many files missing (..\lib\*.c), so I download the libidn-0.6.9.tar.gz, unzip it.

    Even though, there are some files missing (striconv.h,
    c-ctype.c, c-strcasecmp.c, c-strncasecmp.c, c-strcase.h, c-ctype.h, striconv.c), I get these files form libidn’s svn.

    Any problem with these steps ?

    My OS: WinSvr2003+SP1, VS2005+SP1.

    Best Regargs

  8. 8
    Draco

    Adam,

    I get the new libidn-0.6.x-win32-VC8-project.zip, unzip libidn-0.6.9.tar.gz, modify stringprep.h, compile the project in VS2005 successfully.

    Copy the libidn.dll to the jabberd2/win32/bin folder, the same error found “cannot stringprep id wangkl”.

    Any suggestion ?

    Thanks & Best Regards

  9. 9
    Adam

    @Draco: Ahh… maybe the problem raises because you haven’t took the latest version of libidn which is http://josefsson.org/libidn/releases/libidn-0.6.14.tar.gz. I just recompiled everything step by step from scratch and works for me OK with 0.6.14.

  10. 10
    Adam

    I’ve updated binary distribution’s c2s.xml so the SQLite is now default auth & storage module, therefore jabberd2 for Windows is ready out of the box.
    NTLogon is no longer default (as IMHO it can be confusing), please read recipe at the beginning of this page how to use this module.

  11. 11
    Draco

    Adam,

    I can start the router.exe, resolver.exe, c2s.exe, sm.exe, thanks for your help.

    After the four application started, there no listen on the port 5222/5223. Do I need to configure the windows firewall?

    I always have many problems ;)

    Thanks again.

  12. 12
    Adam

    @Draco: Have a look into c2s.log. Do you see anything like:

    [notice] connection to router established
    [notice] [0.0.0.0, port=5222] listening for connections
    [notice] [0.0.0.0, port=5223] listening for SSL connections
    [notice] ready for connections

    If yes.. then you’re able to accept connections, however yes if you’re running on Windows with firewall you should enable ports 5222 5223 for client to your server connections and 5269 for server to your server connections.
    Normally anyway to test is this is working fine, from your server machine you shall be able to do telnet localhost 5222, and after you type “anything” you should see something like:

    <stream:stream>
    <stream:error>
    <xml-not-well-formed>
    <text>syntax error
    </text></stream:error></stream:stream>

    Good luck!

  13. 13
    Fadil

    Hi Adam,

    Thanx for your reply. I will check this out and try to configure it using SQLite.

    Regards.

  14. 14
    Fadil

    Hi again,

    I successfully connect and register a new account on my server using SQLite.
    I will now try it again using MySQL.

    Thanx again.

    Cheers.

  15. 15
    Draco

    Adam?

    Every release application works well now. Thanks for your help :)

    Regards

  16. 16
    nivas

    sir i want to down load the chat application from jabberd and want to activate or build according to our intranet network. may i know the process to download and work in our organisation.
    ok thankyou
    bye
    nivas

  17. 17
    nivas

    can any one make as early as possible. will wait for reply.
    with regards
    nivas

  18. 18
    Adam

    @nivas: Dear Mr.,
    This page is only about Windows build of jabberd2 XMPP server. So if you are willing to install XMPP Windows server at your organization you may download ready binaries at Downloads or build them yourself as stated at the beginning of this page. The binaries provided run out of the box, so you don’t need to configure anything extra.

    If you are looking for jabberd2 customization guide please read chapters starting from no. 3 of Jabberd 2 Installation and Administration Guide (Chapters 1-2 are for UNIX environments, so you better follow the guide of Windows installation from this page)

    If you are looking for particular clients for XMPP protocol please read Jabber Clients page at official Jabber site.

    However if you are NOT IT technician or system administrator or you need commercial guided assistance please contact me directly using form at Contact page.

  19. 19
    monkeyking

    hi, first of all thank you for your win32 project.
    but this is my first time to use jabberd2, so i can’t run my jabberd2(jabberd-2.1svn236-win32.zip).
    could you tell me how to do or show me some guidebooks or other resources?
    thank you very much.

  20. 20
    Adam

    @monkeykind: I wish to help, but I need more specific question. What does it mean you can’t run? Did you read this page guide completely?

  21. 21
    Draco

    Adam,

    I come back this page with a new question. Now I try to use Oracle DB as the storage device, so I create a dll project by vc8, add the storage_oracle.c to this project. There are some syntax error while compiling at the below line:
    OCIDefine *arrFields[nNumberOfFields];

    Any suggestion about oracle storage/authreg? Even though the oracle authreg is not applied.

    Best Regards,

    Draco

  22. 22
    monkeyking

    hi ,Adam,
    Thanks for your reply. my jabberd work well now.
    I will read the guide again to get more information

  23. 23
    Adam

    @Draco: I know the Oracle storage isn’t in the SVN, but it’s available as separately downloaded patch. I’ll speak with main jabberd2 maintainer and see whether we can put this Oracle thing into the mainstream. Yet I think your problems are because GCC code isn’t always compliant to VC (which is more ISO strict). I shoot OCIDefine *arrFields[nNumberOfFields] error is caused because nNumberOfFields isn’t a constant, is it ?

    @monkeyking: Nice to hear that.. I’m on the way making some installer for Windows so hopefully for binary users only no guide will be needed, as the installer itself will give enough guidance to setup basic server.

  24. 24
    Fadil

    Hi Adam,

    I can’t register any account on the server using the agsXMPP SDK (http://www.ag-software.de/index.php?page=agsxmpp-sdk) which, as far as I know, supports In-Band Registration.

    BTW, I can both register and login successfully using Exodus, though I got a message box that the server doesn’t support In-Band Registration.

    Can you please tell me what I have to do ?

    Thanks,
    Fadil

  25. 25
    Fadil

    Hi again,

    I forgot something; I can login using the agsXMPP SDK but CANNOT register.

    Regards,
    Fadil

  26. 26
    Leonid

    hi,
    the problem is the same as described before – can’t register new user by Psi client.
    The looks like: the client send request and stay waiting answer, but wasn’t receive it.
    Used SQLite db.

    wbr, Leonid

Pages: [1] 2 3 »

Leave a Reply

*
To prove you're a person (not a spam script), type the answer to the math equation shown in the picture. Click on the picture to hear an audio file of the equation.
Click to hear an audio file of the anti-spam equation