require("dotenv").config({ quiet: true }); const aagi = require("asteriskagi") const agi = new aagi({port: process.env.AGI_PORT || 4573}) //const ami = new require("asterisk-ami")(process.env.AMI_PORT, process.env.AMI_HOST, process.env.AMI_USER, process.env.AMI_PASS, true); agi.on('call', async (call) => { const { remoteServer, uniqueid, context, extension, priority, calleridname, callerid, channel } = call; call.on("hangup", () => { console.log(`Hangup ${remoteServer}/${channel}`); }); call.on("error", (err) => { console.error(`ERROR: ${remoteServer}/${channel}: ${err}`); }); console.log(`Call from ${callerid} (${calleridname}) to ${extension} in context ${context} on channel ${channel} with uniqueid ${uniqueid}`); setInterval(() => { call.Playback("beep"); }, 1500) while (true) { await call.Read("EXTEN_INPUT,,1,,10000"); const exten = await call.getVariable("EXTEN_INPUT"); console.log(`Got ${exten}`); if (!exten) break; } await call.Playback("goodbye"); await call.Hangup(); }) // Originate outbound with asterisk -x "originate Local/15809197945@from-internal application AGI agi://127.0.0.1:4578"