Трасировка звонков и сбор логов

Запросы

HTTP verb Endpoint Описание

GET

/api/monitor/v1/trace/calls

Получение данные о звонках

GET

/api/monitor/v1/trace/clear

Удаление данных о звонках

GET

/api/monitor/v1/trace/closure

Получение замыканий по звонку

GET

/api/monitor/v1/trace/closure_total

Получение замыкания по звонку по всем ролям

GET

/api/monitor/v1/trace/trn

Сборка trn логов

GET

/api/monitor/v1/trace/trn_sec

Сборка trn логов за последние N сек

GET

/api/monitor/v1/trace/activity_diagram

Построение диаграммы активности звонка

POST

/api/monitor/v1/diagram/trn

Построение диаграммы активности звонка по собранному ранее архиву с лог-журналами

GET

/api/monitor/v1/trace/scripts

Сбор логов сценариев

GET

/api/monitor/v1/trace/starttrace

starttrace

GET

/api/monitor/v1/trace/stoptrace

stoptrace

GET

/api/monitor/v1/trace/cleartrace

cleartrace

GET

/api/monitor/v1/trace/downloadtrace

downloadtrace

GET

/api/monitor/v1/trace/whereis

whereis

GET

/api/monitor/v1/trace/processnode

processnode

GET

/api/monitor/v1/trace/processinfo

processinfo

GET

/api/monitor/v1/trace/processstatistics

processstatistics

GET

/api/monitor/v1/trace/processdebug

processdebug

Получение данные о звонках

Тип домена: любой

Информация о сторонах звонков обработанных в системе за последние 20 минут. При формировании результата используются данные из входящих sip запросов (invite пакетов).

Запрос

Пример запроса
GET /api/monitor/v1/trace/calls HTTP/1.1

Ответ

Пример ответа
HTTP/1.1 200 OK

{
  "resultcode": 0,
  "resultmsg": "OK",
  "data": [
    {
      "site": "central",
      "servers": [
        {
          "srvidx": 10,
          "role": "b2bua",
          "node": "b2bua1@192.168.0.84",
          "addr": "192.168.0.84",
          "online": true,
          "calls": [
            {
              "callid": "1870585125@192.168.0.204",
              "from": "<sip:sip1@test.ceceron.ru>",
              "remoteip": "192.168.0.84",
              "tick": 1573719378842,
              "time": "2019-11-14T08:16:18.84+00:00",
              "to": "<sip:13@test.ceceron.ru>",
              "media": {
                "mgc": "r_mgc_3",
                "mgc_srvidx": 4,
                "mgc_node": "mgc1@192.168.0.84",
                "mg": "rtx_mg_192.168.0.84_def_804",
                "msid": "rDlg-00A-RW0JeV_O9rV",
                "ctx": 447234580
              }
            }
          ]
        },
        {
          "srvidx": 30,
          "role": "sg",
          "node": "mix1ws1gate2@192.168.0.84",
          "addr": "192.168.0.84",
          "online": true,
          "calls": [
            {
              "callid": "rB2-00A-RW0JeV-01-1870585125@192.168.0.204",
              "from": "<sip:11@test.ceceron.ru>",
              "remoteip": "192.168.0.84",
              "tick": 1573719378950,
              "time": "2019-11-14T08:16:18.95+00:00",
              "to": "<sip:sip3@test.ceceron.ru>"
            },
            {
              "callid": "1870585125@192.168.0.204",
              "from": "<sip:sip3@test.ceceron.ru>",
              "remoteip": "192.168.0.84",
              "tick": 1573719380369,
              "time": "2019-11-14T08:16:20.36+00:00",
              "to": "\"test_sip1\" <sip:sip1@test.ceceron.ru>"
            }
          ]
        }
      ]
    }
  ]
}
Table 1. Описание ключей
Название Описание

srvidx

Идентификатор роли (roleid).

role

Тип роли.

node

Нода на которой запущена роль.

addr

Адрес ноды.

online

Доступность ноды для сбора статистики.

calls

Плечи звонков обслуживаемые ролью.

calls.callid

callid стороны А.

calls.from

uri стороны А

calls.remoteip

Адрес стороны Б.

calls.tick

Timestamp (в мс) получения запроса.

calls.time

Время получения запроса.

