Как получить информацию о входящем вызове в Asterisk ARI

#asterisk

#asterisk

Вопрос:

Я использую Asterisk ARI

Как получить информацию о входящем вызове и о том, кто поднял трубку (добавочный номер оператора)

Я получаю все события через WebSocket

 var connection = new WebSocket("ws://ip:port/ari/events?app=qweramp;subscribeAll=trueamp;api_key=user:password")
  

Приходит много событий, и я не могу в этом разобраться

Я думал, что мне нужно использовать ChannelCreated , но в большинстве случаев он приходит пустым (без цифр)

 {
  "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"
}
  

Ответ №1:

ARI ожидает, что вы не будете использовать диалплан, вместо этого используйте приложение Stasis.

Если вы это сделаете, вы получите события в ARI.

Ответьте на событие с именем Bridge.

Комментарии:

1. Спасибо, как правильно зарегистрировать приложение Stasis для всех входящих и исходящих вызовов? exten => 1000 — Насколько я понимаю, это приложение будет работать только с номером 1000, но как это сделать для всех?

2. wiki.asterisk.org/wiki/display/AST/Pattern Matching