Howwise RSS
VoIP & Phone Systems7 min read

FreePBX Call Parking and Pickup: Setup, Codes and BLF Keys

Short answer

FreePBX call parking and pickup are two features: parking holds a live call in a slot (70 to park, 71-78 to retrieve), while pickup (** plus extension, or *8) answers a call still ringing on another phone.

Key takeaways
  • Parking holds a connected call in a numbered slot; pickup only grabs a call that is still ringing.
  • FreePBX defaults: park by transferring to 70, retrieve from slots 71-78, directed pickup is ** plus the extension, group pickup is *8.
  • *8 only works between extensions that share a pickup group, which is the most common cause of pickup failures.
  • BLF lamps depend on a hint plus an allowed SUBSCRIBE context, so verify with core show hints before blaming the phone.
  • Keep the parking slot range clear of real extension numbers and set a parking timeout that matches how long staff really take to retrieve calls.

What is the difference between call parking and call pickup?

Parking holds a connected call in a numbered slot with music on hold, so any phone can retrieve it by dialing the slot number. Pickup is different: it answers a call that is still ringing at another extension, with no slot involved.

Use parking when a call is answered and the person needed is elsewhere: park it, page the colleague, they dial the slot. Use pickup when a colleague's phone is ringing and they are away from the desk.

Both are built on feature codes in the dialplan, but they use different Asterisk machinery (res_parking versus the Pickup application), so they fail for different reasons and are configured in different places.

ItemParkingPickup
Call stateAnswered, on hold in a slotStill ringing at another extension
FreePBX defaultsTransfer to 70, retrieve 71-78** plus extension (directed), *8 (group)
Who can retrieveAnyone who dials the slotOnly extensions allowed by pickup group (group) or anyone (directed)
Config locationApplications > Parking LotFeature Codes, plus Call Group and Pickup Group on each extension
Raw Asteriskres_parking.conf, Park(), ParkedCall()features.conf pickupexten, Pickup()

How do I set up a parking lot in FreePBX?

In FreePBX 15 and later the module is Applications > Parking Lot (older releases call it Parking). Create or edit the default lot and set the values below, then Submit and Apply Config.

The timeout behavior matters most. Asterisk's comebacktoorigin makes an unanswered parked call ring back to the extension that parked it, so staff hear it return instead of the caller sitting forever.

SettingTypical valueWhat it does
Parking Lot Extension70The number you transfer to in order to park
Number of Slots8Creates slots 71-78 (extension + 1 and up)
Parking Timeout45Seconds before the call rings back
Parked Music ClassdefaultMusic on hold class heard by the parked caller
Destination for TimeoutParker, or a fallback such as receptionWhere to send the call if the parker does not answer
Alert-Info / CID PrefixRing-back, or PARK:Makes returned calls recognisable on screen and by ring tone
  1. Open Applications > Parking Lot and edit the default lot.
  2. Set the parking extension to 70 and slots to 8.
  3. Choose a timeout of 45 to 90 seconds and a fallback destination such as reception.
  4. Set a CID prefix like PARK: so staff know the returning call was parked.
  5. Submit, click Apply Config, then test from two phones.
Warning: Parking slots are real dialable extensions. Never let slot numbers overlap with user extensions, voicemail or ring groups. If your extensions are 100-199, 70-78 is safe; if you use 7x extensions, move the lot to 700.

How do I park a call and retrieve it?

Parking in FreePBX is transfer based. While on the call, blind transfer to 70. The system announces the slot number (for example 71) to the parker and the caller hears music on hold. An attended transfer to 70 also works, and the parker hears the slot before hanging up.

To retrieve, anyone dials the slot, 71 in this example, from any extension that can reach the parkedcalls context. If nobody retrieves it within the timeout, it rings back to the parker.

On a desk phone, the sequence staff learn is: press Transfer, dial 70, press Transfer again (or send), read the slot number from the screen, then tell the colleague 'call is on 71'.

Tip: Most deskphones have a spare programmable key; set it to blind transfer to 70 so parking becomes a single press instead of a menu sequence.

How do pickup groups and the pickup feature codes work?

FreePBX exposes two pickup codes. Directed pickup is ** followed by the extension, for example **104 answers the call ringing at 104, and it works regardless of groups. Group pickup is *8, which answers any ringing call within your own pickup group. Both live under Settings > Feature Codes.

Group pickup is why 'no matching call' appears so often. *8 only grabs calls ringing at extensions whose Call Group matches your Pickup Group. Set these on each extension under Applications > Extensions > Advanced. For a small office, put every extension in group 1 for both fields.

The raw Asterisk equivalents are shown below. Older chan_sip used callgroup and pickupgroup; PJSIP uses call_group and pickup_group, or the singular named_call_group and named_pickup_group for non-numeric names.