calls.to

uri стороны Б.

calls.media

Данные об использовании медиа.

calls.media.mgc

Ключ роли mgc обслуживающей стороны звонка

calls.media.mgc_srvidx

Идентификатор роли (roleid) mgc.

calls.media.mgc_node

Нода mgc.

calls.media.mg

Ключ используемой роли mg.

calls.media.msid

Идентификатор sip-владельца медиа.

calls.media.ctx

Номер контекста.

Удаление данных о звонках

Тип домена: мастер

Удаление информации о звонках, временно размещенных в кэше для трассировки.
Данные автоматически удаляются по истечении 3 часов с момента размещения.

Запрос

Пример запроса
GET /api/monitor/v1/trace/clear HTTP/1.1

Ответ

Пример ответа
HTTP/1.1 200 OK

{
  "resultcode": 0,
  "resultmsg": "OK",
  "data": [
    {
      "site": "central",
      "servers": [
        {
          "srvidx": 10,
          "role": "b2bua",
          "node": "b2bua1@192.168.0.84",
          "addr": "192.168.0.84",
          "online": true,
          "result": true
        },
        {
          "srvidx": 30,
          "role": "sg",
          "node": "mix1ws1gate2@192.168.0.84",
          "addr": "192.168.0.84",
          "online": true,
          "result": true
        }
      ]
    }
  ]
}
Table 2. Описание ключей
Название Описание

srvidx

Идентификатор роли (roleid).

role

Тип роли.

node

Нода на которой запущена роль.

addr

Адрес ноды.

online

Доступность ноды для сбора статистики.

result

Результат выполнения операции.

Получение замыканий по звонку

Тип домена: мастер

Поиск связанных callid в привязке к каждому экземпляру микросервисов, отвечающих за SIP-сигнализацию (b2b, esg, sg, ivr, conf, prompt).
Связанными считаются:

  • все плечи одного диалога (включая форки параллельных вызовов, перехваты, переадресации);

  • цепочки переведенных вызовов (запросы REFER и заголовки Referred-By);

  • плечи подмененных вызовов (заголовки Replaces);

  • внешние callid отсеченные микросервисом esg.

Замыкание строится путем цепного обнаружения всей замкнутой группы связанных callid.
Данные о замыкании хранятся в кэше в течение 3 часов, после чего автоматически удаляются. После частичного удаления информации о связях из кэшей микросервисов замыкание заужается.

Возвращаемое значение содержит перечисление всех микросервисов SIP, с каждым из которых соотнесены те значения callid из замыкания, которые проходили через него.

Запрос

Table 3. Параметры запроса
Спецификация Описание

Имя: callid
Тип: str

Callid по которому будет произведен поиск.

Имя: callids
Тип: str

Список callid через запятую по которому будет произведен поиск.

Пример запроса
GET /api/monitor/v1/trace/closure?callid=2354976089@192.168.0.204 HTTP/1.1

Ответ

Пример ответа
HTTP/1.1 200 OK

{
  "resultcode": 0,
  "resultmsg": "OK",
  "data": [
    {
      "site": "central",
      "servers": [
        {
          "srvidx": 10,
          "role": "b2bua",
          "node": "b2bua1@192.168.0.84",
          "addr": "192.168.0.84",
          "online": true,
          "closure": [
            "2354976089@192.168.0.204",
            "rB2-00A-DV5ylJ-01-2354976089@192.168.0.204"
          ]
        },
        {
          "srvidx": 30,
          "role": "sg",
          "node": "mix1ws1gate2@192.168.0.84",
          "addr": "192.168.0.84",
          "online": true,
          "closure": [
            "2354976089@192.168.0.204"
          ]
        }
      ]
    }
  ]
}
Table 4. Описание ключей
Название Описание

srvidx

Идентификатор роли (roleid).

role

Тип роли.

node

Нода на которой запущена роль.

addr

Адрес ноды.

online

Доступность ноды для сбора статистики.

closure

Список связанных callid в рамках роли.

Получение замыкания по звонку по всем ролям

Тип домена: мастер

