Choose the pickup method before diagnosing it
Asterisk documents three related but distinct mechanisms. The configured pickup extension selects a ringing channel through group membership. Pickup() can use the requesting channel's pickup groups or target an extension and optional context, including a PICKUPMARK. PickupChan() targets channel names or unique IDs and can optionally use prefix matching. A successful result from one method does not prove the others are configured.
Define whether users need broad group pickup, directed pickup of one extension, a managed ring-group shortcut or a device-specific BLF action. Keep call pickup separate from call parking, queue answer, transfer, call waiting and barge-in; those features have different call ownership and authorization.
Put membership on the correct channel
call_group identifies the numeric groups to which a ringing PJSIP channel belongs, while pickup_group identifies the numeric groups the requesting channel may pick up. Named equivalents are separate, case-sensitive values. A named group called 4 is not numeric group 4. Numeric groups range from 0 through 63, with at most 64 groups.
The Asterisk guide warns that call-group values must be effective on the outgoing channel that is ringing. Setting a value only on the caller's inbound channel can therefore look correct in static configuration while the pickup search finds nothing. Pickup-group values must be effective on the requesting channel before it invokes pickup. Preserve both live channel identities and their effective group values.
Keep target extension, context and channel distinct
Directed Pickup(extension@context) searches for a ringing channel associated with that target; omitting the context uses the current context. A duplicate extension number in another context is a different target. PickupChan() instead accepts channel names or unique IDs, and its prefix option can match more broadly than intended.
Do not translate a visible extension label, caller ID or BLF label directly into a channel name. Record the dialed destination, dialplan context, created outbound channel, unique ID and current ringing state. Prefer the narrow managed mechanism that matches the requirement rather than building a broad prefix search around display names.
Treat pickup as a time-sensitive bridge transition
Pickup acts on a channel while it is ringing. If another endpoint answers, the caller abandons the call, a timeout sends it elsewhere or a forwarding branch replaces the channel, the original target may no longer be eligible. A failure after several seconds can therefore be a race or routing transition rather than a group configuration error.
Correlate the requesting channel and target channel using timestamps, unique IDs and linked IDs. Asterisk's AMI Pickup event exposes both channel and target-channel fields when pickup occurs, which is stronger evidence than a phone beep or a changed lamp. A bridge and two-way audio remain separate acceptance results after selection.
Preserve authorization and privacy
Pickup lets one user answer a call intended for another position. Design numeric or named groups around job responsibility, location, privacy and after-hours policy rather than assigning every endpoint to one office-wide group by convenience. Directed pickup also needs an explicit authorization boundary; knowing an extension number is not a sufficient business rule.
Exclude sensitive, executive, clinical, legal or restricted lines unless the responsible owner approves the interception model. Keep audit data proportionate and protected. A BLF subscription that reveals ringing state does not by itself authorize pickup, and a pickup feature code should not be exposed through an untrusted inbound route.
Test exact states and failure branches
In an authorized test, capture the Asterisk branch, loaded PJSIP endpoint objects, effective feature code and both channels' group values. Test group pickup and directed pickup separately while the target is ringing, after another endpoint answers, after timeout, when the requester lacks permission, with duplicate extension numbers in different contexts and through each approved ring-group or BLF workflow.
Record the selected target, bridge, caller identity, audio directions and final disposition. Remove temporary event or protocol logging and protect identifiers. No Asterisk host, endpoint, channel, group, feature code, ring group, BLF, bridge, identity, audio path, availability, compatibility, price or live call was inspected or tested for this guide.
Sources & applicability
Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.
- Asterisk call-pickup architecture ↗
- Asterisk 22 res_pjsip pickup-group options ↗
- Asterisk certified 22.8 Pickup application ↗
- Asterisk PickupChan application ↗
- Asterisk 22 AMI Pickup event ↗
- Sangoma FreePBX feature-code descriptions ↗
- Sangoma FreePBX Ring Groups guide ↗
- Sangoma phone BLF key behavior ↗
Examples require adaptation to your topology. No live PBX or hardware testing is claimed.