Ejabberd

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen
Wiki ‹ Weitere Dienste ‹ Ejabberd


Migration von MSN nach Ejabberd/Pidgin

Der folgende Eintrag beschreibt wie man in einem bestehenden Netz vom MSN Messenger zu Ejabberd in Kombination mit Pidgin migriert, inklusive einer zentralen Kontaktliste, Installation und weit weniger Wartungsaufwand.


Genereller Ablauf

Ejabberd läuft auf einem Debian Server auf dem manuell die Benutzer angelegt werden. Diese sind dann in der „Shared Roster“ Liste alle automatisch aufgelistet. Das bedeutet das die User nicht mehr manuell Kontaktlisten austauschen müssen oder verändern können. Die ausführbaren Dateien liegen auf einer Serverfreigabe von der nur eine Verknüpfung zum Desktop angelegt werden muss. Im Netlogonscript wird dann der personalisierte Ordner erstellt und die ebenfalls personalisierte Konfigurationsdatei von der Serverfreigabe kopiert. Auch das für die Anmeldung benötigte Zertifikat wird in die Profilverzeichnisse kopiert.

Ich habe mir in der Serverfreigabe in der die Dateien von Pidgin liegen \\WINDOWSSERVER\Softwareinstall\Pidgin einen Unterordner \Config angelegt. In diesem Ordner befinden sich alle accounts.xml Dateien, das SSL Zertifikat und die prefs.xml für die Einstellungen an Pidgin.

Installation auf Debianserver

Die Installation auf dem Debianserver verläuft schlicht mit einem aptitude install ejabberd. Alles weitere wird dann automatisch mit installiert.


Verlängerung OpenSSL Zertifikat

Standardmäßig gilt das Zertifikat das während der Installation erstellt wird nur ein Jahr. Mit folgendem Befehl habe ich es verlängert und ersetzt. Der Common Name muss unbedingt dem Servernamen entsprechen.

openssl req -new -x509 -newkey rsa:1024 -days 3650-keyout privkey.pem -out server.pem &&
openssl rsa -in privkey.pem -out privkey.pem && cat privkey.pem >> server.pem && mv server.pem ejabberd.pem

Dieses Zertifikat muss dann in die Serverfreigabe unter dem Namen des Servers abspeichern: DEBIANSERVER. Kein Punkt und keine Endung.

Konfigurationsdatei Debian

Die einzigen Anpassungen an der Konfigurationsdatei beziehen sich auf den Servernamen und das auskommentierte{mod_shared_roster,[]}, am Ende der Datei. Andernfalls stehen die zentralen Kontaktlisten nicht zur Verfügung. Das anlegen der User und des Shared Roster erfolgt über die Weboberfläche unter http://DEBIANSERVER:5280/admin. Angemeldet wird sich mit dem bei der Installation erstellten admin User, bei mir admin@DEBIANSERVER.

/etc/ejabberd/ejabberd.conf
%% Admin user
{acl, admin, {user, "admin", "DEBIANSERVER"}}.

%% Hostname
{hosts, ["DEBIANSERVER"]}.

{loglevel, 4}.

%%% ===============
%%% LISTENING PORTS

{listen,
[
{5222, ejabberd_c2s, [
{access, c2s},
{shaper, c2s_shaper},
{max_stanza_size, 65536},
%%zlib,
starttls, {certfile, "/etc/ejabberd/ejabberd.pem"}
]},

{5269, ejabberd_s2s_in, [
{shaper, s2s_shaper},
{max_stanza_size, 131072}
]},

{5280, ejabberd_http, [
%%{request_handlers,
%% [
%% {["pub", "archive"], mod_http_fileserver}
%% ]},
%%captcha,
http_bind,
http_poll,
web_admin
]}

]}.


{max_fsm_queue, 1000}.
{s2s_use_starttls, true}.
{s2s_certfile, "/etc/ejabberd/ejabberd.pem"}.
{auth_method, internal}.


%%% ===============
%%% TRAFFIC SHAPERS

%%
%% The "normal" shaper limits traffic speed to 1.000 B/s
%%
{shaper, normal, {maxrate, 1000}}.

