Call Center Quick Start
1. Requirements
| Item | Requirement |
|---|---|
| RustPBX version | ≥ 0.4.4, compiled with --features contact-center |
| Database | MySQL 8.0+ or PostgreSQL 14+ (recommended; SQLite supported but MySQL/PgSQL recommended for production) |
| Addon dependencies | Automatically included: ivr-editor, voicemail, endpoint-manager, enterprise-auth, telemetry |
2. Enable Call Center
In config.toml:
[proxy]
addons = ["cc"]
[proxy.cc]
# Autonomous mode: agents manage state independently via cc-phone
autonomous_enabled = true
heartbeat_interval_secs = 5
heartbeat_timeout_count = 3
# Transfer configuration
blind_transfer_enabled = true
consult_timeout_secs = 30
conference_on_transfer = true
allow_agent_to_agent = true
# Voicemail and IVR extension numbers
voicemail_extension = "*97"
ivr_extension = "ivr"
# After-call work timeout (seconds)
wrapup_timeout_secs = 60
3. Database Initialization
CC automatically creates the following tables on startup:
| Table | Purpose |
|---|---|
cc_agents | Agent definitions |
cc_agent_endpoints | Agent endpoint bindings |
cc_agent_stats | Agent statistics |
cc_calls | Call center call records |
cc_call_records | Detailed records |
cc_skill_groups | Skill groups |
cc_queue_snapshots | Queue snapshots |
cc_csat | Customer satisfaction ratings |
cc_monitor_records | Monitoring records |
cc_cast_result | Outbound call results |
4. Minimal Setup Flow
Step 1: Create a Skill Group
Call Center → Skill Groups → New:
| Field | Example |
|---|---|
| Name | sales |
| Description | Sales team |
| Skill tags | sales, chinese |
Step 2: Create an Agent
Call Center → Agents → New:
| Field | Example |
|---|---|
| Agent ID | agent-001 |
| Display name | John |
| Extension | 1001 |
| Skill group | sales |
| Max concurrent | 1 |
Step 3: Register Agent Endpoint
The agent registers extension 1001 to RustPBX using a SIP softphone.
Alternatively, use the built-in cc-phone page (/cc/phone) as a Web softphone.
Step 4: Configure a Queue
Define an ACD queue in config/queue/:
# config/queue/sales_queue.toml
[[queue]]
name = "sales-queue"
strategy = "parallel"
max_wait_secs = 300
max_size = 50
moh = "default"
[queue.agent_match]
skill_group = "sales"
[queue.no_answer]
action = "voicemail"
Step 5: Configure Routing
In config/routes/, route inbound calls to the queue:
[[route]]
name = "to-sales"
action = "queue"
queue = "sales-queue"
[route.match]
to_user = "^4000$"
Step 6: Verify
Dial 4000 → enter queue → agent 1001 rings → answer → call established.
5. CC Phone
CC Phone is the built-in Web softphone (/cc/phone), providing:
| Feature | Description |
|---|---|
| Registration | SIP registration to RustPBX |
| Status toggle | Idle / Away / Break / Offline |
| Incoming call | Pop-up call notification |
| In-call actions | Mute / Hang up / Transfer / Consult transfer |
| After-call work | Enter Wrapup state after call ends |
| Break types | Lunch / Training / Meeting / Personal (customizable) |
6. Console Entry
The Call Center console (/cc) is a SPA page containing:
| Page | Function |
|---|---|
| Dashboard | Overview: queue count, active calls, SLA |
| Agent management | CRUD, status, statistics |
| Skill groups | Configure skill groups and routing rules |
| Real-time monitoring | Current queue, agent status, active calls |
| Reports | Call reports, agent reports, SLA trends |
| ACD configuration | Strategy, priority, overflow rules |