ОМСКАЯ ГРУППА ПОЛЬЗОВАТЕЛЕЙ LINUX » jabber http://omsklug.com Свобода - это ответственность. Вот почему все её так боятся. Бернард Шоу Fri, 10 Nov 2017 17:30:02 +0000 en hourly 1 http://wordpress.org/?v=3.2.1 Нам нравится Profanity! http://omsklug.com/2016/03/we-like-profanity/ http://omsklug.com/2016/03/we-like-profanity/#comments Wed, 02 Mar 2016 19:20:35 +0000 Shroom http://omsklug.com/?p=1988 .local p {text-align: justify!important; text-justify: inter-word!important;} .local a {color: rgb(16, 8, 96)!important;} .local a:visited {color: Gray!important;} .local a:hover {text-decoration: underline; color: Blue!important;} .local pre {overflow-x:auto;} .local code {font-family: Monospace,Courier!important;} .local code > span.kw { color: #268BD2; font-weight: bold; } .local code > span.dt { color: #268BD2; } .local code > span.dv { color: #D33682; } .local code > span.bn { color: #D33682; } .local code > span.fl { color: #D33682; } .local code > span.ch { color: #4070a0; } .local code > span.st { color: #2AA198; } .local code > span.co { color: #93A1A1; font-style: italic; } .local code > span.ot { color: #A57800; } .local code > span.al { color: #CB4B16; font-weight: bold; } .local code > span.fu { color: #268BD2; } .local code > span.er { color: #D30102; font-weight: bold; }
profanity project logo

Правда. :) Даже несмотря на наличие под катом ненормативной лексики. Так что, если вам нет 18 лет или если инвективная лексика является основной причиной ваших нравственных страданий, добро пожаловать в основной раздел нашего сайта. Если же вам интересны некоторые пикантные подробности наших счастлвых отношений с программкой из сабжа, тогда идёмте дальше…

По OmskLUG прокатилось поветрие сборки и/или установки консольного xmpp-клиента profanity. Может быть, это следствие его специфической суровой консольной кавайности, может быть, омсклуговцы просто устали от навороченного минимализма mcabber’а… А может быть, он на самом деле лучший из всех консольных джаббер-клиентов на сегодняшний день. И сегодня я не буду, как обычно это делал, скучно и долго рассказывать, как протанцевать по граблям сборки, установки и настройки очередного несговорчивого софта. Лучше я, как говорят в этих ваших интернетах, «просто оставлю это здесь»…

Собери Profanity!

(По щелчку на миниатюре загрузится оригинал)

“build profanity” banner in russian

И то же самое по-английски:

“build profanity” banner in english

На сегодня всё.


Спасибо за внимание!


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

]]>
http://omsklug.com/2016/03/we-like-profanity/feed/ 0
Настройка ejabberd сервер + mysql + pyticq транспорт http://omsklug.com/2014/02/ejabberd-server-mysql-pyticq-transport/ http://omsklug.com/2014/02/ejabberd-server-mysql-pyticq-transport/#comments Sun, 09 Feb 2014 13:34:08 +0000 Plus http://omsklug.com/?p=1521 Обычная история про то, как я устанавливал обычный корпоративный сервер для общения между сотрудниками, так и через внешние аккаунты некогда популярных сетей общения.

1. Базовые настройки

Настройки /etc/ejabberd/ejabberd.cfg почти все стандартны, за исключением указанных ниже:

override_local.

Укажем логин администратора (у jabber-сервера свой администратор, не путать с системным) и имя сервера:
%% Admin user {acl, admin, {user, "info", "omsklug.com"}}.
%% Hostname {hosts, ["omsklug.com"]}.

Раскомментируем настройки транспорта icq:
%% Jabber ICQ Transport
{5555, ejabberd_service,
[{ip, {127, 0, 0, 1}},
{access, all},
{shaper_rule, fast},
{hosts, ["icq.omsklug.com", "sms.omsklug.com"],
[{password, "secret"}]}
]},

Если используется внутренняя база тогда раскоментируем:
%%{auth_method, internal}.

Если же используется база mysql, тогда открываем вот это:
{auth_method, odbc}.

Далее настроим доступ к Базе данных, предварительно её создав и настроить пользователя к ней:
{odbc_server, {mysql, "localhost", "ejabberd", "ejabberd", "ejabberd"}}.

Включаем настройку локализации:
{language, "ru"}.