%%
%% The "fast" shaper limits traffic speed to 50.000 B/s
%%
{shaper, fast, {maxrate, 50000}}.


%%% ====================
%%% ACCESS CONTROL LISTS


%%
%% Local users: don't modify this line.
%%
{acl, local, {user_regexp, ""}}.

%%% ============
%%% ACCESS RULES

%% Define the maximum number of time a single user is allowed to connect:
{access, max_user_sessions, [{10, all}]}.

%% Maximum number of offline messages that users can have:
{access, max_user_offline_messages, [{5000, admin}, {100, all}]}.

%% This rule allows access only for local users:
{access, local, [{allow, local}]}.

%% Only non-blocked users can use c2s connections:
{access, c2s, [{deny, blocked},
{allow, all}]}.

%% For all users except admins used "normal" shaper
{access, c2s_shaper, [{none, admin},
{normal, all}]}.

%% For all S2S connections used "fast" shaper
{access, s2s_shaper, [{fast, all}]}.

%% Only admins can send announcement messages:
{access, announce, [{allow, admin}]}.

%% Only admins can use configuration interface:
{access, configure, [{allow, admin}]}.

%% Admins of this server are also admins of MUC service:
{access, muc_admin, [{allow, admin}]}.

%% All users are allowed to use MUC service:
{access, muc, [{allow, all}]}.

% This setting is default because it's more safe.
{access, register, [{deny, all}]}.


%% Everybody can create pubsub nodes
{access, pubsub_createnode, [{allow, all}]}.

%% language: Default language used for server messages.
%%
{language, "en"}.


%%% =======
%%% MODULES

%%
%% Modules enabled in all ejabberd virtual hosts.
%%
{modules,
[
{mod_adhoc, []},
{mod_announce, [{access, announce}]}, % requires mod_adhoc
{mod_caps, []},
{mod_configure,[]}, % requires mod_adhoc
{mod_admin_extra, []},
{mod_disco, []},
%%{mod_echo, [{host, "echo.localhost"}]},
{mod_irc, []},
%% NOTE that mod_http_fileserver must also be enabled in the
%% "request_handlers" clause of the "ejabberd_http" listener
%% configuration (see the "LISTENING PORTS" section above).
%%{mod_http_fileserver, [
%% {docroot, "/var/www"},
%% {accesslog, "/var/log/ejabberd/access.log"}
%% ]},
{mod_last, []},
{mod_muc, [
%%{host, "conference.@HOST@"},
{access, muc},
{access_create, muc},
{access_persistent, muc},
{access_admin, muc_admin},
{max_users, 500}
]},
%%{mod_muc_log,[]},
{mod_offline, [{access_max_user_messages, max_user_offline_messages}]},
{mod_privacy, []},
{mod_private, []},
{mod_proxy65, [
{access, local},
{shaper, c2s_shaper}
]},
{mod_pubsub, [ % requires mod_caps
{access_createnode, pubsub_createnode},
{pep_sendlast_offline, false},
{last_item_cache, false},
%%{plugins, ["default", "pep"]}
{plugins, ["flat", "hometree", "pep"]} % pep requires mod_caps
]},
{mod_register, [
%%
%% After successful registration, the user receives
%% a message with this subject and body.
%%
{welcome_message, {"Welcome!",
"Welcome to a Jabber service powered by Debian. "
"For information about Jabber visit "
"http://www.jabber.org"}},
%% Replace it with 'none' if you don't want to send such message:
%%{welcome_message, none},

%%
%% When a user registers, send a notification to
%% these Jabber accounts.
%%
%%{registration_watchers, ["admin1@example.org"]},

{access, register}
]},
{mod_roster, []},
{mod_service_log,[]},
{mod_shared_roster,[]},
{mod_stats, []},
{mod_time, []},
{mod_vcard, []},
{mod_version, []}
]}.


Shared Roster

Die Shared Roster Liste habe ich nach folgendem Beispiel angelegt:

www.ejabberd.im/files/ejabberd/screenshots/shared-roster-all-example1.png


Und die dazugehörige Anleitung:

