Я должен отправить пользовательский IQ из [email protected]/Smack
, используя свое собственное пространство имен http://www.test.com/test
определенному пользователю [email protected]/Smack
. Когда я использую OpenFire, все работает нормально, но Ejabberd не передает этот IQ пользователю. В файле журнала я вижу, что IQ получен сервером, внутренне отправлен в диспетчер сеансов, но не перенаправлен пользователю. Если я отправлю Message
, он будет отправлен правильно. Я использую Java-smack-Client.XMPP: Ejabberd не перенаправляет пользовательский IQ с префиксом пространства имен пользователю
Требуется ли для Ejabberd конкретная конфигурация для пересылки пользовательских IQ?
=INFO REPORT==== 2013-09-11 13:55:36 ===
D(<0.658.0>:ejabberd_receiver:320) : Received XML on stream =
"<iq id=\"0j8w6-8\" to=\"[email protected]/Smack\" type=\"set\">
<ts:register-request xmlns:ts=\"http://www.test.com/test\" xmlns:xs=\"http://www.w3.org/2001/XMLSchema\" xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\">
<ts:node-id>550e8400-e29b-11d4-a716-446655440000</ts:node-id>
<ts:properties>
<ts:path>.</ts:path>
<ts:delivery-mode>1</ts:delivery-mode>
</ts:properties>
</ts:register-request>
</iq>"
=INFO REPORT==== 2013-09-11 13:55:36 ===
D(<0.659.0>:ejabberd_router:313) : route
from {jid,"eva","pc377","Smack","eva","pc377","Smack"}
to {jid,"bob","pc377","Smack","bob","pc377","Smack"}
packet {xmlelement,"iq",
[{"id","0j8w6-8"},
{"to","[email protected]/Smack"},
{"type","set"}],
[{xmlelement,"ts:register-request",
[{"xmlns:ts","http://www.test.com/test"},
{"xmlns:xs","http://www.w3.org/2001/XMLSchema"},
{"xmlns:xsi",
"http://www.w3.org/2001/XMLSchema-instance"}],
[{xmlelement,"ts:node-id",[],
[{xmlcdata,
<<"550e8400-e29b-11d4-a716-446655440000">>}]},
{xmlelement,"ts:properties",[],
[{xmlelement,"ts:path",[],[{xmlcdata,<<".">>}]},
{xmlelement,"ts:delivery-mode",[],
[{xmlcdata,<<"1">>}]}]}]}]}
=INFO REPORT==== 2013-09-11 13:55:36 ===
D(<0.659.0>:ejabberd_local:300) : local route
from {jid,"eva","pc377","Smack","eva","pc377","Smack"}
to {jid,"bob","pc377","Smack","bob","pc377","Smack"}
packet {xmlelement,"iq",
[{"id","0j8w6-8"},{"to",[...]},{[...],...}],
[{xmlelement,[...],...}]}
=INFO REPORT==== 2013-09-11 13:55:36 ===
D(<0.659.0>:ejabberd_sm:411) : session manager
from {jid,"eva","pc377","Smack","eva","pc377","Smack"}
to {jid,"bob","pc377","Smack","bob","pc377","Smack"}
packet {xmlelement,"iq",
[{"id","0j8w6-8"},{"to",[...]},{[...],...}],
[{xmlelement,[...],...}]}
=INFO REPORT==== 2013-09-11 13:55:36 ===
D(<0.659.0>:ejabberd_sm:510) : sending to process <0.656.0>
Хорошее предложение ... Я попробовал, и IQ отправлен! После некоторых тестов мне кажется, что ejabberd не способен обрабатывать префиксы пространства имен в XML. –
Я отправил отчет об ошибке. Его можно найти здесь: https://support.process-one.net/i#browse/EJAB-1661 –