30 lines
1.2 KiB
JavaScript
30 lines
1.2 KiB
JavaScript
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"
|