/domain/<DOMAIN>/trace/ - команды управления трассировками вызовов
В данном разделе описаны команды, позволяющие просматривать и сохранять в файл трассировки вызовов.
Трассировка вызова - список сохраненных сообщений/событий, связанных с определенным вызовом. Одному вызову соответствует одна трассировка, которая состоит из множества сообщений (все связанные вызовы, если они есть, трассируются отдельно).
Медиа трассировка - аналогичный список трассировок визуализирующий прохождения вызова внутри SSW.
list
Команда предназначена для просмотра списка вызовов на ECSS-10, для которых есть трассировка.
Путь команды:
/domain/<DOMAIN>/trace/list
Синтаксис:
list [--id <EndOfDialogID>] [--mode <MODE>] [–addr <NUMBER>] [--addr-a <NUMBER>] [--addr-b <NUMBER>] [--limit <LIMIT>]
Параметры:
- --id <EndOfDialogID> - идентификатора вызова в команде "list", либо шаблон идентификатора (проверяется с конца);
- -- mode <MODE> - тип просматриваемого вызова, принимает значения:
- normal - обычный голосовой вызов;
- internal - системный (не голосовой) вызов (например запрос на сервис TSMN);
- callback - в случае, когда система делает обратный отзвон на абонента;
- supervise - вызов супервизора КЦ с целью подключения к разговору оператора КЦ;
- acd - вызов, распределенный очередью;
- message - "вызов" для передачи SIP message;
- refer - "вызов", порожденный SIP refer-ом;
- mgm - вызов для управления ДВО абонента с ТА;
- all - все типы вызовов
- --limit <LIMIT> - количество вызовов, информацию о которых необходимо показать;
- --addr, --addr-a, --addr-b - фильтр выдачи команды по номерам;
- --release-description - добавить в таблицу колонку с описанием причина разъединения вызова.
Пример:
admin@[ds1@ecss1]:/$ domain/biysk.local/trace/list --limit 10 ┌────────┬───────────────────┬────────┬──────────┬────────┬──────────┬──────┬─┬────────┬────────┬───────┬─┐ │Short ID│ Start │ Stage │ Original │Original│ CgPN │ CdPN │M│Duration│Release │ ISUP │F│ │ │ │ │ CgPN │ CdPN │ │ │ │ │ │release│ │ ├────────┼───────────────────┼────────┼──────────┼────────┼──────────┼──────┼─┼────────┼────────┼───────┼─┤ │52794d60│16.03.2019 11:46:59│released│9649910879│ 246584│9649910879│246584│n│ 24s│normal │ 102/0 │ │ │516c4435│16.03.2019 11:51:45│released│9384382481│ 246988│9384382481│246988│n│ 24s│aPtyDisc│ 18/0 │ │ │0bb0c585│16.03.2019 12:02:26│released│9625527107│ 246965│9625527107│246965│n│ 24s│normal │ 102/0 │ │ │062558ff│16.03.2019 12:03:51│released│9609996143│ 245285│9609996143│245285│n│ 24s│normal │ 102/0 │ │ │72744b58│16.03.2019 12:06:47│released│9621061504│ 245138│9621061504│245138│n│ 24s│normal │ 102/0 │ │ │28a99ce8│16.03.2019 12:08:57│released│ 240475│ 058│3854240475│ 058│n│ 5s│normal │ 16/0 │ │ │268dcee7│16.03.2019 12:09:48│released│9913699011│ 240530│9913699011│240530│n│ 4s│normal │ 16/0 │ │ │268dcee7│16.03.2019 12:09:48│released│ 240530│ C101│9913699011│ C101│n│ 4s│normal │ 16/0 │ │ │b711c3be│16.03.2019 12:10:04│released│9913699011│ 240475│9913699011│240475│n│ 20s│normal │ 16/0 │ │ │4a2c37cb│16.03.2019 12:10:45│released│ 240467│ 419145│3854240467│419145│n│ 5s│normal │ 16/0 │ │ └────────┴───────────────────┴────────┴──────────┴────────┴──────────┴──────┴─┴────────┴────────┴───────┴─┘ Legend: M - mode i - internal n - normal c - callback F - flag show is call-process failed or not * - call-procss failed [empty] - call-procss active or successfully finished Total call processes' records: 47 Selected call processes' records: 10 [exec at: 16.03.2019 12:11:10, exec time: 117ms, nodes: core1@ecss1]
Пример 2.
admin@mycelium1@ecss1:/$ domain/biysk.local/trace/list --addr-b 245170 --release-description ┌────────┬──────────┬───────────────────┬────────┬────────┬────────┬──────────┬──────┬─┬────────┬───────┬───────┬────────────────┬─┐ │Short ID│ CallRef │ Start │ Stage │Original│Original│ CgPN │ CdPN │M│Duration│Release│ ISUP │ Release │F│ │ │ │ │ │ CgPN │ CdPN │ │ │ │ │ │release│ description │ │ ├────────┼──────────┼───────────────────┼────────┼────────┼────────┼──────────┼──────┼─┼────────┼───────┼───────┼────────────────┼─┤ │7b986f31│2781582762│26.02.2020 08:29:59│released│ 241170│ 245170│3854241170│245170│n│ 14s│normal │ 16/0 │Call is complete│ │ └────────┴──────────┴───────────────────┴────────┴────────┴────────┴──────────┴──────┴─┴────────┴───────┴───────┴────────────────┴─┘ Legend: M - mode i - internal n - normal c - callback s - supervise a - acd m - message r - refer F - flag show is call-process failed or not * - call-procss failed [empty] - call-procss active or successfully finished Total call processes' records: 204 Selected call processes' records: 1 [exec at: 26.02.2020 08:53:13, exec time: 52ms, nodes: core1@ecss1]
media-topology
Команда предназначена для просмотра медиа трассировок.
Путь команды:
/domain/<DOMAIN>/trace/media-topology
Синтаксис:
media-topology [<PARAMETERS>]
Параметры:
- --Te <TemplateEnd> - суффикс, шаблон с конца, идентификаторов вызовов(8 символов);
- --Tl <CallNumber> - порядковый номер вызовов с конца, который необходимо сохранить. Например, 1 - последний вызов, 2 - предпоследний, и так далее;
- --file <Host> <Filename> - опция для загрузки трассировок с указанного хоста (<Host>) файла (<Filename>);
- --all - опция для просмотра всех трассировок;
- --apps - опция для просмотра сообщений между медиа-менеджером и application side;
- --msr - опция для просмотра сообщений между медиа-менеджером и медиа-сервером;
- --full - опция для печати диалога в полном формате;
- --short - Prints dialog topology dumps;
- --raw - Prints not optimized dialog topology.
Пример:
admin@[ds1@ecss1]:/$ domain/biysk.local/trace/media-topology --Tl 1 ------------------------------------------------------------------------------------- TraceId: <<"8c5e959a0a178244">> First message time: 16.03.2019 14:06:08 ------------------------------------------------------------------------------------- 18. in: 00:00:00:299 timer_rebuild_topology_awake ------------------------------------------------------------------------------------- ┌────────────┐ ┌───────────────┐ ┌───────────────┐ │ <player> │ │ <connection> │ │ <detector> │ │ ivr player │ ──> │ o-leg: 240467 │ ──> │ DTMF detector │ └────────────┘ └───────────────┘ └───────────────┘ ------------------------------------------------------------------------------------- 33. in: 00:00:04:327 timer_rebuild_topology_awake ------------------------------------------------------------------------------------- ┌────────────┐ ┌───────────────┐ ┌───────────────┐ │ <player> │ │ <connection> │ │ <detector> │ │ ivr player │ ──> │ o-leg: 240467 │ ──> │ DTMF detector │ └────────────┘ └───────────────┘ └───────────────┘ ------------------------------------------------------------------------------------- 53. in: 00:00:07:284 timer_rebuild_topology_awake ------------------------------------------------------------------------------------- ┌────────────┐ ┌───────────────┐ ┌───────────────┐ │ <player> │ │ <connection> │ │ <detector> │ │ ivr player │ ──> │ o-leg: 240467 │ ──> │ DTMF detector │ └────────────┘ └───────────────┘ └───────────────┘ [exec at: 16.03.2019 14:17:20, exec time: 921ms, nodes: core1@ecss1]
purge
Команда предназначена для подчистки завершенных вызовов на ECSS-10. Команда удаляет трассировки ядра вне зависимости от текущего бэкэнда. Будут удалены трассировки соответствующие условиям как в режиме ETS так и в режиме DETS (Удаляются только те dets трассировки, которые лежат по стандартным путям и имеют расширение .dets).
Открытые ETS трассировки игнорируются. Открытые Dets трассировки будут удалены.
Путь команды:
/domain/<DOMAIN>/trace/purge
Чтобы не удалять все трассировки, существуют определенные флаги:
Параметры:
- --Tb <Template> - Template Begin - С какой последовательности должна начинаться трассировка (call_id - 8 символов)
- --Te <Template> - Tepmlate End - На какую последовательность должна заканчиваться трассировка (call_id - 8 символов)
- --t <Hours> - Live Time in Hour - Период в часах (от текущего момента), за который трассировки должны остаться
- --c <Count> - Count - Количество трассировок (выбираются самые новые), которые точно должны остаться
- --r <Reason> - Reason - Причина завершения вызова. Может быть normal и exception
При указании флагов --Te и --Tb вместе, поиск нужной трассировки осуществляется по шаблону <Template Begin>*<Template End>. Другими словами, если значения флагов пересекаются (к примеру указано полное имя трассировки в каждом флаге), то трассировка найдена не будет.
Остальные флаги полностью совместимы друг с другом. Ввод одного флага лишь включает соответствующий ему фильтр.
Значение флагов --t и --c не может быть отрицательным.
--с считает все трассировки (включая открытые) и Dets-трассировки расположенные по корректным путям (ручное сохранение трассировок, если оно не попадает под каноничный формат, игнорируется).
Для флага --t, время ETS трассировки - время её закрытия (release_time). Для Dets, если её нет в Actuals calls list - час создания (start_time)
Порядок применения флагов
Start -> --Te / --Tb -> --r -> --t -> --c -> PurgeПример:
admin@[ds1@ecss1]:/$ domain/biysk.local/trace/purge --t 48 Successfully removed records: 600 [exec at: 16.03.2019 14:35:53, exec time: 241ms, nodes: core1@ecss1]
route
Команда предназначена для просмотра трассировок маршрутизации вызова.
Путь команды:
/domain/<DOMAIN>/trace/route
Синтаксис:
route [--Te <TemplateEnd> | --Tl <TraceNumber> | --file <Node> <Filename>]
Параметры:
- --Te <TemplateEnd> - суффикс, шаблон с конца, идентификаторов вызовов, которые необходимо отобразить(8 символов);
- --Tl <CallNumber> - порядковый номер вызовов с конца, который необходимо отобразить. Например, 1 - последний вызов, 2 - предпоследний, и так далее.
- --file <Node> <Filename> - имя файла трассировки. Команда принимает только dets файлы.
Примеры:
Вывод трассировки маршрутизации последнего вызова:
admin@[ds1@ecss1]:/$ domain/biysk.local/trace/route --Tl 1 1. ========================================== Traceroute to 245988 from 9254733702(<<"smg-4">>) at 16.03.2019 12:27:03, final number Default context is ctx_from_ewsd digitmap: X. Update numbering plan on <<"np_240">> 1. ctx_from_ewsd / default A: "9254733702"(displayName=undefined, ni=private, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="9254733702") B: "245988"(displayName=undefined, ni=private, nai=subscriberNumber, inc=false, inni=routingToInternalNumberAllowed, npi=isdnTelephony, category=undefined) applying rule: normalize_called_to_national (CDPN: digits=______, nai:subscriberNumber, final: true) action: transform cdpn nai: nationalNumber, digits: 3854245988 result: keep on 2. ctx_from_ewsd / default A: "9254733702"(displayName=undefined, ni=private, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="9254733702") B: "3854245988"(displayName=undefined, ni=private, nai=nationalNumber, inc=false, inni=routingToInternalNumberAllowed, npi=isdnTelephony, category=undefined) applying rule: ni_intercity1 (CGPN: %, nai:nationalNumber, final: true) action: change context to ctx_city_common action: transform cgpn ni: intercity action: transform calling alias - caller_id: 89254733702, sorm_digits: "79254733702", sorm_ni: intercity result: keep on 3. ctx_city_common / default A: "9254733702"(displayName=undefined, ni=intercity, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="9254733702") B: "3854245988"(displayName=undefined, ni=private, nai=nationalNumber, inc=false, inni=routingToInternalNumberAllowed, npi=isdnTelephony, category=undefined) applying rule: to_ems1 (CDPN: digits=3854245___, nai:nationalNumber) action: set external trunks [{<<"ems1">>,1,undefined}] action: transform cdpn nai: subscriberNumber, digits: 245988, ni: local ------------------------------------------ Routing result: external A: "9254733702"(displayName=undefined, ni=intercity, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="89254733702") B: "245988"(displayName=undefined, ni=local, nai=subscriberNumber, inc=false, inni=routingToInternalNumberAllowed, npi=isdnTelephony, category=undefined) Options: sorm_ni_a: intercity sorm_digits_a: 79254733702 A interface info: B interfaces info: [{[dtmf_source],'rfc+info'}, [[{[dtmf_source],'rfc+info'}, {[site],<<"local">>}, {[site],<<"local">>}, {[terminal_type],smart}, {[terminal_type],smart}, {[zone],<<"default">>}, {[zone],<<"default">>}, {[gate], {[gate], {gate_amqp,<<"acp.adapter.init.ex">>,<<"acp.sip.sip1.ipset1.init.rk">>}}, {gate_amqp,<<"acp.adapter.init.ex">>,<<"acp.sip.sip1.ipset1.init.rk">>}}, {[owner],"sip1"}, {[owner],"sip1"}, {[iface],<<"smg-4">>}, {[iface],<<"ems1">>}, {[type],sip}, {[type],sip}, {[name],"smg-4"}, {[name],"ems1"}, {[group],"smg.gr"}, {[group],"ssw.gr"}, {[isActive],true}, {[isActive],true}, {[mode],sipt}, {[mode],sipt}, {['routing.context'],ctx_from_ewsd}, {['routing.context'],ctx_from_local}, {[subtype],trunk}, {[subtype],trunk}, {[trunk],"biysk.local.smg.gr.trunk.autoname"}, {[trunk],"biysk.local.ssw.gr.trunk.autoname"}, {['media-profile'], {['media-profile'], {media_profile,"biysk.local","default", {media_profile,"biysk.local","default", "Default media profile for current domain.",user, "Default media profile for current domain.",user, [{media_profile_codecs,'<other>', [{media_profile_codecs,'<other>', [{media_profile_codec,<<"<other>">>,<<"*">>,true,[]}], [{media_profile_codec,<<"<other>">>,<<"*">>,true,[]}], [{[offroad],true}]}, [{[offroad],true}]}, {media_profile_codecs,audio, {media_profile_codecs,audio, [{media_profile_codec,<<"G722">>,<<"*">>,true,[]}, [{media_profile_codec,<<"G722">>,<<"*">>,true,[]}, {media_profile_codec,<<"PCMA">>,<<"*">>,true,[]}, {media_profile_codec,<<"PCMA">>,<<"*">>,true,[]}, {media_profile_codec,<<"PCMU">>,<<"*">>,true,[]}, {media_profile_codec,<<"PCMU">>,<<"*">>,true,[]}, {media_profile_codec,<<"G729">>,<<"*">>,true,[]}, {media_profile_codec,<<"G729">>,<<"*">>,true,[]}, {media_profile_codec,<<"telephone-event">>,<<"*">>,true,[]}], {media_profile_codec,<<"telephone-event">>,<<"*">>,true,[]}], [{[offroad],true}]}], [{[offroad],true}]}], []}}] []}}]] A alias info: [{[access_group],all}, {[access_type], {access_type0, [{{private,in},true}, {{private,out},true}, {{local,in},true}, {{local,out},true}, {{zone,in},true}, {{zone,out},true}, {{intercity,in},true}, {{intercity,out},true}, {{international,in},true}, {{international,out},true}, {{emergency,in},true}, {{emergency,out},true}], <<128,144>>}}, {[address],"900"}, {[alias],{"biysk.local",<<"smg-4">>}}, {[cdr_group],bsk3}, {[cpt,traces],[]}, {[domain],"biysk.local"}, {[iface],<<"smg-4">>}, {[isActive],true}, {[language],ru}, {['media-profile'], {media_profile,"biysk.local","default", "Default media profile for current domain.",user, [{media_profile_codecs,'<other>', [{media_profile_codec,<<"<other>">>,<<"*">>,true,[]}], [{[offroad],true}]}, {media_profile_codecs,audio, [{media_profile_codec,<<"G722">>,<<"*">>,true,[]}, {media_profile_codec,<<"PCMA">>,<<"*">>,true,[]}, {media_profile_codec,<<"PCMU">>,<<"*">>,true,[]}, {media_profile_codec,<<"G729">>,<<"*">>,true,[]}, {media_profile_codec,<<"telephone-event">>,<<"*">>,true,[]}], [{[offroad],true}]}], []}}, {[pin],"1111"}, {[ss],[]}, {[ss,mgm,telephone],enabled}, {[subscriber_portal,login],"900_7nM7"}, {[subscriber_portal,password],"wQSLvO2a"}, {[timetables,tt2], {ecss_timetable,tt2,[{ecss_timetable_filter,'HOLIDAY',{8,0},{17,0}}],[]}}, {[timezone],'UTC+07:00'}, {[uid],<<"88fc4856de112082">>}, {[original_address],"9254733702"}, {[original_cdpn_address],"245988"}] [exec at: 16.03.2019 12:36:23, exec time: 408ms, nodes: core1@ecss1,ds1@ecss1]
Вывод трассировки маршрутизации вызова из dets файла:
admin@[ds1@ecss1]:/$ domain/biysk.local/trace/route --file ecss1 2019_03_16/11-00/8c55725ee4ca8c07.dets 1. ========================================== Traceroute to 246965 from 9682733489(<<"smg-4">>) at 16.03.2019 11:18:41, final number Default context is ctx_from_ewsd digitmap: X. Update numbering plan on <<"np_240">> 1. ctx_from_ewsd / default A: "9682733489"(displayName=undefined, ni=private, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="9682733489") B: "246965"(displayName=undefined, ni=private, nai=subscriberNumber, inc=false, inni=routingToInternalNumberAllowed, npi=isdnTelephony, category=undefined) applying rule: normalize_called_to_national (CDPN: digits=______, nai:subscriberNumber, final: true) action: transform cdpn nai: nationalNumber, digits: 3854246965 result: keep on 2. ctx_from_ewsd / default A: "9682733489"(displayName=undefined, ni=private, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="9682733489") B: "3854246965"(displayName=undefined, ni=private, nai=nationalNumber, inc=false, inni=routingToInternalNumberAllowed, npi=isdnTelephony, category=undefined) applying rule: ni_intercity1 (CGPN: %, nai:nationalNumber, final: true) action: change context to ctx_city_common action: transform cgpn ni: intercity action: transform calling alias - caller_id: 89682733489, sorm_digits: "79682733489", sorm_ni: intercity result: keep on 3. ctx_city_common / default A: "9682733489"(displayName=undefined, ni=intercity, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="9682733489") B: "3854246965"(displayName=undefined, ni=private, nai=nationalNumber, inc=false, inni=routingToInternalNumberAllowed, npi=isdnTelephony, category=undefined) applying rule: to_ems2 (CDPN: digits=3854246___) action: set direction <<"tg-112">> action: transform cdpn ni: local, digits: 246965 ------------------------------------------ Routing result: direction A: "9682733489"(displayName=undefined, ni=intercity, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="89682733489") B: "246965"(displayName=undefined, ni=local, nai=nationalNumber, inc=false, inni=routingToInternalNumberAllowed, npi=isdnTelephony, category=undefined) Options: sorm_ni_a: intercity sorm_digits_a: 79682733489 A interface info: B direction info: [{[dtmf_source],'rfc+info'}, [[{[isActive],true}, {[site],<<"local">>}, {[description],[]}, {[terminal_type],smart}, {[bandwidth],unbounded}, {[zone],<<"default">>}, {[trunks],[<<"ems2">>,<<"bsk2">>]}, {[gate], {[direction],<<"tg-112">>}, {gate_amqp,<<"acp.adapter.init.ex">>,<<"acp.sip.sip1.ipset1.init.rk">>}}, {[calls],2}, {[owner],"sip1"}, {[stat,out],44}, {[iface],<<"smg-4">>}, {[stat,reject],60}]] {[type],sip}, {[name],"smg-4"}, {[group],"smg.gr"}, {[isActive],true}, {[mode],sipt}, {['routing.context'],ctx_from_ewsd}, {[subtype],trunk}, {[trunk],"biysk.local.smg.gr.trunk.autoname"}, {['media-profile'], {media_profile,"biysk.local","default", "Default media profile for current domain.",user, [{media_profile_codecs,'<other>', [{media_profile_codec,<<"<other>">>,<<"*">>,true,[]}], [{[offroad],true}]}, {media_profile_codecs,audio, [{media_profile_codec,<<"G722">>,<<"*">>,true,[]}, {media_profile_codec,<<"PCMA">>,<<"*">>,true,[]}, {media_profile_codec,<<"PCMU">>,<<"*">>,true,[]}, {media_profile_codec,<<"G729">>,<<"*">>,true,[]}, {media_profile_codec,<<"telephone-event">>,<<"*">>,true,[]}], [{[offroad],true}]}], []}}] A alias info: [{[access_group],all}, {[access_type], {access_type0, [{{private,in},true}, {{private,out},true}, {{local,in},true}, {{local,out},true}, {{zone,in},true}, {{zone,out},true}, {{intercity,in},true}, {{intercity,out},true}, {{international,in},true}, {{international,out},true}, {{emergency,in},true}, {{emergency,out},true}], <<128,144>>}}, {[address],"900"}, {[alias],{"biysk.local",<<"smg-4">>}}, {[cdr_group],bsk3}, {[cpt,traces],[]}, {[domain],"biysk.local"}, {[iface],<<"smg-4">>}, {[isActive],true}, {[language],ru}, {['media-profile'], {media_profile,"biysk.local","default", "Default media profile for current domain.",user, [{media_profile_codecs,'<other>', [{media_profile_codec,<<"<other>">>,<<"*">>,true,[]}], [{[offroad],true}]}, {media_profile_codecs,audio, [{media_profile_codec,<<"G722">>,<<"*">>,true,[]}, {media_profile_codec,<<"PCMA">>,<<"*">>,true,[]}, {media_profile_codec,<<"PCMU">>,<<"*">>,true,[]}, {media_profile_codec,<<"G729">>,<<"*">>,true,[]}, {media_profile_codec,<<"telephone-event">>,<<"*">>,true,[]}], [{[offroad],true}]}], []}}, {[pin],"1111"}, {[ss],[]}, {[ss,mgm,telephone],enabled}, {[subscriber_portal,login],"900_7nM7"}, {[subscriber_portal,password],"wQSLvO2a"}, {[timetables,tt2], {ecss_timetable,tt2,[{ecss_timetable_filter,'HOLIDAY',{8,0},{17,0}}],[]}}, {[timezone],'UTC+07:00'}, {[uid],<<"88fc4856de112082">>}, {[original_address],"9682733489"}, {[original_cdpn_address],"246965"}] [exec at: 16.03.2019 12:42:53, exec time: 309ms, nodes: core1@ecss1,ds1@ecss1]
save-trace
Команда предназначена для сохранения сигнальной трассировки вызова в файл.
Путь команды:
/domain/<DOMAIN>/trace/save-trace
Синтаксис:
save-trace [--Tb <BeginPattern>| --Te <EndPattern> | --Tl <CallNumber>] | [--text | --dets] --file <host> <filename> [--force]
Параметры:
- --Tb <TemplateBegin> - префикс, шаблон с начала, идентификаторов вызовов(8 символов);
- --Te <TemplateEnd> - суффикс, шаблон с конца, идентификаторов вызовов(8 символов);
- --Tl <CallNumber> - порядковый номер вызовов с конца списка трассировок, который необходимо сохранить. Например, 1 - последний вызов, 2 - предпоследний, и так далее;
- --text - при указании команды трассировки вызовов будут сохраняться в текстовом файле;
- --dets(по умолчанию) - при указании команды трассировки вызовов будут сохраняться в формате DETS файла. Файл в формате DETS можно будет использовать в команде "show";
- --file <HOST> <FILENAME> - при указании команды трассировки вызовов будут сохраняться на заданном хосте (<HOST>), в заданном файле (<FILENAME>);
- --force - сохранять трассировку, даже если файл существует(с перезаписью).
- Примечание 1. Сохранение сигнальной трассировки в файл производится по пути: {DATA-ROOT}/cp/<DOMAIN>/traces. По умолчанию - /var/lib/ecss/cp/<DOMAIN>/traces/.
- Примечание 2. Команда "save-trace --file <host> <filename>" эквивалентна команде "save-trace --dets --Tl 1 --file <host> <filename>".
Пример:
admin@[ds1@ecss1]:/$ domain/biysk.local/trace/save-trace --Te 4a2c37cb --text --file ecss1 2019_03_16/240467_cp.txt ok [exec at: 16.03.2019 13:50:04, exec time: 2s 816ms, nodes: core1@ecss1]
save-media
Команда предназначена для сохранения медиа трассировки вызова в файл.
Путь команды:
/domain/<DOMAIN>/trace/save-media
Синтаксис:
save-media --Te <EndPattern> [--filename <host> <filename>]
Параметры:
- --Te <TemplateEnd> - суффикс, шаблон с конца, идентификаторов вызовов(8 символов);
- --filename <HOST> <FILENAME> - Медиа трассировка сохранится на заданном хосте (<HOST>), в заданном файле (<FILENAME>). По умолчанию, этот параметр будет равен "mm-<TRACE ID>".
Примечание. Сохранение медиа трассировки в файл производится по пути: {DATA-ROOT}/cp/<DOMAIN>>/traces. По умолчанию - /var/lib/ecss/cp/<DOMAIN>/traces/.
Пример:
admin@[ds1@ecss1]:/$ domain/biysk.local/trace/save-media --Te 0a178244 --file ecss1 ivr_530.dets Trace saved succesfull. [exec at: 16.03.2019 14:20:10, exec time: 525ms, nodes: core1@ecss1]
dump
Команда предназначена для сохранения всех сигнальных и/или медиа трассировок вызовов в директорию или архив.
Путь команды:
/domain/<DOMAIN>/trace/dump
Синтаксис:
dump [<Filename>] [-a | --archive|-d|--directory] [-m|--with-media] [-u|--uncompress] [-n <Node>] [–force]
Параметры:
- <Filename> - имя директории или архива, куда будут помещены трассировки. По умолчанию: dump_<YYYY>_<MM>_<DD>_<hh>_<mm>_<ss>;
- -a, --archive - сохранить трассировки в архив <Filename>. Если указано, к имени файла будет добавлен суффикс .tar;
- -d, --directory - сохранить трассировки в директорию <Filename>. Если не будут заданы флаги -d, --direcotry, -a, --archive, то трассировки сохранятся в директорию по умолчанию;
- -m, --with-media - сохранить также трассировки медии. Трассировки медии будут сохранены в поддиректорию media/ внутри директории или архива;
- -u, --uncompress - разжать трассировки перед сохранением на диск. Это может быть полезно например для использования утилиты grep. Учтите однако, что это увеличит объем дампа на диске;
- -n, --node - нода на которой трассировки будут сохранены. Трассировки всегда получаются на всех нодах, но сохраняются только на ноде указанной с помощью флага -n. Данный флаг можно опустить только если в кластере Core всего одна нода;
- --force - принудительный запуск команды. Параметр необходимо вводить только в конце строки.
Примечание 1. Сохранение дампа трассировок в архив/директорию производится по пути: {DATA-ROOT}/cp/<DOMAIN>>/traces/<Filename>. По умолчанию - /var/lib/ecss/cp/<DOMAIN>/traces/<Filename>.
Пример:
admin@[mycelium1@PAUL#ECSS-D 000001]:/$ domain/test.domain/trace/dump -u -m -u <<"0624679e20321f19">> OK [1/14] <<"062467a1c9d004e9">> OK [2/14] <<"062468e933cb66e0">> OK [3/14] <<"06246966258ede5c">> OK [4/14] <<"06247715a216d72f">> OK [5/14] <<"062477182cc1827a">> OK [6/14] <<"06247718819c8f61">> OK [7/14] Saving media trace... <<"0624679e20321f19">> OK [8/14] <<"062467a1c9d004e9">> OK [9/14] <<"062468e933cb66e0">> OK [10/14] <<"06246966258ede5c">> OK [11/14] <<"06247715a216d72f">> OK [12/14] <<"062477182cc1827a">> OK [13/14] <<"06247718819c8f61">> OK [14/14] DONE Traces has been saved in "/var/lib/ecss/cp/test.domain/traces/dump_2019_10_31_11_33_25" Media traces has been saved in "/var/lib/ecss/cp/test.domain/traces/dump_2019_10_31_11_33_25/media" [exec at: 31.10.2019 11:33:26, exec time: 1s 447ms, nodes: core1@IBM]
Пример 2:
admin@[mycelium1@PAUL#ECSS-D 000001]:/$ domain/test.domain/trace/dump -a -u -m -u <<"0624679e20321f19">> OK [1/14] <<"062467a1c9d004e9">> OK [2/14] <<"062468e933cb66e0">> OK [3/14] <<"06246966258ede5c">> OK [4/14] <<"06247715a216d72f">> OK [5/14] <<"062477182cc1827a">> OK [6/14] <<"06247718819c8f61">> OK [7/14] Saving media trace... <<"0624679e20321f19">> OK [8/14] <<"062467a1c9d004e9">> OK [9/14] <<"062468e933cb66e0">> OK [10/14] <<"06246966258ede5c">> OK [11/14] <<"06247715a216d72f">> OK [12/14] <<"062477182cc1827a">> OK [13/14] <<"06247718819c8f61">> OK [14/14] DONE Traces has been saved in "/var/lib/ecss/cp/test.domain/traces/dump_2019_10_31_11_33_50.tar" [exec at: 31.10.2019 11:33:53, exec time: 2s 498ms, nodes: core1@IBM]
show
Данной командой выполняется просмотр трассировки по вызовам на ECSS-10.
Путь команды:
/domain/<DOMAIN>/trace/show
Синтаксис:
show [--Te <TemplateEnd> | --Tl <TraceNumber> | --file <Node> <Filename>] [--amqp | --trike | --ccp <Module> | --all] [--Bid <BranchId> | --Oid <ObjectId>] [--payload | --short-payload [--show-sdp | --timers]] [--desired all | <Number>] [--condition <Condition>]
Параметры:
- --all - опция для просмотра всех трассировок;
- --amqp - опция для просмотра только AMQP-сообщений, установлено по умолчанию;
- --Te <TemplateEnd> - суффикс, шаблон с конца, идентификаторов вызовов, которые необходимо отобразить(8 символов);
- --Tl <CallNumber> - порядковый номер вызовов с конца, который необходимо отобразить. Например, 1 - последний вызов, 2 - предпоследний, и так далее;
- --file <Host> <Filename> - опция для загрузки трассировок с указанного хоста (<Host>) файла (<Filename>);
- --trike - опция для просмотра только сообщений, которыми обмениваются сервисы внутри ядра системы;
- --ccp <Module> - опция для просмотра трассировок только по заданному модулю ядра системы;
- --Bid <BranchId> - опция для просмотра трассировок только по заданной цепочке вызова (обычный вызов состоит из одной цепочки, но в случае услуг, например, HOLD, 3WAY и другое, цепочек в рамках одного вызова будет более одной);
- --Oid - показать объекты указанной цепочки;
- --payload - показывать только тело сообщения (без транспортной информации);
- --short-payload - показывать только тип сообщения с минимальным набором информации, которое передается в сообщении;
- --show-sdp - опция для просмотра SDP, если они включены в сообщение;
- --desired <Number> - опция для просмотра событий с заданным номером <Number>, при указании значения "all" будут показаны все события.
- --timers - отображение работы всех таймеров
- --show-sdp - отображать SDP, если они присутствуют в сообщениях;
- --skip-internal - пропускать внутренние сообщения;
- --condition <Condition> - дополнительные условия, синтаксис ввода:
- [not] Expression1 [and | or] [not] Expression2 ...
- <Expression> lvalue [= | > | < | <> | like] rvalue
- <Expression> lvalue in ('term', 'term2')
- <lvalue> field1 | 'Field1' | (atom | term | string) 'Value1'
- <rvalue> field1 | .'field1' | 'term' | (atom | term | string) 'Value1'
Пример:
admin@[ds1@ecss1]:/$ domain/biysk.local/trace/show --short-payload --Tl 1 --timers Current release: 3.14.0.198 Trace id: <<"8c5cd28f2e9205b1">> First message time: 2019/03/16 13:33:50 1. 0 00:00:00:000 976426 i SetupInd smg-4 A:9629272363,B:245440,sdp_o 2. 0 00:00:00:009 n Notification {branch_next,main} 3. 0 00:00:00:010 o Timer start o_heartbeat_send ; 1h 4. 0 00:00:00:010 o Timer start o_heartbeat_receive ; 1h 6m 5. 0 00:00:00:010 o Timer start fill_seizure_timeout ; 2s 6. 0 00:00:00:010 976426 o SetupIndAck smg-4 7. 0 00:00:00:020 n Notification {{leg,o},call_id,<<"1552-718030-886148">>} 8. 0 00:00:00:020 n Notification {{leg,o},{zone,"default"},{site,"local"},{profile,"default"}} 9. 0 00:00:00:030 o Timer cancel fill_seizure_timeout ; 0s 10. 0 00:00:00:065 o Timer start router_resp_timeout ; 5s 11. 0 00:00:00:075 o Timer cancel router_resp_timeout ; 0s 12. 0 00:00:00:075 o Timer cancel collect_timeout ; 0s 13. 0 00:00:00:112 n Notification {{leg,t},{zone,"default"},{site,"local"},{profile,"default"}} 14. 0 00:00:00:112 o Timer start o_no_answer_timeout ; 5m 15. 0 00:00:00:112 o Timer start no_answer_timeout ; 1m 16. 0 00:00:00:115 n Notification {{leg,t},contact,bh,"bond1.2@192.168.2.21?22abcd"} 17. 0 00:00:00:127 n Notification {{leg,t},invite_bh_answer} 18. 0 00:00:00:131 o Timer start bh_timeout ; 200ms 19. 0 00:00:00:131 o Timer start response_ack_timeout ; 6s 20. 0 00:00:00:131 976426 o SetupReq ems1 A:9629272363,B:245440,sdp_o 21. 0 00:00:00:143 976426 i SetupReqAck ems1 22. 0 00:00:00:150 o Timer start t_heartbeat_send ; 1h 23. 0 00:00:00:150 o Timer start t_heartbeat_receive ; 1h 6m 24. 0 00:00:00:150 o Timer cancel response_ack_timeout ; 0s 25. 0 00:00:00:150 o Timer start response_timeout ; 25s 26. 0 00:00:00:332 i Timer awake bh_timeout ; 200ms 27. 0 00:00:24:379 976426 i ReleaseInd smg-4 normal,31,isup_network,"Call is cancelled by initiator" 28. 0 00:00:24:425 n Notification {{leg,t},bye} 29. 0 00:00:24:427 o Timer cancel o_no_answer_timeout ; 0s 30. 0 00:00:24:427 o Timer cancel no_answer_timeout ; 0s 31. 0 00:00:24:427 o Timer cancel response_timeout ; 0s 32. 0 00:00:24:427 976426 o ReleaseReq ems1 normal,31,isup_network,"Call is cancelled by initiator" [exec at: 16.03.2019 13:43:27, exec time: 250ms, nodes: core1@ecss1]
Все трассировки находятся в хранилищах трассировок. Количество хранилищ однозначно не регламентировано, и может варьироваться вместе с масштабированием ядра ESCC-1.