it looks to me that
LM_ERR("command: [%.*s]\n", cmd->name.len, cmd->name.s);
should be changed to
LM_DBG("command: [%.*s]\n", cmd->name.len, cmd->name.s);
since it is printed every time when imc_parse_cmd is called
successfully.
this does not still explain, why imc server does not send 200 ok
response to the #join message.
-- juha