Поиск связанных callid по всем экземплярам микросервисов, отвечающих за SIP-сигнализацию (b2b, esg, sg, ivr, conf, prompt).
Связанными считаются:

  • все плечи одного диалога (включая форки параллельных вызовов, перехваты, переадресации);

  • цепочки переведенных вызовов (запросы REFER и заголовки Referred-By);

  • плечи подмененных вызовов (заголовки Replaces);

  • внешние callid отсеченные микросервисом esg.

Замыкание строится путем цепного обнаружения всей замкнутой группы связанных callid.
Данные о замыкании хранятся в кэше в течение 3 часов, после чего автоматически удаляются. После частичного удаления информации о связях из кэшей микросервисов замыкание заужается.

Возвращаемое значение содержит общий список всех входящих в замыкание callid.

Запрос

Table 5. Параметры запроса
Спецификация Описание

Имя: callid
Тип: str

Callid по которому будет произведен поиск.

Имя: callids
Тип: str

Список callid через запятую по которому будет произведен поиск.

Пример запроса
GET /api/monitor/v1/trace/closure_total?callid=3001546688@192.168.0.204 HTTP/1.1

Ответ

Пример ответа
HTTP/1.1 200 OK

{
  "resultcode": 0,
  "resultmsg": "OK",
  "data": {
    "closure": [
      "3001546688@192.168.0.204",
      "rB2-00A-GTKZJR-01-3001546688@192.168.0.204"
    ]
  }
}
Table 6. Описание ключей
Название Описание

closure

Список связанных callid по всем ролям.

Сборка trn логов

Тип домена: любой

Сбор логов trn со всех sip-ролей системы происходит на основании замыкания, построенного по указанному callid или группе callids.

Результат возвращается в выбранном формате ('format'):

  • Диаграмма последовательности, где акторами выступают все девайсы и микросервисы, участвовавшие в обслуживании вызовов и упоминающиеся в лог-журналах.

  • Архив с лог-журналами trn всех участвовавших в обслуживании экземпляров микросервисов, отвечающих за SIP-сигнализацию, и участвовавших в обслуживании хотя бы одного callid из замыкания.

Адекватная сборка лог-журналов возможна только:

  • в пределах последних 3 часов, поскольку строится на основании замыкания, которое в свою очередь строится на основании связей между callid, сохраняемых в кеше чуть более чем на 3 часа.

  • на основе данных с микросервисов, где включено логирование trn (параметр 'log_trn' микросервиса в конфигурации).

Запрос

Table 7. Параметры запроса
Спецификация Описание

Имя: callid
Тип: str

Callid по которому будет произведен поиск.

Имя: callids
Тип: str

Список callid через запятую по которому будет произведен поиск.

Имя: format
Тип: str
По умолчанию: svg

Формат возврата результата. Возможные значения:

  • svg – страница содержащая plantuml диаграмма в формате svg.

  • plantuml – текст для построения диаграммы.

  • logs – лог файлы.

Построенную в формате svg диаграмму можно сохранить.
Для того, чтобы сохраненная диаграмма была кликабельна, ее следует сохранять в режиме "Webpage, complete".
Также можно вручную разместить каталог js с двумя библиотеками, на которые ссылается html страница.
Необходимо скачать эти файлы, разместить в каталог 'js' рядом с html страницей, а в html-содержимом заменить пути к js библиотекам (например, с '/js/…​' на './js/…​').

Пример запроса
GET /api/monitor/v1/trace/trn?callid=2627900225@192.168.0.204&mode=logs HTTP/1.1

Ответ

Пример ответа
HTTP/1.1 200 OK

<content> (1)
1 <content> – результат в формате *.zip, который содержит лог файлы.

Сборка trn логов за последние N сек

Сбор логов за последние N секунд со всех экземпляров микросервисов, обслуживающих SIP-сигнализацию.

Сборка возможна только на тех микросервисах, где включено логирование trn (параметр 'log_trn' микросервиса в конфигурации).

Запрос

Table 8. Параметры запроса
Спецификация Описание

Имя: callid
Тип: str

Callid по которому будет произведен поиск.

Имя: callids
Тип: str

Список callid через запятую по которому будет произведен поиск.

Имя: sec
Тип: int

Количество секунд в прошлое. Возможные значения: от 1 до 3600 включительно.

Пример запроса
GET /api/monitor/v1/trace/trn_sec?callid=3935249258@192.168.0.204 HTTP/1.1

