Ctrl K
ring2all.com

Queues (Call Center) Module Documentation

Table of Contents

  1. Module Overview (Technical)
  2. Module Overview (Commercial/Business)
  3. Module Overview (End User/Administrator)
  4. Configuration Fields Reference
  5. Queue Strategies
  6. Tiers and Agents
  7. Announcements & Caller Experience
  8. Common Scenarios & Examples
  9. Limitations & Important Notes
  10. Troubleshooting Tips
  11. Glossary

---

1. Module Overview (Technical)

What Are Queues?

Queues are call distribution points that hold incoming calls until agents become available. They use FreeSWITCH's mod_callcenter to manage call distribution, agent status, and real-time queue metrics.

Architecture

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│                    Queue System                                 │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Caller dials Queue extension (e.g., 6000)                      │
│       │                                                         │
│       ▼                                                         │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │              queue_join.lua                              │   │
│  │  - Answer call                                           │   │
│  │  - Play welcome message                                  │   │
│  │  - Announce position/wait time                           │   │
│  │  - Enable callback option (if configured)                │   │
│  └──────────────────────────────────────────────────────────┘   │
│       │                                                         │
│       ▼                                                         │
│  ┌──────────────────────────────────────────────────────────┐   │
│  │           mod_callcenter (FreeSWITCH)                    │   │
│  │                                                          │   │
│  │  Queue: Support@domain.com                               │   │
│  │  Strategy: longest-idle-agent                            │   │
│  │                                                          │   │
│  │  Waiting Callers:                                        │   │
│  │  ├─ Position 1: +1555123456 (waiting 45s)               │   │
│  │  └─ Position 2: +1555789012 (waiting 20s)               │   │
│  │                                                          │   │
│  │  Available Agents:                                       │   │
│  │  ├─ 101@domain.com (Available, idle 120s)               │   │
│  │  ├─ 102@domain.com (Available, idle 60s)                │   │
│  │  └─ 103@domain.com (On Break)                           │   │
│  │                                                          │   │
│  └──────────────────────────────────────────────────────────┘   │
│       │                                                         │
│       ▼                                                         │
│  Agent answers → Call connected                                 │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Key Tables

TablePurpose
public.call_center_queuesQueue definitions
public.call_center_agentsAgent definitions
public.call_center_tiersAgent-Queue assignments
public.call_center_callback_profilesCallback configuration
public.call_center_queue_profilesShared queue settings
ss_cc.queuesmod_callcenter runtime state

Key Files

FileDescription
admin/apps/web/src/modules/queues/Frontend module
admin/apps/web/src/i18n/en/queues.jsonTranslations
telephony/freeswitch/lua/main/xml_handlers/callcenter/queue_join.luaQueue entry handler
telephony/freeswitch/lua/main/xml_handlers/routing/queue.luaQueue routing handler
---

2. Module Overview (Commercial/Business)

Business Value

Queues provide enterprise call center capabilities:

Without QueuesWith Queues
Calls ring busyCalls wait in order
No hold time infoPosition/wait announcements
Random distribution9 distribution strategies
No metricsSLA tracking

Use Cases

  1. Customer Support
- Tiered support levels

- Skill-based routing

- SLA management

  1. Sales Teams
- Lead distribution

- Priority handling for VIPs

- Callback options

  1. Help Desks
- Ticket-based routing

- Escalation paths

- After-hours handling

Feature Highlights

FeatureBenefit
9 StrategiesFrom Ring All to Least Talk Time
Position/Wait AnnouncementsCaller expectations
Callback OptionReduce abandonment
VIP ListsPriority routing
Max Wait LimitsOverflow handling
Tier SystemSkill-based distribution
RecordingQuality assurance
SLA TrackingService level metrics
---

3. Module Overview (End User/Administrator)

What Can You Do?

  • Create queues with extensions
  • Configure distribution strategies
  • Set up announcements
  • Configure timeouts and overflow
  • Assign agents via Tiers
  • Enable callback profiles
  • Set VIP priority lists

