Переходим на Jabber
Устанавливаем erlang-lite (без Java, X11, ODBC):
1 2 3 4 5 6 | # cd /usr/ports/lang/erlang-lite/ # grep WITH Makefile WITHOUT_JAVA= yes WITHOUT_X11= yes WITHOUT_ODBC= yes # make install clean |
Устанавливаем ejabberd (без ODBC):
1 2 3 4 | # cd /usr/ports/net-im/ejabberd # grep WITH Makefile .if defined(WITH_ODBC) # make install clean |
Устанавливаем pyicqt (с поддержкой ejabberd – WITH_EJABBERD):
1 2 3 | # cd /usr/ports/net-im/jabber-pyicq # make config # make install clean |
Добавляем в DNS следующие записи:
1 2 3 4 | _xmpp-client._tcp.case.net.ru. IN SRV 5 0 5222 case.net.ru. _xmpp-server._tcp.case.net.ru. IN SRV 5 0 5269 case.net.ru. _jabber._tcp.case.net.ru. IN SRV 5 0 5269 case.net.ru. icq A 213.79.110.123 |
Настраиваем ejabberd – /usr/local/etc/ejabberd/ejabberd.cfg:
{acl, admin, {user, "case"}}. {acl, local, {user_regexp, ""}}. {access, pubsub_createnode, [{allow, all}]}. {access, configure, [{allow, admin}]}. {access, register, [{deny, all}]}. {welcome_message, {"Welcome!", "Welcome to Jabber Service. " "For information about Jabber visit http://jabber.org"}}. {access, announce, [{allow, admin}]}. {access, c2s, [{deny, blocked}, {allow, all}]}. {shaper, normal, {maxrate, 1000}}. {shaper, fast, {maxrate, 50000}}. {access, c2s_shaper, [{none, admin}, {normal, all}]}. {access, s2s_shaper, [{fast, all}]}. {access, muc_admin, [{allow, admin}]}. {access, muc, [{allow, all}]}. {auth_method, internal}. {hosts, ["case.net.ru"]}. {max_user_sessions, 10}. {language, "en"}. {listen, [{5222, ejabberd_c2s, [{access, c2s}, {shaper, c2s_shaper}, {max_stanza_size, 65536}, starttls, {certfile, "/usr/local/etc/ejabberd/ssl.pem"}]}, {5223, ejabberd_c2s, [{access, c2s}, {max_stanza_size, 65536}, tls, {certfile, "/usr/local/etc/ejabberd/ssl.pem"}]}, {5269, ejabberd_s2s_in, [{shaper, s2s_shaper}, {max_stanza_size, 131072} ]}, {5247, ejabberd_service, [{access, all}, {hosts, ["icq.case.net.ru"], [{password, "secret"}]}]} ]}. {s2s_use_starttls, true}. {s2s_certfile, "/usr/local/etc/ejabberd/ssl.pem"}. {outgoing_s2s_port, 5269}. {modules, [ {mod_register, [{access, register}]}, {mod_roster, []}, {mod_privacy, []}, {mod_adhoc, []}, {mod_configure2, []}, {mod_disco, []}, {mod_stats, []}, {mod_vcard, []}, {mod_offline, []}, {mod_private, []}, {mod_irc, []}, {mod_muc, [{access, muc}, {access_create, muc}, {access_admin, muc_admin}]}, {mod_pubsub, [{access_createnode, pubsub_createnode}]}, {mod_time, []}, {mod_last, []}, {mod_version, []} ]}.
Создаем сертификат:
1 2 3 4 5 6 7 | # cd /usr/local/etc/ejabberd/ # openssl req -new -x509 -nodes -newkey rsa:1024 -days 3650 -keyout privkey.pem -out server.pem -subj "/C=XX/ST=XX/L=XX/O=XX/OU=XX/CN=case.net.ru/emailAddress=case@case.net.ru" # cat privkey.pem >> server.pem # rm privkey.pem # mv server.pem ssl.pem |
Настраиваем pyicqt (приведены только изменения) – /usr/local/etc/jabber-pyicq.xml:
1 2 3 4 5 6 7 8 9 10 11 12 | <jid>icq.case.net.ru</jid> <spooldir>/var/spool/jabber</spooldir> <pid>/var/jabberd/pid/PyICQt.pid</pid> <mainServer>127.0.0.1</mainServer> <mainServerJID>case.net.ru</mainServerJID> <website>http://case.net.ru/</website> <port>5247</port> <secret>secret</secret> <lang>en</lang> <encoding>windows-1251</encoding> <icqServer>login.icq.com</icqServer> <icqPort>5190</icqPort> |
Создаем необходимые каталоги:
1 2 3 | # mkdir /var/spool/jabber # mkdir -p /var/jabberd/pid # chown ejabberd:ejabberd /var/spool/jabber /var/jabberd /var/jabberd/pid |
Включаем демонов в /etc/rc.conf:
1 2 | ejabberd_enable="YES" jabber_pyicq_enable="YES" |
Запускаем демонов:
1 2 | # /usr/local/etc/rc.d/ejabberd start # /usr/local/etc/rc.d/jabber-pyicq-transport start |
Из под пользователя ejabberd проверяем статус и регистрируем пользователя:
1 2 3 4 | [ejabberd@case.net.ru]$ ejabberdctl ejabberd@case status Node ejabberd@case is started. Status: started ejabberd is running [ejabberd@case.net.ru]$ ejabberdctl ejabberd@case register case case.net.ru password |
Подключаемся к учетной записи через kopete и регистрируемся в службе ICQ Transport.
Устанавливаем mcabber:
1 2 3 4 5 6 | # cd /usr/ports/net-im/mcabber # grep WITH Makefile .if defined(WITH_GPGME) .if defined(WITH_ASPELL) .if defined(WITH_OTR) # make install clean |
Подключаемся через mcabber – ~/.mcabber/mcabberrc:
1 2 3 4 5 | set username = case set server = case.net.ru set port = 5223 set ssl = 1 set ssl_verify = 0 |
Возникли проблемы с контактами на gmail.com – решилось отключением службы google talk для домена. )
Ссылки:
http://www.opennet.ru/base/net/jabber_icq_gate.txt.html
