cross domain pubsub eventing problem

Hello there,

This is my first post, here so let me quickly introduce myself. I'm the lead developer of the project Archipel (http://archipelproject.org), an XMPP-based orchestration solution for virtualization.

This project relies on events , so it uses XMPP (because it rocks) and pubsub (because it rocks too).

But I run into a problem that I can't solve by myself after trying a lot of different things.

Here is the context:

- I got two XMPP servers (ejabberd 2.1.4) : server-a and server-b
- I got three XMPP entities: controller at server-a, vm-1 at server-a and vm-2 at server-b
- vm-1 et vm-2 creates each one pubsub node named (node id) "/archipel/vm-X at server-X/events"
- controller at server-a is subscribed to the pubsubs nodes of each vm.
- when a vm do something, it publishes a non persistent pubsub item to its node (for example, something like "I'm starting")

Then, the problem:

controller at server-a is notified by a pubsub event without any problem when vm-1 at server-a publish something. This works like a charm.
But controller at server-a is *never* notified when vm-2 at server-b publish something (and I swear to god, subscriptions are OK)

* * From here, this is just test, I may be completely wrong **

Then I've looked into the caps (XEP-0115)
I've try to make controller at server-a publish it's capabilities.
So I've generated my rev string from :

client/pc//Archipel 1.0<http://jabber.org/protocol/pubsub<http://jabber.org/protocol/pubsub+notify<

wich gives :

XeMDCc/TsUiGZtCecA2+3MC4kFU=

then I forge the following stanza:

<presence xmlns='jabber:client'>
<c xmlns='http://jabber.org/protocol/caps' node='http://archipelproject.org' hash='sha-1' ver='XeMDCc/TsUiGZtCecA2+3MC4kFU='/>
</presence>

server-a then ask my features with :

<iq xmlns='jabber:client' from='virt-hyperviseur' to='controller at virt-hyperviseur/ArchipelController' id='3705298251' type='get'>
<query xmlns='http://jabber.org/protocol/disco#info' node='http://archipelproject.org#XeMDCc/TsUiGZtCecA2+3MC4kFU='/>
</iq>

And I answer (because I'm a nice guy):

<iq id='3920' type='result' xmlns='jabber:client' to='virt-hyperviseur'>
<query xmlns='http://jabber.org/protocol/disco#info' node='http://archipelproject.org#CWYvfp2mU9/Z+degq4XPg+cB/JE='>
<identity category='client' name='Archipel 1.0' type='pc'/>
<feature var='http://jabber.org/protocol/pubsub'/>
<feature var='http://jabber.org/protocol/pubsub+notify'/>
</query>
</iq>

and that's all. No more news from the server, and still no push.

I'm absolutely not sure if the features names are good, or even if this is the correct method.

I'm lost, please help me :)

Cheers,

Related ticket:

Syndicate content