Skip to content

Pickup Groups Module Documentation

15 min readUpdated: Sep 26, 2026
View as Markdown
  1. Module Overview (Technical)
  2. Module Overview (Commercial/Business)
  3. Module Overview (End User/Administrator)
  4. Configuration Fields Reference
  5. Call Flow / Logic Explanation
  6. Common Scenarios & Examples
  7. Model Context Protocol (MCP) AI Integration
  8. Limitations & Important Notes
  9. Troubleshooting Tips
  10. Glossary

Pickup Groups allow extensions to intercept (pick up) calls ringing at other extensions in the same group. When a call rings at extension 1001, extension 1002 can dial a pickup code to answer it.

┌─────────────────────────────────────────────────────────────────┐
│ Pickup Group System │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Incoming call rings at Extension 1001 │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ 1001 is ringing... │ │
│ │ (part of "Sales" pickup group) │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │
│ Extension 1002 (also in "Sales" group) dials *8 │
│ │ │
│ ▼ │
│ ┌──────────────────────────────────────────────────────────┐ │
│ │ Pickup Logic │ │
│ │ │ │
│ │ 1. Find pickup groups where 1002 has allowPickup=true │ │
│ │ 2. Check if any member in those groups is ringing │ │
│ │ 3. Found: 1001 is ringing │ │
│ │ 4. Check skipBusy, DND override, etc. │ │
│ │ 5. Intercept call → Bridge to 1002 │ │
│ │ │ │
│ └──────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ 1002 is now connected to the caller │
│ │
└─────────────────────────────────────────────────────────────────┘
Permission Description
isMember Extension belongs to the group (calls can be picked up FROM this extension)
allowPickup Extension can pick up calls FROM other group members

User Role Key Capabilities & Permissions
PBX Super Admin Full access across all tenant domains to create pickup groups, assign priorities, configure tone settings, and audit member associations.
Domain Administrator Create and manage department-level pickup groups (e.g. Sales, Support, Finance), defining which extensions can intercept calls (allowPickup) and which can be intercepted (isMember).
Team Supervisor Monitor pickup group activity and ensure adequate team coverage so that unanswered ringing extensions are quickly handled.
Standard Extension User Dial feature code *08 (group pickup) or *07<ext> (directed pickup) to intercept an incoming ringing call on a colleague’s phone without leaving their desk.

Pickup Groups enable collaborative call handling:

Without Pickup Groups With Pickup Groups
Missed calls when away from desk Coworker can answer
Need to forward to coworker Simply pick up ringing call
Caller waits or hangs up Faster response time
  1. Team Coverage

    • Sales team can pick up each other’s calls
    • Support team covers during breaks
  2. Reception Backup

    • Any front desk staff can answer reception
  3. Department Isolation

    • Sales can only pick up Sales calls
    • Support can only pick up Support calls
  4. Manager Assistance

    • Executive assistant can pick up boss’s calls
Feature Benefit
Skip Busy Don’t interrupt ongoing calls
DND Override Pick up even if target is in DND
Pickup Tone Audio confirmation of pickup
Confirmation Require DTMF to confirm pickup
Priority Control which group is checked first

3. Module Overview (End User/Administrator)

Section titled “3. Module Overview (End User/Administrator)”
  • Create pickup groups with member extensions
  • Define who can pick up calls vs. who can only be picked up
  • Configure pickup behavior (tones, timeout, confirmations)
  • Set priority for conflict resolution
  1. Navigate to PBX → Applications → Pickup Groups in the main sidebar.
  2. The list view displays all configured pickup groups, detailing their Group Name, Members count, active Status (Enabled / Disabled), and quick actions to edit, duplicate, or delete.
  3. Click the + Add button in the top-right toolbar to create a new pickup group.
  4. Click any existing pickup group row or the edit icon to adjust member permissions, ringback tones, or timeouts.

Pickup Groups List View