www.ejabberd.im/shared-roster-all

Windows Einstellungen

Sämtliche Pidgin Dateien müssen in die Serverfreigabe kopiert und den Usern Zugriff gewährt werden.


Windows Netlogon

Das neue Netlogon Script: Zuerst werden die notwendigen Ordner für Pidgin im Profil angelegt. Danach wird das Zertifikat von der Serverfreigabe sowie Grundeinstellungen und Verknüpfungen in den Autostart kopiert. Anschließend werden die einzelnen User abgefangen und die Accounteinstellungen von der Serverfreigabe in das Profil verschoben. Dieses Script kann quasi auf beliebig viele User erweitert werden. Es ist allerdings unbedingt darauf zu achten die Datei im MS-DOS Format zu speichern (Word-Pad bei Windows) um die Umlaute gerade in bezug auf Startmenü und Usernamen mit Umlauten. Andernfalls funktioniert die Verknüpfung im Autostart nicht. Wenn Gruppenrichtlinien zum Einsatz kommen sollten, kann die Autostartverknüpfung auch darüber eingestellt werden.
Dies ist aus der Praxis unbedingt zu empfehlen, da wesentlich robuster.

IF NOT EXIST "%appdata%\.purple\certificates" mkdir "%appdata%\.purple\certificates\x509\tls_peers"
copy /y \\WINDOWSSERVER\Softwareinstall\Pidgin\Config\DEBIANSERVER "%appdata%\.purple\certificates\x509\tls_peers\DEBIANSERVER"
copy /Y \\WINDOWSSERVER\Softwareinstall\Pidgin\Config\prefs.xml "%APPDATA%\.purple\prefs.xml"
copy /Y \\WINDOWSSERVER\Softwareinstall\Pidgin\pidgin.exe.lnk "%userprofile%\Desktop\"
@echo Autostart Windows 7
copy /Y \\WINDOWSSERVER\Softwareinstall\Pidgin\pidgin.exe.lnk "%APPDATA%\Microsoft\Windows\Start Menu\Programs\StartUp\"
@echo Autostart fuer XP
copy /Y \\WINDOWSSERVER\Softwareinstall\Pidgin\pidgin.exe.lnk "%userprofile%\Startmenü\Programme\Autostart\pidgin.exe.lnk"

rem amdin
if %username%==Administrator goto admin

rem meier

if %username%==meier goto meier


goto ende

:admin
copy /Y \\WINDOWSSERVER\Softwareinstall\Pidgin\Config\accountsAdmin.xml "%APPDATA%\.purple\accounts.xml"
goto fix


:meier
copy /Y \\WINDOWSSERVER\Softwareinstall\Pidgin\Config\accountsMeier.xml "%APPDATA%\.purple\accounts.xml"
goto fix


:ende

@echo HIER könnten allgemeine Einstellungen definiert werden.

rem fix
:fix

Die Netlogon Datei UNBEDINGT im MS-DOS Format speichern. Ansonsten gibt es Probleme mit dem Umlaut bei Startmenü und XP.


Die Anwendung wird dann vom Server aus gestartet, es sind keine Installationen auf den Clients notwendig was bei Windowskisten besonders im Updatefall gut ist.


Messenger deaktivieren

Ich habe den vorhanden MSN Messenger per Richtlinie deaktiviert.

Computerkonfiguration → Administrative Vorlagen → Windows-Komponenten/Windows Messenger → Ausführung von Windows Messenger nicht zulassen - Aktiviert

Computerkonfiguration → Administrative Vorlagen → Windows-Komponenten/Windows Messenger → Windows Messenger nicht automatisch starten - Aktiviert


Pidgin Einstellungen

Accounts.xml

In die Serverfreigabe werden jeweils die Anmeldedaten der einzelnen User in den XML Dateien gespeichert. Diese habe ich dann einfach accountsMeier.xml, accountsUllrich.xml usw. genannt. Beim kopieren wird daraus dann wieder allles als accounts.xml im Profilordner abgelegt.


