Reputation: 481
I must send a custom IQ from eva@pc377/Smack
using my own namespace http://www.test.com/test
to a specific user bob@pc377/Smack
. When I use OpenFire everything works fine, but Ejabberd does not forward this IQ to the user. In the log file I see, that the IQ is received by the server, internally dispatched to the Session Manager, but not forwarded to the user. If I send a Message
, it is forwarded correctly. I am using a Java-based Smack-Client.
Does Ejabberd require a specific configuration for forwarding custom IQs?
=INFO REPORT==== 2013-09-11 13:55:36 ===
D(<0.658.0>:ejabberd_receiver:320) : Received XML on stream =
"<iq id=\"0j8w6-8\" to=\"bob@pc377/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","bob@pc377/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>
Upvotes: 0
Views: 950
Reputation: 10414
Try it with simpler XML:
<iq id="0j8w6-8" to="bob@pc377/Smack" type="set">
<register-request xmlns="http://www.test.com/test">
<node-id>550e8400-e29b-11d4-a716-446655440000</node-id>
<properties>
<path>.</path>
<delivery-mode>1</delivery-mode>
</properties>
</register-request>
</iq>
If that doesn't work, try renaming register-request
and delivery-mode
to remove the dash. Neither of these changes should be required, but either would help the ejabberd team find a bug.
Upvotes: 0