LinuxForum.Fans
Тема

pyicq-t + ejabberd

Автор: Devoter 3 сообщений 6793 просмотров
#11490

Все мои изыскания с openfire закончились тем, что я признал его слишком прожорливым для моего слабенького сервера. Короче, в один прекрасный день (то есть ночь) был произведен перевод на ejabberd. Не долго поковырялся, поставил нужные библиотеки... Короче, ejabberd + mysql вполне адекватно завелись.
После этого возник вопрос об использовании icq-транспорта. Ну, выбор не большой - pyicq-t (второго даже название не помню).
Установка прошла, вроде как, без ошибок. Сконфигурировал на работу с mysql. Создал базу и пользователя, залил дамп, установил mysql-python. Но pyicq-t не стартует, последние строчки лога:

text

[2010-03-09 20:40:39] Starting factory <twisted.words.protocols.jabber.xmlstream.XmlStreamFactory object at 0xb74ba2cc>
[2010-03-09 20:40:39] INFO ::  :: PyTransport :: componentConnected :: {'xmlstream': <twisted.words.protocols.jabber.xmlstream.XmlStream instance at 0x9efc1cc>} :: 
[2010-03-09 20:40:40] Received SIGTERM, shutting down.
[2010-03-09 20:40:40] INFO ::  :: PyTransport :: removeMe :: {} :: 
[2010-03-09 20:40:43] INFO ::  :: PyTransport :: componentDisconnected :: {} :: 
[2010-03-09 20:40:43] <twisted.internet.tcp.Connector instance at 0x9efc12c> will retry in 2 seconds
[2010-03-09 20:40:43] Stopping factory <twisted.words.protocols.jabber.xmlstream.XmlStreamFactory object at 0xb74ba2cc>
[2010-03-09 20:40:43] Main loop terminated.

конфиг ejabberd:

text

override_global.
override_local.
override_acls.
{loglevel, 4}.
{hosts, ["retechorg.ru"]}.
{listen,
 [
  {5222, ejabberd_c2s, [
            {certfile, "/etc/jabber/ssl.pem"}, starttls,
            {access, c2s},
            {shaper, c2s_shaper},
            {max_stanza_size, 65536}
               ]},
  {5269, ejabberd_s2s_in, [
               {shaper, s2s_shaper},
               {max_stanza_size, 131072}
              ]},
  {8888, ejabberd_service, [
                  {access, all}, 
                  {shaper_rule, fast},
                  {ip, {127,0,0,1}},
                  {hosts, ["icq.retechorg.ru", "sms.retechorg.ru"],
                   [{password, "pass2"}]
                  }
                 ]},

{5280, ejabberd_http, [ http_poll, web_admin ]} ]}. {s2s_use_starttls, true}. {s2s_certfile, "/etc/jabber/ssl.pem"}. {auth_method, odbc}. {odbc_server, {mysql, "127.0.0.1", "ejabberd", "ejabberd", "ejabberd"}}. {shaper, normal, {maxrate, 1000}}. {shaper, fast, {maxrate, 50000}}. {acl, admin, {user, "nay", "retechorg.ru"}}. {acl, local, {user_regexp, ""}}. {access, max_user_sessions, [{10, all}]}. {access, local, [{allow, local}]}. {access, c2s, [{deny, blocked}, {allow, all}]}. {access, c2s_shaper, [{none, admin}, {normal, all}]}. {access, s2s_shaper, [{fast, all}]}. {access, announce, [{allow, admin}]}. {access, configure, [{allow, admin}]}. {access, muc_admin, [{allow, admin}]}. {access, muc, [{allow, all}]}. {access, pubsub_createnode, [{allow, all}]}. {access, register, [{allow, all}]}. {language, "ru"}. {modules, [ {mod_adhoc, []}, {mod_announce, [{access, announce}]}, % recommends mod_adhoc {mod_caps, []}, {mod_configure,[]}, % requires mod_adhoc {mod_disco, []}, %%{mod_echo, [{host, "echo.localhost"}]}, {mod_irc, []}, {mod_last_odbc, []}, {mod_muc, [ %%{host, "conference.@HOST@"}, {access, muc}, {access_create, muc}, {access_persistent, muc}, {access_admin, muc_admin} ]}, %%{mod_muc_log,[]}, {mod_offline_odbc, []}, {mod_privacy, []}, {mod_private, []}, %%{mod_proxy65,[]}, {mod_pubsub, [ % requires mod_caps {access_createnode, pubsub_createnode}, {plugins, ["default", "pep"]} ]}, {mod_register, [ {welcome_message, {"Welcome!", "Hi\nWelcome The ReTech.Org Jabber server."}}, {registration_watchers, ["nay@retechorg.ru"]},

{access, register} ]}, {mod_roster_odbc, []}, %%{mod_service_log,[]}, {mod_shared_roster,[]}, {mod_stats, []}, {mod_time, []}, {mod_vcard_odbc, [{search, true},{matches, infinity}, {allow_return_all, true}]}, {mod_version, []} ]}.

