ViciBox 10 ISO Installation and First Boot Configuration
The ViciBox ISO gets you from bare metal to a working dialer in under an hour. It is openSUSE Leap with Asterisk, VICIdial and every dependency pre-built, which removes the entire compile stage from a scratch install.
What it does not remove is the configuration afterwards. This covers both.
Before You Start
- Hardware or VM. Four cores and 8 GB RAM handles roughly 30 agents on predictive. Under-specify this and you will be diagnosing audio problems that are really CPU starvation.
- Static IP. Decide it now. Changing a VICIdial server’s IP after install means editing the database, not just the network config.
- Disk. 100 GB minimum. Recordings consume more than people expect — roughly 0.5 MB per minute as MP3, so 30 agents on calls all day will produce several GB a week.
Download the ViciBox 10 ISO from vicidial.org and write it to USB:
dd if=ViciBox_v10.x86_64-10.0.2.iso of=/dev/sdX bs=4M status=progress
sync
Verify the checksum first. A truncated ISO produces install failures that look like hardware faults.
Booting the Installer
At the boot menu choose Installation. The openSUSE installer runs through:
- Language and keyboard — set correctly, because the keymap applies to the console you will be typing passwords into.
- Disk partitioning — accept the proposal unless you have a reason not to. If you are partitioning manually, give
/at least 40 GB and put/varon its own partition if you want recordings isolated from the OS. - Clock and timezone — set this accurately. VICIdial compares timestamps across OS, MySQL and PHP, and a mismatch triggers the time synchronisation warning in the admin interface.
- Root password — set something real. You are about to expose this box.
The installer copies packages and reboots. No package selection screen — ViciBox ships a fixed set.
First Boot: Network
Log in as root. Check what the installer detected:
ip a
ViciBox 10 uses Wicked rather than NetworkManager. Edit the interface config directly — substitute your actual interface name:
vi /etc/sysconfig/network/ifcfg-eth0
BOOTPROTO='static'
STARTMODE='auto'
IPADDR='192.168.1.50/24'
Default route:
echo "default 192.168.1.1 - -" > /etc/sysconfig/network/routes
DNS in /etc/sysconfig/network/config:
NETCONFIG_DNS_STATIC_SERVERS="1.1.1.1 8.8.8.8"
Apply and verify:
systemctl restart wicked
ip a
ping -c3 1.1.1.1
Set the hostname:
hostnamectl set-hostname dialer1
Time Synchronisation
Do this before running the install script. VICIdial is sensitive to clock drift across servers, and getting it right now avoids a class of problem later.
systemctl enable --now chronyd
chronyc sources
timedatectl
Confirm the timezone matches what you set in the installer and what you will set in PHP.
Running vicibox-install
This is the script that configures VICIdial itself.
vicibox-install
It asks a series of questions:
- Server type. For a single box, choose the option that installs database, web and telephony together. For a cluster, run this on each node with its specific role.
- Database server IP.
127.0.0.1on a single server, or the database node’s private IP on a cluster. - Server IP. The static address you just configured.
- Asterisk version. Take the default unless you have a hard requirement.
The script writes /etc/astguiclient.conf, loads the database schema, sets up the crontab and starts the perl daemons.
vicibox-express
There is a faster alternative:
vicibox-express
This runs the same work with sensible defaults and fewer prompts. Good for a lab or a quick rebuild. For anything going into production I prefer vicibox-install because you see each decision rather than inheriting a default you did not know about.
Verifying the Install
screen -ls
Expect screens including ASTfastlog, ASTVDauto, ASTVDadapt, ASTupdate, ASTsend and ASTlisten. Missing screens mean something failed during install — check the logs:
ls -la /var/log/astguiclient/
tail -50 /var/log/astguiclient/process.log
Asterisk:
asterisk -rx "core show version"
asterisk -rx "core show channels"
Database:
mysql -u cron -p1234 asterisk -e "SELECT server_id, server_ip, active FROM servers;"
The server row should show your static IP. If it shows the DHCP address the installer saw, fix it in Admin → Servers → Modify Server and restart the daemons.
Logging In
Browse to http://your-ip/vicidial/admin.php. Defaults are 6666 / 1234.
Immediately:
- Change that password. Admin → Users → 6666.
- Set the server’s Asterisk version under Admin → Servers, so VICIdial generates version-appropriate config.
- Check conference ranges. Admin → Servers → Modify → Conference ranges. These must not overlap between servers in a cluster.
- Set System Settings → Default Phone Codes and your local area code if you want caller ID defaults to work sensibly.
The Firewall
ViciBox ships with the firewall active and the SUSE firewall tooling. Check state:
systemctl status firewalld
firewall-cmd --list-all
Open only what you need:
firewall-cmd --permanent --add-port=80/tcp
firewall-cmd --permanent --add-port=443/tcp
firewall-cmd --permanent --add-port=5060/udp
firewall-cmd --permanent --add-port=10000-20000/udp
firewall-cmd --reload
Scope SIP and RTP to your carrier’s addresses rather than leaving them world-open. An exposed 5060 will be scanned within hours of the box coming online, and a permissive dialplan behind it is how people end up with surprise toll charges.
ViciBox also includes a dynamic IP portal for agents on changing connections:
zypper install vicibox-dynportal
That is a far better answer than opening the admin interface to the world.
Updates
ViciBox pins package versions deliberately. Do not run a blind zypper update on a production dialer — it can pull an Asterisk or PHP version VICIdial has not been tested against.
For VICIdial code updates specifically:
/usr/share/astguiclient/ADMIN_area_code_populate.pl --help
svn update /usr/src/astguiclient/trunk
Read the release notes for your SVN revision before updating a working system, and take a database dump first.
Post-Install Checklist
- Static IP set, and matching the
serverstable - Timezone identical across OS, MySQL and PHP
- All expected screens running
- Admin password changed from
1234 - Firewall restricted to known carrier addresses
- A test call placed successfully before any leads are loaded
That last one matters. Load 50,000 leads onto a dialer you have not placed a single call through and you will be debugging under pressure.