npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@vicistack/goautodial-to-vicidial-migration

v1.0.0

Published

Why GoAutoDial Shops Are Switching to Vanilla VICIdial (And How) — ViciStack call center engineering guide

Readme

Why GoAutoDial Shops Are Switching to Vanilla VICIdial (And How)

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. --- ## What GoAutoDial Actually Is (Technically) 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 CE (Community Edition) 4.x runs VICIdial 2.14 underneath, typically SVN revision 2900-3200 (compared to the current trunk at 3939+) - The GoAutoDial GUI is a separate PHP application (usually at /goautodial/ on the web server) that reads from and writes to the same MySQL asterisk database that VICIdial uses - The underlying Asterisk instance, cron jobs, screen processes, and telephony layer are all standard VICIdial - GoAutoDial-specific tables in the database (prefixed with go_ or goautodial_) store GUI preferences, user sessions, and configuration that the GoAutoDial interface needs but VICIdial does not What 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. ### GoAutoDial-Specific Components 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. --- ## Why Migrate: The Case for Leaving GoAutoDial ### Development Has Stalled GoAutoDial CE 4.0 was released in 2019. Since then: - No major version releases - Security patches lag months to years behind VICIdial SVN - The community forums are largely inactive - The development team has shifted focus to GoAutoDial Cloud (their hosted offering) and away from the self-hosted CE edition 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. ### Security Exposure Running GoAutoDial CE in 2026 means running: - An outdated VICIdial build with known security vulnerabilities that have been patched in newer SVN revisions - An additional PHP application (the GoAutoDial GUI) that increases your attack surface. The GoAutoDial GUI has its own authentication system, session management, and database access patterns that are separate from VICIdial's. More code means more potential vulnerabilities - CentOS 7 in most cases --- GoAutoDial CE 4.0's installer targets CentOS 7, which reached end-of-life in June 2024. No security patches, no kernel updates, no TLS library updates 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 GUI Layer Adds Complexity Without Proportional Benefit The GoAutoDial GUI duplicates functionality that VICIdial already provides. This duplication creates confusion: - Settings changed in the GoAutoDial GUI sometimes do not propagate correctly to the underlying VICIdial tables - Settings changed directly in VICIdial's admin interface are not always reflected in the GoAutoDial GUI - Troubleshooting requires checking two admin interfaces instead of one - Documentation and community support for GoAutoDial is sparse compared to VICIdial, which has the vicidial.org forums, the EFLO wiki, and a global community of administrators ### VICIdial SVN Trunk is Actively Developed 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. --- ## Pre-Migration Assessment Before you touch anything, inventory your current GoAutoDial/VICIdial installation completely. This inventory determines your migration scope and identifies potential complications. ### Data Inventory Checklist Run these queries on your GoAutoDial MySQL database to understand what you are working with: sql -- 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_%'; ### What to Document Create a migration document (spreadsheet or document) with: 1. Campaigns: Name, ID, dial method, active/inactive, custom settings 2. Lists: List IDs, campaign assignments, lead counts, active status 3. Users: User IDs, user groups, permission levels, active agents vs. managers 4. Carriers: Carrier names, SIP credentials, IPs, codec settings, trunk count 5. DIDs: DID numbers, routing destinations (inbound groups, agents, IVRs) 6. Custom scripts: Agent screen scripts, web form URLs, custom JavaScript 7. Recordings: Total volume, retention policy, storage location 8. Cron jobs: Any custom cron jobs beyond the default VICIdial set 9. Integrations: CRM connections, API consumers, webhook destinations, Start Call URLs 10. Custom code: Any modifications to VICIdial or GoAutoDial PHP files ### Carrier Coordination Contact your SIP carrier(s) before migration day: - Inform them you will be migrating to a new server - Get the new server's IP whitelisted in advance (if you are moving to new hardware) - Confirm SIP credentials are documented (username, password, registration server, codec preferences) - Verify any IP-based authentication will work with your new server IP - Ask about their SIP registration cooldown --- some carriers lock out rapid re-registrations, which can cause a 5-15 minute outage if you switch servers too quickly --- ## Migration Path 1: Fresh ViciBox Install + Data Import (Recommended) 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. ### Step 1: Build the New Server 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 12.0.2 runs on OpenSuSE Leap 15.6 with Asterisk 18 and MariaDB 10.11 - Set a static IP and configure DNS - Run vicibox-express for a single-server setup - Verify the base installation works (login to admin with 6666/1234) ### Step 2: Export Data from GoAutoDial On your GoAutoDial server, export the core VICIdial tables. These are the same tables on both systems: bash #!/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. ### Step 3: Transfer Data to New Server bash # 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. ### Step 4: Prepare the New Server for Import Before importing data, you need to handle potential conflicts with the default ViciBox data: bash #!/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." ### Step 5: Import Data ```bash #!/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


Read the full article

About

Built by ViciStack — enterprise VoIP and call center infrastructure.

License

MIT