Re: [rt-users] trouble upgrading from RT 3.8.8 to 4.0.0

2011-05-12 Thread Aleksey Tsalolikhin
I figured out I have to run the configure script before make upgrade.

Thanks,
-at


[rt-users] apache httpd segfaults

2011-01-21 Thread Aleksey Tsalolikhin
My RT 3.8.8 has lost its prettiness.  It's text-based now, no colors
or graphics, only text.  It does work, but it isn't pretty.   No
buttons, only links.

The only errors I can find are in the Apache httpd log, and it seems
each time I click on a link within RT, I get a message like this in my
httpd error log:

[Fri Jan 21 16:05:06 2011] [notice] child pid 32708 exit signal
Segmentation fault (11)

I use postgres 8.4 on the backend.

Would appreciate any suggestions for troubleshooting this.

Best,
Aleksey


Re: [rt-users] apache httpd segfaults

2011-01-21 Thread Aleksey Tsalolikhin
On Fri, Jan 21, 2011 at 4:12 PM, Aleksey Tsalolikhin
atsaloli.t...@gmail.com wrote:
 My RT 3.8.8 has lost its prettiness.  It's text-based now, no colors
 or graphics, only text.  It does work, but it isn't pretty.   No
 buttons, only links.

 The only errors I can find are in the Apache httpd log, and it seems
 each time I click on a link within RT, I get a message like this in my
 httpd error log:

 [Fri Jan 21 16:05:06 2011] [notice] child pid 32708 exit signal
 Segmentation fault (11)

 I use postgres 8.4 on the backend.

 Would appreciate any suggestions for troubleshooting this.


This is on CentOS 5.5 and Apache httpd 2.2

