Как получить информацию о входящем звонке Asterisk ARI
Добавлено: 30 сен 2020, 08:18
Подключимся к Asterisk при помощи websocket
Получаю все события
И результат разбираю в JSON
У меня не получается разобраться в документации к ARI https://wiki.asterisk.org/wiki/display/ ... ateChanged
Что такое канал и мост?
Как отловить событие входящего вызова и поднятии трубки оператора(для получения добавочного номера оператора)?
Прочитал много информации по AIR, но сделать выводы не удалось
Например есть статья, но по всей видимости, она устарела (https://habr.com/ru/post/311986/)
В статье при получении новых сообщений, ищет `event` со значением `incoming`
Когда я получаю новые сообщения, в них нет `event`
Пример, какие приходят сообщения
Код: Выделить всё
var connection = new WebSocket("ws://ip:port/ari/events?app=qwer&subscribeAll=true&api_key=user:password")
Код: Выделить всё
connection.onmessage = function(evt) {
var msg = JSON.parse(evt.data);
console.log(msg);
}
У меня не получается разобраться в документации к ARI https://wiki.asterisk.org/wiki/display/ ... ateChanged
Что такое канал и мост?
Как отловить событие входящего вызова и поднятии трубки оператора(для получения добавочного номера оператора)?
Прочитал много информации по AIR, но сделать выводы не удалось
Например есть статья, но по всей видимости, она устарела (https://habr.com/ru/post/311986/)
В статье при получении новых сообщений, ищет `event` со значением `incoming`
Код: Выделить всё
switch (msg.event) {
case 'incoming':
Пример, какие приходят сообщения
Код: Выделить всё
{
"type": "ChannelCreated",
"timestamp": "2020-09-30T09:13:28.451+0500",
"channel": {
"id": "id",
"name": "SIP/",
"state": "Down",
"caller": {
"name": "",
"number": ""
},
"connected": {
"name": "",
"number": ""
},
"accountcode": "",
"dialplan": {
"context": "incoming",
"exten": "s",
"priority": 1
},
"creationtime": "2020-09-30T09:13:28.451+0500",
"language": "en"
},
"application": "qwer"
}
{
"variable": "QUEUENAME",
"value": "operators",
"type": "ChannelVarset",
"timestamp": "2020-09-30T09:14:01.628+0500",
"channel": {
"id": "id",
"name": "SIP/",
"state": "Up",
"caller": {
"name": "78008888888",
"number": "+79099999999"
},
"connected": {
"name": "",
"number": ""
},
"accountcode": "",
"dialplan": {
"context": "incoming",
"exten": "incom",
"priority": 15
},
"creationtime": "2020-09-30T09:12:38.097+0500",
"language": "ru"
},
"application": "qwer"
}
{
"variable": "QUEUESRVLEVELPERF",
"value": "0.0",
"type": "ChannelVarset",
"timestamp": "2020-09-30T09:14:01.629+0500",
"channel": {
"id": "id",
"name": "SIP/",
"state": "Up",
"caller": {
"name": "78008888888",
"number": "+79099999999"
},
"connected": {
"name": "",
"number": ""
},
"accountcode": "",
"dialplan": {
"context": "incoming",
"exten": "incom",
"priority": 15
},
"creationtime": "2020-09-30T09:12:38.097+0500",
"language": "ru"
},
"application": "qwer"
}