Recorded-call notice on extension-to-extension calls

FeatureKlusterServices
Shipped
August 27, 2026 at 4:27 PM UTC
Author
Kamo
Commit
51ea2c3

Completes the third call path. Staff-to-staff calls never touch the attendant — they go from-internal -> ext-local, where the Dial belongs to FreePBX — so [from-internal-custom] now intercepts real extensions and routes them through [kamo-internal-connect], which owns its Dial and can carry aA(). Interception is only safe because of two things checked first, not assumed: - from-internal-noxfer, which from-internal consults BEFORE from-internal-xfer, does not resolve extensions. Had it done so, from-internal-custom would never have been reached and this would have silently done nothing. - from-internal-custom is included by from-internal-xfer ahead of from-internal-additional, so it sees extensions first. Anything that is not a real extension is handed straight back to FreePBX, so nothing else on the internal dialplan changes. DIALPLAN_EXISTS is tested rather than assumed, because a bare Goto to a missing extension hangs up on the caller instead of playing "not in service". Regression-tested all three internal cases: - 8912 (real, offline) -> kamo-internal-connect, Dial PJSIP/8912,15,aA(...), userfield DS:CHANUNAVAIL/VM:default, falls to Voicemail - 8080 (real, online) -> Dial PJSIP/8080,15,aA(...), phone rang - 7777 (ext-test) -> still reaches ext-test and loops back through from-pstn - 3000 (bad number) -> still reaches bad-number. It writes no CDR row, which is not a failure: bad-number does ResetCDR() and CDR_PROP(disable)=true by design. BOTH parties hear the AGENT recording on internal calls: there is no customer on the call, so the client-facing wording would be addressed to someone who is not present. Each side is its own global, so that is a one-line change. Internal no-answer plays vm-nobodyavail when the extension has no mailbox — deliberately NOT the customer queue, which is where inbound callers fall back.

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