strace of the apache httpd process shows the following:
open(/usr/lib/perl5/5.8.8/PerlIO.pm, O_RDONLY) = 60
ioctl(60, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff0aee6850) = -1 ENOTTY
(Inappropriate ioctl for device)
lseek(60, 0, SEEK_CUR)  = 0
read(60, package PerlIO;\n\nour $VERSION = ..., 4096) = 4096
lseek(60, 382, SEEK_SET)= 382
lseek(60, 0, SEEK_CUR)  = 382
close(60)   = 0
stat(/opt/rt3/bin/../local/lib/PerlIO/scalar.pmc, 0x7fff0aee6c00) =
-1 ENOENT (No such file or directory)
stat(/opt/rt3/bin/../local/lib/PerlIO/scalar.pm, 0x7fff0aee6ac0) =
-1 ENOENT (No such file or directory)
stat(/opt/rt3/bin/../lib/PerlIO/scalar.pmc, 0x7fff0aee6c00) = -1
ENOENT (No such file or directory)
stat(/opt/rt3/bin/../lib/PerlIO/scalar.pm, 0x7fff0aee6ac0) = -1
ENOENT (No such file or directory)
stat(/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/PerlIO/scalar.pmc,
0x7fff0aee6c00) = -1 ENOENT (No such file or directory)
stat(/usr/lib64/perl5/site_perl/5.8.8/x86_64-linux-thread-multi/PerlIO/scalar.pm,
0x7fff0aee6ac0) = -1 ENOENT (No such file or directory)
stat(/usr/lib/perl5/site_perl/5.8.8/PerlIO/scalar.pmc,
0x7fff0aee6c00) = -1 ENOENT (No such file or directory)
stat(/usr/lib/perl5/site_perl/5.8.8/PerlIO/scalar.pm,
0x7fff0aee6ac0) = -1 ENOENT (No such file or directory)
stat(/usr/lib/perl5/site_perl/PerlIO/scalar.pmc, 0x7fff0aee6c00) =
-1 ENOENT (No such file or directory)
stat(/usr/lib/perl5/site_perl/PerlIO/scalar.pm, 0x7fff0aee6ac0) = -1
ENOENT (No such file or directory)
stat(/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/PerlIO/scalar.pmc,
0x7fff0aee6c00) = -1 ENOENT (No such file or directory)
stat(/usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/PerlIO/scalar.pm,
0x7fff0aee6ac0) = -1 ENOENT (No such file or directory)
stat(/usr/lib/perl5/vendor_perl/5.8.8/PerlIO/scalar.pmc,
0x7fff0aee6c00) = -1 ENOENT (No such file or directory)
stat(/usr/lib/perl5/vendor_perl/5.8.8/PerlIO/scalar.pm,
0x7fff0aee6ac0) = -1 ENOENT (No such file or directory)
stat(/usr/lib/perl5/vendor_perl/PerlIO/scalar.pmc, 0x7fff0aee6c00) =
-1 ENOENT (No such file or directory)
stat(/usr/lib/perl5/vendor_perl/PerlIO/scalar.pm, 0x7fff0aee6ac0) =
-1 ENOENT (No such file or directory)
stat(/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/PerlIO/scalar.pmc,
0x7fff0aee6c00) = -1 ENOENT (No such file or directory)
stat(/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/PerlIO/scalar.pm,
{st_mode=S_IFREG|0644, st_size=979, ...}) = 0
open(/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/PerlIO/scalar.pm,
O_RDONLY) = 60
ioctl(60, SNDCTL_TMR_TIMEBASE or TCGETS, 0x7fff0aee6850) = -1 ENOTTY
(Inappropriate ioctl for device)
lseek(60, 0, SEEK_CUR)  = 0
read(60, package PerlIO::scalar;\nour $VER..., 4096) = 979
lseek(60, 108, SEEK_SET)= 108
lseek(60, 0, SEEK_CUR)  = 108
close(60)   = 0
stat(/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/auto/PerlIO/scalar/scalar.so,
{st_mode=S_IFREG|0755, st_size=11024, ...}) = 0
stat(/usr/lib64/perl5/5.8.8/x86_64-linux-thread-multi/auto/PerlIO/scalar/scalar.bs,
0x2b8fb08059a0) = -1 ENOENT (No such file or directory)
--- SIGSEGV (Segmentation fault) @ 0 (0) ---
chdir(/etc/httpd) = 0
rt_sigaction(SIGSEGV, {SIG_DFL, [], SA_RESTORER|SA_INTERRUPT,
0x2b8f9056bb10}, {SIG_DFL, [], SA_RESTORER|SA_RESETHAND,
0x2b8f9056bb10}, 8) = 0
kill(8729, SIGSEGV) = 0
rt_sigreturn(0x2219)= 0
--- SIGSEGV (Segmentation fault) @ 0 (0) ---


my httpd config for rt has not changed, I still have


Location /NoAuth/images
SetHandler default
/Location


Re: [rt-users] apache httpd segfaults

2011-01-21 Thread Aleksey Tsalolikhin
Thank you, I found I got RT back to normal after commenting out
mod_wsgi (python) in the httpd.conf.

There is some conflict between the two.

We'll sort this out.

Thanks!!  :)

Aleksey


[rt-users] documentation patch for README doc

2010-10-20 Thread Aleksey Tsalolikhin
Hi.  Upgrading from RT 3.8.2 to 3.8.8 on CentOS 5.5.  Following the
README and the UPGRADING docs, I ran make upgrade which died with:


All dependencies have been found.
/opt/local/bin/ginstall -c -m 0755 -o root -g www -d /opt/rt3/etc
make: /opt/local/bin/ginstall: Command not found
make: *** [config-install] Error 127


I fixed this by running ./configure ; make upgrade.

Suggest change of:

 As a user with permission to install RT in your chosen installation
 directory, type:

   make upgrade

 This will install new binaries, config files and libraries without
 overwriting your RT database.

to

 As a user with permission to install RT in your chosen installation
 directory, type:

   ./configure
   make upgrade

 This will install new binaries, config files and libraries without
 overwriting your RT database.

Best,
Aleksey


