Я работаю с клиентом Asterisk ARI Node.js и хотел бы прослушать определенные события и затем выполнить действие.Насколько я понимаю, после подключения к серверу вы можете настроить несколько различных типов прослушивателей событий для публикации событий через WebSockets для выполнения задач.В моем коде ниже я не получаю никакого вывода, хотя я запускаю эти конкретные события и могу подключиться через WSCat и наблюдать за потоковыми событиями.
Приложение, которое я создаю, должно просто прослушивать происходящие события и обновлять базу данных.Мне никогда не потребуется доступ к приложению Node через HTTP-запрос, поэтому я возвращаю запрещенный при каждом запросе к серверу.Моя конечная цель - просто разместить приложение на сервере, реагирующем на события.
'use strict';
const http = require('http');
const hostname = '127.0.0.1';
const port = 3000;
const client = require('ari-client');
const util = require('util');
const server = http.createServer((req, res) => {
res.statusCode = 403;
res.end('FORBIDDEN');
});
server.listen(port, hostname, () => {
client.connect('http://127.0.0.1:8088', 'username', 'password')
.then(function(ari) {
ari.on('DeviceStateChanged', function(event) {
console.log(event);
})
ari.on('ChannelCreated', function(event) {
console.log(event);
})
ari.on('BridgeCreated', function(event) {
console.log(event);
})
ari.on('StasisStart', function(event) {
console.log(event);
})
ari.on('PeerStatusChange', function(event) {
console.log('blah', event);
})
ari.on('Dial', function(event) {
console.log('Dial', event);
})
})
.catch(function(err) {
console.log(err);
})
});