vicigeeksimple guides
Browse
Data and integrations

Running your system · Database reference

Inspect the VICIdial database and trace a test lead

Find the configured database, inspect its tables and engines, and trace a test lead to its list and campaign using read-only queries.

Start the guide

01 / 05

1. Identify the database and version

  1. Ask the administrator for the database name and a least-privilege read-only connection; do not assume the name is asterisk.
  2. In the SQL client run SELECT DATABASE(), VERSION(); and confirm the selected database with the administrator.
  3. Inspect the installed application and schema versions in Admin → System Settings or with your administrator's version inventory.
Before you use it
Use a read-only account configured for the lab database. Substitute your own database name on another system.
Lab schema version
mysql --batch --skip-column-names vicidb -e 'SELECT db_schema_version FROM system_settings;'
Evidence · Recorded ViciBox 12 lab · SVN 4037 · read-only inspection

Captured demo response · 2026-11-04T08:36:24.038361Z. Any filtering, hidden values or test-only data are identified in the capture label. Select Replay transcript to read the recorded output.

Command output line: mysql --batch --skip-column-names vicidb -e 'SELECT db_schema_version FROM system_settings;'
1748
Success looks like
The lab returned 1748 at 08:36 UTC on November 4, 2026.
Stop if
Check the actual database name and read privileges; do not assume a missing result means schema 1748.

Observed database schema version

Open to enlarge
Rendered lab command showing database schema version 1748.
Rendered transcript of the exact read-only command executed on the ViciBox 12 lab, SVN 4037, 2026-11-04.
Capture detailsThis inspection does not establish a completed call or restore.

You should seeThe selected name and server version identify the instance you are inspecting. In the November 2026 lab the configured database was vicidb; that is an observation, not a universal default.

02 / 05

2. Inspect tables and engines

  1. Run SHOW TABLES; to see the tables present in this database.
  2. Run SELECT TABLE_NAME, ENGINE FROM information_schema.TABLES WHERE TABLE_SCHEMA = DATABASE() ORDER BY TABLE_NAME;.
  3. Run DESCRIBE vicidial_list; and DESCRIBE vicidial_lists; before writing a query against either table.

You should seeThe live column definitions and engine values are authoritative for this installation. A missing table or denied query means stop and check the selected database and grants.

03 / 05

3. Trace one test lead

  1. In Lists → Show Lists open the disposable list and privately record its List ID. In authorized lead search open one known synthetic lead and record its Lead ID.
  2. Open the verified read-only client: sudo mysql --defaults-file=/etc/vicidial-readonly.cnf. Check SELECT CURRENT_USER(), DATABASE(); before any query.
  3. Inspect the columns, then replace12345,90001 and the date bounds in the query below. Use the test’s actual database/report timezone and an inclusive start/exclusive end.
  4. Read the lead/list/campaign result first. Read outbound vicidial_log and inbound vicidial_closer_log separately; one lead can have several attempts and not every call path writes the same source.
  5. Compare the candidate event with the independently known test time, campaign/list and saved disposition in User Stats. An empty result is a scoped observation, not proof that no call happened elsewhere. Type quit when finished.
Before you use it
Enter in the verified read-only SQL client, not a shell. Replace the fixture IDs/date window and confirm every selected column exists on this build. Keep record-level results private.
Trace one synthetic lead and its bounded outbound/inbound history
SHOW COLUMNS FROM vicidial_list;SHOW COLUMNS FROM vicidial_lists;SHOW COLUMNS FROM vicidial_log;SHOW COLUMNS FROM vicidial_closer_log; SELECT l.lead_id,l.list_id,l.status AS current_lead_status,ls.campaign_idFROM vicidial_list AS l JOIN vicidial_lists AS ls ON ls.list_id=l.list_idWHERE l.lead_id=12345 AND l.list_id=90001; SELECT uniqueid,lead_id,list_id,campaign_id,call_date,status,length_in_secFROM vicidial_logWHERE lead_id=12345 AND list_id=90001  AND call_date >= '2026-11-07 00:00:00' AND call_date < '2026-11-08 00:00:00'ORDER BY call_date,uniqueid LIMIT 20; SELECT closecallid,lead_id,list_id,campaign_id,call_date,status,length_in_secFROM vicidial_closer_logWHERE lead_id=12345 AND list_id=90001  AND call_date >= '2026-11-07 00:00:00' AND call_date < '2026-11-08 00:00:00'ORDER BY call_date,closecallid LIMIT 20;
Reader-run example · not executed for this guide

This example has no recorded result here. Follow its preparation, expected result and stop conditions before using it.

Success looks like
The lead maps to one expected list/campaign; each history source returns zero or bounded candidate events. Match a known event independently rather than picking the latest row.
Stop if
Stop on wrong identity, schema differences, denied reads, timezone uncertainty or20 rows indicating the small scope may be truncated. Ask the report owner for archive coverage before widening the query.

You should seeThe current lead relationship and each selected history source have been checked independently; current lead status is not substituted for a call’s recorded outcome.

Check the same event in User Stats

04 / 05

4. Check custom data separately

  1. Open the test list's Custom Fields screen and note the list ID and field labels.
  2. Run SHOW TABLES; and find the exact table name for your verified numeric test list ID. For example, only if custom_90001 is present, run DESCRIBE custom_90001;.
  3. Compare the installed schema with the official custom-fields document before integrating.

You should seeCustom fields are list-specific. Never infer that another list has identical columns or write directly to a table merely because it exists.

