我正在使用 Nest js 和星号管理器作为呼叫中心/CRM 软件。我需要做的是通过实时发出其状态来查明扩展程序是否处于中断状态。
this.ami.on('QueueMemberPause', async (evt) => {
console.log(1, evt);
});
this.ami.on('managerevent', async (evt) => {
if (evt.interface == 'Local/${exampleExtension}@from-queue/n') {
console.log(evt);
}
这里我正在监听 2 个事件:QueueMemberPaused 和 managerevent,manager 事件读取条件并将 evt 记录为:
{
event: 'QueueMemberPause',
privilege: 'agent,all',
queue: '<someQueueNumber>',
membername: '<someName>',
interface: 'Local/<someExtension>@from-queue/n',
stateinterface: 'hint:<someExtension>@ext-local',
membership: 'static',
penalty: '0',
callstaken: '0',
lastcall: '0',
lastpause: '<time>',
incall: '0',
status: '5',
paused: '0',
pausedreason: '',
ringinuse: '0',
wrapuptime: '0',
reason: '<breakReason>'
}
即使从管理器事件读取的事件是 QueueMemberPause,为什么我在 managerevent 上方的 QueueMemberPause 上的事件侦听器不起作用。
显然,为了监听事件,事件名称应该小写。我不知道这是否适用于较新版本的 Asterisk,但 Asterisk 16 就是这种情况。工作:
this.ami.on('queuememberpause', async (evt) => {})