Uploaded image for project: '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

        Expenses

          Activity

          badlop Badlop created issue -
          badlop 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
          cromain@process-one.net Christophe Romain made changes -
          Assignee Karim Gemayel [ kgemayel ]
          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 ]
          cromain@process-one.net Christophe Romain made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          mremond@process-one.net 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:

                Development