конфиг pyicq-t

text

<pyicqt>
    <!-- The JabberID of the transport. -->
    <jid>icq.retechorg.ru</jid>

<!-- The component JID of the transport. Unless you're doing clustering, leave this alone --> <!-- <compjid>icq1</compjid> -->

<!-- The location of the spool directory.. if relative, relative to --> <!-- this directory. Do not include the jid of the transport. --> <spooldir>/var/spool/jabber</spooldir>

<!-- The location of the PID file.. if relative, relative to this dir. --> <!-- Comment out if you do not want a pid file --> <pid>/var/run/jabber/pyicq-t.pid</pid>

<!-- The IP address of the main Jabberd server --> <mainServer>127.0.0.1</mainServer>

<!-- The JID of the main Jabber server --> <mainServerJID>retechorg.ru</mainServerJID>

<!-- The website of the Jabber service --> <website>http://retechorg.ru</website> <!-- The website of the transport service --> <!-- <transportWebsite></transportWebsite> --> <!-- The support room on your server --> <!-- <supportRoom></supportRoom> --> <!-- The JID of a service admin or helpdesk --> <!-- <supportJid></supportJid> -->

<!-- The TCP port to connect to the Jabber server on --> <!-- (this is the default for Jabberd2) --> <port>8888</port>

<!-- The TCP port that the web admin interface will answer on --> <!-- (uncomment to enable) --> <!-- <webport>12345</webport> -->

<!-- The authentication token to use when connecting to the Jabber server --> <secret>icqpassw</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>

<!-- Enable it if you want md5 authentication --> <usemd5auth/>

<!-- The name of Socks Proxy if connecting thru a proxy --> <!-- <socksProxyServer>im-proxy2</socksProxyServer> -->

<!-- The Socks Proxy port to use when connecting thru a proxy --> <!-- <socksProxyPort>1080</socksProxyPort> -->

<!-- Send greeting on login (enter text to be sent to users here) --> <!-- <sessionGreeting>enter message here</sessionGreeting> --> <!-- Send message to user on transport stop/restart --> <enableShutdownMessage/> <!-- Custom shutdown message --> <!-- <customShutdownMessage></customShutdownMessage> -->

<!-- Send message on successful registration --> <!-- <registerMessage>You have successfully registered with PyICQt</registerMessage> -->

<!-- Allow users of ICQ gateway to chat with AIM users --> <!-- (uncomment to enable) --> <!-- <crossChat/> -->

<!-- Disable registration with the transport --> <!-- (uncomment to disable) --> <!-- <disableRegister/> -->

<!-- Enable automatic invitation to reconnect on restart --> <!-- (uncomment to enable) --> <!-- <enableAutoInvite/> -->

<!-- Disable xhtml support (messages with fonts and colors) --> <!-- (uncomment to disable) --> <!-- <disableXHTML/> -->

<!-- Disable mail notifications --> <!-- (uncomment to disable) --> <!-- <disableMailNotifications/> -->

<!-- Disable use of default avatar if none is specified --> <!-- (uncomment to disable) --> <!-- <disableDefaultAvatar/> -->

<!-- Disable use of iq-based avatars (JEP-0008) --> <!-- (uncomment to disable) --> <!-- <disableIQAvatars/> -->

<!-- Disable use of vcard-based avatars (JEP-0153) --> <!-- (uncomment to disable) --> <!-- <disableVCardAvatars/> -->

<!-- Disable use of PEP-based avatars (JEP-0084) --> <!-- (uncomment to disable) --> <!-- NOT IMPLEMENTED YET --> <!-- <disablePEPAvatars/> --> <!-- Support for x-statuses --> <!-- <xstatusessupport/> --> <!-- Try detect Unicode: 0 - never 1 - in offline messages 2 - and in nicknames Attention: this solution can be slowly on high-load servers --> <detectunicode>1</detectunicode>

