Jabber setup

Updated 7 March 2019

XMPP

Introduction

XMPP (ранее известный как Jabber), Extensible Messaging and Presence Protocol (англ. расширяемый протокол обмена сообщениями и информацией о присутствии) - это основанный на XML открытый, свободный для использования протокол для мгновенного обмена сообщениями и информацией о присутствии в режиме, близкому к режиму реального времени. Для хранения учётных записей пользователей и групп используется OpenLDAP-сервер, в качестве XMPP-сервера используется Ejabberd. The necessary software is included with [Calculate Directory Server] (cds).

Настройка LDAP-сервера

Для хранения учётных записей пользователей и групп утилиты используют OpenLDAP-сервер. First configure the LDAP service according to the manual.

Настройка Jabber-сервера

Установите Jabber-сервис, выполнив:

cl-setup jabber
* WARNING: Running this program will modify the configuration files of the Jabber service (Ejabberd). If you want to continue, enter 'yes', else enter 'no': yes 

Enter password for admin@calculate.spb.calculate.ru
New password:
Repeat new password:
* User added to Jabber service
* Added ldif file ...                                                            [ ok ]
* Starting Ejabberd ...                                                          [ ok ]
* Jabber service configured ...                                                 [ ok ]

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

Для указания дополнительных jabber-хостов используйте параметр --hosts.

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
New password:
Repeat new password:
* User added to Jabber service

Для добавления пользователя 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. Если в системе его нет, доступен только формат jpeg.

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

cl-passwd guest jabber
New password:
Repeat new password:
* Password of Jabber user modified

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

cl-usermod -L guest jabber
* User guest of Jabber service locked

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

cl-usermod -L guest jabber
* User guest of Jabber service unlocked

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

cl-userdel guest jabber
* User guest of Jabber service removed

Groups

A group is a set of JIDs used to send messages to several users at the same time. При подключении пользователя к Jabber-сервису он автоматически получит список групп и их участников. Users without groups have to be added manually to the contact list. Каждый пользователь может входить только в одну группу.

To create a Jabber group, use the cl-groupadd command. For instance, to create a group named "Testing Group", run:

cl-groupadd "Testing Group" jabber
 * Group 'Testing Group' added to Jabber service

To rename an existing Jabber group, use cl-groupmod. For example, to rename 'Testing Group' to 'My Test', run as follows:

cl-groupmod -n 'My Test' 'Testing Group' jabber
 * Group renamed to My Test

Изменять состав группы Jabber можно при помощи команд cl-groupmod и cl-usermod. To add user guest to group 'Guest Group', run cl-usermod as shown below:

cl-usermod -g "Guest Group" guest jabber
* User group modified

To remove user guest from group 'Guest Group', run:

cl-groupmod -d guest "Guest group" jabber
* Users removed from group Guest Group

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

cl-groupmod -a guest,guest2 "Guest group" jabber
* Users added to group 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
...