3CX PBX Admin & Diagnostics · git:20260821.b0139ac · 2026-08-21 · sha256 01243aa63a186829

3CX PBX Admin & Diagnostics git:20260821.b0139acA

Immutable. This exact content is served forever at /api/v1/blob/01243aa63a186829.

---
name: "3CX PBX Admin & Diagnostics"
description: >
  3CX's system-and-configuration surface: server time, PBX event log and
  application log search, service status, database schema and the
  read-only SELECT-only Query tool, DIDs, IP and phone blocklists, SIP
  trunks, call flow apps, and the configuration write/delete actions that
  change what calls the PBX accepts or how they route.
when_to_use: >-
  When diagnosing a PBX-level issue, auditing PBX configuration, running a
  read-only query against PBX data, or changing blocklist, blacklist, or
  DID assignment. Use when: 3cx diagnostics, 3cx event log, 3cx services,
  3cx query, 3cx blocklist, 3cx blacklist, 3cx did, 3cx sip trunk, or 3cx
  call flow.
---

# 3CX PBX Admin & Diagnostics

## Overview

This is the plugin's system-level surface: diagnostics, the PBX's own
configuration inventory, a restricted database query tool, call flow app
details, and the smaller set of write/delete actions that change what
calls the PBX will accept or how they route.

## Read-Only Capabilities

Exact tool names are not published by 3CX — see the `api-patterns` skill
and call `tools/list` for the authoritative names on a connected PBX.

**System and diagnostics**

- Get current PBX server time
- Search/list structured PBX event log
- List PBX services and their state
- Search application logs

**PBX inventory and database**

- Describe a database table's schema
- List DIDs
- List IP blocklist entries
- List configured PBX peers
- List phone blacklist entries
- List accessible database tables
- List configured SIP trunks
- Run a read-only SQL `SELECT` query (the `Query` tool)

**Call flow tools**

- Get a call flow app's details
- Get a call flow app's files
- Get an edit URL for a supported PBX object
- List call flow apps

### The Query tool

The `Query` tool is hard-restricted server-side to read-only SQL `SELECT`
statements, regardless of the connecting account's 3CX role — this holds
even for an account that could otherwise change configuration. That
restriction is enforced inside the PBX itself.

It is *not* automatically safe from a Conduit-permission standpoint,
though, if this PBX is reached through Conduit's BYO connector rather than
a direct connection: Conduit's tiering heuristic reads the tool's *name*,
not the PBX's server-side enforcement. See the `api-patterns` skill's
section on BYO tool tiering — if the tool's real name doesn't start with a
recognized read verb, Conduit will still gate it as `write`. Check the
tool's actual granted tier rather than assuming `SELECT`-only implies
`read`.

## Write/Delete Capabilities — Read This Before Calling Any of Them

- Add an IP address to the IP blocklist
- Add a number to the phone blacklist
- Assign a DID
- Remove an IP blocklist entry
- Remove a phone blacklist entry

These directly change what calls and traffic the PBX accepts. An
incorrect IP blocklist entry can cut off a legitimate SIP trunk or a
remote worker's softphone. An incorrect DID assignment can silently
misroute inbound calls for an entire department, and nobody notices until
a customer calls in complaining the call never arrived. Treat these
exactly like any other production network-ACL or routing change: confirm
the exact value — the IP, the number, the DID — with the requester before
calling, and don't let a scheduled or unattended agent apply them.

## Common Workflows

### PBX health check

1. Get current PBX server time (confirms basic connectivity/liveness).
2. List PBX services and their state.
3. Search the structured event log for the recent window, looking for a
   pattern rather than a single isolated entry.

### Audit inbound call routing

1. List DIDs.
2. List call flow apps and get the details of any that own a DID under
   review.
3. Cross-reference against the queues/departments the DID should reach
   (see the `calls-queues` skill).

### "Why is this number blocked?"

1. List phone blacklist entries and IP blocklist entries.
2. If the number or IP is present and shouldn't be, remove it — confirm
   the exact value with the requester first; this is a write action.

### Ad hoc read-only report

1. List accessible database tables, then describe the relevant table's
   schema before writing a query.
2. Run the query through the `Query` tool. It can only `SELECT` — there is
   no path from this tool to a data change.

## Gotchas

- **`Query` is `SELECT`-only inside the PBX no matter what** — but don't
  assume that guarantees a `read` tier if this PBX is reached through
  Conduit's BYO connector (see above).
- **The call-flow "edit URL" tool hands back a link into the PBX's own web
  UI.** Treat it like any other admin-console link — something a human
  reviews and clicks, not something to feed into further automation
  unreviewed.
- **This is Alpha software** (3CX V20 Update 10 Alpha). Configuration tool
  behavior in particular is worth re-verifying against a real PBX rather
  than trusting this description months after it was written.

## Related Skills

- [API Patterns](../api-patterns/SKILL.md) — connection setup, permission inheritance, and BYO tool tiering
- [Calls, Queues & Profiles](../calls-queues/SKILL.md) — department/queue membership this configuration feeds into