I need lots of MUC chats with additional functionality:
Change user's room manually from code
Handle special "system" calls (for example calls like /changeroom must be not transported to everybody, but handeled by system)
Store lots of additional data about user in mnesia table
Store all history somewhere in db on hdd and return it on a request.
The only thing that comes to mind (about the second point) is catching every package handling package_fillter event. But that seems too heavy.
What could you advise?