VoIP.info Guide

FreePBX Queue Priorities: caller weight, channel scope and queue order

Assign a documented queue priority to the intended caller path, preserve it across the configured destination chain and distinguish caller ordering from agent penalty, staffing, service level and answer outcome.

Reviewed 2026-10-12Sangoma Queue Priorities overview and PBX GUI 13 user guide, FreePBX Queue Priorities release/17.0 repository metadata and Queueprio.class.php dialplan source, and current Asterisk QUEUE_PRIO and Queue application documentation reviewed October 12, 2026; the Sangoma screen guide is explicitly version 13, repository state does not prove an installed module or loaded channel state, and no PBX, module, priority object, route, queue, caller, member, channel variable, queue log, SLA result or call was inspected or testedAdvancedDocumentation based · not lab tested

Define the policy before choosing a number

Sangoma documents a default caller priority of zero and a Queue Priorities range from 0 through 20, with higher values placed ahead of lower-priority callers. Record the business class, eligible source paths, value, effective period, destination, owner, review date and rollback before saving an object.

The number is a relative queue-order input, not a promised wait time or service-level result. Document how calls of the same priority are ordered and how the policy treats callers already waiting when a higher-priority call arrives.

Keep caller priority distinct from agent penalty

Queue priority weights callers waiting for service. Queue member penalty controls which agents are eligible or preferred. They operate on different sides of queue matching and should not be merged into one “priority” label.

Likewise, queue weight across queues, service-level thresholds, wrap-up time, member availability and ring strategy are different controls. A high caller priority cannot create an available agent, repair a paused member or override a queue capacity or timeout.

Trace the release/17.0 channel variable

The FreePBX release/17.0 class source generates an app-queueprio target that sets inherited _QUEUE_PRIO to the configured value and then goes to the selected destination. Asterisk documents QUEUE_PRIO as the queue-priority channel variable. Verify the installed module, generated target, loaded dialplan and live channel value rather than treating repository code as runtime proof.

The leading underscore in the generated assignment is a channel-inheritance choice. Follow Local channels, transfers and other created legs explicitly; shared call identifiers do not prove that every leg owns the expected value.

Preserve the value until the queue actually admits the caller

Sangoma states that the priority can persist even when the immediate destination is not a queue, so map each IVR, time condition, announcement, language or other handoff between the priority object and Queue entry. Record any step that replaces, clears or fails to inherit the variable.

A caller reaching the queue context is not yet proof of admission. Queue limits, join-empty policy, timeouts, destination branches and application errors can prevent or end waiting before ordering affects an answer.

Measure ordering with comparable evidence

For an authorized test, use calls that enter the same queue under controlled member availability. Capture arrival time, channel identity, effective QUEUE_PRIO, queue-entry event, position changes, member offers, answer or exit and queue-log records. Compare calls only where queue, availability and policy conditions are materially equivalent.

Do not infer priority from one short wait or an anecdotal answer order. A later high-priority arrival may move ahead of lower priorities, while ringing, member acceptance, abandoned calls and simultaneous events can still affect what observers see.

Govern priority as an auditable service policy

Review who can route callers through each priority object, especially public IVRs, inbound numbers and customer-controlled inputs. Avoid an unprotected route that lets any caller claim a privileged class. Monitor distribution by priority, queue, wait, abandonment and answer without presenting the configured number as a guaranteed SLA.

Change one policy value or source path at a time, apply configuration through supported controls and retest lower, equal and higher classes plus an unauthorized boundary. This workflow is documentation-derived and was not reproduced on an installed or laboratory FreePBX system.

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.