[rt-users] rt-mailgate: how to give the Everyone pseudogroup the privelege CreateTicket ?

2009-05-08 Thread Aleksey Tsalolikhin
Hi.  I am configuring an email gateway for RT 3.8.2.

rt-mailgate fails with:

/opt/rt3/bin/rt-mailgate: connecting to
https://rt.example.com/rt//REST/1.0/NoAuth/mail-gateway
not ok - Could not load a valid user


The fine manual states,

 You also need to give the Everyone pseudogroup the privilege
 CreateTicket on all queues that rt-mailgate will be using,
 because mail requests are by default unauthenticated.

How do I give Everyone this privilege, please?  I don't see Everyone in my
RT Web interface when logged in as root, nor do I see any mention of
Everyone in $RT_HOME/etc/   ?

Best,
Aleksey
___
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: sa...@bestpractical.com


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com


Re: [rt-users] rt-mailgate: how to give the Everyone pseudogroup the privelege CreateTicket ?

2009-05-08 Thread Aleksey Tsalolikhin
On Fri, May 8, 2009 at 4:54 PM, Aleksey Tsalolikhin
atsaloli.t...@gmail.com wrote:

 The fine manual states,

     You also need to give the Everyone pseudogroup the privilege
     CreateTicket on all queues that rt-mailgate will be using,
     because mail requests are by default unauthenticated.

 How do I give Everyone this privilege, please?


In RT Web interface,

Configuration - Global - Group rights - Everybody

Thanks Trengo on the IRC channel!

I'd like to add this to the manual...  or have it added...   which
would be appropriate and what would be the next step, please?

Best,
-at
___
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: sa...@bestpractical.com


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com


[rt-users] is it possible to set up a external database query using user's input while opening ticket?

2008-12-08 Thread Aleksey Tsalolikhin
Hi.  If a user provides some input while opening a new ticket, into a
textbox in the form, in pulling data from an external source using
an External module (like Groups.pm) ?

For example, I want the use to supply company name and location,
and the external query will fetch all the stores that particular company
operates at that location.

Or would we have to change RT source code to do that?

Thanks,
Aleksey

-- 
Aleksey Tsalolikhin
UNIX System Administrator
I get stuff done!
http://www.lifesurvives.com/
___
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: [EMAIL PROTECTED]


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com


Re: [rt-users] How to learn RT? (I need to add custom database query)

2008-12-05 Thread Aleksey Tsalolikhin
Thank you, Emmanuel for the RTFM pointer, my new tickets now include a
Custom Field with values fetched from an external source.  Woo-hoo!
:)

Next question - and this is what my boss really wants - is to have
multiple text boxes where the user provides input, and then they click
search and another custom field, of  type select a value, or
select multiple values is populated from an external sources based
on the input provided in the first few text boxes.

For example, the user input might be:  company and city, and the
select menu would contain all the stores operated by $company in
$city.  And user needs to be able to change the value of $city, for
example, and click refresh or submit, and the list of stores would
change.

Can RT do that, please?  How?

Best,
Aleksey
___
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: [EMAIL PROTECTED]


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com


[rt-users] How to learn RT? (I need to add custom database query)

2008-12-04 Thread Aleksey Tsalolikhin
Hi.  So I've just installed RT 3.8.1.   I've never used RT before
though I did install RT 2 a couple of years ago for somebody.

My boss asked me how can we make it so that each ticket includes some
custom information fetched from a separate database.

For example, circuit id, from a list of all the different circuits we have.

My question is - how should I learn RT?  I have the book but it covers
RT 2, not RT 3.   Is it worthwhile to read the book?  Or should I head
straight for the Wiki?  I've already gone through the FAQ...  and I am
about to look at the blog.

Thanks,
Aleksey

-- 
Aleksey Tsalolikhin
UNIX System Administrator
I get stuff done!
http://www.lifesurvives.com/
___
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: [EMAIL PROTECTED]


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com


[rt-users] installing RT with PostgreSQL yields invalid privilege type USAGE for table error