Разрешаем регистрацию пользователей:
{access, register, [{allow, all}]}.

далее нужно подключить модули к mysql:
Меняем значения:
mod_last на mod_last_odbc
mod_offline на mod_offline_odbc
mod_privacy на mod_privacy_odbc
mod_private на mod_private_odbc
mod_roster на mod_roster_odbc
mod_vcard на mod_vcard_odbc

Сохраняем и закрываем /etc/ejabberd/ejabberd.cfg

2. Настройка базы MySQL для ejabberd

Теперь настройка mysql базы: нужно грамотно загрузить дамп пустой базы, поэтому берем его тут:
https://github.com/processone/ejabberd/blob/2.1.x/src/odbc/mysql.sql
После всех операций перезапускаем правильно необходимые сервисы ejabberd и mysqld:

sudo /etc/rc.d/ejabberd stop sudo /etc/rc.d/mysqld restart sudo /etc/rc.d/ejabberd start

3. Создание общего списка контактов сервера

В общем на этом можно было бы и остановиться, если бы не одно но. По умолчанию список контактов (ростер на терминологии jabber) нового пользователя пуст. Это вполне нормально для личного использования или для работы с публичными серверами – пользователь сам выбирает с кем общаться, но абсолютно неприемлемо для корпоративной среды, где список контактов заранее определен. Было бы неплохо, чтобы новый пользователь автоматически попадал в этот список и автоматически получал его в свой клиент. К счастью сделать это совсем несложно. В /etc/ejabberd/ejabberd.cfg найдем и раскомментируем следующую строку:

{mod_shared_roster, []},

Сохраняем файл, перезапускаем сервис. Теперь в веб-админке в разделе Virtual Hosts – имя вашего сервера появился пункт Группа общих контактов. Создаем такую группу и настраиваем. Для того, чтобы в группу автоматически попадали все пользователи в поле Члены укажите @all@, а в поле Видимые группы укажите название вашей группы, которое вы ввели при ее создании.

ВНИМАНИЕ!!!
Для Debian GNU/Linux надо установить клиент к БД. Готовый годный пакет -  здесь
Подробное описание конфига /etc/ejabberd/ejabberd.cfg можно посмотреть тут: http://blog.scaytrase.ru/linux/330/
Ещё один неплохой мануал: http://forum.odmins-it.ru/index.php?topic=170.0

4. Настройка транспорта ICQ

Далее переходим к настройке необходимого нам pyticq:
Здесь всё проще некуда:

<pyicqt>
<!-- The JabberID of the transport. -->
<jid>icq.hostname.server</jid>
<!-- The component JID of the transport. Unless you're doing clustering, leave this alone -->
<!-- <compjid>icq1</compjid> -->
<!-- The IP address of the main Jabberd server -->
<mainServer>127.0.0.1</mainServer> - адрес сервера
<!-- The JID of the main Jabber server -->
<mainServerJID>icq.adress.ru</mainServerJID> - имя сервера с транспортом
<!-- The website of the Jabber service -->
<website>http://adress.ru/</website> - адрес странички
<!-- The website of the transport service -->
<!-- <transportWebsite></transportWebsite> -->
<!-- The support room on your server -->
<!-- <supportRoom></supportRoom> -->
<supportJid>jid@adress.ru</supportJid>
<!-- The TCP port to connect to the Jabber server on -->
<!-- (this is the default for Jabberd2) -->
<port>5555</port> - порт указанный в транспорте конфига ejabberd.cfg
<!-- The TCP port that the web admin interface will answer on -->
<!-- (uncomment to enable) -->
<!-- <webport>12345</webport> -->
<webport>8022</webport>
<!-- The authentication token to use when connecting to the Jabber server -->
<secret>secret</secret>
<!-- The default language to use (for error/status messages) -->
<lang>ru</lang>
<!-- Default one-byte message encoding to use -->
<encoding>cp1251</encoding>
<!-- The hostname of the ICQ server you wish to connect to -->
<icqServer>login.icq.com</icqServer>
<!-- The port of the ICQ server you wish to connect to -->
<icqPort>5190</icqPort>

можно еще отредактировать блок:

<admins>
<jid>admin@jid</jid>
<!--<jid>admin@host.com</jid>-->
</admins>

