Project

General

Profile

PubSub Node Configuration

E A
Added over 3 years ago

Hi Guys,

Will appreciate any assistance you can provide with this issue.

According to XEP-0060 http://xmpp.org/extensions/xep-0060.html#owner-subscriptions-retrieve

I should be able set and get node configuration as follows:

<iq type='get'
    from='hamlet@denmark.lit/elsinore'
    to='pubsub.shakespeare.lit'
    id='config1'>
  <pubsub xmlns='http://jabber.org/protocol/pubsub#owner'>
    <configure node='princely_musings'/>
  </pubsub>
</iq>

The problem is, when im sending this packet I get the following reply (user and domain obfuscated):

Feature not supported yet.

<iq xmlns="jabber:client" id="l0tez869gt" to="user@domain/9822424-tigase-2068" from="pubsub.domain" type="error">
   <pubsub xmlns="http://jabber.org/protocol/pubsub#owner">
      <configure node="node_name_aaa" />
   </pubsub>
   <error code="501" type="cancel">
      <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />
      <text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" lang="en">Feature not supported yet.</text>
   </error>
</iq>

My question is - is this a configuration issue, or do you truly not support this impl?


Replies (11)

Added by Wojciech Kapcia TigaseTeam over 3 years ago

Yes, Tigase PubSub component support configuration of the node.Have you enabled pubsub component in the configuration?

Added by E A over 3 years ago

Yes I have, these are the only two lines for pubsub:

--comp-class-2 = tigase.pubsub.cluster.PubSubComponentClustered

--comp-name-2 = pubsub

I am able to create new nodes, just not able to GET configuration.

Added by Wojciech Kapcia TigaseTeam over 3 years ago

Have you made any modifications anywhere in the server?

We are not able to reproduce the issue:

<iq type='get'
 to='pubsub.tigase.org'
 id='conf1'>
 <pubsub xmlns='http://jabber.org/protocol/pubsub#owner'>
 <configure node='w1'/>
 </pubsub>
</iq>

<iq from="pubsub.tigase.org" type="result" id="conf1" to="wojtek@tigase.org/atlantis/city/psi+">
<pubsub xmlns="http://jabber.org/protocol/pubsub#owner">
<configure node="w1">
<x xmlns="jabber:x:data" type="form">
…

Added by E A over 3 years ago

Only modifications that were made are to MessageAmp.java in order to support push notifications (will be in plugin form in the future) - this shouldnt affect pubsub as far as I am aware.

The only difference I can see between what I'm sending and the example you provided is that you did not use the "from=" child within iq element.

I will try to remove "from" from my client and see if its working - will update shortly.

Added by E A over 3 years ago

We are on version 7.0.1

Create Node response (obfuscated):

Created in 166 ms

I can also see the node on DB.

Request (obfuscated):

  <configure node="node_name_aaa" />

Response (obfuscated):

  <configure node="node_name_aaa" />
  <feature-not-implemented xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" />

  <text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" lang="en">Feature not supported yet.</text>

Not understanding why this is happening

Added by E A over 3 years ago

I may have found the issue.

I noticed its replying with text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" as feature not implemented

Looking at server console -- its not loading that plugin (see below) is that normal?

Loading plugin: session-close=4:37865 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: session-open=4:37865 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: default-handler=4:37865 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: jabber:iq:auth=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: urn:ietf:params:xml:ns:xmpp-sasl=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: urn:ietf:params:xml:ns:xmpp-bind=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: urn:ietf:params:xml:ns:xmpp-session=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: jabber:iq:roster=4:37865 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: jabber:iq:privacy=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: jabber:iq:version=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: http://jabber.org/protocol/stats=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: vcard-temp=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: http://jabber.org/protocol/commands=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: jabber:iq:private=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: urn:xmpp:ping=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: presence=4:37865 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: disco=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: amp=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: message-carbons=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: message-archive-xep-0136=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: jabber:iq:register=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: msgoffline=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Loading plugin: pep=2:75730 ... , version: 7.0.1-b15/4d8a351c (2015-04-19/09:43:19)

