代码之家  ›  专栏  ›  技术社区  ›  vikram17000

获取ejabberd MUC成员列表

  •  1
  • vikram17000  · 技术社区  · 8 年前

    似乎有一些线索围绕这一点,这似乎是一个非常明显的问题,但在我的ejabberd移动客户端创建的MUC/rooms中,创建者/所有者能够获取成员列表,但当我从成员获取相同的列表时,出现了一个管理权限要求错误。

    以下是请求和响应小节以及房间选项。有人能告诉我这里有什么我忽略了吗…非常感谢?

    成员的请求:

    <iq 
      type="get"
      to="1479313326166_what%20a%20day@conference.example.com" 
      id="7BB7F8C8-B47F-4C0C-9E4D-8CAC3A5287FF">
        <query xmlns="http://jabber.org/protocol/muc#admin">
          <item 
            affiliation="member">
          </item>
        </query>
    </iq>
    

    <iq xmlns="jabber:client" 
      from="1479313326166_what%20a%20day@conference.example.com" 
      to="group-member@example.com/9A36B83F-0B1B-484E-BFB2-C0F1C7148274" 
      id="7BB7F8C8-B47F-4C0C-9E4D-8CAC3A5287FF"
      type="error">
        <query xmlns="http://jabber.org/protocol/muc#admin">
          <item affiliation="member"></item>
        </query>
        <error code="403" type="auth">
          <forbidden xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"></forbidden>
          <text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas">
            Administrator privileges required
          </text>
        </error>
    </iq>
    

    客房选项:

    > /sbin/ejabberdctl get_room_options 1479313326166_what%20a%20day conference.example.com
    title   
    description 
    allow_change_subj   true
    allow_query_users   true
    allow_private_messages  true
    allow_private_messages_from_visitors    anyone
    allow_visitor_status    true
    allow_visitor_nickchange    true
    public  true
    public_list true
    persistent  true
    moderated   true
    captcha_protected   false
    members_by_default  true
    members_only    true
    allow_user_invites  false
    allow_subscription  true
    password_protected  false
    password    
    anonymous   true
    presence_broadcast  [moderator,participant,visitor]
    allow_voice_requests    true
    voice_request_min_interval  1800
    max_users   200
    logging false
    vcard   <vCard xmlns='vcard-temp'><NICKNAME>What a day</NICKNAME><NOTE/></vCard>
    captcha_whitelist   {0,nil}
    mam false
    
    1 回复  |  直到 8 年前
        1
  •  2
  •   dichen    8 年前

    我试图通过ConfigurationForm和ServerDefaultConfig来配置一个房间,但幸运的是,从来没有出现错误,fetchMembers总是很好。可能有一些非常愚蠢的东西很难找到。可能尝试清除数据库或重新启动服务器以重新启动。

    <x xmlns=\"jabber:x:data\" type=\"form\">
          <title>Configuration of room 1479231695@conference.192.168.100.226</title>
          <field type=\"hidden\" var=\"FORM_TYPE\">
            <value>http://jabber.org/protocol/muc#roomconfig</value>
          </field>
          <field type=\"text-single\" label=\"Room title\" var=\"muc#roomconfig_roomname\">
            <value></value>
          </field>
          <field type=\"text-single\" label=\"Room description\" var=\"muc#roomconfig_roomdesc\">
            <value></value>
          </field>
          <field type=\"boolean\" label=\"Make room persistent\" var=\"muc#roomconfig_persistentroom\">
            <value>1</value>
          </field>
          <field type=\"boolean\" label=\"Make room public searchable\" var=\"muc#roomconfig_publicroom\">
            <value>0</value>
          </field>
          <field type=\"boolean\" label=\"Make participants list public\" var=\"public_list\">
            <value>0</value>
          </field>
          <field type=\"boolean\" label=\"Make room password protected\" var=\"muc#roomconfig_passwordprotectedroom\">
            <value>0</value>
          </field>
          <field type=\"text-private\" label=\"Password\" var=\"muc#roomconfig_roomsecret\">
            <value></value>
          </field>
          <field type=\"list-single\" label=\"Maximum Number of Occupants\" var=\"muc#roomconfig_maxusers\">
            <value>200</value>
            <option label=\"5\">
              <value>5</value>
            </option>
            <option label=\"10\">
              <value>10</value>
            </option>
            <option label=\"20\">
              <value>20</value>
            </option>
            <option label=\"30\">
              <value>30</value>
            </option>
            <option label=\"50\">
              <value>50</value>
            </option>
            <option label=\"100\">
              <value>100</value>
            </option>
            <option label=\"200\">
              <value>200</value>
            </option>
          </field>
          <field type=\"list-single\" label=\"Present real Jabber IDs to\" var=\"muc#roomconfig_whois\">
            <option label=\"moderators only\">
              <value>moderators</value>
            </option>
            <option label=\"anyone\">
              <value>anyone</value>
            </option>
            <value>anyone</value>
          </field>
          <field type=\"list-multi\" label=\"Roles for which Presence is Broadcasted\" var=\"muc#roomconfig_presencebroadcast\">
            <value>moderator</value>
            <value>participant</value>
            <value>visitor</value>
            <option label=\"Moderator\">
              <value>moderator</value>
            </option>
            <option label=\"Participant\">
              <value>participant</value>
            </option>
            <option label=\"Visitor\">
              <value>visitor</value>
            </option>
          </field>
          <field type=\"boolean\" label=\"Make room members-only\" var=\"muc#roomconfig_membersonly\">
            <value>1</value>
          </field>
          <field type=\"boolean\" label=\"Make room moderated\" var=\"muc#roomconfig_moderatedroom\">
            <value>0</value>
          </field>
          <field type=\"boolean\" label=\"Default users as participants\" var=\"members_by_default\">
            <value>1</value>
          </field>
          <field type=\"boolean\" label=\"Allow users to change the subject\" var=\"muc#roomconfig_changesubject\">
            <value>1</value>
          </field>
          <field type=\"boolean\" label=\"Allow users to send private messages\" var=\"allow_private_messages\">
            <value>1</value>
          </field>
          <field type=\"list-single\" label=\"Allow visitors to send private messages to\" var=\"allow_private_messages_from_visitors\">
            <value>anyone</value>
            <option label=\"nobody\">
              <value>nobody</value>
            </option>
            <option label=\"moderators only\">
              <value>moderators</value>
            </option>
            <option label=\"anyone\">
              <value>anyone</value>
            </option>
          </field>
          <field type=\"boolean\" label=\"Allow users to query other users\" var=\"allow_query_users\">
            <value>1</value>
          </field>
          <field type=\"boolean\" label=\"Allow users to send invites\" var=\"muc#roomconfig_allowinvites\">
            <value>1</value>
          </field>
          <field type=\"boolean\" label=\"Allow visitors to send status text in presence updates\" var=\"muc#roomconfig_allowvisitorstatus\">
            <value>1</value>
          </field>
          <field type=\"boolean\" label=\"Allow visitors to change nickname\" var=\"muc#roomconfig_allowvisitornickchange\">
            <value>1</value>
          </field>
          <field type=\"boolean\" label=\"Allow visitors to send voice requests\" var=\"muc#roomconfig_allowvoicerequests\">
            <value>1</value>
          </field>
          <field type=\"text-single\" label=\"Minimum interval between voice requests (in seconds)\" var=\"muc#roomconfig_voicerequestmininterval\">
            <value>1800</value>
          </field>
          <field type=\"jid-multi\" label=\"Exclude Jabber IDs from CAPTCHA challenge\" var=\"muc#roomconfig_captcha_whitelist\"></field>
        </x>
    

    mod_muc:
        ## host: "conference.@HOST@"
        access:
          - allow
        access_admin:
          - allow: admin
        access_create: muc_create
        access_persistent: muc_create
        history_size: 0
        default_room_options:
            allow_user_invites: true
            anonymous: false
            members_by_default: true
            members_only: true
            moderated: false
            persistent: true
            public: false
            public_list: false