Назад | Перейти на главную страницу

Ejabberd mod_block_strangers: строфы ошибки блока

Моя версия ejabberd - 19.08. При включенном mod_block_strangers статьи об ошибках не получены.

Отправка сообщения внешнему получателю (не локальному jabber) Пример нашей строфы с mod_block_strangers = on

<message to="615970@676373647364.com" id="aad7a">
<subject>test</subject>
<body>test</body>
<nick xmlns="http://jabber.org/protocol/nick">bot</nick>
</message>

XMPP не является локальным. Раздела об ошибках нет. Должно быть, потому что этого домена не существует.

Пример нашей строфы с mod_block_strangers = off

<message type="chat" to="615970@676373647364.com" id="aadaa">
<body>test</body>
<active xmlns="http://jabber.org/protocol/chatstates"/>
<request xmlns="urn:xmpp:receipts"/>
<nick xmlns="http://jabber.org/protocol/nick">bot</nick>
</message>

<message from="615970@676373647364.com" type="error" xml:lang="ru" to="bot@*" id="aadaa">
<active xmlns="http://jabber.org/protocol/chatstates"/>
<request xmlns="urn:xmpp:receipts"/>
<nick xmlns="http://jabber.org/protocol/nick">bot</nick>
<error type="cancel" code="404">
<remote-server-not-found xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
<text xmlns="urn:ietf:params:xml:ns:xmpp-stanzas" xml:lang="en">DNS lookup failed: non-existing domain</text>
</error>
<body>test</body>
</message>

На локальном xmpp такой проблемы нет. Все в порядке. Я думаю, это потому, что allow_local_users по умолчанию имеет значение true. Пример строфы с локальным доменом:

<message to="549725985745@localdomain" id="aadea">
<subject>test</subject>
<body>test</body>
<nick xmlns="http://jabber.org/protocol/nick">bot</nick>
</message>


<message from="549725985745@localdomain" type="error" xml:lang="ru" to="bot@localdomain/Psi+" id="aadea">
<nick xmlns="http://jabber.org/protocol/nick">bot</nick>
<error type="cancel" code="503">
<service-unavailable xmlns="urn:ietf:params:xml:ns:xmpp-stanzas"/>
</error>
<body>test</body>
<subject>test</subject>
</message>

Таким образом, если включен mod_block_strangers, мы не получаем код ошибки и код ошибки с нашего сервера. Мол, сообщение об ошибке запрещается вместе с сообщением.

Изменить: обновлено до ejabberd 20.04. Та же ситуация, эффекта нет.

На моем сервере нет нормального отображения ошибок.

Я использую ejabberd 20.04 с конфигурацией по умолчанию.

Когда я пытаюсь присоединиться к комнате с именем «room @ aa», он выдает сообщение об ошибке, потому что имя комнаты не может содержать @, и эта строка ошибки включает код XEP-0086:

<presence id='57:106609'
    from='room@aa@conference.localhost/user1'
    type='error'>
  <x xmlns='http://jabber.org/protocol/muc'>
    <history maxchars='10000000000000'
    maxstanzas='200000000'/>
  </x>
  <show>away</show>
  <status>Busysss</status>
  <error code='400'
    type='modify'>
    <bad-request xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'/>
    <text xml:lang='en'
    xmlns='urn:ietf:params:xml:ns:xmpp-stanzas'>Bad value of attribute &apos;to&apos; in tag &lt;presence/&gt; qualified by namespace &apos;jabber:client&apos;</text>
  </error>
</presence>