Ответ

Пример ответа
HTTP/1.1 200 OK

<content> (1)
1 <content> – результат в формате *.zip, который содержит лог файлы.

Построение диаграммы активности звонка

Тип домена: любой

Формирование UML диаграммы последовательности из trn логов всех экземпляров микросервисов, обслуживающих SIP-сигнализацию.

Акторами выступают все девайсы и микросервисы, участвовавшие в обслуживании вызовов и упоминающиеся в лог-журналах.

Адекватная сборка лог-журналов возможна только:

  • в пределах последних 3 часов, поскольку строится на основании замыкания, которое в свою очередь строится на основании связей между callid, сохраняемых в кеше чуть более чем на 3 часа.

  • на основе данных с микросервисов, где включено логирование trn (параметр 'log_trn' микросервиса в конфигурации).

Для того, чтобы сохраненная диаграмма была кликабельна, ее следует сохранять в режиме "Webpage, complete".
Также можно вручную разместить каталог js с двумя библиотеками, на которые ссылается html страница.
Необходимо скачать эти файлы, разместить в каталог 'js' рядом с html страницей, а в html-содержимом заменить пути к js библиотекам (например, с '/js/…​' на './js/…​').

Запрос

Table 9. Параметры запроса
Спецификация Описание

Имя: callid
Тип: str

Callid по которому будет произведен поиск.

Имя: callids
Тип: str

Список callid через запятую по которому будет произведен поиск.

Имя: format
Тип: str
По умолчанию: svg

Формат возврата результата. Возможные значения:

  • svg – страница содержащая plantuml диаграмма в формате svg.

  • plantuml – текст для построения диаграммы.

Пример запроса
GET /api/monitor/v1/trace/activity_diagram?callid=2627900225@192.168.0.204&mode=svg HTTP/1.1

Ответ

Пример ответа
HTTP/1.1 200 OK

<content> (1)
1 <content> – html страница содержащая диаграмму в формате svg.

Построение диаграммы активности звонка по собранному ранее архиву с лог-журналами

Тип домена: любой

Формирование UML диаграммы последовательности из архива с trn логами, собранным ранее, в том числе на другом экземпляре системы, с помощью запроса /api/monitor/v1/trace/trn?mode=logs.

Акторами выступают все девайсы и микросервисы, участвовавшие в обслуживании вызовов и упоминающиеся в лог-журналах.

Для того, чтобы сохраненная диаграмма была кликабельна, ее следует сохранять в режиме "Webpage, complete".
Также можно вручную разместить каталог js с двумя библиотеками, на которые ссылается html страница.
Необходимо скачать эти файлы, разместить в каталог 'js' рядом с html страницей, а в html-содержимом заменить пути к js библиотекам (например, с '/js/…​' на './js/…​').

Запрос

Пример запроса
POST /api/monitor/v1/diagram/trn HTTP/1.1
Content-Type: multipart/form-data

<content> (1)
1 <content> – zip-архив с лог-журналами trn..

Ответ

Пример ответа
HTTP/1.1 200 OK

<content> (1)
1 <content> – html страница содержащая диаграмму в формате svg.

Сбор логов сценариев

Сбор логов сценариев указанного типа с ролей на текущем сайте.

Запрос

Table 10. Параметры запроса
Спецификация Описание

Имя: type
Тип: str

Тип сценария по которому необходимо собрать логи. Возможные значения: ivr, svc.

Имя: start
Тип: int

Количество минут в прошлое.

Имя: duration
Тип: int

Продолжительность лога для сборки в минутах. Возможные значения от 1 до 1440.

Имя: code
Тип: str
По умолчанию: empty

Код сценария по которому необходимо собрать логи.

Пример запроса
GET /api/monitor/v1/trace/scripts?type=svc&start=60&duration=30 HTTP/1.1

Ответ

Пример ответа
HTTP/1.1 200 OK

<content> (1)
1 <content> – результат в формате *.zip, который содержит лог файлы.

starttrace

Описание в разработке

stoptrace

Описание в разработке

cleartrace

Описание в разработке

downloadtrace

Описание в разработке

whereis

Описание в разработке

processnode

Описание в разработке

processinfo

Описание в разработке

processstatistics

Описание в разработке

processdebug

Описание в разработке