05 / 05

Recorded lab terminal checks

Recorded lab checks were run against the synthetic demo on November 4, 2026. These read-only observations supplement the configuration steps above; they do not establish that a call, route, recording or report workflow succeeded.

Recorded lab observation: List 90001 was active and associated with LAB01; active list does not override inactive campaign.

Recorded lab observation: Three synthetic lab leads were NEW. Status counts do not prove eligibility, successful dialing or lead handling.

Recorded lab observation: Schema metadata only; no application behavior tested.

Recorded lab observation: The hopper relation columns result describes the installed schema, not a completed workflow.

Before you use it
These historical commands were captured in a root shell using database vicidb and /etc/vicidial-readonly.cnf. The private client file in Create a read-only database account for safe VICIdial queries is root-owned with mode 0600: use the approved root context from that guide, or invoke mysql through sudo as it describes. A regular user cannot read that file. On your own server use your authorized connection and test campaign/list IDs; changed commands are not this exact capture. Do not print the credential file.
Read-only demo checks
mysql --defaults-extra-file=/etc/vicidial-readonly.cnf --batch vicidb -e "SELECT list_id, campaign_id, active FROM vicidial_lists WHERE list_id=90001 AND campaign_id='LAB01';"mysql --defaults-extra-file=/etc/vicidial-readonly.cnf --batch vicidb -e "SELECT status, COUNT(*) AS lead_count FROM vicidial_list WHERE list_id=90001 GROUP BY status ORDER BY status;"mysql --defaults-extra-file=/etc/vicidial-readonly.cnf --batch vicidb -e "SHOW COLUMNS FROM vicidial_list LIKE 'list_id';"mysql --defaults-extra-file=/etc/vicidial-readonly.cnf --batch vicidb -e "SHOW COLUMNS FROM vicidial_hopper WHERE Field IN ('campaign_id','list_id','status');"
Evidence · Actual read-only SSH captures · synthetic demo records · ViciBox 12 / SVN 4037

Captured demo response · 2026-11-04T22:37:48.369112Z. Any filtering, hidden values or test-only data are identified in the capture label. Select Replay transcript to read the recorded output.

Command output line: mysql --defaults-extra-file=/etc/vicidial-readonly.cnf --batch vicidb -e "SELECT list_id, campaign_id, active FROM vicidial_lists WHERE list_id=90001 AND campaign_id='LAB01';"
list_id campaign_id active
90001 LAB01 Y
Command output line: mysql --defaults-extra-file=/etc/vicidial-readonly.cnf --batch vicidb -e "SELECT status, COUNT(*) AS lead_count FROM vicidial_list WHERE list_id=90001 GROUP BY status ORDER BY status;"
status lead_count
NEW 3
Command output line: mysql --defaults-extra-file=/etc/vicidial-readonly.cnf --batch vicidb -e "SHOW COLUMNS FROM vicidial_list LIKE 'list_id';"
Field Type Null Key Default Extra
list_id bigint(14) unsigned NO MUL 0
Command output line: mysql --defaults-extra-file=/etc/vicidial-readonly.cnf --batch vicidb -e "SHOW COLUMNS FROM vicidial_hopper WHERE Field IN ('campaign_id','list_id','status');"
Field Type Null Key Default Extra
campaign_id varchar(8) YES NULL
status enum('READY','QUEUE','INCALL','DONE','HOLD','DNC','RHOLD','RQUEUE') YES READY
list_id bigint(14) unsigned NO NULL
Success looks like
Compare the returned rows with the specific task and capture time. An empty result or zero count is an observation to explain, not a complete diagnosis or evidence of a working call.
Stop if
For a connection, permission, schema or missing-test-ID error, check the approved client configuration and installed version first. Do not broaden permissions or change production data to match this demonstration.

Recorded lab terminal: lab list

Open to enlarge
Rendered actual SSH command and output for lab list
Rendered actual SSH transcript captured 2026-11-04T22:37:48.369112Z, ViciBox 12 / SVN 4037.
Capture detailsRead-only observation, not a completed call or routing test. Display trims blank space; enlargement opens the complete original. SSH client post-quantum warning on stderr omitted; SQL stdout preserved. Aggregate counts or schema only; no customer rows.

Recorded lab terminal: lab list status counts

Open to enlarge
Rendered actual SSH command and output for lab list status counts
Rendered actual SSH transcript captured 2026-11-04T22:37:51.042733Z, ViciBox 12 / SVN 4037.
Capture detailsRead-only observation, not a completed call or routing test. Display trims blank space; enlargement opens the complete original. SSH client post-quantum warning on stderr omitted; SQL stdout preserved. Aggregate counts or schema only; no customer rows.

You should seeThe recorded lab command and output show exactly what the demo returned. Use the original workflow’s separate end-to-end acceptance checks before declaring success.

Checks and sources

What was checked

  • Table/column inspections and the retained November 4 lab captures establish that installation’s schema and synthetic counts only.
  • The new lead/history queries are unexecuted templates with explicit IDs, timezone and source limits; no matching event is invented.
  • Custom-field tables remain list-specific. Installed definitions and the report owner determine archive coverage; this page does not claim a universal object count or callback-queue identity.

Primary references

Sources

  1. VICIdial custom fields referenceVICIdial Group · accessed November 4, 2026
  2. VICIdial Non-Agent API referenceVICIdial Group · accessed November 4, 2026
  3. MariaDB information_schema tablesMariaDB · accessed November 4, 2026