Docs / Issabel install
Install AMDY on Issabel
AI answering machine detection for Issabel (and other Asterisk-based PBXs such as Elastix). Issabel manages its own dialplan, so AMDY uses a script-only install: it places the EAGI script and Python modules and does not touch your dialplan. You then hook one line into your dialplan and route on the result.
On ViciDial? Use the standard install that wires extension 8370 automatically. See the ViciDial guide. This page is for systems where you manage the dialplan yourself.
Prerequisites
- Issabel / Asterisk with EAGI support
- Root access on the PBX server
- Your AMDY.IO API key, from Settings
- Outbound TCP to api.amdy.io:2700
1. Run the script-only installer
The --script-only flag installs the EAGI script and Python modules without changing your dialplan and without reloading Asterisk:
curl -fsSL https://download.amdy.io/installamd-v2.sh | bash -s -- --api-key <API_KEY> --script-only
The installer:
- Installs Python 3 and the required modules (pyst2, websocket-client)
- Places the EAGI script at /var/lib/asterisk/agi-bin/amd.py
- Writes your API key to /etc/amdy/api-key (mode 600), the file the script reads
- Leaves your dialplan and Asterisk untouched
2. Hook it into your dialplan
Add the EAGI call where you want detection to run, then route on AMDSTATUS:
[amdy-context]
exten => s,1,Answer()
exten => s,n,EAGI(/var/lib/asterisk/agi-bin/amd.py)
exten => s,n,GotoIf($["${AMDSTATUS}" = "HUMAN"]?human:machine)
exten => s,n(human),NoOp(Live person: ${AMDCAUSE})
exten => s,n,Queue(sales-queue)
exten => s,n(machine),NoOp(Machine: ${AMDCAUSE})
exten => s,n,Hangup()3. Channel variables
| Variable | Meaning |
|---|---|
| AMDSTATUS | Detection result: HUMAN, MACHINE / AMD, FAS, and more |
| AMDCAUSE | Reason code for the result |
| AMDSTATS | Raw response JSON with timing data |
Route only HUMAN to an agent. Full status definitions: API reference.
4. Common problems
| Symptom | Likely cause |
|---|---|
| Script not found | Check the path is /var/lib/asterisk/agi-bin/amd.py and the file is executable. |
| Python import errors | Reinstall deps: pip3 install pyst2 websocket-client. |
| WebSocket connection failed | Check outbound TCP to api.amdy.io:2700. |
| AMDSTATUS always HUMAN on error | Fail-open safety default. Check Asterisk logs for the real error. |
Support
Need help? Email [email protected] with your Asterisk version (asterisk -V) and the relevant log lines (asterisk -rvvv | grep AMD).