Recorded-call notice on direct-dialled extensions too

FeatureKlusterServices
Shipped
August 27, 2026 at 4:14 PM UTC
Author
Kamo
Commit
104035a

A caller who dials an extension over the greeting now hears the notice as well. That path went through from-did-direct, where the Dial belongs to FreePBX's ext-local, so A() could not be attached to it — the caller reached an agent with no notice at all. Direct dials now route through [kamo-direct-connect], which owns its own Dial and therefore carries aA(agent:client) exactly like the queue path. The cost is re-implementing the two things ext-local gave for free, both preserved here: - ring timer: per-extension AMPUSER/<ext>/ringtimer where set, else FreePBX's RINGTIMER_DEFAULT (15s), so an extension rings for as long as it used to - no-answer: the extension's own mailbox if it has one, otherwise back into the queue for a live person rather than dead-ending the caller. The queue's 10-minute timeout still carries them to the main mailbox eventually. Kept separate from [kamo-agent-connect] deliberately. That context is reached by queue members, where a no-answer must fall back to app_queue so it can try the next agent; adding a voicemail fallback there would drop a QUEUED caller into one agent's personal mailbox. Verified live: 7255 (no mailbox, offline) rang 15s then returned to the queue, which rang both agents and connected on 8080. Branch selection is now visible in the CDR via userfield — the 8912 run recorded DS:CHANUNAVAIL/VM:default, i.e. it correctly fell through to Voicemail. Asterisk then logged "No audio available on Local/...;2", which is the medialess test channel, not the dialplan: a channel from `channel originate ... application Wait` has no media path for playback, the same reason MixMonitor returns an empty file on it.

All changes

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing