Снятие трассировок ядра
Core_cp_trace – отладочный log-файл ядра, в котором хранится история обмена сообщениями между приложениями ECSS-10. Данный log-файл позволяет рассмотреть историю обслуживания вызова и проанализировать причины разъединения.
Для активации функции снятия трассировок необходимо ввести команду set mode:
domain/test_domain/trace/properties/set mode full_compressed
Режимы трассировок описаны в Команды настройки подсистемы трассировки вызовов.
Для отключения core_cp_trace необходимо выполнить следующие команды:
domain/<DOMAIN>/trace/properties/set mode disabled
Для просмотра списка трассировок используется команда list:
domain/test_domain/trace/list
Пример вывода списка трассировок:
Short ID | Start | Stage | Original CgPN | Original CdPN | CgPN | CdPN | M | Duration | Release | ISUP release | F |
---|---|---|---|---|---|---|---|---|---|---|---|
45cc5735 | 28.07.2016 10:51:58 | released | 1000 | 1005 | 1000 | 1005 | n | 9s | normal | 16/0 |
Для просмотра трассировки определенного вызова необходимо найти этот вызов используя значения следующих столбцов:
- Start (Время начала вызова);
- Original CgPN (Номер вызывающего абонента);
- Original CdPN (Номер вызываемого абонента);
- Duration (Продолжительность вызова).
В первом столбце таблице указывается Short ID, по значению которого можно вывести трассировку для этого вызова.
Вывод трассировки выполняется командой show:
domain/test_domain/trace/show --Te 45cc5735
Для более подробного вывода используется аргумент --payload, если необходимо вывести на экран только одно сообщение то команда show дополняется аргументом --desired N, где N - это номер сообщения. Например, команда domain/test_domain/trace/show --Te 45cc5735
выведет трассировку вызова с Short ID равным 45cc5735.
Анализ данного log-файла требует определенной подготовки. Для начала анализа log-файла необходимо найти сообщение "ReleaseReq" и посмотреть причину. Далее искать решение проблемы в зависимости от причины разъединения.
Пример сообщения "ReleaseReq":
13. out/amqp/<<"8004dc055d1b4dcb">>: 0 00:00:02.889 (2013/05/06 11:45:01.882506): 7130/62877 --------------------- Type: cast ref Mandatory: false Cmd: {'message.transfer',"ecss.call.data.ex",0,0} Payload: {'AcpMessage',<<"111@192.168.18.113">>,3502537240920379, {'ReleaseReq', {'ReleaseType',invalidNumber,system,"799", <<128,156>>, [{causeDescription, {'AdditionalCauseDescription',undefined, "Rule \"default_no_route\" finished with no route (isup cause: undefined)"}}], undefined,undefined,undefined,false, {1367,815501,870065}}}} App ID: acp Rk: ecss.pa.sip-t.pa_sip1.pa.sip-t->34333034-6463-3035-3563-656631373934.rk TTL: 30000 Reply ex: ecss.call.data.ex Reply rk: core.cp.core1.7.3.rk sid: pa.sip-t->34333034-6463-3035-3563-656631373934 Result: {<0.2021.0>,#Ref<0.0.57.164013>} >>>>>>>>>>>>>>>>>>>>>
Поле "_causeDescription, {'AdditionalCauseDescription',undefined, "Rule \"default_no_route\" finished with no route (isup cause: undefined)"}"_ указывает на то, что вызов был завершен по причине отсутствия маршрута до вызываемого абонента.
Если возникли вопросы по анализу лога "core_cp_trace", рекомендуется обратиться в техническую поддержку компании Элтекс.
Для сохранения трассировок в файл используется команда save-trace, аргументами которой являются:
--Te - для указания Short ID;
--dets или --text - для указания формата хранения файла (dets внутренний формат для ECSS-10, text для просмотра независимо от системы ECSS-10);
--filename - имя сохраняемого файла.
domain/test_domain/trace/save-trace --Te 45cc5735 --text --filename trace_45cc5735
Найти сохранённый файл можно в директории /var/lib/ecss/cp/test_domain/traces/
.