Administrator Workflow

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│              Creating a Queue                                   │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  Tab 1: General                                                 │
│  ├─ Queue Name: "Support"                                      │
│  ├─ Extension: 6000                                            │
│  ├─ Strategy: Longest Idle Agent                               │
│  ├─ Max Wait Time: 300 sec                                     │
│  ├─ Timeout Destination: Voicemail → 101                       │
│  └─ Enabled: ✓                                                 │
│                                                                 │
│  Tab 2: Announcements                                           │
│  ├─ Greeting: support_greeting.wav                             │
│  ├─ Music on Hold: local_stream://default                      │
│  ├─ Announce Position: ✓                                       │
│  ├─ Announce Frequency: 45 sec                                 │
│  └─ Agent Connect Sound: queue_connect.wav                     │
│                                                                 │
│  Tab 3: Advanced                                                │
│  ├─ Time Base Score: Queue                                     │
│  ├─ Wrap-Up Time: 10 sec                                       │
│  ├─ Exit Key: *                                                │
│  └─ Max Queue Size: 50                                         │
│                                                                 │
│  Tab 4: Agents and Tiers                                        │
│  ┌───────────────────────────────────────────────────────────┐  │
│  │ Agent 101 (Alice) | Level: 1 | Position: 1                │  │
│  │ Agent 102 (Bob)   | Level: 1 | Position: 2                │  │
│  │ Agent 103 (Carol) | Level: 2 | Position: 1                │  │
│  └───────────────────────────────────────────────────────────┘  │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Quick Tips

TIP
Strategy Choice: Use "Longest Idle Agent" for even distribution.
TIP
Announce Position: Reduces hang-ups during long waits.
CAUTION
No Agents = Quick Timeout: Set "Max Wait with No Agent" appropriately.

---

4. Configuration Fields Reference

General Settings

FieldDescriptionExample
Queue NameUnique identifierSupport
ExtensionDialable number6000
StrategyDistribution methodLongest Idle Agent
Max Wait TimeSeconds before timeout300
Timeout DestinationWhere unans calls goVoicemail
Queue ProfileShared settings(optional)
Callback ProfileCallback configuration(optional)
VIP ListPriority callers(optional)
EnabledQueue active statusOn/Off

Announcement Settings

FieldDescription
GreetingWelcome message audio
Music on HoldAudio while waiting
Announce PositionTell position in queue
Announce Hold TimeTell estimated wait
Announce FrequencyRepeat interval (sec)
Announce SoundPeriodic message audio
Agent Connect SoundPlayed to agent on connect

Advanced Settings

FieldDescriptionDefault
Time Base ScoreQueue or SystemQueue
Wrap-Up TimePost-call delay10 sec
Exit KeyDTMF to leave queue
Max Queue SizeMax waiting callers0 (unlimited)
Caller ID PrefixPrefix for agents
Discard Abandoned AfterCleanup time60 sec
Abandoned ResumeRejoin at positionOff
---

5. Queue Strategies

Strategy Comparison

StrategyDescriptionBest For
Ring AllRing all available agentsSmall teams
Longest Idle AgentAgent idle longestEven distribution
Round RobinRotate through agentsFair rotation
Top DownAlways start at firstPriority agents
Least Talk TimeAgent with least talkBalance workload
Least CallsAgent with fewest callsBalance call count
Sequentially by Agent OrderFixed sequenceSpecific order
Sequentially by Next Agent OrderContinue sequenceContinuous rotation
RandomRandom selectionLoad balancing

Strategy Diagrams

Plaintext
Longest Idle Agent:
─────────────────────────────────
Call comes in → Find agent idle longest → Ring that agent

Round Robin:
─────────────────────────────────
Call 1 → Agent 1
Call 2 → Agent 2
Call 3 → Agent 3
Call 4 → Agent 1 (restart)

Top Down:
─────────────────────────────────
Always try Agent 1 first
If busy → Agent 2
If busy → Agent 3

---

6. Tiers and Agents

Tier System

Tiers define which agents handle which queues with priority:

  • Level: Priority tier (1 = highest priority, 2 = next, etc.)
  • Position: Order within the same level

Plaintext
Queue: Support
├─ Tier Level 1 (Primary Agents)
│  ├─ Position 1: Alice (101)
│  └─ Position 2: Bob (102)
├─ Tier Level 2 (Secondary Agents)
│  └─ Position 1: Carol (103)
└─ Tier Level 3 (Overflow)
   └─ Position 1: Dave (104)

Tier Rules

SettingDescription
Tier Rules ApplyEnable tier escalation
Tier Rule WaitSeconds before tier escalation
Tier Rule Multiply LevelMultiply wait by level
Tier Rule No Agent No WaitSkip wait if no agents at tier
---

7. Announcements & Caller Experience

Announcement Flow

