
"Чистый" ejabberd.
Бот регистрируется как user1, у которого в ростере user2. Добавляет в ростер, но такого юзера еще нет - повисшая авторизация.
Регистрируется как user2, добавляет в ростер user1'а и запрашивает авторизацию (уже можно).
Значит, надо входить как user1 и подтверждать авторизацию, запрашивая в свою очередь у user2
Опять логиниться как user2 и подтверждать авторизацию.
Итого на каждую пару пользователей 2 раза регистрации и 2 раза авторизации.
Нет, я не говорю что невозможно

Всё зависит от числа пользователей. Если их много - имеет смысл разобраться с дампом. Например:
{roster,{"loe",{"user1","jabber.ru",[]}},
"loe",
{"user1","jabber.ru",[]},
"USER1",
both,
none,
["JABBER-RU"],
[],
[]}.
Это в моем ростере пользователь user1@jabber.ru (отображается как USER1) в группе JABBER-RU с взаимной авторизацией (both). Думаю, проблем не составит сгенерировать аналогичный блок.
Вариант с использованием MySQL базы в ejabberd тоже возможен.
"No! Try not! Do. Or do not. There is no try." -- Yoda