vicigeeksimple guides
Browse
All guides

Running your system · Stage 4 · Stock ViciBox lab

Inside a running ViciBox lab: the VICIdial filesystem map

Tour the VICIdial filesystem map on a running ViciBox lab: where the Perl scripts live, where their logs land, which configuration keys are safe to read, and why the completed-recordings folder is looked at but never listed in full.

Reader setup

Before you apply

Use the lab result as evidence scope, not a universal recipe.

  1. A completed ViciBox Express lab, powered on and reachable
  2. Root or sudo access on that lab host to read the paths in this lesson
  3. Agreement not to list or paste filenames from the completed-recordings folder
What you will prove
You can locate astguiclient's scripts and logs, read the non-secret half of its configuration file, and confirm the recordings folder and web root exist without exposing a customer's phone number.
Safety boundary
Filenames under monitorDONE can encode a real phone number or lead ID. This lesson lists directories only, and so should every lesson after it.

Reader path

How to use this article

  • Use it when: You need a bounded proof before changing a live environment.
  • Expected result: This helps you decide whether a specific migration or test path is ready for production.
  • Start here: Read the purpose and scope section first, then treat every command as an evidence collector—not a universal recipe.

Beginner curriculum

Stage 4 of 7: Build a ViciBox lab

Lesson 7 of 7 · Step 21 of 34

Why this map matters

The previous lesson toured the lab's running processes. This one tours the same lab through its files: where the software lives, where it writes evidence of what it did, and which configuration values are safe to look at in a shared terminal.

Knowing this map in advance means that when you eventually need to investigate a real problem, you already know where to look — and, just as importantly, where not to look without a specific reason. A filesystem map is also quieter than a process tour: nothing here changes because you looked at it, so it is a safe way to get oriented on any VICIdial host, including one you did not build yourself.

The five stops in this tour are ordered from least to most sensitive: the software itself, then its logs, then a slice of its configuration, then recordings, then the web root. Notice how the caution in the guidance grows as the tour proceeds — that ordering is deliberate, not incidental.

None of the five stops requires anything beyond ordinary read access. If any command here reports a permission error where this lesson expects success, that itself is useful evidence — it means the account you are using has narrower access than a typical administrator account on this host, worth understanding before you continue.

  • Where the dialer software itself lives, separate from its logs
  • Which configuration keys are safe to read in a shared terminal, and which are not
  • Where completed call recordings land, and why this tour never lists their filenames
Trace path · read left to right
01Where the software lives02Where it writes evidence03What stays unlisted on purpose

Visual walkthrough

Follow three real demo screens

Captured on an isolated VICIdial demo: Administration screens on September 24, 2026, and the idle Agent screen on August 11, 2026. Each caption states its own capture time, and every sanitized image helps you recognize a related screen; none proves that this article's call, command, or result occurred.
Step 1 · Find system administration

Use the Administration map

Sanitized VICIdial Administration menu showing phones, carriers, servers, system settings, and system statuses
Captured September 24, 2026 at 21:34:11 UTC on the authorized isolated demo. This menu is a navigation map only; it does not show that any system-wide setting was changed or verified.
Step 2 · Check permission scope

Review user-group boundaries

Sanitized VICIdial User Groups Listings page showing the fixture user group
Captured September 24, 2026 at 21:53:04 UTC on the authorized isolated demo. This page shows group structure only; it does not prove that an account has a particular permission or that access was changed.
Step 3 · Read global settings

Inspect system-wide security and API context

Sanitized VICIdial Modify System Settings page showing revision, schema, interface, SIP-stack, and API-related controls
Captured August 11, 2026 at 16:22:08 UTC on the authorized isolated demo. This is a read-only view of system-wide settings with no credentials or addresses; it does not prove that a setting was changed or that an API request succeeded.

Where the Perl scripts live

astguiclient's daemons — the same processes the previous lesson found running inside detached screen sessions — are Perl scripts installed under one shared directory. Listing that directory shows you the software itself, not any data it produced.

List the astguiclient scripts
ls -la /usr/share/astguiclient | head -20
Evidence · ViciBox 12 demo capture

Captured demo response · 2026-09-23 21:35 UTC. The displayed command is the command that ran; a safe subset label means it was filtered, redacted, or fixture-scoped. Replays only after you select Replay transcript.

