ejabberd development
  1. ejabberd development
  2. EJAB-1228

Announce PEP and Pubsub features in account Service Discovery

    Details

      Description

      XEP-0163 says:

      6. Determining Support
      6.1 Account Owner Service Discovery

      ...

      Example 10. Account owner queries server regarding protocol support

      <iq from='juliet@capulet.lit/balcony'
          to='juliet@capulet.lit'
          id='disco1'
          type='get'>
        <query xmlns='http://jabber.org/protocol/disco#info'/>
      </iq>
      

      If the account owner's server supports PEP and the account is provisioned for PEP, the server MUST return an identity of "pubsub/pep" on behalf of the account (as well as a list of the namespaces and other features it supports, including all supported XEP-0060 features):

      Example 11. Server communicates protocol support

      <iq from='juliet@capulet.lit'
          to='juliet@capulet.lit/balcony'
          id='disco1'
          type='result'>
        <query xmlns='http://jabber.org/protocol/disco#info'>
          <identity category='account' type='registered'/>
          <identity category='pubsub' type='pep'/>
          <feature var='http://jabber.org/protocol/pubsub#access-presence'/>
          <feature var='http://jabber.org/protocol/pubsub#auto-create'/>
          <feature var='http://jabber.org/protocol/pubsub#auto-subscribe'/>
          <feature var='http://jabber.org/protocol/pubsub#config-node'/>
          <feature var='http://jabber.org/protocol/pubsub#create-and-configure'/>
          <feature var='http://jabber.org/protocol/pubsub#create-nodes'/>
          <feature var='http://jabber.org/protocol/pubsub#filtered-notifications'/>
          <feature var='http://jabber.org/protocol/pubsub#persistent-items'/>
          <feature var='http://jabber.org/protocol/pubsub#publish'/>
          <feature var='http://jabber.org/protocol/pubsub#retrieve-items'/>
          <feature var='http://jabber.org/protocol/pubsub#subscribe'/>
          ...
        </query>
      </iq>
      

      However, ejabberd just returns:

      <iq from='badlop@localhost'
      	to='badlop@localhost/work'
      	id='35:862496'
      	type='result'>
        <query xmlns='http://jabber.org/protocol/disco#info'>
          <identity category='pubsub' type='pep'/>
          <identity category='account' type='registered'/>
          <feature var='http://jabber.org/protocol/disco#info'/>
          <feature var='vcard-temp'/>
          <feature var='msgoffline'/>
          <feature var='http://jabber.org/protocol/commands'/>
        </query>
      </iq>
      

      ejabberd doesn't announce support for the PEP and Pubsub features.

      This was first reported in http://www.ejabberd.im/node/4040#comment-55705

        Activity

        Badlop
        made changes -
        Field Original Value New Value
        Affects Version/s ejabberd 2.1.3 [ 10453 ]
        Description [XEP-0163|http://xmpp.org/extensions/xep-0163.html#support-owner] says:

        {quote}6. Determining Support
        6.1 Account Owner Service Discovery

        ...

        Example 10. Account owner queries server regarding protocol support

        {code}
        <iq from='juliet@capulet.lit/balcony'
            to='juliet@capulet.lit'
            id='disco1'
            type='get'>
          <query xmlns='http://jabber.org/protocol/disco#info&#39;/>
        </iq>
        {code}
            
        If the account owner's server supports PEP and the account is provisioned for PEP, the server MUST return an identity of "pubsub/pep" on behalf of the account ({color:red}as well as a list of the namespaces and other features it supports, including all supported XEP-0060 features{color}):

        Example 11. Server communicates protocol support

        {code}
        <iq from='juliet@capulet.lit'
            to='juliet@capulet.lit/balcony'
            id='disco1'
            type='result'>
          <query xmlns='http://jabber.org/protocol/disco#info&#39;>
            <identity category='account' type='registered'/>
            <identity category='pubsub' type='pep'/>
            <feature var='http://jabber.org/protocol/pubsub#access-presence&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#auto-create&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#auto-subscribe&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#config-node&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#create-and-configure&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#create-nodes&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#filtered-notifications&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#persistent-items&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#publish&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#retrieve-items&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#subscribe&#39;/>
            ...
          </query>
        </iq>
        {code}
        {quote}

        However, ejabberd just returns:
        {code}
        <iq from='badlop@localhost'
        to='badlop@localhost/work'
        id='35:862496'
        type='result'>
          <query xmlns='http://jabber.org/protocol/disco#info&#39;>
            <identity category='pubsub' type='pep'/>
            <identity category='account' type='registered'/>
            <feature var='http://jabber.org/protocol/disco#info&#39;/>
            <feature var='vcard-temp'/>
            <feature var='msgoffline'/>
            <feature var='http://jabber.org/protocol/commands&#39;/>
          </query>
        </iq>
        {code}

        ejabberd doesn't announce support for the PEP and Pubsub features.
        [XEP-0163|http://xmpp.org/extensions/xep-0163.html#support-owner] says:

        {quote}6. Determining Support
        6.1 Account Owner Service Discovery

        ...

        Example 10. Account owner queries server regarding protocol support

        {code}
        <iq from='juliet@capulet.lit/balcony'
            to='juliet@capulet.lit'
            id='disco1'
            type='get'>
          <query xmlns='http://jabber.org/protocol/disco#info&#39;/>
        </iq>
        {code}
            
        If the account owner's server supports PEP and the account is provisioned for PEP, the server MUST return an identity of "pubsub/pep" on behalf of the account ({color:red}as well as a list of the namespaces and other features it supports, including all supported XEP-0060 features{color}):

        Example 11. Server communicates protocol support

        {code}
        <iq from='juliet@capulet.lit'
            to='juliet@capulet.lit/balcony'
            id='disco1'
            type='result'>
          <query xmlns='http://jabber.org/protocol/disco#info&#39;>
            <identity category='account' type='registered'/>
            <identity category='pubsub' type='pep'/>
            <feature var='http://jabber.org/protocol/pubsub#access-presence&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#auto-create&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#auto-subscribe&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#config-node&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#create-and-configure&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#create-nodes&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#filtered-notifications&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#persistent-items&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#publish&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#retrieve-items&#39;/>
            <feature var='http://jabber.org/protocol/pubsub#subscribe&#39;/>
            ...
          </query>
        </iq>
        {code}
        {quote}

        However, ejabberd just returns:
        {code}
        <iq from='badlop@localhost'
        to='badlop@localhost/work'
        id='35:862496'
        type='result'>
          <query xmlns='http://jabber.org/protocol/disco#info&#39;>
            <identity category='pubsub' type='pep'/>
            <identity category='account' type='registered'/>
            <feature var='http://jabber.org/protocol/disco#info&#39;/>
            <feature var='vcard-temp'/>
            <feature var='msgoffline'/>
            <feature var='http://jabber.org/protocol/commands&#39;/>
          </query>
        </iq>
        {code}

        ejabberd doesn't announce support for the PEP and Pubsub features.

        This was first reported in http://www.ejabberd.im/node/4040#comment-55705
        Christophe Romain
        made changes -
        Assignee Karim Gemayel [ kgemayel ]
        Karim Gemayel (Inactive)
        made changes -
        Status Open [ 1 ] Resolved [ 5 ]
        Fix Version/s ejabberd 2.1.6 [ 10658 ]
        Fix Version/s ejabberd 3.0.0-alpha-2 [ 10659 ]
        Resolution Fixed [ 1 ]
        Christophe Romain
        made changes -
        Status Resolved [ 5 ] Closed [ 6 ]
        Mickaël Rémond
        made changes -
        Workflow development v3 [ 71957 ] Development v4 [ 81389 ]

          People

          • Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:
              Days since last comment:
              3 years, 39 weeks, 5 days ago

              Issue deployment