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

  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
Expected result
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.
Before making changes
Filenames under monitorDONE can encode a real phone number or lead ID. This lesson lists directories only, and so should every lesson after it.

Build a practice lab

Stage 4 of 4: Build a ViciBox lab

Lesson 7 of 7 · Step 21 of 21

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

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.

Before you use it
Run this on the lab host. Listing a directory changes nothing on disk.
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. 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: 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
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
If the directory is missing, verify the host and installation path with the administrator before concluding the installation is incomplete.

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.

Before you use it
Run this on the lab host. This lists filenames and sizes only; it does not open or print any log's contents.
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. 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: 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
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.
  • 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

Read the non-secret half of astguiclient.conf

The configuration file includes both operational settings and database credentials. Syntax varies by installation: the inspected current lab uses key => value, while older captures can differ. Inspect only approved non-secret keys and avoid printing credentials; do not assume a single separator across builds.

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.

Before you use 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.
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. 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: grep -E '^(VARDB_server|VARDB_database|VARDB_port)\b' /etc/astguiclient.conf
VARDB_server=localhost
VARDB_database=vicidb
VARDB_port=3306
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.
  • 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

Look at the completed-recordings folder without listing its files

On the documented lab, completed recordings use `/var/spool/asterisk/monitorDONE` and its subdirectories; layouts can differ by build. 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, so a recording’s location can change as it is processed or transferred. 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.

Before you use 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.
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. 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: 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/
Success looks like
You see metadata for the top-level folder and any matching subdirectories. Their existence does not prove the recording pipeline is writing. Directory names can also be sensitive; do not share the output without review.
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.

Before you use it
Run this on the lab host. This reads one directory's metadata and changes nothing.
Confirm the web root
ls -ld /srv/www/htdocs
Evidence · ViciBox 12 demo capture

Captured demo response · 2026-09-23 21:35 UTC. 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: ls -ld /srv/www/htdocs
drwxrwxrwx 8 root root 4096 Aug 13 11:57 /srv/www/htdocs
Success looks like
The listing shows the directory’s owner and permissions. Compare the path with the web server’s configuration; directory ownership alone does not prove what the server serves.
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.

Recorded lab terminal: web root

Open to enlarge
Rendered actual SSH command and output for web root
Rendered actual SSH transcript captured 2026-11-04T22:30:45.098650Z, ViciBox 12 / SVN 4037.
Capture detailsRead-only observation, not a completed call or routing test. Display trims blank space; enlargement opens the complete original. Removed local SSH client post-quantum negotiation warning from stderr; command stdout preserved.

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.

Checks and sources

What was checked

  • 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.
  • Reviewed read-only SSH observations were added from the ViciBox 12 / SVN 4037 demo on November 4, 2026. Captures show point-in-time state, not successful calling, routing, audio, API writes or recovery.

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.