Command output line: ls -la /usr/share/astguiclient | head -20
total 5904
drwxr-xr-x 8 root root 12288 Sep 14 16:58 .
drwxr-xr-x 152 root root 4096 Feb 10 2026 ..
-rwxr-xr-x 1 root root 56980 Feb 10 2026 ADMIN_adjust_GMTnow_on_leads.pl
-rwxr-xr-x 1 root root 12489 Feb 10 2026 ADMIN_archive_leads.pl
-rwxr-xr-x 1 root root 172503 Feb 10 2026 ADMIN_archive_log_tables.pl
-rwxr-xr-x 1 root root 23003 Feb 10 2026 ADMIN_area_code_populate.pl
-rwxr-xr-x 1 root root 22625 Feb 10 2026 ADMIN_audio_store_sync.pl
-rwxr-xr-x 1 root root 22873 Feb 10 2026 ADMIN_backup.pl
-rwxr-xr-x 1 root root 9461 Feb 10 2026 ADMIN_bcrypt_convert.pl
-rwxr-xr-x 1 root root 80201 Feb 10 2026 ADMIN_central_lead_repository.pl
-rwxr-xr-x 1 root root 83599 Feb 10 2026 ADMIN_cold_storage_log_tables.pl
-rwxr-xr-x 1 root root 14435 Feb 10 2026 ADMIN_custom_table_clean.pl
-rwxr-xr-x 1 root root 307188 Feb 10 2026 ADMIN_keepalive_ALL.pl
-rwxr-xr-x 1 root root 15229 Feb 10 2026 ADMIN_purge_log_tables.pl
-rwxr-xr-x 1 root root 33500 Feb 10 2026 ADMIN_qm_sync.pl
-rwxr-xr-x 1 root root 3614 Feb 10 2026 ADMIN_reset_failed_count.pl
-rwxr-xr-x 1 root root 4201 Feb 10 2026 ADMIN_restart_roll_logs.pl
-rwxr-xr-x 1 root root 9901 Feb 10 2026 ADMIN_timeclock_auto_logout.pl
-rwxr-xr-x 1 root root 4039 Feb 10 2026 ADMIN_update_archive_url.pl
Before you run it
Run this on the lab host. Listing a directory changes nothing on disk.
Success looks like
You see a list of `.pl` files and supporting scripts, each one a component of the dialer-control system the previous lesson's screen sessions were running.
Stop if
An empty or missing directory on a host that otherwise reports Asterisk and MariaDB as active would be unusual — treat it as a sign the installation is incomplete rather than something to work around.

Where each process writes its own log

Each astguiclient daemon keeps a log of what it has been doing, separate from Asterisk's own logs and separate from the system journal. That separation matters: Asterisk's logs describe call signaling and media, while astguiclient's logs describe dialer-control decisions such as pacing adjustments — the same symptom can show up in one log and not the other, depending on which layer is actually responsible.

  • Whether a log file's timestamp is recent, given how long the lab has been running
  • Which daemon a given log filename corresponds to, from the previous lesson's process tour
List the astguiclient logs
ls -la /var/log/astguiclient | head -20
Evidence · ViciBox 12 demo capture

Captured demo response · 2026-09-23 21:35 UTC. The displayed command is the command that ran; a safe subset label means it was filtered, redacted, or fixture-scoped. Replays only after you select Replay transcript.

