В данном разделе описываются команды управления сигнальной трассировкой вызова.

Трассировка сигнального трафика в рамках вызова предназначена для проверки корректности сигнализации на всех точках обмена сигнализацией, участвующих в вызове. Трассировка вызова может быть осуществлена как по номеру абонента, так и по интерфейсу, но только в рамках определенной виртуальной АТС. Один абонент одновременно может находиться в нескольких трассировках. При этом запись будет производиться всеми "писателями".

Для администратора виртуальной АТС команды выполняются в разделе domain/<DOMAIN>/tracer/ и применяются только для определенной виртуальной АТС.

<DOMAIN> - имя виртуальной АТС.

Внимание! Трассировка вызова является ресурсоемкой операцией. Не забывайте выключать трассировку, когда она не используется.

declare

Данной командой создается новая трассировка вызова, которая будет выполнятся для вызовов заданной виртуальной АТС.

Путь команды:

/domain/<DOMAIN>/tracer/declare

Синтаксис:

declare <NODE> <IFACE> | * <ADDRESS> | * <NAME> <LIFETIME> <TYPE_1> <ARGS_1> [<TYPE_2> <ARGS_2> ...]

Параметры:

<DOMAIN> - имя виртуальной АТС;
<NODE> - имя ноды кластера CORE, на которой будет выполняться данная трассировка (файл с трассировкой будет создан на заданной ноде);
<IFACE> - интерфейс, который будет использовать данную трассировку. Символ "*" используется для указания всех интерфейсов (трассировка выполняется по номеру абонента);
<ADDRESS> - адрес, который будет использовать данную трассировку. Символ "*" используется для указания всех адресов (трассировка выполняется по интерфейсу);

В одной трассировке только один из параметров <IFACE>, <ADDRESS> может принимать значение "*".

<NAME> - имя трассировки;
<LIFETIME> - время жизни данного трейсера, в часах. По истечении данного времени трейсер будет автоматически удален.

Параметр может принимать значение infinity - трейсер не будет автоматически удаляться, но если он будет "жить" более одного дня, будет сгенерировано информационное сообщение.

<TYPE> - тип N-го "писателя" трассировок:

  • file - трассировка записывается в файл;
  • homer - трассировка передается в homer;
  • UDP - трассировка передается в UDP-потоке;
  • MySQL - трассировка передается в MySQL базу данных;
  • XMPP - трассировка передается Jabber-клиенту.

<ARGS> - настройка N-го "писателя" данной трассировки. В зависимости от того, какой тип записи трассировки используется <TYPE>, параметры его инициализации будут различаться:

Таблица 1. Виды "писателей" трассировок

<TYPE><ARGS>Описание
file<FILE> <MODE><FILE> - имя файла, в который будет записываться трассировка;
<MODE> - тип перезаписи файла, если файл уже существует при старте трассировки:
- write - режим переписывает существующий файл при перезапуске tts;
- append - режим дописывает новые записи в конец файла.
homer<HOST>:<PORT>

<HOST> - имя хоста, на котором запущен homer;

<PORT> - имя порта, на котором запущен homer;

Homer - сервер, принимающий данные по протоколу HEP

UDP<HOST>:<PORT><HOST> - имя хоста, на котором поднят UDP-слушатель;
<PORT> - имя порта, на котором поднят UDP-слушатель;
UDP-слушателя на "localhost" можно поднять командой: socat - udp-listen:<Port>,reuseaddr,fork
MySQL<NAME> <PASSWD> <HOST>:<PORT> <DB><USER> - имя пользователя, под которым будут производиться записи в БД;
<PASSWD> - пароль пользователя, под которым будут производиться записи в БД;
<HOST> - хост, на котором поднята MySQL БД;
<PORT> - порт, на котором поднята MySQL БД;
<DB> - имя БД, в которую будет записываться трассировка вызова.
XMPPJID: <USER>@<HOST><USER> - имя пользователя Jabber-клиента;
<HOST> - хост Jabber-клиента.

Пример:

Создание трассировки номера 240467 и записи его в UDP поток.

admin@[ds1@ecss1]:/$ domain/biysk.local/tracer/declare core1@ecss1 * 240467 tr67 2 UDP 192.168.1.12:5999 
Trace successfully declared.

[exec at: 16.03.2019 15:42:34, exec time: 169ms, nodes: core1@ecss1]

remove

Данной командой удаляется созданная ранняя трассировка вызова.

Путь команды:

/domain/<DOMAIN>/tracer/remove

Синтаксис:

remove <NAME>

Параметры:

<DOMAIN> - имя виртуальной АТС, в котором определена трассировка;
<NAME> - имя удаляемой трассировки.

Пример:

Удаление трассировки "tr67"

admin@[ds1@ecss1]:/$ domain/biysk.local/tracer/remove tr67
Trace tr67 successfully removed.

[exec at: 16.03.2019 15:49:08, exec time: 280ms, nodes: core1@ecss1]

show

Данной командой можно просмотреть список созданных трассировок вызова и настройку их параметров.

Путь команды:

/domain/<DOMAIN>/tracer/show

Синтаксис:

show [<NAME>]

Параметры:

<DOMAIN> - имя виртуальной АТС, в котором определена трассировка;
<NAME> - имя трассировки, опциональный параметр.

Пример:

Просмотр всех трассировок:

admin@[ds1@ecss1]:/$ domain/biysk.local/tracer/show 
┌────┬───────────┬───────────┬─────┬───────┬──────────┬─────────┬──────────────────────────────────┐
│Name│   Node    │  Domain   │Iface│Address│  Create  │Lifetime │          Data providers          │
├────┼───────────┼───────────┼─────┼───────┼──────────┼─────────┼──────────────────────────────────┤
│tr67│core1@ecss1│biysk.local│*    │ 240467│16.03.2019│2 hour(s)│UDP data provider:                │
│    │           │           │     │       │15:42:34  │         │  host: 192.168.1.12              │
│    │           │           │     │       │          │         │  port: 5999                      │
│tr75│core1@ecss1│biysk.local│*    │ 240475│16.03.2019│1 hour(s)│File data provider:               │
│    │           │           │     │       │15:44:58  │         │  path: /var/log/ecss/240475.trace│
│    │           │           │     │       │          │         │  mode: append                    │
└────┴───────────┴───────────┴─────┴───────┴──────────┴─────────┴──────────────────────────────────┘

[exec at: 16.03.2019 15:45:20, exec time: 91ms, nodes: core1@ecss1]