┌─────────────────────────────────────────────────────────────────┐
│ Creating a Pickup Group │
├─────────────────────────────────────────────────────────────────┤
│ │
│ Step 1: General Tab │
│ ├─ Name: "Sales Team" │
│ ├─ Description: "Sales department pickup group" │
│ └─ Priority: 10 │
│ │
│ Step 2: Settings Tab │
│ ├─ Skip Busy: ✓ (don't interrupt active calls) │
│ ├─ DND Override: ✗ (respect DND settings) │
│ ├─ Pickup Tone: Beep │
│ └─ Pickup Timeout: 30 seconds │
│ │
│ Step 3: Members Tab │
│ ├─ Extension 1001: isMember ✓, allowPickup ✓ │
│ ├─ Extension 1002: isMember ✓, allowPickup ✓ │
│ ├─ Extension 1003: isMember ✓, allowPickup ✓ │
│ └─ Extension 1004: isMember ✓, allowPickup ✗ (pickup target) │
│ │
│ Step 4: Enable and Save │
│ └─ Enabled: ✓ │
│ │
│ Result: 1001-1003 can pick up each other's calls + 1004's │
│ 1004 can be picked up but cannot pick up others │
│ │
└─────────────────────────────────────────────────────────────────┘

[!TIP] allowPickup = false: Use this for extensions that should only be “pickup targets” (e.g., lobby phone that anyone can answer).

[!TIP] Skip Busy: Always enable unless you specifically want to interrupt active calls.

[!CAUTION] Multiple Groups: An extension can be in multiple groups. Priority determines which group is checked first.


Pickup Group Configuration Form

Field Description User-Friendly Tooltip Example Required
Name * Name of the pickup group Group name must be unique within the domain Executive & Support Pickup Yes
Pickup Tone Audio tone played when a call is picked up Audio tone played to user when call is picked up Default, Beep, Short Beep, None Yes
Ringback Tone heard by caller during call transfer Ringback tone heard by caller during transfer Local, US Ring, UK Ring, None Yes
Pickup Timeout Time allowed for answering before pickup cancels Maximum time allowed to pick up call (seconds) 10, 15 (5-120s) Yes
Require Confirmation Require pressing a key to confirm pickup Require pressing 1 to confirm pickup Yes / No (toggle) No
Override DND Allow pickup even if destination extension has DND active Pick up calls even if extension has DND active Yes / No (toggle) No
Skip Busy Skip extensions that are already on a call Skip extensions that are already on an active call Yes / No (toggle) No
Priority Priority when an extension belongs to multiple groups Group priority (lower number = higher priority) 100 (1-9999) Yes
Enabled Master switch for activating or deactivating the group Enable or disable this pickup group Yes / No (toggle) Yes
Field Description User-Friendly Tooltip Notes
Extension Extension assigned to the group Select an extension from the domain Must select an active extension
Member (isMember) Calls to this extension can be picked up by group members Enable to allow calls ringing on this extension to be picked up Default: Yes
Allow Pickup (allowPickup) This extension has permission to pick up group calls Enable to grant this extension permission to intercept calls Default: Yes
Actions Remove extension from this pickup group Removes row from table Trash icon
isMember allowPickup Result
✓ ✓ Full participant—can pick up and be picked up
✓ ✗ Target only—can be picked up but cannot pick up others
✗ ✓ Picker only—can pick up but cannot be picked up
✗ ✗ (Invalid—effectively not in the group)

┌─────────────────────────────────────────────────────────────────┐
│ Group Pickup Flow (*8) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. User 1002 dials *8 (group pickup) │
│ │ │
│ ▼ │
│ 2. Find pickup groups where 1002 has allowPickup = true │
│ │ │
│ ▼ │
│ 3. For each group (in priority order): │
│ ├─ Find members with isMember = true │
│ ├─ Check if any member is currently ringing │
│ ├─ If skipBusy = true, skip busy members │
│ └─ If found ringing member → Step 4 │
│ │ │
│ ▼ │
│ 4. Check additional conditions │
│ ├─ If target has DND and dndOverride = false → Skip │
│ └─ If confirmation required → Prompt DTMF │
│ │ │
│ ▼ │
│ 5. Intercept the ringing call │
│ ├─ Stop ringing at original extension │
│ ├─ Play pickup tone │
│ └─ Bridge caller to 1002 │
│ │ │
│ ▼ │
│ 6. Call connected between caller and 1002 │
│ │
└─────────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────────┐
│ Direct Pickup Flow (**1001) │
├─────────────────────────────────────────────────────────────────┤
│ │
│ 1. User 1002 dials **1001 (direct pickup) │
│ │ │
│ ▼ │
│ 2. Check if 1002 is in a group where 1001 is also a member │
│ ├─ Yes → Check if 1002 has allowPickup = true │
│ └─ No → "Pickup not allowed" │
│ │ │
│ ▼ │
│ 3. Check if 1001 is currently ringing │
│ ├─ Yes → Intercept call │
│ └─ No → "No call to pick up" │
│ │ │
│ ▼ │
│ 4. Call connected │
│ │
└─────────────────────────────────────────────────────────────────┘

Setup:

Member isMember allowPickup
1001 (Sales Rep 1) ✓ ✓
1002 (Sales Rep 2) ✓ ✓
1003 (Sales Rep 3) ✓ ✓

Result: All three can pick up each other’s calls.

Setup:

Member isMember allowPickup Notes
1000 (Reception) ✓ ✗ Can be picked up but not pick up
2001 (Admin 1) ✓ ✓ Can pick up reception
2002 (Admin 2) ✓ ✓ Can pick up reception

Result: Admins can answer reception calls; reception cannot pick up others.

Setup:

Member isMember allowPickup Notes
5000 (CEO) ✓ ✗ CEO can be picked up
5001 (Assistant) ✗ ✓ Assistant can pick up CEO

Result: Only the assistant can pick up the CEO’s calls; CEO’s calls don’t affect the assistant’s line.

Problem: Extension 2000 is in both “Sales” (priority 10) and “Support” (priority 20) groups.

*When 2000 dials 8:

  1. Check “Sales” group first (priority 10)
  2. If no ringing calls, check “Support” group (priority 20)
  3. Pick up first ringing call found

7. Model Context Protocol (MCP) AI Integration

Section titled “7. Model Context Protocol (MCP) AI Integration”

Call Pickup groups can be audited and provisioned via the Model Context Protocol (MCP). AI assistants and automated onboarding workflows can inspect group rosters, configure intercept permissions between departments, and verify that agents have reciprocal pickup capabilities.

Tool Name Operation Description Access Level
list_call_pickup_groups Query List all call pickup groups, evaluation priorities, and member counts. Read-Only
get_call_pickup_group_status Query Inspect detailed member lists, pickup permissions (allowPickup, isMember), and group parameters. Read-Only
create_call_pickup_group Provisioning Create a new call intercept group with assigned extensions and priority ranking. Admin / Superadmin
update_call_pickup_group Management Modify members, evaluation priority, or active state of a pickup group. Admin / Superadmin
delete_call_pickup_group Deprovisioning Remove a call pickup group from the PBX. Superadmin

Provisions a group enabling mutual call interception.

{
"name": "create_call_pickup_group",
"description": "Create a new Call Pickup group allowing member extensions to intercept each other's ringing calls via *8.",
"inputSchema": {
"type": "object",
"properties": {
"name": { "type": "string", "description": "Group name (e.g. 'Support Desk Pickup')." },
"priority": { "type": "number", "description": "Evaluation order when an extension belongs to multiple groups (default: 10)." },
"members": {
"type": "array",
"items": { "type": "string" },
"description": "Extension numbers that belong to this pickup group."
},
"description": { "type": "string", "description": "Optional notes or department details." }
},
"required": ["name"]
}
}

Safety Safeguards & Architectural Isolation

Section titled “Safety Safeguards & Architectural Isolation”
  1. Domain Isolation: Pickup groups operate strictly within the tenant’s domain boundary. Extensions from other domains cannot intercept ringing calls across tenant partitions.
  2. Feature Code Coordination: Pickup groups work seamlessly with the universal Feature Code *8 (Group Call Pickup) and **<ext> (Directed Call Pickup) without requiring dedicated per-group star codes.

Example 1: Creating a Customer Service Intercept Group

Section titled “Example 1: Creating a Customer Service Intercept Group”

Admin Prompt:
“Create a pickup group named ‘Billing Team’ with priority 10 for extensions 2010, 2011, and 2012.”

AI Tool Execution:

{
"tool": "create_call_pickup_group",
"arguments": {
"name": "Billing Team",
"priority": 10,
"members": ["2010", "2011", "2012"],
"description": "Allows billing agents to intercept ringing inbound calls"
}
}

MCP Response:

{
"success": true,
"data": {
"id": 6,
"name": "Billing Team",
"priority": 10,
"memberCount": 3,
"message": "Call Pickup group 'Billing Team' created successfully."
}
}

[!WARNING] Single Ringing Call: If multiple extensions are ringing, only one call is picked up per *8 dial.

[!WARNING] Priority Matters: Lower priority number = checked first. Plan your priorities carefully.

[!IMPORTANT] Pickup Codes: Default codes are *8 (group) and ** (direct). These are configured in Feature Codes.

  1. Use Descriptive Names: “Sales Team” not “Group 1”
  2. Set Appropriate Priorities: Consider which groups should be checked first
  3. Enable Skip Busy: Unless you need to interrupt active calls
  4. Test Permissions: Verify who can pick up whom
  5. Review Regularly: Remove departed employees from groups

[!CAUTION] Privacy: Pickup groups allow anyone in the group to intercept calls. Consider confidentiality needs.


Symptom Possible Cause Solution
“No call to pick up” No ringing call in group Verify member is actually ringing
Can’t pick up specific ext allowPickup = false Check member permissions
Wrong call picked up Priority order Adjust group priorities
Pickup not working Feature code disabled Check *8 is enabled
DND blocking pickup dndOverride = false Enable DND override if needed

List pickup groups:

SELECT pg.name, pg.priority, pg.enabled,
COUNT(m.id) as member_count
FROM public.pickup_groups pg
LEFT JOIN public.pickup_group_members m ON pg.id = m.pickup_group_id
WHERE pg.domain_id = [domain_id]
GROUP BY pg.id
ORDER BY pg.priority;

Check extension’s groups:

SELECT pg.name, pgm.is_member, pgm.allow_pickup
FROM public.pickup_group_members pgm
JOIN public.pickup_groups pg ON pgm.pickup_group_id = pg.id
WHERE pgm.extension = '1001' AND pg.domain_id = [domain_id];

Find ringing extensions (runtime):

Terminal window
fs_cli -x "show channels" | grep RINGING

Term Definition
Pickup Group A set of extensions that can intercept each other’s ringing calls
Group Pickup Dialing *8 to pick up any ringing call in your groups
Direct Pickup Dialing **1001 to pick up a specific extension’s call
isMember Permission that allows calls TO this extension to be picked up
allowPickup Permission that allows this extension to pick up others’ calls
Skip Busy Don’t interrupt extensions on active calls
DND Override Allow pickup even if target has Do Not Disturb enabled
Priority Order in which groups are checked (lower = first)
Pickup Tone Audio confirmation when pickup is successful
Intercept Technical term for picking up another extension’s call

Documentation last updated: January 2026