Command output line: ls -la /var/log/astguiclient | head -20
total 314320
drwxr-xr-x 3 root root 36864 Sep 23 08:34 .
drwxr-xr-x 19 root root 12288 Sep 23 00:06 ..
-rw-r--r-- 1 root root 3944 Aug 29 00:08 FASTagiout.2026-08-15.xz
-rw-r--r-- 1 root root 1204 Aug 29 00:08 FASTagiout.2026-08-20.xz
-rw-r--r-- 1 root root 5912 Aug 30 10:25 FASTagiout.2026-08-29.xz
-rw-r--r-- 1 root root 10216 Aug 31 06:25 FASTagiout.2026-08-30.xz
-rw-r--r-- 1 root root 30212 Sep 1 13:38 FASTagiout.2026-08-31.xz
-rw-r--r-- 1 root root 59170 Sep 20 07:36 FASTagiout.2026-09-01
-rw-r--r-- 1 root root 10720 Sep 1 14:37 FASTagiout.2026-09-01.xz
-rw-r--r-- 1 root root 13886 Sep 20 07:39 FASTagiout.2026-09-13
-rw-r--r-- 1 root root 1528 Sep 13 16:52 FASTagiout.2026-09-13.xz
-rw-r--r-- 1 root root 2644 Sep 20 08:40 FASTagiout.2026-09-20.xz
-rw-r--r-- 1 root root 4656 Aug 23 23:59 VDadaptive---CALLBACK-QUEUE--.2026-08-23.xz
-rw-r--r-- 1 root root 2288 Aug 25 00:02 VDadaptive---CALLBACK-QUEUE--.2026-08-24.xz
-rw-r--r-- 1 root root 2088 Aug 25 23:58 VDadaptive---CALLBACK-QUEUE--.2026-08-25.xz
-rw-r--r-- 1 root root 2104 Aug 26 23:57 VDadaptive---CALLBACK-QUEUE--.2026-08-26.xz
-rw-r--r-- 1 root root 2044 Aug 27 23:59 VDadaptive---CALLBACK-QUEUE--.2026-08-27.xz
-rw-r--r-- 1 root root 2116 Aug 28 23:58 VDadaptive---CALLBACK-QUEUE--.2026-08-28.xz
-rw-r--r-- 1 root root 4396 Aug 29 23:59 VDadaptive---CALLBACK-QUEUE--.2026-08-29.xz
Before you run it
Run this on the lab host. This lists filenames and sizes only; it does not open or print any log's contents.
Success looks like
You see one or more log files, generally named after the daemon that writes them, with recent modification times if the lab has been running.
Stop if
Log files with very old timestamps on a lab you believe is active suggest the corresponding daemon stopped writing — cross-check against the process tour's screen-session count before concluding anything is broken.

Read the non-secret half of astguiclient.conf

`/etc/astguiclient.conf` holds both operational settings and the database credentials astguiclient itself uses to connect. It stores every setting as a plain key=value pair, one per line — no section headers, no quoting, just a key, an equals sign, and a value. Grep for the specific keys you need instead of opening the whole file, and never grep for the credential keys in a shared terminal or paste them into a ticket.

A word-boundary grep such as the one below matters here for a small but real reason: without it, a pattern like `VARDB_server` would also match a longer key that happens to start the same way. Anchoring the pattern to the start of the line and a word boundary keeps the match limited to exactly the keys you intended.

  • The database server address key, without ever printing the credential keys alongside it
  • The database name, to compare against what the read-only-database-account lesson has you configure
  • The configured port, in case your build does not use the default
Read the non-secret connection settings
grep -E '^(VARDB_server|VARDB_database|VARDB_port)\b' /etc/astguiclient.conf
Evidence · ViciBox 12 demo capture

Captured demo response · 2026-09-23 21:35 UTC. The displayed command is the command that ran; a safe subset label means it was filtered, redacted, or fixture-scoped. Replays only after you select Replay transcript.

Command output line: grep -E '^(VARDB_server|VARDB_database|VARDB_port)\b' /etc/astguiclient.conf
VARDB_server=localhost
VARDB_database=vicidb
VARDB_port=3306
Before you run it
Run this on the lab host. This grep deliberately excludes VARDB_user and VARDB_pass — those two hold astguiclient's own database login, and the read-only-database-account lesson earlier in this stage explains why you should never capture or paste them, even into a private note.
Success looks like
Each matching line prints in key=value form, for example `VARDB_database=<your database's name>`; record the database name for later SQL lessons, but do not paste the whole file.
Stop if
If none of the three keys appear, confirm you are reading the file on the ViciBox lab host and not a copy or a different server — the key names themselves are stable across VICIdial installs.

Look at the completed-recordings folder without listing its files

Finished call recordings land under `/var/spool/asterisk/monitorDONE`, organized into subdirectories — but not one per day or per campaign. On this build the subdirectories are format and transfer stages that VICIdial's own audio-processing scripts move a recording through: FTP, FTP2, GPG, GSM, GSW, MP3, OGG and ORIG. A cron job compresses finished recordings to MP3 on a schedule, which is part of why a recording's exact location can shift over time even though the recording itself never moves anywhere outside this tree. This is the one place on the host where you should look but never list in full.

The distinction this section teaches is between confirming a folder exists and reading what is inside it. The `-d` flag on `ls` is what makes that distinction possible: it asks for information about a directory itself — its own ownership, permissions and name — rather than the directory's contents, which is what a plain `ls` without `-d` would print instead.