Added by NW NE over 3 years ago

It seems I have similar issues, but with sending pubsub message to a pubsub node.

I get two errors:

We use 7.0.2 version.

any assistance would be helpful for me as well.

Added by Wojciech Kapcia TigaseTeam over 3 years ago

E A wrote:

The only difference I can see between what I'm sending and the example you provided is that you did not use the "from=" child within iq element.

This will be overwritten by the server so it doesn't matter.

E A wrote:

I may have found the issue.

I noticed its replying with text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" as feature not implemented

There is no such plugin in tigase. If there isn't a plugin for particular stanza then default (forwarding) will be used.

Please enable full debugging:

--debug=server,xmpp.impl,pubsub,component,component2

and track the packet all the way noticing when the error is generated.

Added by Wojciech Kapcia TigaseTeam over 3 years ago

NW NE wrote:

It seems I have similar issues, but with sending pubsub message to a pubsub node.

I get two errors:

Item not found most likely means that you're trying to access non-existent node. Again same advice - enable server debugging and track the packet.

Added by NW NE over 3 years ago

I am feeling my self as lost child in the woods.

I enabled full debuging, and did the followings:

(1) Send this stanza from Psi:

<iq id="UID1432198614267" xmlns="jabber:client" type="set" to="pubsub.test.nwnedomain.co">
  <pubsub xmlns="http://jabber.org/protocol/pubsub">
    <publish xmlns="" node="test_pubsubnode">
      <item id="UID1432198614267">
        <content>Test message from Psi+</content>
      </item>
    </publish>
  </pubsub>
</iq>

(2) Received this:

<iq from="pubsub.test.nwnedomain.co" type="error" id="UID1432198614267" to="webapp@test.nwnedomain.co/Psi+">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
  <publish xmlns="" node="test_pubsubnode">
    <item id="UID1432198614267">
      <content>Test message from Psi+</content>
</item>
</publish>
</pubsub>
<error type="cancel" code="404">
<item-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
</iq>

(3) Checked the logs and found this:

2015-05-22 16:26:08.725 [in_4-message-router]  MessageRouter.processPacket()  FINEST:   1. Packet will be processed by: pubsub@test.nwnedomain.co, from=sess-man@test.nwnedomain.co, to=null, DATA=<iq xmlns="jabber:client" to="pubsub.test.nwnedomain.co" from="webapp@test.nwnedomain.co/Psi+" type="set" id="UID1432198614267">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
  <publish xmlns="" node="test_pubsubnode">
    <item id="UID1432198614267">
      <content>Test message from Psi+</content></item></publish></pubsub></iq>, SIZE=371, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=ADMIN, TYPE=set
2015-05-22 16:26:08.725 [in_11-pubsub]     ModulesManager.process()           FINEST:   Processing packet: from=sess-man@test.nwnedomain.co, to=null, DATA=<iq xmlns="jabber:client" to="pubsub.test.nwnedomain.co" from="webapp@test.nwnedomain.co/Psi+" type="set" id="UID1432198614267">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
  <publish xmlns="" node="test_pubsubnode">
    <item id="UID1432198614267">
      <content>Test message from Psi+</content></item></publish></pubsub></iq>, SIZE=371, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=ADMIN, TYPE=set
2015-05-22 16:26:08.725 [in_11-pubsub]     ModulesManager.process()           FINER:    Handled by module class tigase.pubsub.modules.PublishItemModule
2015-05-22 16:26:08.725 [in_11-pubsub]     CachedPubSubRepository.getNode()   FINEST:   Getting node, serviceJid: pubsub.test.nwnedomain.co, nodeName: test_pubsubnode, key: pubsub.test.nwnedomain.co/test_pubsubnode, node: null
2015-05-22 16:26:08.728 [in_11-pubsub]     AbstractComponent.processStanzaPacket()  FINEST: nullgenerated by tigase.pubsub.modules.PublishItemModule.process(PublishItemModule.java:501)  when processing from=sess-man@test.nwnedomain.co, to=null, DATA=<iq xmlns="jabber:client" to="pubsub.test.nwnedomain.co" from="webapp@test.nwnedomain.co/Psi+" type="set" id="UID1432198614267">
<pubsub xmlns="http://jabber.org/protocol/pubsub">
  <publish xmlns="" node="test_pubsubnode">
    <item id="UID1432198614267">
      <content>Test message from Psi+</content></item></publish></pubsub></iq>, SIZE=371, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=ADMIN, TYPE=set