<account version='1.0'>
<account>
<protocol>prpl-jabber</protocol>
<name>meier@DEBIANSERVER/UNSEREFIRMA</name>
<password>Ein ganz tolles Passwort</password>
<alias>Hans Meier</alias>
<statuses>
<status type='available' name='Verfügbar' active='true'>
<attributes/>
</status>
<status type='mood' name='Befinden' active='false'>
<attributes/>
</status>
<status type='freeforchat' name='Gesprächig' active='false'>
<attributes/>
</status>
<status type='away' name='Abwesend' active='false'>
<attributes/>
</status>
<status type='extended_away' name='Länger abwesend' active='false'>
<attributes/>
</status>
<status type='dnd' name='Nicht stören' active='false'>
<attributes/>
</status>
<status type='offline' name='Offline' active='false'>
<attributes/>
</status>
</statuses>
<settings>
<setting name='check-mail' type='bool'>0</setting>
<setting name='connect_server' type='string'>DEBIANSERVER</setting>
<setting name='bosh_url' type='string'></setting>
<setting name='auth_plain_in_clear' type='bool'>0</setting>
<setting name='use-global-buddyicon' type='bool'>1</setting>
<setting name='connection_security' type='string'>require_tls</setting>
<setting name='ft_proxies' type='string'></setting>
<setting name='custom_smileys' type='bool'>1</setting>
<setting name='port' type='int'>5222</setting>
</settings>
<settings ui='gtk-gaim'>
<setting name='auto-login' type='bool'>1</setting>
</settings>
<current_error/>
</account>
</account>



prefs.xml

In der prefs.xml können viele Grundeinstellungen getroffen werden die dann für alle User gelten. Im vorliegenden Netlogonscript wird diese Datei bei jeder Anmeldung ersetzt. So ist sichergestellt das nahezu alle Einstellungen an Pidgin überall gleich sind.


