My apologies if this is a previous question, but I really need to know how to restrict access to my chat server by limiting the users to only one software to log in to the server. for instance:
user1 is using approved software to chat.
user2 is, well user2 didn't get the memo.
I want to deny access to user2 until they install the proper software, and allow user1 to log in with no problems.
I know Openfire allows this type of configuration, But I do not speak erlang or any other programming language and need to know if ejabberd is even capable of this feat.
Thanks in advance.
Not implemented. Simple alternative solution.
That feature isn't implemented in ejabberd. By the way, clients can fake their software version, seeA Fool's Guide to Bypass Openfire's Client Control .
Another solution would be to use the server listening port as a way to enforce users to 'update' their clients. By default clients and ejabberd use port 5222. You can start an additional listener on port 18910 for example. Put that port as default in your custom client. Tell users to update. After a few days, close the port 5222. Only the users that updated their client, or that configured that custom port in their client, will be able to login.
With the next client update you can repeat, with a different port.
Other alternative solution
You can use an acl with resource_regexp. Then hard code your client and recompile with the permited Resource and don't tell anybody that Resource. Then create an acl for Ejabberd (version >= 2.1.1) like this:
{acl, xxxxxx, {resource_regexp, "myresource"}}.
{access, c2s, [{deny, blocked},
{allow, xxxxxx}]}.