Ejabberd privacy_set ничего не сохраняет в mysql

Я хочу, чтобы мои пользователи могли блокировать друг друга. Поэтому я провел небольшое исследование и выяснил, что это можно сделать с помощью privacy_set. Поэтому я добавил mod_privacy и mod_blocking в файл конфигурации.

Проблема в том, что когда я запускаю следующую команду, ничего не вставляется в mysql.

Я скопировал xml из здесь.

ejabberdctl privacy_set userA localhost "<iq from='userA@localhost/l' type='set' id='block1'> <block xmlns='urn:xmpp:blocking'> <item jid='[email protected]'/> </block> </iq>"

Я также связал это, все еще не повезло:

Скопировано с здесь

ejabberdctl privacy_set userA localhost "<iq from='userA@localhost/l' type='set' id='iq1'> <query xmlns='jabber:iq:privacy'> <list name='iq-jid-example'> <item type='jid' value='userB@localhost' action='deny' order='29'> <iq/> </item> </list> </query> </iq>"

Это содержимое моего yml-файла ejabberd:

loglevel: 5
log_rotate_size: 10485760
log_rotate_date: ""
log_rotate_count: 1
log_rate_limit: 100

watchdog_admins:
   - "admin@localhost"

acl:
  admin:
    user:
      - "admin": "localhost"

access:
  configure:
    admin: allow
  webadmin_view:
    viewers: allow

hosts:
  - "localhost"

listen:
  -
    port: 5222
    module: ejabberd_c2s
    max_stanza_size: 65536
    shaper: c2s_shaper
    access: c2s
  -
    port: 5281
    module: ejabberd_http
    request_handlers:
      ## "/oauth": ejabberd_oauth
      "/api": mod_http_api
    web_admin: true
    http_bind: true
    http_poll: true
    captcha: false

commands_admin_access:
  - allow:
    - user: "admin@localhost"

commands:
  - add_commands: [send_stanza, destroy_room, connected_users_info, get_room_options, user, admin, open, status, stats, connecteo_users, get_vcard, change_password, check_account, register, create_room, create_room_with_opts, send_direct_invitation]
oauth_access: all

modules:
  mod_vcard: {}
  mod_ping: {}
  mod_admin_extra: {}
  mod_mam: {}
  mod_roster: {}
  mod_shared_roster: {}
  mod_stats: {}
  mod_offline: {}
  mod_privacy:
    db_type: sql  
  mod_blocking: {}

api_permissions:
  "console commands":
    from:
      - ejabberd_ctl
    who: all
    what: "*"
  "admin access":
    who:
      - admin
      - oauth:
        - scope: "ejabberd:admin"
        - admin
    what:
      - "*"
      - "!stop"
      - "!start"

shaper_rules:
  max_user_sessions: 10
  max_user_offline_messages:
    - 5000: admin
    - 100
  c2s_shaper:
    - none: admin
    - normal
  s2s_shaper: fast

access_rules:
  local:
    - allow: local
  c2s:
    - deny: blocked
    - allow
  announce:
    - allow: admin
  configure:
    - allow: all
  register:
    - allow
  trusted_network:
    - allow: loopback

auth_password_format: scram
auth_method: sql
default_db: sql
sql_type: mysql
sql_server: "localhost"
sql_database: "ejabberd"
sql_username: "ejabberd"
sql_password: "123456"
## If you want to specify the port:
sql_port: 3306

Любая помощь будет оценена по достоинству.


person AliRNazari    schedule 08.02.2017    source источник


Ответы (1)


Я нашел ответ с помощью консольного XMPP-клиента под названием Profanity.

Вот как это можно сделать:

 ejabberdctl send_stanza_c2s userA localhost l '<iq id="1212" type="set"><block xmlns="urn:xmpp:blocking"><item jid="userB@localhost"/></block></iq>'
person AliRNazari    schedule 05.04.2017