community-relations/src/commands/intercom.ts

46 lines
2.0 KiB
TypeScript

/**
* Disabled command due to no use 2/11/23
*/
import { Message } from 'eris';
import { Client, CmdContext, Command } from '../class';
import { Misc as MiscPBXActions } from '../pbx';
export default class Intercom extends Command {
constructor(client: Client) {
super(client);
this.name = 'intercom';
this.description = 'Will synthesize inputted text to a recording and dial an intercom to the extension specified, then play the recording.';
this.usage = `${this.client.config.prefix}intercom <extension> <text>`;
this.permissions = 1;
this.guildOnly = true;
this.enabled = false;
}
public async run(ctx: CmdContext) {
if (!args[0]) return this.client.commands.get('help').run(message, [this.name]);
const loading = await this.loading(message.channel, 'Synthesizing text...');
const recordingLocation = await MiscPBXActions.TTS(this.client.util.pbx, `Hello, this is the Library of Code Private Branch Exchange dialing you at the request of ${message.author.username} to deliver you a message. Playing message: ${args.slice(1).join(' ')}`, 'MALE');
await loading.edit(`***${this.client.util.emojis.LOADING} Preparing to dial...***`);
this.client.util.pbx.ami.action({
action: 'originate',
channel: `PJSIP/${args[0]}`,
exten: args[0],
context: 'from-internal',
CallerID: `TTS INTC FRM ${message.author.username} <000>`,
application: 'PlayBack',
priority: '1',
data: `beep&${recordingLocation.split(':')[1]}`,
variable: {
'PJSIP_HEADER(add,Call-Info)': '<uri>;answer-after=0',
'PJSIP_HEADER(add,Alert-Info)': 'Ring Answer',
},
}, async (err: Error) => {
if (err) return loading.edit(`***${this.client.util.emojis.ERROR} Failed to dial extension.***`);
return loading.edit(`***${this.client.util.emojis.SUCCESS} Successfully queued intercom message to EXT \`${args[0]}\`.***`);
});
return undefined;
}
}