I'd like to use mod_muc_admin. I tried installing it but the new commands don't show up in ejabberdctl and the new pages don't show up in the web admin.
Details:
I found the source code for it on this site (in svn) and downloaded it. I have the following packages installed on my Debian Squeeze system:
ejabberd 2.1.5-3+squeeze1
erlang-dev 1:14.a-dfsg-3squeeze1
erlang-webtool 1:14.a-dfsg-3squeeze1
erlang-tools 1:14.a-dfsg-3squeeze1
I am running ejabberd, and can visit the admin web site
I can run ejabberdctl and get a list of commands to run for admin (includes mod_admin_extra commands, but not mod_muc_admin commands).
I've been able to chat with people individually and in a couple of rooms. Now I want to make a room "members-only" and try that.
I'm trying to figure out how to assign members to the room. Is it by creating an access list, and setting an "affiliation" with the
room "members"?
I cd into the downloaded ejabberd_modules/mod_muc_admin/trunk, and ran build.sh. It seemed to complete successfully and there was an ebin/mod_muc_admin.beam file created. I copied this to where the other ejabberd beam files are: /usr/lib/ejabberd/ebin. There are bunches
of other .beam files there, including ejabberd.beam. I made sure it has the same ownership/permissions as the other files there (root.root, 644)
I looked in /etc/ejabberd/ejabberd.cfg in the {modules, []} directive, and noted that:
{mod_muc_admin, []},
was already there (not commented out with %).
So I restarted ejabberd with invoke-rc.d ejabberd stop; invoke-rc.d ejabberd start
Unfortunately, there is no extra item in the web admin page, and no extra command in the ejabberdctl output.
I also tried ejabberdctl update mod_muc_admin, with no obvious errors, but this showed up in the log file:
=INFO REPORT==== 2012-06-22 19:13:00 === D(<0.514.0>:ejabberd_commands:314) : Executing command ejabberd_admin:update with Args=["mod_ muc_admin"] =INFO REPORT==== 2012-06-22 19:13:00 === D(<0.514.0>:ejabberd_update:87) : beam files: [] =INFO REPORT==== 2012-06-22 19:13:00 === D(<0.514.0>:ejabberd_update:134) : script: [] =INFO REPORT==== 2012-06-22 19:13:00 === D(<0.514.0>:ejabberd_update:135) : low level script: [point_of_no_return] =INFO REPORT==== 2012-06-22 19:13:00 === D(<0.514.0>:ejabberd_update:136) : check: ok =INFO REPORT==== 2012-06-22 19:13:00 === D(<0.514.0>:ejabberd_update:134) : script: [] =INFO REPORT==== 2012-06-22 19:13:00 === D(<0.514.0>:ejabberd_update:135) : low level script: [point_of_no_return] =INFO REPORT==== 2012-06-22 19:13:00 === D(<0.514.0>:ejabberd_update:136) : check: ok =INFO REPORT==== 2012-06-22 19:13:00 === I(<0.514.0>:ejabberd_update:64) : eval: {ok,[]} =INFO REPORT==== 2012-06-22 19:13:14 === D(<0.505.0>:ejabberd_http:255) : (#Port<0.4250>) http query: 'GET' /admin/
but I don't really get that there was an eror from this ...
I also see some of these:
=ERROR REPORT==== 2012-06-22 18:24:46 === E(<0.37.0>:gen_mod:73) : {undef,[{mod_muc_admin,start,["sourcerer.ca",[]]}, {gen_mod,start_module,3}, {lists,foreach,2}, {ejabberd_app,start,2}, {application_master,start_it_old,4}]}
but I think they must be from when there is no mod_muc_admin.beam file.
Questions:
- Can I get a list of modules running in ejabberd? I don't see a command for that in ejabberdctl, maybe I missed it?
- I've looked in /var/log/ejabberd/ejabberd.log for errors related to this but I don't see any (except as mentioned above)
- and in /var/log/ejabberd/erlang.log
- I just don't know how to read /var/log/ejabberd/erl_crash.dump
- When I run invoke-rc.d ejabberd stop, is this process supposed to be still running: /usr/lib/erlang/erts-5.8/bin/epmd -daemon ?
- what is it? Is that an mnesia daemon? Should I be stopping it and restarting it too?
- How to add members to a room (esp. members-only room)?
Help on how to proceed in making this work would be most welcome. I've started reading the erlang tutorial at
Thanks in advance for any help.