Остальное оставляем по умолчанию. У нас получился XMPP-сервер (Jabber), проникнутый духом корпоративности и порядка. В будущем подумаем о других транспортах XMPP. В комментариях – пишите, какие транспорты IM-сетей вас интересуют.

]]>
http://omsklug.com/2014/02/ejabberd-server-mysql-pyticq-transport/feed/ 0
Веб-регистрация пользователей ejabberd http://omsklug.com/2013/09/jabber-registration-interface/ http://omsklug.com/2013/09/jabber-registration-interface/#comments Thu, 12 Sep 2013 20:10:39 +0000 Plus http://omsklug.com/?p=1535

Итак имеется, настроенный ejabberd с базой данных на mysql. Необходимо сделать регистрацию через веб интерфейс. После долгих поисков модуля ejabberd для организации веб-регистрации клиентов, не нашлось ничего подходящего. По этому пришлось обратиться за помощью к php и mysql.

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

В качестве примера у нас это… Форма knopka.php:

<!DOCTYPE html>
<html>
<meta charset=”utf-8″/>
<head>
<script type=”text/javascript” src=”http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js”></script>
<script type=”text/javascript” src=”js/bootstrap.js”></script>
<link rel=”stylesheet” type=”text/css” href=”css/bootstrap.css”>
<link rel=”stylesheet” href=”css/reset.css”>
<link rel=”stylesheet” href=”css/animate.css”>
<link rel=”stylesheet” href=”css/styles.css”>
<title>Регистрация Jabber</title>

</head>
<body>
<button type=”button” onclick=”openModal();”>Регистрация Jabber</button>
<!– Modal –>
<div id=”myModal” tabindex=”-1″ role=”dialog” aria-labelledby=”myModalLabel” aria-hidden=”true”>
<div id=”container”>
<form action=”user.php” method=”post”>

<label for=”name”>Имя учетной записи:</label>
<p>
<input name=”login” type=”name” size=”15″ maxlength=”15″>
</p>
<label for=”username”>Пароль:</label>
<p><a href=”#”>Запишите пароль!</a>

<input name=”password” type=”password” size=”15″ maxlength=”15″>

<div id=”lower”>

<input type=”checkbox”><label for=”checkbox”>Я принимаю условия регистрации.</label>

<input type=”submit” name=”submit” value=”Регистрация”>
</div>
</form>
</div>
</div>

<!–div>
</div–>

<script type=”text/javascript”>
function openModal(){
$(‘#myModal’).modal(‘show’);
}
</script>
</body>
</html>

Думаю тут все понятно и не требует дополнительных пояснений.

след файл mysql.php с параметрами подключения к базе:

<?php
$db = mysql_connect (“localhost”,”root”,”1″);
if($db)
mysql_select_db (“test”,$db);
else
{
echo “ошибка подключения к БД”;
}
?>

И третий файл user.php, который отвечает за помещение данных в базу.

<?php
if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == ”) { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
if (isset($_POST['password'])) { $password=$_POST['password']; if ($password ==”) { unset($password);} }
//заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
{
exit (“Вы ввели не всю информацию, вернитесь назад и заполните все поля!”);
}
//если логин и пароль введены, то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
$login = stripslashes($login);
$login = htmlspecialchars($login);
$password = stripslashes($password);
$password = htmlspecialchars($password);
//удаляем лишние пробелы
$login = trim($login);
$password = trim($password);
// подключаемся к базе
include (“mysql.php”);// файл mysql.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь 
// проверка на существование пользователя с таким же логином
$result = mysql_query(“SELECT id FROM users WHERE username=’$login’”,$db);
$myrow = mysql_fetch_array($result);
if (!empty($myrow['id'])) {
exit (“Извините, введённый вами логин уже зарегистрирован. Введите другой логин.”);
}
// если такого нет, то сохраняем данные
$result2 = mysql_query (“INSERT INTO users (login,password) VALUES(‘$login’,'$password’)”);
// Проверяем, есть ли ошибки
if ($result2==’TRUE’)
{
echo “Вы успешно зарегистрированы! Теперь вы можете зайти под своим JID. “;
header(“Location: http://localhost”);
}
else {
echo “Ошибка! Вы не зарегистрированы.”;
}
?>

Ну и конечно же нужно помнить что базу и таблицу выбираем именно как таблицу пользователей в базе mysql ejabberd, “user”.

В качестве оформления можете воспользоваться css framework или накидать дизайн самостоятельно.

css.tar - в архиве файлы с формой и оформлением.

]]>
http://omsklug.com/2013/09/jabber-registration-interface/feed/ 0