Архив метки: ejabberd

Экспорт переписки пользователя из MAM в ejabberd

В MySQL / MariaDB:

SELECT timestamp, created_at, peer, txt FROM archive WHERE username = 'USER' and txt != '' INTO OUTFILE '/tmp/USER.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"';

Далее режем на отдельные файлы:

awk 'BEGIN {FS="\",\"";RS="\"\n"} {peer=$3; gsub(/\/.*|\+/, "", peer); gsub(/"/, "", $1); gsub(/\\\n/, "\n", $4); print $1, $2, $4 >> peer}' /tmp/USER.csv

ejabberd и инвайты

Тема Easy Onboarding вполне активно развивается и в последних версиях ejabberd (26.01/26.02) появилось создание учетных записей по приглашениям: добавлен mod_invites, а в штатной поставке сделана landing-страница, с помощью которой новички могут выбрать себе клиент и перейти к регистрации.

Общий смысл в том, что более опытный — имеющий учетную запись — пользователь берет на себя придумывание Jabber ID и разрешает регистрироваться другу на том сервере, которым пользуется сам. Пароль обычно в опробованных клиентах генерируется. Т.е., вся регистрация у новичка сводится к паре кликов «далее».

У себя поделал красивости в стиле субдоменов «Join ${DOMAIN}» (например, https://join.jabber.name), куда идут ссылки приглашений — а также туда смотрит и штатная веб-форма регистрации, которую на сейчас не использую.

Пока остается один нерешенный момент: у меня в mod_register использовался параметр redirect_url, чтобы любая попытка регистрации из клиента вела на веб-форму. С инвайтами вылез косяк — редирект блокирует завершение регистрации. Тикет уже заведен — надеюсь, в следующей версии ejabberd поправят.

ETS, PTS — пара тестовых jabber’ов с хостингом дома

После «Апдейтов и фиксов на домашнем сервере» решил, с одной стороны, альтернативно подойти к оставшейся со времен переезда на VPS копии ejabberd’а — а там у меня еще ejabberd 2.x и Debian 7, который я использовал для написания и отладки RSS-транспорта и других проектов (фактически, тут от сервера требовалось просто его наличие, чтобы к нему подключался транспорт. Ну и держать какой-то тестовый аккаунт, где со всем этим работать). С другой стороны, раз уж развивать эту тему, то иметь и тестовый сервер на базе Prosody, так как купленная с год назад виртуалка и домен mychat.name для написания руководства на JabberWorld уже закончились, а пощупать Prosody все же иногда полезно. А там может и Snikket под боком иметь…

Так вот. Развернуть очередную пару виртуалок несложно, ресурсов на обновленном сервере хватает под все. Но делать — так делать: захотелось нормально выпустить имеющиеся серверы в мир с доступом к ним снаружи и нормальным общением между собой. Одна незадача. Даже две: внешнего адреса дома у меня нет (а IPv6 все так же не предоставляется), а внешний адрес VPS’ки уже занят «боевым» сервером, обслуживающим JabberWorld и остальные домены.

И вот решил попробовать разрулить целиком все через SRV-записи. В том числе телефонию!

TL;DR: да, все удалось! Софт вполне корректно работает через SRV, в том числе есть связь с jabber.ru, где на данный момент работает ejabberd 3.x (а ему уже больше 10 лет!).

Читать далее ETS, PTS — пара тестовых jabber’ов с хостингом дома

Апдейт до ejabberd 24.02 на jabberworld

Так и не дождался ejabberd 24.02 в основном репозитории Debian’а, в итоге спустя месяц с лишним после релиза решил ставить пакет с официального сайта. Попутно к тому времени обновил систему до Debian 12, что вылилось в ругань на неизвестный центр сертификации при старте ejabberd’а.

Читать далее Апдейт до ejabberd 24.02 на jabberworld

Обновление сервера на хостинге и новые фишки

Зайдя по случаю проверить срок истечения VPS’ки, на которой у меня крутятся мои проекты, обнаружил, что у них появился некий акционный тариф: 2 ядра, 4 ГБ памяти и чуть больше (50 ГБ) диска. Подал заявку — «перевод возможен». Как выяснилось, на лету это не делается и надо было ребутнуть сервер. Договорились с саппортом за время — хотелось видеть, что все поднимется.

Читать далее Обновление сервера на хостинге и новые фишки

Найдено по теме XMPP: easy onboarding и видеоконференции

На easy onboarding ака XEP-0401 наткнулся, когда делал для https://jabberworld.info скриншоты для Blabber.im — для своего сервера заметил строчку с пометкой о том, что фича не поддерживается. Заинтересовался, полез смотреть. Фактически, система инвайтов, позволяющих снизить количество лишних действий для нового пользователя, вплоть до предварительного создания нового аккаунта и добавления друг друга в ростер. У одного из найденных клиентов — Snikket — добавление учетных записей сделано тоже по модели invite-only.

Ну и вторая заметка — видеоконференции в Jabber: https://github.com/iNPUTmice/Conversations/issues/3891 — пока все только развивается, но приметил одну фразу: «Other messengers have solved this by linking a Jitsi meet instance». Вполне годный вариант, с учетом того, что Jitsi Meet я как-то пробовал. Но если будет штатный стандартизованный и совместимый между клиентами вариант — это только плюс.

Плагин статистики ejabberd для munin, доработки

Речь про этот плагин. Некоторое время назад поставил его для отслеживания статистики своих серверов и только недавно исправил 2 основных косяка, на которые наткнулся. Читать далее Плагин статистики ejabberd для munin, доработки

Веселый мир веселого юникода

Некоторое время назад случайно наткнулся на еще одну проблему с jabber-сервером: зарегистрировавшийся у меня пользователь подключался к конференции индонезийцев на jabber.ru и при попытке сохранить ее в закладки сервер вываливал в логи exception о том, что у меня «Incorrect string value» для таблицы «pubsub_item».

Читать далее Веселый мир веселого юникода