Downloads · 30 days
0
gamlin/goautodial-to-vicidial-migration
goautodial-to-vicidial-migration is a machine learning model from gamlin. Use it for the machine learning task on the model card, and read the license before you ship it in a product. The card lists the license as mit.
Last updated: March 2026 | Reading time: ~16 minutes You are running GoAutoDial and something is not right. Maybe the admin interface keeps throwing PHP errors after an update. Maybe you need a VICIdial feature that G…
Downloads · 30 days
0
Access
Public
Updated Apr 28, 2026
Repo size
—
Likes
0
Public
Click a slice to open those files.
.md34.3 KB · 96%
From the Hugging Face model README
Last updated: March 2026 | Reading time: ~16 minutes You are running GoAutoDial and something is not right. Maybe the admin interface keeps throwing PHP errors after an update. Maybe you need a VICIdial feature that GoAutoDial's custom GUI does not expose. Maybe you just realized that GoAutoDial CE 4.0 shipped with VICIdial 2.14-something from 2019, and you are running a contact center on software that is six years behind the current SVN trunk. Whatever brought you here, the decision to migrate from GoAutoDial to VICIdial is almost always the correct one. GoAutoDial served a purpose --- it made VICIdial more approachable for people who were intimidated by the native admin interface. But that purpose has been overtaken by GoAutoDial's stagnating development, VICIdial's continuous improvement, and the operational reality that the extra GUI layer creates more problems than it solves. This guide covers the complete migration path: what GoAutoDial is...
Last updated: March 2026 | Reading time: ~16 minutes
You are running GoAutoDial and something is not right. Maybe the admin interface keeps throwing PHP errors after an update. Maybe you need a VICIdial feature that GoAutoDial's custom GUI does not expose. Maybe you just realized that GoAutoDial CE 4.0 shipped with VICIdial 2.14-something from 2019, and you are running a contact center on software that is six years behind the current SVN trunk.
Whatever brought you here, the decision to migrate from GoAutoDial to VICIdial is almost always the correct one. GoAutoDial served a purpose --- it made VICIdial more approachable for people who were intimidated by the native admin interface. But that purpose has been overtaken by GoAutoDial's stagnating development, VICIdial's continuous improvement, and the operational reality that the extra GUI layer creates more problems than it solves.
This guide covers the complete migration path: what GoAutoDial is at a technical level, why migration makes sense in 2026, how to inventory your existing system, step-by-step data migration, the fresh install path, configuration mapping between GoAutoDial and VICIdial, testing procedures, and the rollback plan you should have but hopefully will not need.
ViciStack migrates GoAutoDial operations to optimized VICIdial every month. We handle the data migration, carrier reconfiguration, and agent retraining. Let us handle your migration.
This is important to understand because it determines what your migration actually involves.
GoAutoDial is not a separate dialer. It is VICIdial with a custom PHP frontend bolted on top. Specifically:
/goautodial/ on the web server) that reads from and writes to the same MySQL asterisk database that VICIdial usesgo_ or goautodial_) store GUI preferences, user sessions, and configuration that the GoAutoDial interface needs but VICIdial does notWhat this means for migration: your core dialer data (campaigns, lists, leads, agents, carriers, recordings, CDR) is already in VICIdial-format tables. The GoAutoDial GUI is a presentation layer on top of those tables. Migrating to VICIdial is primarily about (1) installing a current VICIdial build and (2) importing your existing data. You are not converting between two different systems --- you are upgrading the same system and removing a deprecated interface layer.
These are the things GoAutoDial adds on top of VICIdial that you will leave behind:
| Component | GoAutoDial | VICIdial Equivalent |
|---|---|---|
| Admin GUI | Custom PHP dashboard at /goautodial/ | Native VICIdial admin at /vicidial/admin.php |
| Agent interface | GoAutoDial agent panel | VICIdial agent screen at /agc/vicidial.php |
| User management | GoAutoDial user management with roles | VICIdial User Groups with permission levels |
| Reports | GoAutoDial report dashboard | VICIdial built-in reports + custom SQL |
| API layer | GoAutoDial API wrapper | VICIdial non-agent API (more capable) |
| Branding | GoAutoDial logos and styling | VICIdial default or custom branding |
The GoAutoDial agent panel is worth discussing specifically. Many operations use GoAutoDial because agents find the GoAutoDial agent interface more visually appealing than VICIdial's default agent screen. This is a valid concern, but VICIdial's agent screen is highly customizable through CSS, custom scripts, and the agent screen configuration options. The visual gap between GoAutoDial's agent panel and a properly customized VICIdial agent screen is minimal.
GoAutoDial CE 4.0 was released in 2019. Since then:
Meanwhile, VICIdial SVN trunk has received continuous updates. Between 2019 and 2026, VICIdial added ConfBridge support, PHP 8 compatibility, two-factor authentication, ViciPhone v3.0 WebRTC, new API endpoints, AMD improvements, STIR/SHAKEN awareness, and dozens of bug fixes and performance improvements. None of these are available in GoAutoDial CE unless you manually update the VICIdial component underneath --- which risks breaking the GoAutoDial GUI layer.
Running GoAutoDial CE in 2026 means running:
If you are handling consumer financial data, healthcare information, or operating under any compliance framework that requires current security patches, GoAutoDial CE on CentOS 7 is a compliance violation waiting to happen.
The GoAutoDial GUI duplicates functionality that VICIdial already provides. This duplication creates confusion:
Matt Florell and the VICIdial Group continue active development. The SVN trunk gets regular commits. The vicidial.org forums are active. The ViciBox distribution is maintained and updated. PoundTeam provides professional support. The ecosystem is healthy. Staying on GoAutoDial means opting out of this ecosystem.
Before you touch anything, inventory your current GoAutoDial/VICIdial installation completely. This inventory determines your migration scope and identifies potential complications.
Run these queries on your GoAutoDial MySQL database to understand what you are working with:
-- Campaign count and configuration
SELECT campaign_id, campaign_name, active, dial_method, auto_dial_level
FROM vicidial_campaigns
ORDER BY active DESC, campaign_id;
-- List inventory with lead counts
SELECT vl.list_id, vl.list_name, vl.campaign_id, vl.active,
COUNT(vll.lead_id) as lead_count
FROM vicidial_lists vl
LEFT JOIN vicidial_list vll ON vl.list_id = vll.list_id
GROUP BY vl.list_id
ORDER BY lead_count DESC;
-- Total leads by status
SELECT status, COUNT(*) as count
FROM vicidial_list
GROUP BY status
ORDER BY count DESC;
-- User/agent inventory
SELECT user_group, COUNT(*) as user_count, active
FROM vicidial_users
GROUP BY user_group, active;
-- Carrier/trunk configuration
SELECT carrier_id, carrier_name, active, protocol, server_ip
FROM vicidial_server_carriers
ORDER BY active DESC;
-- Inbound groups
SELECT group_id, group_name, active
FROM vicidial_inbound_groups
ORDER BY active DESC;
-- Recording volume
SELECT DATE_FORMAT(start_time, '%Y-%m') as month,
COUNT(*) as recordings,
ROUND(SUM(length_in_sec)/3600, 1) as total_hours
FROM recording_log
GROUP BY month
ORDER BY month DESC
LIMIT 12;
-- GoAutoDial-specific tables (to understand what's GoAutoDial-only)
SHOW TABLES LIKE 'go_%';
SHOW TABLES LIKE 'goautodial_%';
Create a migration document (spreadsheet or document) with:
Contact your SIP carrier(s) before migration day:
This is the clean path. It gives you a modern OS, current VICIdial, and a fresh start. It requires a new server (or a reformatted existing server) and a maintenance window.
Follow the VICIdial setup guide to install ViciBox 12.0.2 on your new server. If you are deploying in the cloud, see the cloud deployment guide.
Key points:
vicibox-express for a single-server setupOn your GoAutoDial server, export the core VICIdial tables. These are the same tables on both systems:
#!/bin/bash
# export_vicidial_data.sh - Run on GoAutoDial server
EXPORT_DIR="/root/migration_export"
MYSQL_PASS="your_mysql_root_password"
DB="asterisk"
mkdir -p ${EXPORT_DIR}
# Core campaign and configuration tables
TABLES=(
"vicidial_campaigns"
"vicidial_campaign_stats"
"vicidial_lists"
"vicidial_list"
"vicidial_users"
"vicidial_user_groups"
"vicidial_inbound_groups"
"vicidial_server_carriers"
"vicidial_call_menu"
"vicidial_remote_agents"
"vicidial_scripts"
"vicidial_filters"
"vicidial_lead_filters"
"vicidial_statuses"
"vicidial_campaign_statuses"
"vicidial_phone_codes"
"vicidial_dnc"
"vicidial_campaign_dnc"
"vicidial_inbound_dids"
"vicidial_did_log"
"vicidial_callbacks"
"vicidial_closer_log"
"vicidial_log"
"recording_log"
"vicidial_list_alt_phones"
)
for TABLE in "${TABLES[@]}"; do
echo "Exporting ${TABLE}..."
mysqldump -u root -p"${MYSQL_PASS}" --single-transaction \
--no-create-info --complete-insert \
${DB} ${TABLE} > ${EXPORT_DIR}/${TABLE}.sql
echo " Rows: $(wc -l < ${EXPORT_DIR}/${TABLE}.sql)"
done
# Also export table structures for reference
mysqldump -u root -p"${MYSQL_PASS}" --no-data \
${DB} > ${EXPORT_DIR}/schema_only.sql
echo "Export complete. Files in ${EXPORT_DIR}/"
ls -lh ${EXPORT_DIR}/
Important: We use --no-create-info because the new ViciBox installation already has the correct table schemas for the current VICIdial version. We only want the data rows. The schema on the new server may have additional columns that the old server does not have --- that is expected and the import will populate those new columns with defaults.
# From the GoAutoDial server
scp -r /root/migration_export root@NEW_SERVER_IP:/root/migration_import/
# Also transfer recordings if you want them on the new server
rsync -avz --progress /var/spool/asterisk/monitor/ \
root@NEW_SERVER_IP:/var/spool/asterisk/monitor/
Recording transfer can take hours or days depending on volume. Start this well before your migration window. You can run rsync incrementally --- it will only transfer new/changed files on subsequent runs.
Before importing data, you need to handle potential conflicts with the default ViciBox data:
#!/bin/bash
# prepare_import.sh - Run on NEW ViciBox server
MYSQL_PASS="your_new_mysql_root_password"
DB="asterisk"
# Back up the default ViciBox data (just in case)
mysqldump -u root -p"${MYSQL_PASS}" ${DB} > /root/vicibox_default_backup.sql
# Clear default sample data that would conflict with imports
mysql -u root -p"${MYSQL_PASS}" ${DB} << 'EOF'
-- Remove default campaigns (keep the schema, remove rows)
DELETE FROM vicidial_campaigns WHERE campaign_id IN ('TESTCAMP', 'SAMPLE');
-- Remove default users EXCEPT admin (6666) and API users you'll need
DELETE FROM vicidial_users WHERE user NOT IN ('6666', 'VDAD', 'VDCL');
-- Remove default user groups EXCEPT ADMIN
DELETE FROM vicidial_user_groups WHERE user_group != 'ADMIN';
-- Clear default lists
DELETE FROM vicidial_lists WHERE list_id < 200;
-- Clear default inbound groups
DELETE FROM vicidial_inbound_groups WHERE group_id IN ('AGENTDIRECT', 'SALESLINE');
-- Note: Do NOT delete from system-level tables like servers, conferences, etc.
EOF
echo "Default data cleared. Ready for import."
#!/bin/bash
# import_data.sh - Run on NEW ViciBox server
IMPORT_DIR="/root/migration_import"
MYSQL_PASS="your_new_mysql_root_password"
DB="asterisk"
# Import order matters - reference tables first, then data tables
IMPORT_ORDER=(
"vicidial_user_groups"
"vicidial_users"
"vicidial_statuses"
"vicidial_campaigns"
"vicidial_campaign_statuses"
"vicidial_lists"
"vicidial_list"
"vicidial_server_carriers"
"vicidial_inbound_groups"
"vicidial_call_menu"
"vicidial_inbound_dids"
"vicidial_scripts"
"vicidial_filters"
"vicidial_lead_filters"
"vicidial_remote_agents"
"vicidial_phone_codes"
"vicidial_dnc"
"vicidial_campaign_dnc"
"vicidial_callbacks"
"vicidial_list_alt_phones"
"vicidial_log"
"vicidial_closer_log"
"vicidial_did_log"
"recording_log"
)
for TABLE in "${IMPORT_ORDER[@]}"; do
if [ -f "${IMPORT_DIR}/${TABLE}.sql" ]; then
echo "Importing ${TABLE}..."
mysql -u root -p"${MYSQL_PASS}" ${DB} < ${IMPORT_DIR}/${TABLE}.sql
if [ $? -eq 0 ]; then
echo " Success"
else
echo " WARNING: Errors during import of ${TABLE}"
fi
else
echo " SKIP: ${IMPORT_DIR}/${TABLE}.sql not found"
fi
done
echo "Import complete."
After importing data, several things need updating:
-- Update server_ip references to point to the new server
-- GoAutoDial had the old server's IP; VICIdial needs the new one
UPDATE vicidial_campaigns SET server_ip = 'NEW_SERVER_IP'
WHERE server_ip = 'OLD_SERVER_IP';
UPDATE vicidial_server_carriers SET server_ip = 'NEW_SERVER_IP'
WHERE server_ip = 'OLD_SERVER_IP';
UPDATE vicidial_servers SET server_ip = 'NEW_SERVER_IP'
WHERE server_ip = 'OLD_SERVER_IP';
-- Update any recording_log entries to reflect new file paths
-- (only needed if recording directory structure changed)
UPDATE recording_log
SET location = REPLACE(location, '/old/path/', '/var/spool/asterisk/monitor/MIXmonitor/')
WHERE location LIKE '/old/path/%';
-- Reset conference extensions (they're server-specific)
-- The new ViciBox install already has these configured correctly
-- Don't import vicidial_conferences from the old server
-- Verify admin user still works
SELECT user, pass, full_name, user_level, active
FROM vicidial_users
WHERE user_level >= 8;
Carriers (SIP trunks) need manual reconfiguration because they involve both database entries and Asterisk configuration files:
Server IP field to the new server's IPasterisk -rx "sip reload" or asterisk -rx "pjsip reload"asterisk -rx "sip show peers" or asterisk -rx "pjsip show endpoints"For PJSIP configurations (recommended for new installs), you may need to convert old sip.conf carrier entries to pjsip.conf format. This is a one-time effort but important for forward compatibility with Asterisk 18.
Before switching production traffic:
screen -r VDhopper to watch)Migration Without the Guesswork. ViciStack has migrated dozens of GoAutoDial operations to current VICIdial builds. We handle the data, the carriers, and the testing. Schedule Your Migration.
It is technically possible to update VICIdial underneath GoAutoDial without a fresh install. We do not recommend this for several reasons, but documenting it for completeness.
svn update to pull the latest VICIdial code from the SVN repository# This is what the process looks like (DO NOT run this blindly)
cd /usr/share/astguiclient/
svn update svn://svn.eflo.net:3690/agc_2-X/trunk
perl install.pl --run-db-upgrade
If you absolutely cannot do a fresh install (e.g., you have 500,000 leads and cannot afford the downtime), the in-place path exists. But plan for 2-3x the troubleshooting time compared to a fresh install, and have a full backup you have tested restoring from.
For administrators who learned VICIdial through GoAutoDial's interface, here is where to find things in the native VICIdial admin.
| GoAutoDial Path | VICIdial Admin Path |
|---|---|
| Telephony > Campaigns > Campaign List | Admin > Campaigns |
| Campaign > General Settings | Admin > Campaigns > [Campaign] > Detail |
| Campaign > Dial Settings | Admin > Campaigns > [Campaign] > Detail (same page, scroll down) |
| Campaign > Dispositions | Admin > Campaigns > [Campaign] > Statuses |
| Campaign > Recycle Rules | Admin > Campaigns > [Campaign] > Lead Recycling |
| Campaign > Callback Settings | Admin > Campaigns > [Campaign] > Detail > Scheduled Callbacks section |
| Campaign > Caller ID | Admin > Campaigns > [Campaign] > Detail > Outbound CID |
| GoAutoDial Path | VICIdial Admin Path |
|---|---|
| Telephony > Lists | Admin > Lists |
| Lists > Upload Leads | Admin > Lists > [List] > Load Leads |
| Lists > Lead Management | Admin > Lists > [List] > Leads (or direct SQL) |
| DNC Management | Admin > DNC |
| Lead Filters | Admin > Filters |
For a complete guide to list management in VICIdial, see VICIdial List Management Best Practices.
| GoAutoDial Path | VICIdial Admin Path |
|---|---|
| Users > User List | Admin > Users |
| Users > User Groups | Admin > User Groups |
| Users > Agent Phones | Admin > Phones |
| User Permissions | Admin > User Groups > [Group] > Permissions |
| GoAutoDial Path | VICIdial Admin Path |
|---|---|
| Telephony > Carriers | Admin > Carriers |
| Telephony > DIDs | Admin > DIDs |
| DID Routing | Admin > Inbound Groups + Admin > DIDs |
| GoAutoDial Report | VICIdial Admin Report |
|---|---|
| Agent Performance | Reports > Agent Performance Detail |
| Campaign Summary | Reports > Campaign Summary |
| Call Detail Records | Reports > Outbound Calling Report (or CDR search) |
| Inbound Report | Reports > Inbound Report |
| Recording Search | Reports > Recording Lookup |
The biggest difference: GoAutoDial's reports had a visual dashboard with graphs. VICIdial's built-in reports are table-based. If you need graphical reporting, integrate with Grafana (free) or a commercial BI tool. The underlying data is all accessible via MySQL queries.
The most disruptive part of a GoAutoDial-to-VICIdial migration is not the technical work --- it is agent confusion. If your agents have only ever used GoAutoDial's agent panel, the VICIdial agent screen looks different. Here is how to manage the transition.
If the default VICIdial agent screen is a problem for your team, customize it:
Every migration needs a rollback plan. Here is yours.
# Complete database dump
mysqldump -u root -p --all-databases > /root/goautodial_full_backup_$(date +%Y%m%d).sql
# Full system backup (if you have space)
tar czf /root/goautodial_server_backup.tar.gz \
/etc/asterisk/ \
/var/spool/asterisk/ \
/usr/share/astguiclient/ \
/var/www/html/ \
/etc/crontab
Do not decommission the GoAutoDial server until you have verified the new VICIdial server is stable for at least one full business week
Keep the GoAutoDial server's SIP registrations intact (just inactive). If you need to roll back, you can re-register with your carrier immediately
If the new VICIdial server fails critically on migration day:
asterisk -rx "sip reload"The rollback window is practical for about 7 days after migration. After that, new data (leads, CDR, recordings, dispositions) accumulates on the VICIdial server and becomes increasingly difficult to merge back into GoAutoDial.
Once you are running on current VICIdial, take advantage of the features GoAutoDial never had access to:
After migration, walk through these settings that may have been configured for GoAutoDial's defaults rather than optimal VICIdial values:
For a typical operation (1-5 campaigns, 10-50 agents, under 1 million leads), the technical migration takes 4-8 hours including data export, fresh install, data import, carrier configuration, and testing. The total project including planning, agent training, and stabilization is 1-2 weeks. ViciStack can complete the technical migration overnight for most operations.
No. The vicidial_log, vicidial_closer_log, and recording_log tables are all migrated. Your historical call data, recordings, and agent performance history will be available on the new VICIdial server. Reports will show the same historical data.
Yes. The vicidial_callbacks table is included in the standard migration. All LIVE callbacks will continue to fire on the new server at their scheduled times. Verify this by checking SELECT * FROM vicidial_callbacks WHERE status = 'LIVE' after migration.
Minimally. The core agent workflow (login, take calls, disposition, callback) is functionally identical. The visual layout is different but navigable within a few calls. Plan for a 1-hour walkthrough and expect full productivity by day 2. The biggest adjustment is for managers who used GoAutoDial's admin dashboard --- VICIdial's admin interface has a steeper learning curve but is more powerful.
Yes. GoAutoDial Cloud is the company's hosted SaaS offering. It may be running newer VICIdial code than CE 4.0, but you have no control over the underlying infrastructure, no SSH access, and limited customization. Migrating from GoAutoDial Cloud to self-hosted VICIdial requires requesting a data export from GoAutoDial (which they may or may not provide promptly) and then following the same import process described in this guide.
Technically possible by installing the GoAutoDial PHP files on a current VICIdial server. Practically, this is a bad idea. GoAutoDial's PHP code was written for PHP 5.x/7.x and VICIdial 2.14 schema circa 2019. Running it against a PHP 8.2 environment with VICIdial 2.14b0.5 schema 1729 will produce errors, broken pages, and potentially data corruption. The whole point of migration is to leave the GoAutoDial layer behind.
No dedicated GoAutoDial-to-VICIdial migration tool exists because the data is essentially the same format --- it is all MySQL tables in the asterisk database. The migration is a standard MySQL export/import with some post-import cleanup. Tools like ViciStack's migration service handle this as part of a managed deployment.
Document them before migration. If the customizations are in GoAutoDial-specific files (under /goautodial/), they will not carry over and you will need to reimplement them in VICIdial's framework. If the customizations are in VICIdial's core files (under /agc/ or /vicidial/), they may work on the new server but should be reviewed for compatibility with the current VICIdial codebase. Any customizations that reference GoAutoDial-specific database tables (go_* tables) will need rewriting.