Cover image for RT Essentials

Book description

In a typical organization, there's always plenty that to do such as: pay vendors, invoice customers, answer customer inquiries, and fix bugs in hardware or software. You need to know who wants what and keep track of what is left to do.

This is where a ticketing system comes in. A ticketing system allows you to check the status of various tasks: when they were requested, who requested them and why, when they were completed, and more. RT is a high-level, open source ticketing system efficiently enabling a group of people to manage tasks, issues, and requests submitted by a community of users.

RT Essentials, co-written by one of the RT's original core developers, Jesse Vincent, starts off with a quick background lesson about ticketing systems and then shows you how to install and configure RT. This comprehensive guide explains how to perform day-to-day tasks to turn your RT server into a highly useful tracking tool. One way it does this is by examining how a company could use RT to manage its internal processes. Advanced chapters focus on developing add-on tools and utilities using Perl and Mason. There's also chapter filled with suggested uses for RT inside your organization.

No matter what kind of data your organization tracks--from sales inquiries to security incidents or anything in between--RT Essentials helps you use RT to provide order when you need it most.

Table of Contents

  1. RT Essentials
  2. Preface
    1. Audience
    2. Assumptions This Book Makes
    3. What’s Inside
    4. Conventions
    5. Using Code Examples
    6. We’d Like to Hear from You
    7. Safari® Books Online
    8. Acknowledgments
  3. 1. What Is Ticketing?
    1. Why “Ticket”?
    2. A Dissected Ticketing System
      1. Deletions
    3. Uses for a Ticketing System
      1. Production Operations Support
      2. Sales Lead Tracking
      3. Customer Service
      4. Project Management
      5. Network Security
      6. Engineering (Bug Tracking)
    4. Features of a Ticketing System
    5. Ticketing Helps Everybody
      1. What Ticketing Does for You
      2. What Ticketing Does for Your Team
      3. What Ticketing Does for Your Accountants
      4. What Ticketing Does for Your Boss
    6. Getting Started
      1. Selling It to Management
      2. Selling It to Staff
      3. Getting People to Use the Ticketing System
    7. Why RT?
  4. 2. Installation
    1. Requirements
      1. Perl 5.8.3 or Later
      2. A Database
      3. A Web Server
      4. Perl Modules
    2. Starting the Installation
      1. Step 1: Choose a Machine and Location
      2. Step 2: Download the RT Source Tarball
      3. Step 3: Expand the tarball
      4. Step 4: Prepare to Configure
      5. Step 5: Configure the RT Installation Process
        1. General configuration
        2. File ownership configuration
        3. Database configuration
        4. Perl configuration
      6. Step 6: Check for RT’s Perl Dependencies
      7. Step 7: Install
      8. Step 8: Initialize the Database
    3. Site Configuration
      1. Site Details
      2. Email Configuration
      3. Logging
      4. Sample RT_SiteConfig.pm
    4. Configuring Your Web Server
      1. Apache and mod_perl
        1. mod_perl 1.x v. mod_perl 2.x
      2. FastCGI
    5. Serving RT Behind a Proxy Webserver
      1. Standalone Server
    6. Configuring Outbound Email
    7. Configuring Inbound Email
      1. Mailgate Options
      2. Using the mailgate with Sendmail or Postfix
      3. Using the mailgate with qmail
      4. Using the mailgate with procmail
    8. Installation Problems
    9. Installation Complete
  5. 3. Getting Started
    1. Logging in to RT
    2. Creating a New Ticket
    3. Ticket Display Page
    4. Replying to (and Commenting on) a Ticket
    5. Escalating a Ticket
    6. Assigning a Ticket
    7. Resolving a Ticket
    8. Merging Duplicate Tickets
    9. Associating Related Tickets
    10. Searching for Tickets
      1. Understanding TicketSQL
      2. Downloading Search Results
    11. Updating Many Tickets at Once
    12. Email Interface
  6. 4. Command-Line Interface
    1. Running the CLI
    2. Creating a Ticket
    3. Finding a Ticket
    4. Replying to a Ticket
    5. Editing a Ticket
    6. Searching for Tickets
    7. Command-Line Help
    8. The Shell
    9. Scripting RT
      1. Shell Functions
      2. Shell Aliases
      3. MIME
  7. 5. Administrative Tasks
    1. Creating and Updating Users
    2. Groups
      1. Creating and Updating Groups
      2. Disabling a Group
      3. Changing Group Membership
    3. Queues
      1. Roles
      2. Access Control
      3. Scrips
    4. Custom Fields
      1. Setting up Custom Fields
      2. Access Control
      3. Tying Custom Fields to Objects
    5. Day-to-Day Management
      1. Setup External Authentication
      2. Remove a Transaction
      3. Track Email Sent
      4. Report Failed Logins
    6. Backing Up RT
      1. Backing Up RT’s Data
      2. Backing Up the RT Application
    7. Restoring RT
      1. Restoring RT Data
        1. MySQL
        2. Postgres
        3. SQLite
        4. Oracle
      2. Recover a Lost Administrative Password
      3. Recover SuperUser Privileges
  8. 6. Scrips
    1. How Scrips Work
      1. Transactions
      2. Cc and AdminCc
      3. Conditions
      4. Actions
      5. Templates
    2. Gritty Details
      1. Tickets and Transactions
      2. Other Objects and Globals
      3. Scrip Stage
      4. Custom Conditions
      5. Custom Actions
      6. Custom Templates
    3. Examples
      1. Your Ticket Was Stolen
        1. An OnSteal condition
        2. Our custom template
      2. AutoReply with a Password
      3. Emergency Pages
      4. Using TransactionBatch
      5. A Simple Workflow
  9. 7. Example Configurations
    1. Network and Server Operations
      1. Custom Fields
      2. Groups
      3. Scrips
      4. ACLs
    2. Helpdesk
      1. Custom Fields
      2. Scrips
      3. Templates
      4. Groups
      5. ACLs
    3. Software Engineering
      1. Custom Fields
      2. Groups
      3. Scrips
      4. ACLs
    4. Customer Service
      1. Custom Fields
      2. Groups
      3. ACLs
      4. Scrips
    5. Emergency Support
      1. Templates
      2. Groups
      3. Scrips
      4. ACLs
    6. Sales Inquiries
      1. Custom Fields
      2. Groups
      3. ACLs
      4. Templates
      5. Scrips
    7. Human Resources
      1. Groups
      2. ACLs
      3. Templates
      4. Scrips
    8. Finance
      1. Custom Fields
      2. Scrips
      3. Groups
      4. ACLs
    9. The Paperless Office
      1. Custom Fields
      2. Templates
      3. Scrips
      4. ACLs
    10. Personal To-Do Lists
      1. ACLs
    11. Conclusion
  10. 8. Architecture
    1. Quick Overview
    2. Filesystem Layout
    3. Unicode
    4. Logical and Object Model
      1. Users
      2. Groups
      3. Principals
      4. GroupMembers
      5. CachedGroupMembers
      6. ACL
      7. Links
      8. Attributes
      9. Transactions
      10. Attachments
      11. CustomFields
      12. CustomFieldValues
      13. ObjectCustomFields
      14. ObjectCustomFieldValues
      15. Tickets
      16. Queues
      17. Scrips
      18. Templates
      19. ScripActions
      20. ScripConditions
  11. 9. API
    1. How It Works
      1. DBIx::SearchBuilder::Handle
      2. DBIx::SearchBuilder::Record
      3. DBIx::SearchBuilder
    2. RT Codebase
      1. Exceptions
    3. Database Considerations
      1. Id
      2. Joins
        1. Inner joins
        2. Outer joins
      3. Transactions and Data Integrity
  12. 10. Development Environments
    1. DevelMode
    2. Modifying RT’s Codebase
      1. Overlays
        1. Quieting warnings
        2. A simple overlay example
      2. Hook::LexWrap
    3. Access Control
      1. Adding a new right
    4. Profiling
    5. Debugging
      1. RT’s Logging System
    6. RT’s Test Infrastructure
      1. Running the Test Suite
      2. Interpreting the Output
        1. Running an individual test file
      3. Tests Extracted from Modules
      4. Writing Tests
        1. What is a good test?
    7. Internationalization
      1. How RT’s I18N Framework I18N Framework
      2. Writing Internationalized Code
        1. Bracket notation
      3. Localizing RT
    8. RT Community
      1. Reporting Bugs
      2. Patching RT
    9. Packaging and Releasing an RT Extension
      1. Module::Install::RTxModule::Install::RTx
        1. Updating the database
      2. Licensing
  13. A. Glossary
    1. Ticket
    2. Subject
    3. Status
    4. Body
    5. Transaction
    6. Attachment
    7. Watchers
    8. History
    9. Priority
    10. Relationships
    11. Dates
    12. Custom Fields
    13. Queue
    14. Scrip
    15. Conditions
    16. Templates
    17. Users
    18. Groups
    19. Principals
    20. ACL
    21. ACE
  14. B. Command-Line Action Reference
    1. create
    2. edit
    3. list
    4. show
  15. C. Configuration
    1. Environment Variables
    2. Configuration Files
  16. D. Required Perl Module Dependencies
  17. E. Configuration File Reference
    1. Base Configuration
    2. Database Configuration
    3. Incoming Mail Gateway Configuration
    4. Outgoing Mail Configuration
    5. Logging
    6. Web Interface Configuration
    7. RT UTF-8 Settings
    8. RT Date Handling Options (for Time::ParseDate)
    9. Miscellaneous RT Settings
  18. Index
  19. About the Authors
  20. Colophon
  21. Copyright