<!-- You can choose which users you wish to have as administrators. These users can perform some tasks with Ad-Hoc commands that others cannot --> <admins> <jid>nay@retechorg.ru</jid> <!--<jid>admin@host.com</jid>--> </admins>

<!-- You can select which event loop PyICQt will use. It's probably safe to leave this as the default -->

<!-- Use epoll for high-load Linux servers running kernel 2.6 or above --> <reactor>epoll</reactor> <!-- For MySQL --> <xdbDriver>mysql</xdbDriver> <xdbDriver_mysql> <username>pyicqt</username> <password>pyicqt</password> <database>pyicqt</database> <server>localhost</server> <format>encrypted</format> <!-- Enable encryption of passwords --> </xdbDriver_mysql> <!-- Default Ad-Hoc settings --> <adhocDefaults> <user> <!-- ... for new users - they can change these settings later --> <xstatus_receiving_mode>0</xstatus_receiving_mode> <!-- 0 - disable x-status receiving, 1 - receive as ICQ 5.1, 2 - as ICQ 6, 3 - combined --> <xstatus_sending_mode>0</xstatus_sending_mode> <!-- 0 - disable x-status sending, 1 - send as ICQ 5.1, 2 - as ICQ 6, 3 - combined --> <xstatus_saving_enabled>1</xstatus_saving_enabled> <!-- 1 - restore latest x-status after login, 0 - do not restore --> <xstatus_option_smooth>1</xstatus_option_smooth> <!-- 1 - allow partial interconnect between ICQ 5.1 and ICQ 6 x-statuses --> <xstatus_display_icon_as_PEP>1</xstatus_display_icon_as_PEP> <!-- 1 - display x-status icon as User Mood/Activity/Tune --> <xstatus_display_text_as_PEP>1</xstatus_display_text_as_PEP> <!-- 1 - Try interpret x-status text as User Mood/Activity/Tune --> <xstatus_icon_for_transport>0</xstatus_icon_for_transport> <!-- 1 - show self x-status icon as User Mood/Activity/Tune for transport (works for Gajim when transport displayed in roster) --> <away_messages_receiving>1</away_messages_receiving> <!-- 1 - ask contacts for Away messages --> <away_messages_sending>1</away_messages_sending> <!-- 1 - allow own Away Message sending --> <clist_show_phantombuddies>0</clist_show_phantombuddies> <!-- 1 - show old deleted contacts without authorization in roster --> <clist_deny_all_auth_requests>0</clist_deny_all_auth_requests> <!-- 1 - auto send 'Deny' reply on any authorization request --> <utf8_messages_sendmode>2</utf8_messages_sendmode> <!-- 0 - never send messages in Unicode, 1 - only when contact sends messages in Unicode, 2 - send always --> <offline_messages_sendenc>2</offline_messages_sendenc> <!-- 0 - send offline messages in Unicode, 1 - in default message encoding (see above), 2 - auto detect --> <msgconfirm_sendmode>2</msgconfirm_sendmode> <!-- 0 - never send message confirmations, 1 - send for Unicode messages, 2 - for all messages --> <msgconfirm_recvmode>1</msgconfirm_recvmode> <!-- 1 - receive message confirmations --> <user_mood_receiving>1</user_mood_receiving> <!-- 1 - transport should send User Mood/Activity/Tune events to connected user --> <user_activity_receiving>1</user_activity_receiving> <!-- (requirted for x-status as icon displaying) --> <user_mood_receiving>1</user_mood_receiving> <!-- set options if most of users has client with support of these PEP events --> <autoanswer_enable>0</autoanswer_enable> <!-- enable auto answer as reply on any incoming message --> <autoanswer_hide_dialog>0</autoanswer_hide_dialog> <!-- hide incoming messages when autoanswer enabled --> </user> </adhocDefaults> </pyicqt>

Некоторые из закомментированных строчки удалены в целях сокращения текста.
Возможно, кто-то уже сталкивался с подобной проблемой?

#11558

[{password, "pass2"}]

<secret>icqpassw</secret>

А разве они не должны совпадать?

#11768

а, это я забыл поправить - старый конфиг. Вообще, совпадают они.

Так что, н иу кого нет идей?

Войдите или зарегистрируйтесь, чтобы ответить.