2008-12-02 Thread Aleksey Tsalolikhin
Hi.  I just downloaded rt-3.8.1 and am trying to install in on CentOS
5.2 with PostgreSQL 8.1.11

make initialize-database exists with error:

Working with:
Type:   Pg
Host:   localhost
Name:   rt3
User:   rt_user
DBA:postgres
Now creating a Pg database rt3 for RT.
Done.
Now populating database schema.
Done.
Now inserting database ACLs
Couldn't finish 'acl' step.

ERROR: Couldn't run SQL query:
 GRANT USAGE, SELECT, UPDATE ON attachments_id_seq TO rt_user;

ERROR: ERROR:  invalid privilege type USAGE for table

make: *** [initialize-database] Error 255
[EMAIL PROTECTED] rt-3.8.1]#


So I re-ran this command as:

rt3=# GRANT SELECT, UPDATE ON attachments_id_seq TO rt_user;
GRANT
rt3=#

MySQL.com docs say USAGE is synonym for no privileges.

Does anybody know the PostgreSQL equivalent for no priveleges, please?

Best,
Aleksey

-- 
Aleksey Tsalolikhin
UNIX System Administrator
I get stuff done!
http://www.lifesurvives.com/
___
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: [EMAIL PROTECTED]


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com


Re: [rt-users] installing RT with PostgreSQL yields invalid privilege type USAGE for table error

2008-12-02 Thread Aleksey Tsalolikhin
I think I am OK... if anybody knows to the contrary, please let me know.

rt3=# \du
   List of roles
 Role name | Superuser | Create role | Create DB | Connections | Member of
---+---+-+---+-+---
...
 rt_user   | no| no  | no| no limit|
(3 rows)

rt3=#



Best,
Aleksey
___
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: [EMAIL PROTECTED]


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com


Re: [rt-users] installing RT with PostgreSQL yields invalid privilege type USAGE for table error

2008-12-02 Thread Aleksey Tsalolikhin
On Tue, Dec 2, 2008 at 2:36 PM, Ruslan Zakirov [EMAIL PROTECTED] wrote:

 USAGE for sequences has been added in Pg 8.2. Replace GRANT USAGE,
 SELECT, UPDATE with GRANT SELECT, UPDATE in etc/acl.Pg.

Thanks, Ruslan!  that's what I did.   But now I get HTTP 500 internal
server error when I try to access my RT for the first time.

My httpd error log reads:

DBD::Pg::st execute failed: ERROR:  permission denied for relation
users at /usr/lib/perl5/site_perl/5.8.8/DBIx/SearchBuilder/Handle.pm
line 505.
RT::Handle=HASH(0x2aea5f3f0590) couldn't execute the query 'SELECT  *
FROM Users WHERE LOWER(Name) = LOWER(?)' at
/usr/lib/perl5/site_perl/5.8.8/DBIx/SearchBuilder/Handle.pm line 518

Please advise?

Thanks,
Aleksey
___
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: [EMAIL PROTECTED]


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com


[rt-users] what's the username to log in? root/password does not work

2008-12-02 Thread Aleksey Tsalolikhin
Hi.  Did the root password change from 'password' ?   I cannot log
in...  I am trying root with password password as per the docs,
but I am getting Your username or password is incorrect

In httpd logs, I see HTTP 200 OK, POST /rt/ HTTP/1.1 200

What's happening, please?

-- 
Aleksey Tsalolikhin
UNIX System Administrator
I get stuff done!
http://www.lifesurvives.com/
___
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: [EMAIL PROTECTED]


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com


Re: [rt-users] what's the username to log in? root/password does not work

2008-12-02 Thread Aleksey Tsalolikhin
On Tue, Dec 2, 2008 at 5:04 PM, Glenn Sieb [EMAIL PROTECTED] wrote:

 rt_user should have *all* permissions on the tables--it is, after all,
 the user controlling the database.