tigase.pubsub.exceptions.PubSubException
    at tigase.pubsub.modules.PublishItemModule.process(PublishItemModule.java:501)
    at tigase.component2.modules.ModulesManager.process(ModulesManager.java:87)
    at tigase.component2.AbstractComponent.processStanzaPacket(AbstractComponent.java:221)
    at tigase.component2.AbstractComponent.processPacket(AbstractComponent.java:209)
    at tigase.pubsub.PubSubComponent.processPacket(PubSubComponent.java:599)
    at tigase.server.AbstractMessageReceiver$QueueListener.run(AbstractMessageReceiver.java:1424)
2015-05-22 16:26:08.729 [in_11-pubsub]     AbstractComponent.sendException()  FINEST:   Sending back: from=pubsub.test.nwnedomain.co, to=sess-man@test.nwnedomain.co, DATA=<iq xmlns="jabber:client" id="UID1432198614267" from="pubsub.test.nwnedomain.co" type="error" to="webapp@test.nwnedomain.co/Psi+"><pubsub xmlns="http://jabber.org/protocol/pubsub">
  <publish xmlns="" node="test_pubsubnode">
    <item id="UID1432198614267">
      <content>Test message from Psi+</content></item></publish></pubsub><error code="404" type="cancel"><item-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq>, SIZE=473, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=error
2015-05-22 16:26:08.729 [in_11-pubsub]     AbstractComponent$1.write()        FINER:    Sent: <iq xmlns="jabber:client" id="UID1432198614267" from="pubsub.test.nwnedomain.co" type="error" to="webapp@test.nwnedomain.co/Psi+"><pubsub xmlns="http://jabber.org/protocol/pubsub">
  <publish xmlns="" node="test_pubsubnode">
    <item id="UID1432198614267">
      <content>Test message from Psi+</content></item></publish></pubsub><error code="404" type="cancel"><item-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq>
2015-05-22 16:26:08.730 [in_6-message-router]  MessageRouter.processPacket()  FINEST:   Processing packet: from=pubsub.test.nwnedomain.co, to=sess-man@test.nwnedomain.co, DATA=<iq xmlns="jabber:client" id="UID1432198614267" from="pubsub.test.nwnedomain.co" type="error" to="webapp@test.nwnedomain.co/Psi+"><pubsub xmlns="http://jabber.org/protocol/pubsub">
  <publish xmlns="" node="test_pubsubnode">
    <item id="UID1432198614267">
      <content>Test message from Psi+</content></item></publish></pubsub><error code="404" type="cancel"><item-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/></error></iq>, SIZE=473, XMLNS=jabber:client, PRIORITY=NORMAL, PERMISSION=NONE, TYPE=error

(5) details:

pubsub.test.nwnedomain.com is the jid of pubsub service according to Psi's service discovery. If I use

pubsub@test.nwnedomain.com instead, i get unavailable service error

test_pubsubnode is exist, I created via http api.

webapp@test.nwnedomain.co is subscribed to test_pubsubnode (via http api)

Tigase version: 7.0.2

database: MongoDB.

I lost a little bit, because I use tigase 5.x without problem with same settings in my application (except database, it was postgres).

Do you any idea how can i solve it?

regards,

NWNE

Added by NW NE over 3 years ago

Oh, s...! It was totally my bed.

I used pubsub@mydomain.com form in http api instead of pubsub.mydomain.com (as service discovery shows me before :().

So everything is fine now!

    (1-11/11)