Можно ли настроить элемент присутствия ‹show/› в ejabberd?

Раздел 2.2.2.1 RFC3921 определяет, что НЕОБЯЗАТЕЛЬНЫЙ элемент <show/> ДОЛЖЕН быть одним из следующих:

away -- The entity or resource is temporarily away. chat -- The entity or resource is actively interested in chatting. dnd -- The entity or resource is busy (dnd = "Do Not Disturb"). xa -- The entity or resource is away for an extended period (xa = "eXtended Away").

Я хочу настроить этот список доступных статусов, удалив «чат» и добавив дополнительные статусы, из которых могут выбирать клиенты XMPP.

Прежде чем зайти слишком далеко по этому пути, я хотел бы узнать от экспертов:

1) Можно ли изменить список стандартных элементов в ejabberd, и если да, то как это лучше всего сделать?

2) Можно ли изменять элементы для каждого виртуального хоста, поскольку каждой организации нужен несколько иной набор статусов (т. е. могут видеть присутствие друг друга)?

3) Будут ли XMPP-клиенты воспринимать какие-либо изменения в списке элементов в ejabberd, или стандартные элементы обычно жестко закодированы?

4) Что произойдет, если для контакта на одном виртуальном хосте выбран элемент, недоступный для контакта на другом виртуальном хосте, но два контакта подключены?

Цените любой вклад, которым вы можете поделиться.


person John    schedule 01.04.2018    source источник


Ответы (1)


ejabberd не заботится о показной ценности. Однако, если вы измените его, ваш клиент больше не будет совместим с XMPP.

Было бы намного лучше использовать статус, чтобы передать особое значение, которое вам нужно, и постоянно отображать эти значения статуса поверх стандартных значений «показать».

Если вам также необходимо использовать статус, вы всегда можете добавить свой собственный тег расширения, чтобы передать дополнительную информацию, необходимую вашему клиенту.

person Mickaël Rémond    schedule 03.04.2018