Thanks, Glenn.   Here is what I ran.  Did I miss anything?
I tried putting in CREATE as Ruslan suggested but had to take
it out as Postgres said  ERROR:  invalid privilege type CREATE for table

So here is what I did run:

\connect rt3;
GRANT SELECT,  UPDATE, DELETE on  attachments_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  Attachments TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  Attributes TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  attributes_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  queues_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  Queues TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  links_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  Links TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  principals_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  Principals TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  groups_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  Groups TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  scripconditions_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  ScripConditions TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  transactions_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  Transactions TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  scrips_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  Scrips TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  acl_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  ACL TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  groupmembers_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  GroupMembers TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  cachedgroupmembers_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  CachedGroupMembers TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  users_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  Users TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  tickets_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  Tickets TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  scripactions_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  ScripActions TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  templates_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  Templates TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  objectcustomfieldvalues_id_s TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  ObjectCustomFieldValues TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  customfields_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  CustomFields TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  objectcustomfields_id_s TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  ObjectCustomFields TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  customfieldvalues_id_seq TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  CustomFieldValues TO rt_user;
GRANT SELECT,  UPDATE, DELETE on  sessions TO rt_user;

Thanks,
Aleksey
___
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: [EMAIL PROTECTED]


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com


Re: [rt-users] what's the username to log in? root/password does not work

2008-12-02 Thread Aleksey Tsalolikhin
Woo-hoo!  That did it!  So to summarize, for anybody reading this in the list
archives, the solution was to remove USAGE from etc/acl.Pg and then
to re-run make init and make initdb.

Thanks!!
Aleksey

On Tue, Dec 2, 2008 at 6:18 PM, Ruslan Zakirov [EMAIL PROTECTED] wrote:
 do make install, files for init step are used from destination dir.

 On Wed, Dec 3, 2008 at 5:14 AM, Aleksey Tsalolikhin
 [EMAIL PROTECTED] wrote:
 On Tue, Dec 2, 2008 at 6:11 PM, Ruslan Zakirov [EMAIL PROTECTED] wrote:
 As you stopped at ACL step during initialization of the DB then your
 DB just has no data.


 Ok.  That makes sense.   I tried updating etc/acl.Pg as you suggested
 but my make still fails:

 [EMAIL PROTECTED] rt-3.8.1]# grep GRANT etc/acl.Pg
push @acls, GRANT SELECT, UPDATE ON $table TO $db_user;
push @acls, GRANT SELECT, INSERT, UPDATE, DELETE ON
 $table TO $db_user;
 [EMAIL PROTECTED] rt-3.8.1]#

 [EMAIL PROTECTED] rt-3.8.1]# make initdb
 /usr/bin/perl sbin/rt-setup-database --action init --dba postgres
 --prompt-for-dba-password
 In order to create or update your RT database, this script needs to
 connect to your  Pg instance on localhost as postgres
 Please specify that user's database password below. If the user has no 
 database
 password, just press return.

 Password:
 Working with:
 Type:   Pg
 Host:   localhost
 Name:   rt3
 User:   rt_user
 DBA:postgres
 Now creating a Pg database rt3 for RT.
 Done.
 Now populating database schema.
 Done.
 Now inserting database ACLs
 Couldn't finish 'acl' step.

 ERROR: Couldn't run SQL query:
  GRANT USAGE, SELECT, UPDATE ON attachments_id_seq TO rt_user;

 ERROR: ERROR:  invalid privilege type USAGE for table

 make: *** [initialize-database] Error 255
 [EMAIL PROTECTED] rt-3.8.1]#



 What gives?   Where is it getting USAGE?

 Thanks,
 Aleksey




 --
 Best regards, Ruslan.




-- 
Aleksey Tsalolikhin
UNIX System Administrator
I get stuff done!
http://www.lifesurvives.com/
___
http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users

Community help: http://wiki.bestpractical.com
Commercial support: [EMAIL PROTECTED]


Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
Buy a copy at http://rtbook.bestpractical.com