AMDY.IO documentation
Two kinds of document live here. The API reference describes the detection service itself — the WebSocket protocol and the classification codes it returns. The install guides cover getting that service running on a specific telephony platform. If you run ViciDial or Vicibox, start with the ViciDial AMD guide instead. Troubleshooting articles live in the AMDY wiki. Resellers managing many accounts should read the Reseller API. To stop dialing known honeypot numbers, see HP protection.
API reference
AMDY AMD API Quickstart & Authentication
Get started with the AMDY answering machine detection API: generate an API key, authenticate your first call over the AMD detection WebSocket, and read the result.
- Generating an API key and the amd_live_ key format
- Authenticating your first WebSocket detection call
- Audio format and the config frame
AMD Detection WebSocket Streaming Guide
The complete WebSocket streaming protocol for AMDY.IO answering machine detection: endpoint, authentication, audio format, chunking, config frames, and the response taxonomy.
- Endpoint, authentication and 8 kHz PCM audio format
- Chunking strategy, config frames and EOF
- Response taxonomy for production integration
AMD Detection API — client guide
The protocol reference: how to register, open the WebSocket stream, send audio, and read the result. It also carries the full answering-machine classification taxonomy.
- WebSocket streaming protocol and audio buffer requirements
- Request and response shapes, status codes
- Classification codes: CALLGUARDIPHONEAMD, RINGINGAMD, NUMBERSAMD, VMNOTSETUPAMD, TELAMD and the rest
AMDY API reference
The public REST endpoints under /api/v1, the AMD Detection WebSocket endpoint, API-key authentication and the install command per platform. Only what is verified in source.
- POST /api/v1/ips/register, GET /api/v1/config, GET /api/v1/client-settings, GET /api/v1/ips
- WebSocket URL, audio format, config frame and EOF
- API-key format (amd_live_ + hex) and auth rules
Native modules (recommended)
Compiled modules that stream call audio to AMDY over WebSocket from inside Asterisk or FreeSWITCH, with no Python script in the call path.
app_amd_ws: AMD_WS() native Asterisk / ViciDial module
The compiled in-process alternative to the EAGI script: an Asterisk dialplan application that streams call audio to AMDY over WebSocket. No Python, faster connects, built-in greeting playback.
- Asterisk 16+, one-command installer, no Asterisk recompile
- ViciDial 8370 dialplan with automatic AMD() fallback
- AMDSTATUS / AMDCAUSE variables, log reading and troubleshooting
mod_amd_ws: native FreeSWITCH module
A compiled FreeSWITCH module that streams call audio to AMDY over WebSocket and sets AMDSTATUS / AMDCAUSE. Same protocol and results as AMD_WS() for Asterisk, with the mod_amd detector built in as a fallback.
- FreeSWITCH 1.10+, one-command installer, no restart
- amd_ws dialplan application and uuid_amd_ws background detection
- Performance against native mod_amd, configuration and troubleshooting
Platform install guides
Each guide connects the answered call to the same AMDY detection backend and gives your dialplan a result to route on. Pick the one that matches your platform.
Asterisk install
For custom Asterisk dialers (not ViciDial/Vicibox). Installs the Python EAGI script and wires it into your own dialplan.
- Asterisk 13+ with EAGI, Python 3.4+
- One-command installer or step-by-step manual install
- Routing on the AMDSTATUS, AMDCAUSE and AMDSTATS channel variables
FreeSWITCH install
Uses mod_audio_fork to stream answered-call audio to the AMDY backend over WebSocket, then routes each call on the result.
- Installer run and post-install verification
- What the dialplan does on answer
- HUMAN / MACHINE / FAS result values and routing
Issabel install
Script-only install for Issabel: it places the EAGI script and Python modules without touching your dialplan, so you hook EAGI in yourself.
- Script-only installer, no dialplan changes made for you
- Hooking EAGI into your existing dialplan
- Channel variables and common problems
FreeSWITCH integration
Connect FreeSWITCH to AMDY over WebSocket using mod_audio_fork. Install, verify, and route calls on HUMAN, MACHINE, FAS, TIMEOUT, and ERROR results with the real installer and Lua driver.
- Installer options and mod_audio_fork module paths
- Health check script and channel variables
- Dialplan routing and common troubleshooting
Vicidial / ViciBox integration
How AMDY.IO plugs into Vicidial and ViciBox: the one-command installer, the extension 8370 EAGI wiring it injects into extensions.conf, and the channel variables your dialplan routes on.
- One-command installer and extension 8370 EAGI wiring
- AMDSTATUS, AMDCAUSE and AMDSTATS channel variables
- Dialplan routing on the detection result
Asterisk integration
Step-by-step install of AMDY.IO on Asterisk: EAGI streams 8 kHz answer audio to the AMDY backend over WebSocket and the dialplan routes on HUMAN / MACHINE results.
- Install command and EAGI dialplan wiring
- Channel variables for routing
- Troubleshooting common problems
Issabel integration
Connect Issabel (Asterisk-based PBX) to AMDY.IO: the WebSocket audio protocol, the generic Asterisk installer, and the channel variables for routing.
- WebSocket audio protocol and installer
- Channel variables for routing
- Which parts of the Issabel integration are verified today
HP protection (Honeypot lookup)
Check numbers against AMDY's index of confirmed honeypots before you dial them.
Honeypot Lookup API
Ask whether a phone number is a known honeypot before you dial, against an index of 13.3 million confirmed detections. Single lookups or batches of 100.
- GET /honeypot?phone= for one number, POST /honeypot/batch for up to 100
- Honeypot keys (amdy_hp_), 401 vs 403 and other status codes
- $499/month, up to 20 requests per second, no daily quota
Honeypot scrubbing for VICIdial, Asterisk and FreeSWITCH
Three ways to use the lookup: scrub a list before you load it, scrub leads already in VICIdial on a cron, or check a number at dial time from the dialplan.
- List scrub script and nightly scrub of loaded VICIdial leads
- hp-check.agi install and the dialplan lines for dial-time checks
- FreeSWITCH and other dialers
Something missing? Email [email protected].