VoIP.info Troubleshooting

Asterisk AMI parked call is missing, in the wrong slot, times out or retrieves incorrectly

Trace one disputed parked call through exact channel identity, action response, list framing, lot and space assignment, lifecycle reason, retrieval selection, timeout routing and media outcome.

Reviewed 2026-10-17Current branch-23-generated and branch-22 AMI Park, ParkedCalls and Parkinglots action references, current ParkedCall, UnParkedCall, ParkedCallGiveUp and ParkedCallTimeOut event references, branch-22 res_parking and ParkedCall application references, and the AMI v2 specification reviewed October 17, 2026; action acceptance, channel identity, parked-state event, snapshot framing, announcement, slot assignment, retrieval, media, timeout routing and caller outcome remain separate evidence boundaries; installed branch, loaded res_parking module, manager permissions, event filters, generated FreePBX configuration, parking lot, dialplan and endpoint behavior remain deployment specific; no PBX, module, config, manager account, session, parking lot, channel, bridge, event stream, endpoint, packet, audio or live call was inspected or testedAdvancedDocumentation based · not lab tested

Freeze one disputed parking lifecycle

Preserve node and release, res_parking state, manager account permissions, request and response, ActionID, Channel, TimeoutChannel, AnnounceChannel, requested lot, space and timeout, Uniqueid, Linkedid, bridge events, list frames, all parking lifecycle events, retrieval dial string, timeout route and caller outcome. Redact credentials and personal numbers. If FreePBX owns the lot, also preserve its configuration and generated dialplan.

Classify the earliest missing boundary: denied or wrong-channel action, wrong lot, requested-space conflict, event visibility, incomplete list framing, wrong retrieval selection, give-up, timeout, bad return route, announcement-only failure or post-retrieval media failure.

Prove the selected channel, lot and assigned space

Resolve the target from a same-node current channel snapshot before issuing Park. A caller ID, endpoint label or Linkedid alone does not establish which live leg should enter parking. Compare the requested lot and space with the actual Parkinglot and ParkingSpace in ParkedCall; do not assume the request was honored when a space was occupied.

Keep the lot name, its park access extension, its space range and the retrieval extension distinct. A correct announcement to AnnounceChannel does not prove the call remained parked, and a missing announcement does not prove that parking failed.

Reconcile response, event filters and snapshot framing

Confirm the manager account has the required write authority for Park and read visibility for CALL-class parking events. Inspect the AMI event mask and filters. Correlate raw events using exact parkee identities, lot, space and time; retain frames that show ParkedCall, UnParkedCall, ParkedCallGiveUp or ParkedCallTimeOut.

For ParkedCalls and Parkinglots, preserve the request, ActionID, every row or event and actual terminal framing. The reviewed generated action pages do not document a completion event for these lists. A collector that ends on timeout or socket silence can make an active call appear missing; verify installed-version behavior rather than adding an undocumented event name.

Distinguish retrieval choice from retrieval outcome

Inspect the exact dialplan or application invocation used for retrieval. The ParkedCall application resolves the lot from explicit argument, PARKINGLOT, channel setting or default, in that order. Without an explicit space it retrieves the first available call, which may be a different caller. Compare the selected lot and space with UnParkedCall parkee and retriever identities.

UnParkedCall proves the documented retrieved-and-reconnected transition, not audible two-way speech or a successful business handoff. If identities match but media fails, move to bridge, RTP and endpoint diagnostics without rewriting parking configuration.

Explain timeout and give-up from the correct branch

ParkedCallGiveUp identifies a parked channel that hung up without being answered. ParkedCallTimeOut identifies timer expiry. Reconcile the request Timeout in milliseconds, configured lot parkingtime, remaining event ParkingTimeout in seconds, parking duration and clock source before calling a timer early or late.

For timeout, inspect comebacktoorigin, comebackcontext and the generated dialplan plus PARKING_SPACE, PARKEDLOT, PARKER and PARKER_FLAT. A timeout event can be correct while the return extension, parker identity or endpoint route is wrong. Fix the first demonstrated routing boundary.

Repair minimally and retest all terminal reasons

Correct only the proved permission, channel selector, lot, space conflict, event filter, collector framing, retrieval argument, timeout unit, comeback route or media defect. Preserve the previous state and use a disposable authorized call to repeat park, exact retrieval, timeout and caller-hangup cases. Confirm the observed event reason and caller outcome independently.

Do not test with active customer calls or treat a successful AMI response as a call-quality result. No PBX, module, config, manager account, session, parking lot, channel, bridge, event stream, endpoint, packet, audio or live call was inspected or tested for this diagnostic; availability, compatibility, announcement, retrieval and media remain deployment specific.

Sources & applicability

Primary references for the technical details above. Operational examples and planning checklists are VoIP.info editorial guidance.

Examples require adaptation to your topology. No live PBX or hardware testing is claimed.