Jabber setup

XMPP

Introduction

XMPP (earlier known as Jabber) stands for Extensible Messaging and Presence Protocol. XMPP is an XML-based open, free-to-use protocol for instant messaging and presence information in near real-time mode. To store user accounts and groups, OpenLDAP server is used, while Ejabberd is used as the XMPP server. The necessary software is included with [Calculate Directory Server] (cds).

LDAP configuration

User accounts and groups are stored with OpenLDAP. First configure the LDAP service according to the manual.

Jabber configuration

To install Jabber, run:

cl-setup jabber
 * ПРЕДУПРЕЖДЕНИЕ: Выполнение этой программы изменит конфигурационные файлы Jabber сервиса (программа Ejabberd).
Если вы готовы продолжить выполнение программы, введите 'yes', если нет - 'no': yes

Введите пароль для admin@calculate.spb.calculate.ru
Новый пароль:
Повторите новый пароль:
* Пользователь добавлен в Jabber сервис
* Добавлен ldif файл ...                                                            [ ok ]
* Запускается Ejabberd ...                                                          [ ok ]
* Jabber сервис сконфигурирован ...                                                 [ ok ]

После выполнения Jabber будет сконфигурирован с параметрами по умолчанию, в качестве имени хоста Jabber сервиса будет взято имя хоста машины.

To specify additional jabber hosts use the - hosts option.

While setting up the service, enter the password for the admin account.

Accounts

Each user on the network has a unique identifier, a Jabber ID, or JID . Like the email, a JID address contains the user name and the domain name of the server on which the user is registered, separated by the @ sign. For example, a user registered on example.org will have the following JID address: user@example.org.

To add a Jabber account, use the cl-useradd command.

To add a user nicknamed Guest , guest@example.org, run:

cl-useradd -p -c "Guest" guest jabber
Новый пароль:
Повторите новый пароль:
* Пользователь добавлен в Jabber сервис

Для добавления пользователя guest@example.org с nickname Гость и установкой для него фотографии, выполните:

cl-useradd -p -c "Guest" -i pic/guest.png guest jabber

Note

Supported image formats are determined by the functionality of ImageMagick. If you have no ImageMagick installed on your system, only jpeg pictures can be used.

To change the password of a Jabber account, use cl-passwd. For instance, to change the password for guest, run:

cl-passwd guest jabber
Новый пароль:
Повторите новый пароль:
* Пароль пользователя Jabber сервиса изменен

To lock a user account, use cl-usermod -L. For instance, to lock guest, run:

cl-usermod -L guest jabber
* Пользователь guest Jabber сервиса заблокирован

To unlock an account, run cl-usermod -U. For instance, to unlock guest, run:

cl-usermod -L guest jabber
* Пользователь guest Jabber сервиса разблокирован

To remove an account from Jabber, run cl-userdel. For instance, to remove guest, run:

cl-userdel guest jabber
* Пользователь guest Jabber сервиса удален

Groups

Группа - набор JID, использующийся для рассылок сообщений нескольким пользователям одновременно. При подключении пользователя к jabber сервису он автоматически получит список групп и их участников. Пользователей без группы в список контактов добавлять придется вручную. Пользователь может входить только в одну группу.

Создание группы сервиса Jabber осуществляется командой cl-groupadd. Для создания группы "Тестовая группа" выполните:

cl-groupadd "Тестовая группа" jabber
 * Группа 'Тестовая группа' добавлена в Jabber сервис

Переименовать существующую группу сервиса Jabber можно командой cl-groupmod. For example, to rename 'Testing' to 'My Test', run as follows:

cl-groupmod -n 'My Test' 'Testing' jabber
 * Группа переименована в My Test

Изменять состав jabber группы можно при помощи команд cl-groupmod и cl-usermod. Для добавления пользователя guest в группу 'Guest group' с помощью команды cl-usermod выполните:

cl-usermod -g "Guest group" guest jabber
* Пользовательская группа изменена

Для удаления пользователя guest из группы 'Guest group' выполните:

cl-groupmod -d guest "Guest group" jabber
* Пользователи удалены из группы Guest group

Для добавления пользователей guest,guest2 в группу 'Guest group' выполните:

cl-groupmod -a guest,guest2 "Guest group" jabber
* Пользователи добавлены в группу Guest group

Restrictions

Если на вашем сервере больше одного сетевого интерфейса, и вы желаете чтобы он работал только на одном из них, добавьте в файле /etc/jabber/ejabberd.yml соответствующую директиву ip: "192.168.0.2", в раздел listen:

/etc/jabber/ejabberd.yml

...
listen:
  -
    port: 5223
    module: ejabberd_c2s
    max_stanza_size: 65536
    tls: true
    ip: "192.168.0.2"
    certfile: "/etc/jabber/ssl.pem"
    shaper: c2s_shaper
    access: c2s
...