Re: Future of jabberd

2016-05-30 Thread Marek Červenka

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

2014-09-12 Thread Marek Červenka

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

2014-09-11 Thread Marek Červenka

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

2014-09-05 Thread Marek Červenka

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

2014-09-04 Thread Marek Červenka

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

2014-08-28 Thread Marek Červenka

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

2013-09-23 Thread Marek Červenka
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

2013-07-08 Thread Marek Červenka

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

2012-12-05 Thread Marek Červenka

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

2012-07-20 Thread Marek Červenka

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

2012-06-13 Thread Marek Červenka

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

2012-06-01 Thread Marek Červenka

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

2012-05-08 Thread Marek Červenka

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

2012-05-02 Thread Marek Červenka

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

2012-04-30 Thread Marek Červenka

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

2012-03-22 Thread Marek Červenka

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

2012-03-22 Thread Marek Červenka

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

2012-03-21 Thread Marek Červenka

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
===