0
votes

I am using ejabberd 15.09 and trying to create a module to send acknowledge message in return for received message , I am getting error while routing this packet.

Error log:

2015-10-08 11:10:57.333 [error] <0.437.0>@ejabberd_sm:route:118 {function_clause,[{ejabberd_sm,do_route,[{jid,<<"1234567890">>,<<"x.xyz.com">>,<<"asdfgfd23f4">>,<<"1234567890">>,<<"x.xyz.com">>,<<"asdfgfd23f4">>},{jid,<<"0987654321">>,<<"x.xyz.com">>,<<"Bruno.7B81FB19">>,<<"0987654321">>,<<"x.xyz.com">>,<<"Bruno.7B81FB19">>},{xmlelement,"message",[{"id",<<"abc4a">>},{"type","Ack_receipt"},{"from",<<"[email protected]/asdfgfd23f4">>},{"to",<<"[email protected]/Bruno.7B81FB19">>}],[{xmlelement,"body",[],[{xmlcdata,<<"ack Message">>}]}]}],[{file,"src/ejabberd_sm.erl"},{line,424}]},{ejabberd_sm,route,3,[{file,"src/ejabberd_sm.erl"},{line,116}]},{ejabberd_local,route,3,[{file,"src/ejabberd_local.erl"},{line,112}]},{ejabberd_router,route,3,[{file,"src/ejabberd_router.erl"},{line,75}]},{mod_ack,log_packet,3,[{file,"src/mod_ack.erl"},{line,32}]},{mod_ack,on_user_send_packet,4,[{file,"src/mod_ack.erl"},{line,28}]},{ejabberd_hooks,safe_apply,3,[{file,"src/ejabberd_hooks.erl"},{line,385}]},{ejabberd_hooks,run_fold1,4,[{file,"src/ejabberd_hooks.erl"},{line,368}]}]}

when processing: {{jid,<<"1234567890">>,<<"x.xyz.com">>,<<"asdfgfd23f4">>,<<"1234567890">>,<<"x.xyz.com">>,<<"asdfgfd23f4">>},{jid,<<"0987654321">>,<<"x.xyz.com">>,<<"Bruno.7B81FB19">>,<<"0987654321">>,<<"x.xyz.com">>,<<"Bruno.7B81FB19">>},{xmlelement,"message",[{"id",<<"abc4a">>},{"type","Ack_receipt"},{"from",<<"[email protected]/asdfgfd23f4">>},{"to",<<"[email protected]/Bruno.7B81FB19">>}],[{xmlelement,"body",[],[{xmlcdata,<<"ack Message">>}]}]}}

1

1 Answers

2
votes

You are formatting an xmlelement record. This format is obsolete. Packet record on latest ejabberd are xmlel records. You need to update your code to support the new format.

The record format is described here: https://github.com/processone/xml/blob/master/include/xml.hrl