Shared behaviour

Settle, retry, wrap, pause, decline, redial.

These rules are the same in Progressive and Predictive. Hangup writes hold_dialer_call_attempts. Only Not Connected increments call_count and uses [2,2,2,2]. Abandoned is a fixed 5-minute retry. Final Disposal is archived to hold_dialer_disposed.

Hangup map

AMI / conditionStored status
DialStatus = ANSWER (talked)Received
Customer left on hold / connectingAbandoned
Cancel, DONTCALL, INVALIDARGS, causes 1, 21, 22, 27–29Rejected
NOANSWER, BUSY, CONGESTION, CHANUNAVAIL, causes 16–20Not Connected

Settle only updates rows still Calling. Agent, duration, and hold seconds are on the attempt row, not master.

Retry

Not ConnectedAbandoned
Wait1st of a round: retry_seconds same day, else next work_start. 2nd of a round: 1 / 7 / 14 daysAlways 5 minutes
Pattern[2,2,2,2] — four rounds of two triesIgnored
max_tries8th NC copies the row to hold_dialer_disposed and deletes it from masterIgnored
call_countIncrements on this settleUnchanged

After the first completed NC pair, priority_id becomes 2 (Hold + Not Connected). Claim order puts Abandoned first, then priority_no, then Pending / Callback / Not Connected, then oldest attempt. Any idle ready agent may claim any eligible lead.

Wrap and working hours

buffer_time is per-agent wrap after a connected call. A miss with no lead retries claim every 10 seconds. Originate is refused outside work_startwork_end on work_days except a due callback, which originates even after hours.

Pause and decline

Panel pause writes hold_dialer_employee.panel_status = pause, queue-pauses the extension, and opens a row on hold_dialer_agent_pauses (source agent or auto on leave). Ready closes that row.

SIP deny on a live predictive hold records hold_dialer_agent_declines and blocks that extension for the same caller for decline_cooldown_seconds (default 30). The customer stays on hold. The next offer is any idle agent.

Redial

Socket redial with oli_id from a joined agent. Skips wrap and queue. No skill check. ondemand: true allows redial from pause if SIP is idle. Reopens Received / Not Connected / Abandoned rows still on master. Finally disposed leads are gone from master until CRM pushes the oli_id again. Payload is in the Socket guide.

Config that actually moves the needle

SettingUsed?Meaning
dialer_typeYesProgressive or Predictive
buffer_timeYesWrap seconds
predictive_ratioYesCustomer legs per idle agent
decline_cooldown_secondsYesDecline block on the same hold
max_linesYesCap ringing + hold + connecting
max_tries / retry_* / hoursYesNot Connected only
hold_timeout_secondsNoUnused leftover
max_abandon_rateNoUnused leftover