ejabberd中的隐私列表

时间:2016-01-26 06:57:07

标签: xmpp ejabberd

我想阻止来自我的名单的所有传入状态更新。我尝试通过发送以下IQ来使用隐私列表。

<iq id='oQQwF-18' type='set'>
  <query xmlns='jabber:iq:privacy'>
    <list name="subscription">
      <item action="deny" order="9" type="subscription" value="to">
        <presence-in/>
      </item>
    </list>
  </query>
</iq>

我可以看到隐私列表存储在MySQL中,但我仍然会收到来自名册好友的状态更新。

我知道mod_client_state,但我想先尝试一下隐私列表。

1 个答案:

答案 0 :(得分:1)

在XEP-0016中,当匹配订阅类型时,您需要单独匹配每个订阅类型。通过上面的节,您将阻止订阅状态为“to”的用户的传入状态节,但可能大多数订阅状态为“both”(有些可能具有“from”)。试试这个:

<iq id='oQQwF-18' type='set'>
  <query xmlns='jabber:iq:privacy'>
    <list name="subscription">
      <item action="deny" order="9" type="subscription" value="to">
        <presence-in/>
      </item>
      <item action="deny" order="10" type="subscription" value="from">
        <presence-in/>
      </item>
      <item action="deny" order="11" type="subscription" value="both">
        <presence-in/>
      </item>
    </list>
  </query>
</iq>

此外,您可能需要将subscription列表设置为活动隐私列表:

<iq type='set' id='active1'>
<query xmlns='jabber:iq:privacy'>
  <active name='subscription'/>
</query>
</iq>
相关问题