Re: Future of jabberd
i see Phoenix rise from the ashes ... ;) +1 for all 2) libuv is used by node.js - good choice 4) i'm coming from telco side - https://wiki.asterisk.org/wiki/display/AST/ARI+Push+Configuration 6) important is easy integration with ELK stack 7) i hope its better than unixODBC Dne 30.5.2016 v 10:31 Tomasz Sterna napsal(a): There are some things we already talked about on Gitter channel [1], but I would like to raise them on the ML for peer review. As you can see from late activity, jabberd2 project is far from dead. With the inclusion of new features like WebSocket support, C99 code compatibility, IPv6 improvements, modern TLS handling, SASL Anonymous, password hashing, CRAM-MD5 and more... it is not a stale codebase anymore. But it is far from modern too... There are some changes I would like to introduce in the near future and I would like to hear your thoughts about: 1. Merging separate daemons to one. Current design of jabberd2 with separate router, sm, c2s, s2s processes is designed to allow nice separation of concerns and distribution of processing. Separate processes are proved to be better approach than threads too. But most installations of jabberd are not distributed, with one instance of each component. Especially when c2s and sm got vhost support and are able to handle more than one domain. Also, modern OS architectures are tuned for event processing rather than multithreading, so event based architecture is better suited for them. Even jabberd2 process internally is event based on MIO. So, it makes sense to allow for running all component instances in one process, especially on amateur, low load servers. Merging processes will allow for having one main loop only, so maintaining bugfixes in it will be easier (main.c of all processes is a copy-paste, with all the bugs, so bugs are also multiplied). 2. Phasing out MIO. This is closely related to above. MIO used by jabberd2 does not have clerar main loop support, which is implemented separately in each component main.c and is hardly pluggable. Also, the way MIO is implemented (in .h file, with platform specific bits in .c) makes it a maintanance nightmare. I would really like to replace it with a modern, upstream maintained event library. The nicest one I know is libuv, which also gives us nice platform independence layer. I already have a working c2s port to libuv as a PoC. 3. Phasing out router. router component is the one binding all the others. In current design it is the single point of failure. Other components already support multiple instances, but router proved to be difficult to multiply. The most radical, yet compelling solution to this problem is getting rid of the router at all. There are many cooked solutions for local packet distribution, which Local Message Bus [2] looks like most promising solution. I would see either Mbus [3] or NN_BUS [4] taking role of router component. The added advantage of using a Message Bus is the ability to connect to the bus with alternative implementations to perform own actions. i.e. having the ability to use CLI tools to eavesdrop and send messages to the bus proved to be priceless when I implemented a PoC of the Bus in experimental jabberd branch. Bus also solves the problem of distribution - it is up to the deployment administrator whether one sets up local, one-machine only bus or a network distributed one. 4. Configuration interface. A the moment jabberd is configured with static XML files loaded at daemon startup. It is close to impossible to change the values in runtime, as random places of the process are using copies of values or direct pointers to values from config structure. This heavily impedes implementation of features such as XEP-0133 Service Administration or Web interface. From my experience, the best handling of such requirements is to provide write-only/change-subscribe interface similar to GConf/dconf. This interface does not allow reading on-demand of random values, but allows only subscription to change and write-value + publish change. This approach forces programmer to write value-change handlers in application code, which allows changing the value by anyone at any moment. Do you know any standalone library that implements such approach, or do I need to implement custom solution in jabberd codebase? 5. JavaScript support. Let's face it - JavaScript is all the hype today :-) It also is a very good language for data processing. I think it would be a good solution for implementation of modern XEP logic in sm component. sm is implemented in C with all RFC required logic, and all XEPs are loadable modules to sm and these add JEP/XEP functionality. Having an option to implement XEP logic in JS instead of plain C, should speed up recent and experimental XEP adoption in jabberd. This gives concerns to jabberd2 as an embedded server though - current jabberd2 is perfectly able to work fine on low resource machines such as DD-WRT router. Introducing heavy JS JIT machine
Re: BOSH - XMPPoWS
Dne 11.9.2014 v 16:44 Marek Červenka napsal(a): Dne 8.9.2014 v 3:00 Gerhard Gonter napsal(a): On Fri, Sep 5, 2014 at 5:20 PM, Marek Červenka marek.cerve...@fpf.slu.cz wrote: [...] but firefox/ie is problem and we cant find the cause What are the symptoms, especially with firefox? GG for the record. we moved from strophe to stanza.io which solved this problem then we corrected problem in node-xmpp-bosh https://github.com/dhruvbird/node-xmpp-bosh/pull/117 but another problem arised my question is Does jabberd2 accept '=' in final digest-md5 response? It should, according to http://tools.ietf.org/html/rfc6120#section-6.4.6 solved it was not on the jabberd2 side https://github.com/otalk/stanza.io/issues/40 -- --- Marek Cervenka ===
Re: BOSH - XMPPoWS
Dne 8.9.2014 v 3:00 Gerhard Gonter napsal(a): On Fri, Sep 5, 2014 at 5:20 PM, Marek Červenka marek.cerve...@fpf.slu.cz wrote: [...] but firefox/ie is problem and we cant find the cause What are the symptoms, especially with firefox? GG for the record. we moved from strophe to stanza.io which solved this problem then we corrected problem in node-xmpp-bosh https://github.com/dhruvbird/node-xmpp-bosh/pull/117 but another problem arised my question is Does jabberd2 accept '=' in final digest-md5 response? It should, according to http://tools.ietf.org/html/rfc6120#section-6.4.6 -- --- Marek Cervenka ===
Re: BOSH - XMPPoWS
Dne 4.9.2014 v 16:12 Marek Červenka napsal(a): hi, we want move our web communicator from punjab/BOSH to node.js-xmpp-ws (https://github.com/dhruvbird/node-xmpp-bosh) jabberd2 is not in the Tested jabber servers section any positive/negative feedback? we are using strophe.js on the client side thank you with chome it's working flawlessly but firefox/ie is problem and we cant find the cause we will probably try switch from strophe.js to https://github.com/otalk/stanza.io -- --- Marek Cervenka ===
Re: jabberd2 web presence
Dne 29.8.2014 v 9:47 Tomasz Sterna napsal(a): Dnia 2014-08-28, czw o godzinie 21:24 +0200, Marek Červenka pisze: can you recommend plugin for web presence for jabberd2? something like http://www.jabbim.com/services-status-icon.html No need for a plugin. Built-in mod_status stores user presence in 'status' table. You just need to build a web frontend for this table. added to https://github.com/jabberd2/jabberd2/wiki/WebPresence (addons) -- --- Marek Cervenka ===
jabberd2 web presence
hello, can you recommend plugin for web presence for jabberd2? something like http://www.jabbim.com/services-status-icon.html thank you -- --- Marek Cervenka ===
storing messages on server
hi, is xep-0136 implemented in jabberd2? http://xmpp.org/extensions/xep-0136.html on the old xiaoka website was list of supported xeps. i cant google it now :( -- --- Marek Cervenka ===
Re: jabberd2 not work with mu-conference-0.8.81
Dne 7.7.2013 2:10, Carlos Lopez napsal(a): jabberd2 not work with mu-conference-0.8.81 thanks what's the problem? can you send logs? btw interesting. new version after 4 years ... i cant find changelog. am i blind? -- --- Marek Cervenka ===
Re: XMPP over WebSockets native support
Dne 5.12.2012 14:57, Tomasz Sterna napsal(a): Dnia 2012-12-05, Wed o godzinie 01:11 +0400, Eugene Agafonov pisze: Is anyone interesting in native support of WebSockets in Jabberd2? I am. I planned on working on it after I finish BOSH implementation in c2s. But it won't be anytime soon, as I have very little time for working on jabberd2 ATM. i'm interested in websockets in jabberd2 we are using https://github.com/Jabberd2/jabberd2/wiki/InstallGuide-punjab now. but there are some random problems -- --- Marek Cervenka ===
Re: ejabberd migration
Dne 19.7.2012 22:41, magic-jabbe...@damage.devloop.de napsal(a): Hi, I have migrated one (hura! :) ) user from ejabberd to jabberd2 with mysql backend. I have written a small PHP script which parses some information out of an ejabberd dump (ejabberdctl dump foo). It is not complete. The most ugly point is that this script does not recover the user passwords. But it's a start. It prints some INSERT statements. Please have a look at the XXX's before using. cheers Daniel can you write your success story? migration reasons etc i'll post it to the wiki -- --- Marek Cervenka ===
Re: jabberd-2.2.16/Debian Squeeze/mysql/GSSAPI/Win2008R2 DC
Dne 13.6.2012 2:40, Matthew Koch napsal(a): Tomasz Sterna [mailto:to...@xiaoka.com] wrote: Dnia 2012-05-31, czw o godzinie 23:02 +, Matthew Koch pisze: We're making the switch from ejabberd for no reason other than I know C/C++, but not so much erlang. How is your experience so far? :-) Very good, thank you. We have about 65 happy users. I sent off an ugly HOWTO to someone who had write access to the wiki (offlist), but haven't checked if it's been posted. Let me know if you'd rather I send it to the list. it was me. i was little busy last wek. i'm thinking how to present this success stories at web little survery for community do you want web page success stories at main page www.jabberd2.org or in wiki? do you want dowloadable pdf or html? (i know ... both ;) ) do you want the whole story with installation or only the interesting things (installation is described in the wiki) Been studying your source tree for adding an LDAP - vCard map to the config of storage_ldapvcard. I've run into a couple of urgent IT issues (as is ALWAYS the case) and had to set it aside last week. Anyhow, I was thinking of using something like this for the config: storage ldapvcard vcard-map map attr=[ldapAttribute] property=[vcardProperty] / map attr=[ldapAttribute] property=[vcardProperty] / /vcard-map /ldapvcard /storage Ifvcard-map doesn't exist, it will use the existing hard-coded map. This seems to be following the pattern, but I didn't see a DTD for the config, so I'm just guessing. Feel free to change the above idea around I'm still reading the config API to see if I can enumerate like that, but it should be pretty easy to make it work. In the meantime, I hacked up the mapping for Active Directory to produce a mostly usable vCard, but it still isn't pulling everything correctly. I think it's more of a client issue, though. Secondly, I pulled the init scripts from the Debian/sid package and modified them a little (I pasted them into the HOWTO I sent off). They might like to have those upstream. Thank you, - Matthew -- --- Marek Cervenka ===
Re: jabberd-2.2.16/Debian Squeeze/mysql/GSSAPI/Win2008R2 DC
Dne 1.6.2012 1:02, Matthew Koch napsal(a): Greetings! Would like to report a successful installation with jabberd-2.2.16 on Debian Squeeze with mysql on a Windows 2008 R2 AD domain with GSSAPI (Single Sign On). We're using Pandion as the client. Found a few bugs, at least one already reported (no build without --enable-debug) and a few minor ones (ldapvcard needs a little work). I'd be happy to writeup a HOWTO if it's helpful. We're making the switch from ejabberd for no reason other than I know C/C++, but not so much erlang. Thank you, - Matthew congrats btw i made page for sql table doc https://github.com/Jabberd2/jabberd2/wiki/SQLTablesDoc -- --- Marek Cervenka ===
Re: jabberd-2.2.16 release
Dne 7.5.2012 23:46, Tomasz Sterna napsal(a): Dnia 2012-05-07, pon o godzinie 18:30 +0200, Reinhard Max pisze: when I build this on the openSUSE Build Service, I get these reports from the automagic that checks for serious compiler warnings at the end of the build: Thanks for the report. I created https://github.com/Jabberd2/jabberd2/issues/4 for you. this mean you want move form launchpad to github for bug tracker? -- --- Marek Cervenka ===
Re: jabberd-2.2.15 release
Dne 30.4.2012 17:07, Tomasz Sterna napsal(a): Dnia 2012-04-30, pon o godzinie 10:04 +0200, Marek Červenka pisze: i have problem with compilation. any ideas? storage_ldapvcard.c: In function '_st_ldapvcard_get': storage_ldapvcard.c:333: error: 'struct storage_st' has no member named 'sm' There was a bit of reorganisation in the storage directory. I don't have resources to build every single plugin (I would have to have installed and configured all plugin dependencies) so occasionally build problems slip through. Please report this bug on Launchpad. I will take care of it ASAP. https://bugs.launchpad.net/jabberd2/+bug/993134 added info about reporting bugs to the wiki (#troubleshooting) https://github.com/Jabberd2/jabberd2/wiki edited FAQ -- --- Marek Cervenka ===
Re: jabberd-2.2.15 release
i have problem with compilation. any ideas? age_ldapvcard.lo -MD -MP -MF .deps/storage_ldapvcard.Tpo -c -o storage_ldapvcard.lo storage_ldapvcard.c authreg_ldapfull.c: In function 'ar_init': authreg_ldapfull.c:802: warning: assignment discards qualifiers from pointer target type authreg_ldapfull.c:816: warning: assignment discards qualifiers from pointer target type authreg_ldapfull.c:849: warning: assignment discards qualifiers from pointer target type authreg_ldapfull.c:851: warning: assignment discards qualifiers from pointer target type authreg_ldapfull.c:853: warning: assignment discards qualifiers from pointer target type authreg_ldapfull.c:857: warning: assignment discards qualifiers from pointer target type authreg_ldapfull.c:859: warning: assignment discards qualifiers from pointer target type authreg_ldapfull.c:863: warning: assignment discards qualifiers from pointer target type authreg_ldapfull.c:871: warning: assignment discards qualifiers from pointer target type storage_ldapvcard.c: In function 'rebindProc': storage_ldapvcard.c:176: warning: return makes integer from pointer without a cast storage_ldapvcard.c: In function '_st_ldapvcard_get': *storage_ldapvcard.c:333: error: 'struct storage_st' has no member named 'sm'* storage_ldapvcard.c:429: warning: passing argument 5 of 'processregex' from incompatible pointer type storage_ldapvcard.c:104: note: expected 'char *' but argument is of type 'char (*)[1024]' storage_ldapvcard.c: In function 'st_init': storage_ldapvcard.c:558: warning: assignment discards qualifiers from pointer target type storage_ldapvcard.c:564: warning: assignment discards qualifiers from pointer target type storage_ldapvcard.c:570: warning: assignment discards qualifiers from pointer target type storage_ldapvcard.c:590: warning: assignment discards qualifiers from pointer target type storage_ldapvcard.c:592: warning: assignment discards qualifiers from pointer target type storage_ldapvcard.c:594: warning: assignment discards qualifiers from pointer target type storage_ldapvcard.c:598: warning: assignment discards qualifiers from pointer target type storage_ldapvcard.c:600: warning: assignment discards qualifiers from pointer target type storage_ldapvcard.c:604: warning: assignment discards qualifiers from pointer target type storage_ldapvcard.c:606: warning: assignment discards qualifiers from pointer target type storage_ldapvcard.c:616: warning: assignment discards qualifiers from pointer target type storage_ldapvcard.c:622: warning: assignment discards qualifiers from pointer target type storage_ldapvcard.c:628: warning: assignment discards qualifiers from pointer target type storage_ldapvcard.c:632: warning: assignment discards qualifiers from pointer target type storage_ldapvcard.c:636: warning: assignment discards qualifiers from pointer target type make[2]: *** [storage_ldapvcard.lo] Error 1 make[2]: *** Waiting for unfinished jobs Dne 29.4.2012 23:57, Tomasz Sterna napsal(a): Next jabberd2 release is available. The project had moved to GitHub, so this time get 2.2.15 release at: https://github.com/Jabberd2/jabberd2/tarball/jabberd-2.2.15 https://github.com/Jabberd2/jabberd2/zipball/jabberd-2.2.15 and read: https://github.com/Jabberd2/jabberd2/blob/bc6a7a9cca/UPGRADE This is a major feature release bringing the following changes: (As you man notice most of the Apple ChatServer patches were merged.) ChangeLog: * Merged ldapvcard improvements from Gentoo * Fail on not existing ldapfull user. Fixes Bug 931622 -- --- Marek Cervenka ===
Re: Add users and multi mysql
Dne 21.3.2012 23:20, Tomasz Sterna napsal(a): Dnia 2012-03-21, śro o godzinie 22:50 +0100, Marek Červenka pisze: i'm modified PBX integration to set highest possible priority. now my contacts can see that i'm on the phone BUT if they send me message, the message is lost because PBX module cannot receive messages i can sponsor patch which reroute the message for PBX module to highest priority connected client. programmers? dont write me all ;) Could you create a feature request on Launchpad for this? i cant find feature request method. i filled bug https://bugs.launchpad.net/jabberd2/+bug/961958 -- --- Marek Cervenka ===
Re: Add users and multi mysql
Dne 21.3.2012 23:17, Tomasz Sterna napsal(a): P.S. If anyone volunteers to fix the documentation, I will be more than happy. :-) [1] https://github.com/Jabberd2/jabberd2/blob/master/etc/c2s.xml.dist.in [2] https://github.com/Jabberd2/jabberd2/blob/master/etc/sm.xml.dist.in [3] https://github.com/Jabberd2/jabberd2/wiki/InstallGuide-CommonConfigurationTasks we will be happy if you will be happy ;) we will try fix the documentation BUT what will be the final state? everything on github? everything on github except launchpad for bugs? what will be the primary website (google indexing and marketing)? i offered you www.jabberd2.org domain. i redirected *.jabberd2.org to http://codex.xiaoka.com/wiki/ NOW (registrator doesnt support : in this url http://codex.xiaoka.com/wiki/jabberd2:start) https://github.com/Jabberd2/jabberd2/wiki/InstallGuide-CommonConfigurationTasks this document is not linked from github wiki imho -- --- Marek Cervenka ===
Re: Add users and multi mysql
Dne 21.3.2012 21:12, Ladar Levison napsal(a): On Wed, 03/21/12 11:38 AM, Stephen Mahood wrote: Hi I am researching different jabber server software and do like the xml approach of jabberd2.x but I have a couple of questions. Namely the setup we are looking at is a a central server to run the software, but to have multiple VPN having the ability to create jabber accounts specific to their address (virtual hosting) but the other thing we want to restrict the creating of accounts to the local mysql for the virtual hosted site. Is that feasible with jabberd2.x? Stephen I second that request. Specifically the ability to support new domains without having to launch instances of 'sm' for each one. Not to mention creating a new config file, and updating the 'c2s' config file. (I think it was 'c2s'.) It should be possible to support a new domain with a single line in the XML config... and down the road, perhaps the ability to control support for alternate/alias/child domains via the database? P.S. I'll probably wait for the 2.3.0 release, since my system seems to be stable. Might I suggest a 2.3.0 release candidate? Personally I've lost track of the new features were introduced by the last couple of releases and/or in development. I've seen mention of PBX support which I'll probably need to investigate since I have no idea what that means or its impact? When I hear PBX I think of private branch exchange, or voice/video support via a protocol like SIP. Is jabberd2 adding support for this? Or does PBX mean integration with something like Asterisk? you can set from your PBX like asterisk that you are on the phone(status DND) when you have call echo START cerve...@jabber.com/someresource DND 'on the phone' /usr/local/var/jabberd/run/pbx OR you can synchronize your calendar status to jabber status/info like MS Lync there is one problem in XMPP generally standard clients connect to jabber server with priority i.e. 5 in XMPP is recommended that external systems must set negative priority when connecting to jabber server (like PBX integration module) BUT for other users is not visible your DND status when you are on the phone, because bigger priority have preference i'm modified PBX integration to set highest possible priority. now my contacts can see that i'm on the phone BUT if they send me message, the message is lost because PBX module cannot receive messages i can sponsor patch which reroute the message for PBX module to highest priority connected client. programmers? dont write me all ;) -- --- Marek Cervenka ===