Plaintext
┌─────────────────────────────────────────────────────────────────┐
│              Caller Experience                                  │
├─────────────────────────────────────────────────────────────────┤
│                                                                 │
│  1. Greeting (once, on entry)                                   │
│     "Thank you for calling support..."                          │
│                                                                 │
│  2. Position Announcement (if enabled)                          │
│     "You are caller number 3 in the queue"                      │
│                                                                 │
│  3. Wait Time Announcement (if enabled)                         │
│     "Your estimated wait time is 5 minutes"                     │
│                                                                 │
│  4. Music on Hold                                               │
│     ♪♪♪ [background music plays] ♪♪♪                            │
│                                                                 │
│  5. Periodic Announcement (every X seconds)                     │
│     "Please continue to hold, your call is important..."        │
│                                                                 │
│  6. Agent Connect Sound (to agent)                              │
│     "Call from Support queue"                                   │
│                                                                 │
└─────────────────────────────────────────────────────────────────┘

Callback Option

When enabled via a Callback Profile:

  1. Caller hears: "Press 1 to receive a callback"
  2. Caller presses 1
  3. System captures caller's number
  4. Caller hangs up
  5. When agent available, system calls back

---

8. Common Scenarios & Examples

Scenario 1: Basic Support Queue

Configuration:
  • Extension: 6000
  • Strategy: Longest Idle Agent
  • Max Wait: 300 sec
  • Timeout: Voicemail 101

Agents (Tiers):
AgentLevelPosition
10111
10212
10313

Scenario 2: Tiered Escalation

Configuration:
  • Extension: 7000
  • Strategy: Top Down
  • Tier Rule Wait: 30 sec

Agents (Tiers):
AgentLevelPositionRole
20111Junior Support
20212Junior Support
20321Senior Support
20431Supervisor
Behavior: Tries Level 1 for 30s, then Level 2 for 30s, then Level 3.

Scenario 3: VIP Priority Queue

Configuration:
  • Extension: 8000
  • VIP List: "Premium Customers"
  • Strategy: Longest Idle Agent

VIP Behavior: Callers on VIP list get higher queue position score.

---

9. Limitations & Important Notes

Technical Limitations

WARNING
mod_callcenter Sync: Configuration changes need queue reload.
WARNING
Queue Name Unique: Queue names must be unique per domain.

Best Practices

  1. Set Max Wait: Prevent infinite hold times
  2. Configure Timeout: Route unanswered calls somewhere
  3. Use Announcements: Keep callers informed
  4. Monitor SLA: Track service level metrics
  5. Enable Callback: Reduce abandonment

---

10. Troubleshooting Tips

Common Issues

SymptomPossible CauseSolution
Calls not answeredNo available agentsCheck agent status
Immediate timeoutMax wait = 0Set max wait time
No announcementsMissing audio filesCheck greeting paths
Agents not getting callsTier misconfiguredVerify level/position
Queue fullMax size reachedIncrease max queue size

Diagnostic SQL

List queues:

Sql
SELECT id, name, extension, strategy, enabled
FROM public.call_center_queues
WHERE domain_id = [domain_id];

Check queue tiers:

Sql
SELECT a.name as agent, q.name as queue, t.level, t.position
FROM public.call_center_tiers t
JOIN public.call_center_agents a ON t.agent_id = a.id
JOIN public.call_center_queues q ON t.queue_id = q.id
WHERE q.domain_id = [domain_id]
ORDER BY q.name, t.level, t.position;

FreeSWITCH API Commands

Bash
# List all queues
callcenter_config queue list

# List agents in queue
callcenter_config queue list agents Support@domain.com

# List callers in queue
callcenter_config queue list members Support@domain.com

---

11. Glossary

TermDefinition
QueueCall holding point for agent distribution
StrategyAlgorithm for selecting agents
TierAgent-Queue assignment with level/position
LevelPriority tier (1 = highest priority)
PositionOrder within a tier
SLAService Level Agreement (target answer time)
AbandonmentCall that hangs up before answer
CallbackSystem calls back when agent available
VIP ListPriority callers list
---

Lua Script Status ✅

Both Scripts Already Correct

ScriptStatusSchema
queue_join.lua✅ CorrectUses public.domains, public.call_center_queues, public.call_center_callback_profiles
routing/queue.lua✅ CorrectUses public.dialplan_registry, public.call_center_queues
No fixes required!

---

Documentation last updated: January 2026*

AI Assistant

👋 Hello! I'm your Ring2All documentation assistant. I can help you find information about configuring and using the Ring2All PBX platform.

How can I help you today?