; features.conf  [general]
pickupexten = *8        ; group pickup code

; pjsip.conf  endpoint section
[104]
type=endpoint
call_group=1
pickup_group=1
; or, for named groups:
; named_call_group=office
; named_pickup_group=office

; extensions.conf  directed pickup, FreePBX style
exten => _**X.,1,Pickup(${EXTEN:2}@PICKUPMARK)
Warning: Directed pickup lets anyone intercept any ringing call, including calls meant for a manager. If that matters, leave directed pickup off and rely on group pickup with sensible group boundaries.

How do I program BLF keys so they light up and pick up?

A BLF key is a SUBSCRIBE to the extension's presence. Asterisk answers using a hint, then sends NOTIFY dialog events. Lamp convention: idle is green or off, ringing is flashing red, busy is solid red. If the key is pressed while the monitored extension is ringing, the phone sends the pickup code plus extension (for example **104), which is how one-touch pickup works. When idle, the key just dials the extension.

The phone needs a pickup code configured next to the BLF key. Field names vary by model and firmware, so confirm on your version's key page.

Parking slot lamps use hints like the ones FreePBX generates for you. Monitoring the slot on a key lights it when a call is parked there, and pressing it retrieves the call.

PhoneKey typeValuePickup code field
YealinkDSS Key > BLFExtension, e.g. 104Extension field: ** (directed pickup)
Poly / PolycomAttendant resource list, type normalAddress 104call.directedCallPickupString = ** and directed pickup enabled
GrandstreamMulti-Purpose Key > Busy Lamp Field104 and the accountCall pickup code in the account feature settings
FanvilFunction Key > BLF104@accountExtension field: ** or *8
; hints (FreePBX generates these; shown for raw Asterisk)
exten => 104,hint,PJSIP/104
[parkedcalls]
exten => 71,hint,park:71@parkedcalls
exten => 72,hint,park:72@parkedcalls

Why does it fail? Troubleshooting by symptom

Start with the CLI before touching phones. These commands answer most questions:

SymptomLikely causeConfirm and fix
Pickup says no matching callDifferent pickup groups, or a trunk call not tied to a grouppjsip show endpoint 104, check call_group and pickup_group; align them
BLF key never lightsNo hint, or subscribe context not reaching the hintcore show hints; confirm the extension and context are listed
BLF lights but fails to pick upPhone has no pickup code setSet ** or *8 in the key's extension field
Parked call never returnscomebacktoorigin disabled or no timeout destinationCheck res_parking.conf and the Parking Lot timeout destination
Slot dial gives busy or invalidparkedcalls context missing from the dialing contextdialplan show parkedcalls; parkedcalls show
Park button works but no audioNAT or SRTP mismatchpjsip set logger on and rtp set debug on; check external_media_address and local_net
asterisk -rvvv
core show hints
pjsip show endpoint 104
parkedcalls show
pjsip set logger on
rtp set debug on

What is a good small-office setup and test checklist?

For reception plus 5 to 8 staff, use one lot, 8 slots, and one shared pickup group. Keep it simple: staff remember one parking code and one pickup code.

Reception gets the slot BLFs because that desk parks the most calls. Give each staff phone BLFs for the colleagues they cover most.

Choose the timeout from real behavior: 45 seconds suits a small office where people are nearby; extend it to 90 seconds or more if staff work on several floors. Music on hold for parked calls is set with the Parked Music Class (parkedmusicclass in res_parking.conf), so verify the class exists or callers hear silence.

  1. Set all extensions to Call Group 1 and Pickup Group 1.
  2. Create the parking lot with extension 70 and 8 slots.
  3. From extension A, call extension B; before B answers, press the BLF key on C and confirm the call moves to C.
  4. Answer a call on A, blind transfer to 70, note the slot, and retrieve from B by dialing it.
  5. Park another call and leave it; confirm it rings back to the parker after the timeout.
  6. Run core show hints and confirm each BLF key matches a hint entry.

Common questions

Why does *8 pickup not work for calls coming in from a trunk?

Group pickup only matches calls ringing at an extension in your pickup group. If the inbound call goes through a ring group or queue, the ringing channel may not carry the group, so use directed pickup (** plus extension) instead.

Can I change the parking and pickup codes?

Yes. The pickup codes can be changed under Settings > Feature Codes, and the parking extension and slots under Applications > Parking Lot. Remember to update any BLF keys and Apply Config afterward.

Do parked calls survive an Asterisk reload?

No. Parked calls live in memory, so a full restart drops them. A module or dialplan reload normally leaves them, but avoid reloading res_parking while calls are parked.

How many slots do I need?

Eight covers most small offices. Count the most calls you would plausibly hold at once and add a margin, because a full lot rejects new parks.

Related topics:freepbxasteriskcall parkingcall pickupblf