1

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

[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:

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

<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>

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

2

[{password, "pass2"}]

<secret>icqpassw</secret>

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

3 (14.03.2010 18:04:12 отредактировано )

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

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