AMDY.IO

Setup & Installation Problems

updated 2026-05-26

Setup & Installation Problems

Use this guide if you've run the AMDY installer but it isn't working, no log entries appear, or every call is routed to an agent.

First-time install? Start with Install AMDY — standard AMD (or the official PDF). This page is for when something already broke.

Quickest check first

Before stepping through anything, run the one-shot install check. It confirms the AGI script is in place, the Python modules load, and the AMDY service is reachable — all in one command:

curl -s https://download.amdy.io/check-aiamd.sh | bash

If everything reports OK, your install is fine — your issue is probably in Connection problems or Detection accuracy. If the check fails, continue below.

What each check-aiamd.sh failure means

The check runs 8 sections. When it reports ✗ on a line, find that line in the table and follow the fix.

Section Failure What it means How to fix
1. amd.py script /var/lib/asterisk/agi-bin/amd.py not found The installer didn't finish, or ran on the wrong server Re-run the installer one-liner for your OS (table below)
1. amd.py script NOT executable (chmod +x ...) File mode was clobbered (often by an editor or backup tool) Run the exact command shown: chmod +x /var/lib/asterisk/agi-bin/amd.py
1. amd.py script syntax error: ... Python is too old, or the file was edited and saved with the wrong encoding/line endings First, check Python version (next row). If 3.7+, redownload by re-running the installer
2. System packages python3 MISSING / pip3 MISSING Base packages weren't installed Re-run the installer for your OS (it installs Python 3)
2. System packages mysql MISSING This server isn't the VICIdial DB server, or the mysql client wasn't installed Run the check on your VICIdial telephony/DB server, not a remote box
2. System packages asterisk MISSING Asterisk isn't installed here — wrong server Same as above — run on the dialer
2. System packages ⚠ python3 < 3.7 ... Default Python is 3.6 (Rocky/CentOS 8 default) — amd.py uses from __future__ import annotations which needs 3.7+ dnf install python38 python38-pip then make python3 point to it: alternatives --set python3 /usr/bin/python3.8
3. Python modules import asterisk.agi FAILED — pip install pyst2 pyst2 (Asterisk AGI library) is missing pip3 install pyst2
3. Python modules import mysql.connector FAILED MySQL Python driver missing pip3 install mysql-connector-python
3. Python modules import websocket FAILED WebSocket client missing pip3 install websocket-client (note the -client suffix — pip install websocket is wrong)
3. Python modules any other import X FAILED One of amd.py's declared imports isn't installed The error line tells you the exact pip install <name> command
4. AMDY connectivity api.amdy.io does not resolve DNS is broken on this server Check /etc/resolv.conf has a working nameserver (e.g. 8.8.8.8 or your ISP's)
4. AMDY connectivity TCP <ip>:2700 unreachable for every IP Outbound port 2700 is blocked at your firewall or ISP Open outbound TCP 2700 to all of 152.53.0.0/16, or at minimum to the IPs listed by dig A api.amdy.io. See Connection problems.
4. AMDY connectivity TCP <ip>:2700 unreachable for some IPs (others ✓) Your firewall has a partial allowlist that pre-dates AMDY's last IP rotation Switch to ESTABLISHED,RELATED outbound rule + open the whole /16, so future rotations don't break you
4. AMDY connectivity ⚠ TCP download.amdy.io:443 unreachable Installer one-liners and proxy_check.py can't be downloaded Open outbound TCP 443 to download.amdy.io
5. Vicidial campaigns ✗ missing in container column The AMD_AGENT_OPT_<campaign> container doesn't exist for that campaign Create it in Admin → System Settings → Container Settings — name = AMD_AGENT_OPT_ + campaign name, type = AMD_AGENT_OPTIONS, entry = HUMAN,HUMAN
5. Vicidial campaigns entry shows something other than ✓ HUMAN,HUMAN The container entry has wrong contents, extra whitespace, or extra statuses Edit the entry to exactly HUMAN,HUMAN — no quotes, no leading/trailing whitespace, no second line
5. Vicidial campaigns amd_enabled = ✗ AMD Agent Route Options is not ENABLED for that campaign Admin → Campaigns → (your campaign) — set AMD Agent Route Options = ENABLED, then Admin → Servers → Rebuild Config
6. RTP port config /etc/asterisk/rtp.conf not found Asterisk install is incomplete or non-standard Re-run the installer; if the file lives elsewhere, this is an unusual deployment — contact support
6. RTP port config ⚠ non-default range RTP ports aren't the AMDY-expected 10000–20000 Either change rtpstart/rtpend in /etc/asterisk/rtp.conf back to 10000/20000, or make sure your firewall opens your custom UDP range (next section)
7. Firewall UDP no UDP range open / no active firewall manager detected Inbound RTP audio will be silently dropped → all calls land in NO AUDIO Open inbound UDP 10000–20000 (or your custom range) on your firewall. firewalld: firewall-cmd --add-port=10000-20000/udp --permanent && firewall-cmd --reload
8. RTP firewall service no rtp-firewall service active + section 7 also ✗ Nothing is opening the RTP range dynamically and the static rule is also missing Either open UDP 10000–20000 statically (above) or install the AMDY rtp-firewall helper — contact support

If a fix above doesn't stick, take a screenshot of the full check-aiamd.sh output and send it to support (see Contacting support) — every line tells them where to look.

Re-run the installer for your system

If setup looks incomplete, re-run the one-liner that matches your server, as root:

Your system Command
Vicibox 9 / 10 / 11 / 12 bash <(curl -s -k https://download.amdy.io/installamd.sh)
Vicibox 7 / 8 bash <(curl -s -k https://download.amdy.io/installamd8.sh)
CentOS / AlmaLinux / Rocky bash <(curl -s https://download.amdy.io/installamdcentos.sh)
Ubuntu / Debian bash <(curl -s https://download.amdy.io/installamddebian.sh)
Press-1 campaigns (any system) bash <(curl -s https://download.amdy.io/installamdpress1.sh)

Symptom → fix

The script isn't running

  1. Check the AGI script is in place: ls -la /var/lib/asterisk/agi-bin/amd.py
  2. Make sure it's executable: chmod +x /var/lib/asterisk/agi-bin/amd.py
  3. Run it manually — it should start and wait silently for input (Ctrl+C to exit): /var/lib/asterisk/agi-bin/amd.py If you get a Python error instead, it's a module problem — see below.

Module import errors

Check that the required components are installed:

python3 -c "import websocket, mysql.connector, asterisk.agi; print('All modules loaded successfully')"

If you see an ImportError, re-run the installer for your system (table above). It installs everything needed, including Python 3.

No log entries appear

Today's log file is /var/log/astguiclient/AMD_log<date>.txt. If it's empty or missing while a campaign is actively dialing: 1. In your campaign, set Routing Extension to 8370 (or 8371 for Press-1 campaigns). 2. Set AMD Agent Route Options to ENABLED. 3. Rebuild the telephony server config: Admin → Servers → Rebuild Config. This is the step most often missed — changes don't take effect without it. 4. Place a test call and check today's log file again.

Every call routes to an agent (machines reaching agents)

This is almost always the AMD agent-options container. Its name is AMD_AGENT_OPT_ followed by your campaign name — so a campaign called VAC uses the container AMD_AGENT_OPT_VAC, and yours will be named after your own campaign. Check it under Admin → System Settings → Container Settings:

Field Must be
Container Name AMD_AGENT_OPT_ + your campaign name
Container Type AMD_AGENT_OPTIONS
Container Entry HUMAN,HUMAN

The entry must be exactly HUMAN,HUMAN — no quotes, no extra spaces, no other status added. Anything else sends machines and dead air to your agents.

Also confirm AMD Type is set to AMD in the campaign.

Full VICIdial settings checklist

Admin → Campaigns → (your campaign) → AMD section:

Field Value
AMD Type AMD
AMD Agent Route Options ENABLED
CPD AMD Action DISABLED
CPD Unknown Action DISABLED

Admin → Campaigns → (your campaign) → Dial Settings:

Routing Extension Use for
8370 Standard AMDY campaigns
8371 Press-1 campaigns
8369 Falls back to standard Asterisk AMD (no AI)

After any change, rebuild the telephony config (Admin → Servers → Rebuild Config).

Still not working?

If verification passes but the logs show connection error, the install itself is fine — go to Connection problems.