Repository navigation
v1.7.2
v1.7.2 β Caller ID posture audit + posture report-card layout
Fifth tool in the Tier 1 compliance audit family. Extends the toll-fraud chain with Caller ID posture across trunks, outbound routes, and extensions.
New tool: fm_audit_caller_id_posture
Detects:
- Trunk has no outbound Caller ID β calls leave the system without a CID.
- Route has no CID AND every trunk in its priority list is also blank β sibling signal to the per-trunk findings (one bad trunk feeding many routes wants the route-level callout too).
- Route force-overrides extension CID (
outcid_mode=on) β info-level, surfaces precedence so admins know extension-level Caller IDs are ignored on that route. - Extension CID override doesn't match any owned DID β potential spoof / STIR-SHAKEN attestation drop. NANP-normalized comparison (
+1 555 123 4567and5551234567round-trip equal);_.any-DID catchall andsno-CID-supplied markers excluded from the owned-DID set. - Placeholder / test strings at any tier β
default,freepbx,asterisk,sangoma,anonymous,5555555555,1111111111, etc. - Malformed numbers β not 7β15 digits after normalization.
Read-only, PERM_ADMIN, BMO-only: Core->listTrunks + getTrunkDetails, Core->getAllRoutes + getRouteTrunksByID, Core->getAllDevicesByType + getUser, Core->getAllDIDs. No direct writes, no commercial-module dependencies.
Findings for extensions include a clickable Edit in GUI link that hands the fix back to FreePBX's native extensions page (config.php?display=extensions&extdisplay=<id>). Frogman doesn't try to fix CID itself β trunk and route CID changes touch precedence rules and STIR-SHAKEN signing config that are best left to the GUI.
Chat phrases: audit caller id, audit cid, audit caller id posture.
fm_audit_posture report-card redesign
Chat output redesigned to a report-card layout: Score: X of N clean, grouped Action needed / Clean / Errored sections, per-audit display names ("Caller ID Posture") instead of raw tool slugs. The rollup automatically picks up the new audit.
Tool count
226 tools (+1).