Confirm the recordings folder exists, without listing filenames
ls -ld /var/spool/asterisk/monitorDONE /var/spool/asterisk/monitorDONE/*/
Evidence · ViciBox 12 demo capture

Captured demo response · 2026-09-23 21:35 UTC. The displayed command is the command that ran; a safe subset label means it was filtered, redacted, or fixture-scoped. Replays only after you select Replay transcript.

Command output line: ls -ld /var/spool/asterisk/monitorDONE /var/spool/asterisk/monitorDONE/*/
drwxr-xr-x 10 wwwrun root 4096 Sep 13 16:55 /var/spool/asterisk/monitorDONE
drwxr-xr-x 2 root root 4096 Feb 10 2026 /var/spool/asterisk/monitorDONE/FTP/
drwxr-xr-x 2 root root 4096 Feb 10 2026 /var/spool/asterisk/monitorDONE/FTP2/
drwxr-xr-x 2 root root 4096 Feb 10 2026 /var/spool/asterisk/monitorDONE/GPG/
drwxr-xr-x 2 root root 4096 Feb 10 2026 /var/spool/asterisk/monitorDONE/GSM/
drwxr-xr-x 2 root root 4096 Feb 10 2026 /var/spool/asterisk/monitorDONE/GSW/
drwxr-xr-x 2 root root 425984 Sep 13 16:55 /var/spool/asterisk/monitorDONE/MP3/
drwxr-xr-x 2 root root 4096 Feb 10 2026 /var/spool/asterisk/monitorDONE/OGG/
drwxr-xr-x 18 root root 618496 Sep 13 16:55 /var/spool/asterisk/monitorDONE/ORIG/
Before you run it
Run exactly this command, with the -d flag, on the lab host. -d prints information about each directory itself rather than listing what is inside it.
Success looks like
You see ownership and permission details for the top-level folder and its date or campaign subdirectories — confirmation that the recording pipeline is writing somewhere, without exposing a single filename.
Stop if
Do not follow this command with a plain `ls` or `find` on the same path. Filenames inside monitorDONE routinely encode phone numbers and lead IDs, so never list, paste, or screenshot them outside an approved, authorized audience.

Find the web root

VICIdial's Admin and Agent screens are PHP scripts served from one directory on ViciBox. Knowing where that directory is matters later, when a lesson talks about the Call URL feature, a custom script placed alongside the application, or simply where a certificate or virtual-host configuration expects the application's files to live.

This path is specific to how ViciBox lays out its own installation; a from-scratch install on a different distribution can and often does choose a different location for the same files, which is one more reason this curriculum treats ViciBox's own paths as this build's values rather than a universal VICIdial convention.

Confirm the web root
ls -ld /srv/www/htdocs
Evidence · ViciBox 12 demo capture

Captured demo response · 2026-09-23 21:35 UTC. The displayed command is the command that ran; a safe subset label means it was filtered, redacted, or fixture-scoped. Replays only after you select Replay transcript.

Command output line: ls -ld /srv/www/htdocs
drwxrwxrwx 8 root root 4096 Aug 13 11:57 /srv/www/htdocs
Before you run it
Run this on the lab host. This reads one directory's metadata and changes nothing.
Success looks like
The directory exists and is owned by the web server's user; this is where the Admin and Agent PHP scripts are served from on this build.
Stop if
If the path does not exist, confirm you are on the ViciBox host and not a generic Linux install — a stock ViciBox appliance creates this path as part of its own installation.

Ready for the next lesson

You have now toured this lab from both its processes and its filesystem. Continue to the VICIdial terminology lesson before opening the Admin screen and creating anything — the two tours together give you a mental map of the host, and the terminology lesson gives you the words for what that map's software actually does once you start configuring it.

Keep the database name you read from astguiclient.conf in this lesson. The read-only-database-account lesson two stops back asked you to record the same value, and the admin-pathway lesson shortly after this one will ask you to query the database by name for the first time.

Evidence ledger

Verification basis

  • Every sample lists a directory's metadata or greps a named, non-secret configuration key; none of them opens a recording, a lead export, or a credential.

Follow without guesswork

Get the next article

RSS is live now. Email delivery below is an explicit local preview and sends nothing.Open the RSS feed
Email preview only. The address stays in this browser and is never transmitted.