- Shipped
- 27 августа 2026 г. в 16:14 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.