<span style="display: none;" id="1310370056809S"> </span><?xml version='1.0' encoding='UTF-8' ?> <pref version='1' name='/'>
<pref name='purple'>
<pref name='away'>
<pref name='idle_reporting' type='string' value='system'/>
<pref name='away_when_idle' type='bool' value='1'/>
<pref name='mins_before_away' type='int' value='5'/>
<pref name='auto_reply' type='string' value='never'/>
</pref>
<pref name='buddies'/>
<pref name='contact'>
<pref name='last_match' type='bool' value='0'/>
</pref>
<pref name='debug'>
<pref name='timestamps' type='bool' value='1'/>
</pref>
<pref name='status'>
<pref name='scores'>
<pref name='offline' type='int' value='-500'/>
<pref name='available' type='int' value='100'/>
<pref name='invisible' type='int' value='-50'/>
<pref name='away' type='int' value='-100'/>
<pref name='extended_away' type='int' value='-200'/>
<pref name='idle' type='int' value='0'/>
<pref name='offline_msg' type='int' value='-5'/>
</pref>
</pref>
<pref name='savedstatus'>
<pref name='default' type='int' value='1308730525'/>
<pref name='startup' type='int' value='0'/>
<pref name='startup_current_status' type='bool' value='1'/>
<pref name='idleaway' type='int' value='1308732582'/>
<pref name='isidleaway' type='bool' value='0'/>
</pref>
<pref name='conversations'>
<pref name='chat'>
<pref name='show_nick_change' type='bool' value='1'/>
</pref>
<pref name='im'>
<pref name='send_typing' type='bool' value='1'/>
</pref>
</pref>
<pref name='logging'>
<pref name='log_ims' type='bool' value='0'/>
<pref name='log_chats' type='bool' value='0'/>
<pref name='log_system' type='bool' value='0'/>
<pref name='format' type='string' value='html'/>
</pref>
<pref name='network'>
<pref name='stun_server' type='string' value=/>
<pref name='turn_server' type='string' value=
/>
<pref name='turn_port' type='int' value='3478'/>
<pref name='turn_port_tcp' type='int' value='3478'/>
<pref name='turn_username' type='string' value=/>
<pref name='turn_password' type='string' value=
/>
<pref name='auto_ip' type='bool' value='1'/>
<pref name='public_ip' type='string' value=/>
<pref name='map_ports' type='bool' value='1'/>
<pref name='ports_range_use' type='bool' value='0'/>
<pref name='ports_range_start' type='int' value='1024'/>
<pref name='ports_range_end' type='int' value='2048'/>
</pref>
<pref name='proxy'>
<pref name='type' type='string' value='none'/>
<pref name='host' type='string' value=
/>
<pref name='port' type='int' value='0'/>
<pref name='username' type='string' value=/>
<pref name='password' type='string' value=
/>
<pref name='socks4_remotedns' type='bool' value='0'/>
</pref>
<pref name='sound'>
<pref name='while_status' type='int' value='1'/>
</pref>
</pref>
<pref name='plugins'>
<pref name='core'>
<pref name='core-plugin_pack-autoaccept'>
<pref name='path' type='string' value='%appdata%\.purple\autoaccept'/>
<pref name='stranger' type='int' value='0'/>
<pref name='notify' type='bool' value='1'/>
<pref name='newdir' type='bool' value='1'/>
<pref name='escape' type='bool' value='1'/>
</pref>
<pref name='joinpart'>
<pref name='delay' type='int' value='10'/>
<pref name='threshold' type='int' value='20'/>
<pref name='hide_buddies' type='bool' value='0'/>
</pref>
<pref name='newline'>
<pref name='im' type='bool' value='1'/>
<pref name='chat' type='bool' value='1'/>
</pref>
<pref name='core-plugin_pack-offlinemsg'>
<pref name='always' type='bool' value='0'/>
</pref>
<pref name='psychic'>
<pref name='buddies_only' type='bool' value='0'/>
<pref name='show_notice' type='bool' value='1'/>
<pref name='activate_online' type='bool' value='1'/>
</pref>
<pref name='statenotify'>
<pref name='notify_away' type='bool' value='1'/>
<pref name='notify_idle' type='bool' value='1'/>
<pref name='notify_signon' type='bool' value='1'/>
</pref>
</pref>
<pref name='lopl'/>
<pref name='prpl'>
<pref name='oscar'>
<pref name='recent_buddies' type='bool' value='0'/>
</pref>
<pref name='qq'>
<pref name='show_status_by_icon' type='bool' value='1'/>
<pref name='show_fake_video' type='bool' value='0'/>
<pref name='auto_get_authorize_info' type='bool' value='1'/>
<pref name='resend_interval' type='int' value='3'/>
<pref name='resend_times' type='int' value='10'/>
</pref>
<pref name='meanwhile'>
<pref name='blist_action' type='int' value='4'/>
</pref>
</pref>
<pref name='gtk'>
<pref name='gtk-plugin_pack-convcolors'>
<pref name='ignore_incoming' type='bool' value='1'/>
<pref name='chats' type='bool' value='1'/>
<pref name='ims' type='bool' value='1'/>
<pref name='send'>
<pref name='color' type='string' value='#909090'/>
<pref name='format' type='int' value='0'/>
<pref name='enabled' type='bool' value='1'/>
</pref>
<pref name='recv'>
<pref name='color' type='string' value='#000000'/>
<pref name='format' type='int' value='0'/>
<pref name='enabled' type='bool' value='1'/>
</pref>
<pref name='system'>
<pref name='color' type='string' value='#50a050'/>
<pref name='format' type='int' value='2'/>
<pref name='enabled' type='bool' value='1'/>
</pref>
<pref name='error'>
<pref name='color' type='string' value='#ff0000'/>
<pref name='format' type='int' value='5'/>
<pref name='enabled' type='bool' value='1'/>
</pref>
<pref name='nick'>
<pref name='color' type='string' value='#0000dd'/>
<pref name='format' type='int' value='1'/>
<pref name='enabled' type='bool' value='1'/>
</pref>
</pref>
<pref name='extplacement'>
<pref name='placement_number' type='int' value='4'/>
<pref name='placement_number_separate' type='bool' value='0'/>
</pref>
<pref name='gtk-plugin_pack-markerline'>
<pref name='ims' type='bool' value='0'/>
<pref name='chats' type='bool' value='1'/>
</pref>
<pref name='X11'>
<pref name='notify'>
<pref name='type_im' type='bool' value='1'/>
<pref name='type_chat' type='bool' value='0'/>
<pref name='type_chat_nick' type='bool' value='0'/>
<pref name='type_focused' type='bool' value='0'/>
<pref name='method_string' type='bool' value='0'/>
<pref name='title_string' type='string' value='(*)'/>
<pref name='method_urgent' type='bool' value='0'/>
<pref name='method_count' type='bool' value='0'/>
<pref name='method_count_xprop' type='bool' value='0'/>
<pref name='method_raise' type='bool' value='0'/>
<pref name='method_present' type='bool' value='0'/>
<pref name='notify_focus' type='bool' value='1'/>
<pref name='notify_click' type='bool' value='0'/>
<pref name='notify_type' type='bool' value='1'/>
<pref name='notify_send' type='bool' value='1'/>
<pref name='notify_switch' type='bool' value='1'/>
</pref>
</pref>
<pref name='purplerc'>
<pref name='set'>
<pref name='gtk-font-name' type='bool' value='0'/>
<pref name='gtk-key-theme-name' type='bool' value='0'/>
<pref name='color'>
<pref name='GtkIMHtml::hyperlink-color' type='bool' value='0'/>
<pref name='GtkIMHtml::hyperlink-visited-color' type='bool' value='0'/>
<pref name='GtkIMHtml::send-name-color' type='bool' value='0'/>
<pref name='GtkIMHtml::receive-name-color' type='bool' value='0'/>
<pref name='GtkIMHtml::highlight-name-color' type='bool' value='0'/>
<pref name='GtkIMHtml::action-name-color' type='bool' value='0'/>
<pref name='GtkIMHtml::typing-notification-color' type='bool' value='0'/>
</pref>
<pref name='size'>
<pref name='GtkTreeView::horizontal_separator' type='bool' value='0'/>
</pref>
<pref name='font'>
<pref name='*pidgin_conv_entry' type='bool' value='0'/>
<pref name='*pidgin_conv_imhtml' type='bool' value='0'/>
<pref name='*pidgin_request_imhtml' type='bool' value='0'/>
<pref name='*pidgin_notify_imhtml' type='bool' value='0'/>
</pref>
<pref name='disable-typing-notification' type='bool' value='0'/>
</pref>
<pref name='gtk-font-name' type='string' value=/>
<pref name='gtk-key-theme-name' type='string' value=
/>
<pref name='color'>
<pref name='GtkIMHtml::hyperlink-color' type='string' value=/>
<pref name='GtkIMHtml::hyperlink-visited-color' type='string' value=
/>
<pref name='GtkIMHtml::send-name-color' type='string' value=/>
<pref name='GtkIMHtml::receive-name-color' type='string' value=
/>
<pref name='GtkIMHtml::highlight-name-color' type='string' value=/>
<pref name='GtkIMHtml::action-name-color' type='string' value=
/>
<pref name='GtkIMHtml::typing-notification-color' type='string' value=/>
</pref>
<pref name='size'>
<pref name='GtkTreeView::horizontal_separator' type='int' value='0'/>
</pref>
<pref name='font'>
<pref name='*pidgin_conv_entry' type='string' value=
/>
<pref name='*pidgin_conv_imhtml' type='string' value=/>
<pref name='*pidgin_request_imhtml' type='string' value=
/>
<pref name='*pidgin_notify_imhtml' type='string' value=/>
</pref>
<pref name='disable-typing-notification' type='bool' value='0'/>
</pref>
<pref name='relnot'>
<pref name='last_check' type='int' value='0'/>
</pref>
<pref name='timestamp'>
<pref name='interval' type='int' value='300000'/>
</pref>
<pref name='timestamp_format'>
<pref name='force' type='string' value='default'/>
<pref name='use_dates'>
<pref name='conversation' type='string' value='automatic'/>
<pref name='log' type='string' value='automatic'/>
</pref>
</pref>
<pref name='win32'>
<pref name='wintrans'>
<pref name='im_enabled' type='bool' value='0'/>
<pref name='im_alpha' type='int' value='255'/>
<pref name='im_slider' type='bool' value='0'/>
<pref name='im_solid_onfocus' type='bool' value='0'/>
<pref name='im_always_on_top' type='bool' value='0'/>
<pref name='bl_enabled' type='bool' value='0'/>
<pref name='bl_alpha' type='int' value='255'/>
<pref name='bl_solid_onfocus' type='bool' value='0'/>
<pref name='bl_always_on_top' type='bool' value='0'/>
</pref>
<pref name='winprefs'>
<pref name='dblist_dockable' type='bool' value='0'/>
<pref name='dblist_docked' type='bool' value='0'/>
<pref name='dblist_height' type='int' value='0'/>
<pref name='dblist_side' type='int' value='0'/>
<pref name='blist_on_top' type='int' value='0'/>
</pref>
</pref>
</pref>
</pref>
<pref name='pidgin'>
<pref name='plugins'>
<pref name='loaded' type='pathlist'/>
</pref>
<pref name='filelocations'>
<pref name='last_save_folder' type='path' value=
/>
<pref name='last_open_folder' type='path' value=/>
<pref name='last_icon_folder' type='path' value=
/>
</pref>
<pref name='smileys'>
<pref name='theme' type='string' value='Default'/>
</pref>
<pref name='debug'>
<pref name='enabled' type='bool' value='0'/>
<pref name='filterlevel' type='int' value='0'/>
<pref name='style' type='int' value='3'/>
<pref name='toolbar' type='bool' value='1'/>
<pref name='width' type='int' value='450'/>
<pref name='height' type='int' value='250'/>
<pref name='regex' type='string' value=/>
<pref name='filter' type='bool' value='0'/>
<pref name='invert' type='bool' value='0'/>
<pref name='case_insensitive' type='bool' value='0'/>
<pref name='highlight' type='bool' value='0'/>
</pref>
<pref name='status'>
<pref name='icon-theme' type='string' value=
/>
<pref name='icon-theme-dir' type='path' value=/>
<pref name='dialog'>
<pref name='width' type='int' value='550'/>
<pref name='height' type='int' value='250'/>
</pref>
</pref>
<pref name='stock'>
<pref name='icon-theme' type='string' value=
/>
<pref name='icon-theme-dir' type='path' value=/>
</pref>
<pref name='sound'>
<pref name='enabled'>
<pref name='login' type='bool' value='1'/>
<pref name='logout' type='bool' value='1'/>
<pref name='im_recv' type='bool' value='1'/>
<pref name='first_im_recv' type='bool' value='0'/>
<pref name='send_im' type='bool' value='1'/>
<pref name='join_chat' type='bool' value='0'/>
<pref name='left_chat' type='bool' value='0'/>
<pref name='send_chat_msg' type='bool' value='0'/>
<pref name='chat_msg_recv' type='bool' value='0'/>
<pref name='nick_said' type='bool' value='0'/>
<pref name='pounce_default' type='bool' value='1'/>
<pref name='sent_attention' type='bool' value='1'/>
<pref name='got_attention' type='bool' value='1'/>
</pref>
<pref name='file'>
<pref name='login' type='path' value=
/>
<pref name='logout' type='path' value=/>
<pref name='im_recv' type='path' value=
/>
<pref name='first_im_recv' type='path' value=/>
<pref name='send_im' type='path' value=
/>
<pref name='join_chat' type='path' value=/>
<pref name='left_chat' type='path' value=
/>
<pref name='send_chat_msg' type='path' value=/>
<pref name='chat_msg_recv' type='path' value=
/>
<pref name='nick_said' type='path' value=/>
<pref name='pounce_default' type='path' value=
/>
<pref name='sent_attention' type='path' value=/>
<pref name='got_attention' type='path' value=
/>
</pref>
<pref name='theme' type='string' value=/>
<pref name='conv_focus' type='bool' value='0'/>
<pref name='mute' type='bool' value='1'/>
<pref name='command' type='path' value=
/>
<pref name='method' type='string' value='automatic'/>
<pref name='volume' type='int' value='50'/>
</pref>
<pref name='accounts'>
<pref name='dialog'>
<pref name='width' type='int' value='520'/>
<pref name='height' type='int' value='400'/>
</pref>
<pref name='buddyicon' type='path' value=/>
</pref>
<pref name='blist'>
<pref name='show_buddy_icons' type='bool' value='0'/>
<pref name='show_empty_groups' type='bool' value='0'/>
<pref name='show_idle_time' type='bool' value='1'/>
<pref name='show_offline_buddies' type='bool' value='0'/>
<pref name='show_protocol_icons' type='bool' value='0'/>
<pref name='list_visible' type='bool' value='0'/>
<pref name='list_maximized' type='bool' value='0'/>
<pref name='sort_type' type='string' value='alphabetical'/>
<pref name='x' type='int' value='169'/>
<pref name='y' type='int' value='126'/>
<pref name='width' type='int' value='205'/>
<pref name='height' type='int' value='433'/>
<pref name='theme' type='string' value=
/>
</pref>
<pref name='conversations'>
<pref name='use_smooth_scrolling' type='bool' value='1'/>
<pref name='close_on_tabs' type='bool' value='1'/>
<pref name='send_bold' type='bool' value='0'/>
<pref name='send_italic' type='bool' value='0'/>
<pref name='send_underline' type='bool' value='0'/>
<pref name='spellcheck' type='bool' value='1'/>
<pref name='show_incoming_formatting' type='bool' value='1'/>
<pref name='minimum_entry_lines' type='int' value='2'/>
<pref name='show_timestamps' type='bool' value='1'/>
<pref name='show_formatting_toolbar' type='bool' value='1'/>
<pref name='placement' type='string' value='last'/>
<pref name='placement_number' type='int' value='1'/>
<pref name='bgcolor' type='string' value=/>
<pref name='fgcolor' type='string' value=
/>
<pref name='font_face' type='string' value=/>
<pref name='font_size' type='int' value='3'/>
<pref name='tabs' type='bool' value='1'/>
<pref name='tab_side' type='int' value='2'/>
<pref name='scrollback_lines' type='int' value='4000'/>
<pref name='use_theme_font' type='bool' value='1'/>
<pref name='custom_font' type='string' value=
/>
<pref name='chat'>
<pref name='entry_height' type='int' value='54'/>
<pref name='userlist_width' type='int' value='80'/>
<pref name='x' type='int' value='0'/>
<pref name='y' type='int' value='0'/>
<pref name='width' type='int' value='340'/>
<pref name='height' type='int' value='390'/>
</pref>
<pref name='im'>
<pref name='x' type='int' value='392'/>
<pref name='y' type='int' value='503'/>
<pref name='width' type='int' value='346'/>
<pref name='height' type='int' value='390'/>
<pref name='animate_buddy_icons' type='bool' value='1'/>
<pref name='entry_height' type='int' value='54'/>
<pref name='show_buddy_icons' type='bool' value='1'/>
<pref name='hide_new' type='string' value='never'/>
<pref name='close_immediately' type='bool' value='1'/>
</pref>
<pref name='toolbar'>
<pref name='wide' type='bool' value='0'/>
</pref>
</pref>
<pref name='pounces'>
<pref name='default_actions'>
<pref name='open-window' type='bool' value='0'/>
<pref name='popup-notify' type='bool' value='1'/>
<pref name='send-message' type='bool' value='0'/>
<pref name='execute-command' type='bool' value='0'/>
<pref name='play-sound' type='bool' value='0'/>
</pref>
<pref name='dialog'>
<pref name='width' type='int' value='520'/>
<pref name='height' type='int' value='400'/>
</pref>
</pref>
<pref name='filetransfer'>
<pref name='clear_finished' type='bool' value='1'/>
<pref name='keep_open' type='bool' value='0'/>
</pref>
<pref name='docklet'>
<pref name='blink' type='bool' value='1'/>
<pref name='show' type='string' value='always'/>
</pref>
<pref name='win32'>
<pref name='blink_im' type='bool' value='1'/>
<pref name='minimize_new_convs' type='bool' value='0'/>
</pref>
</pref>
</pref>