/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@mycelium1@ecss1:/$ domain/biysk.local/trace/list --limit 10 ┌────────┬──────────┬───────────────────┬────────┬───────────┬───────────┬───────────┬──────────┬─┬────────┬────────────┬───────┬─┐ │Short ID│ CallRef │ Start │ Stage │ Original │ Original │ CgPN │ CdPN │M│Duration│ Release │ ISUP │F│ │ │ │ │ │ CgPN │ CdPN │ │ │ │ │ │release│ │ ├────────┼──────────┼───────────────────┼────────┼───────────┼───────────┼───────────┼──────────┼─┼────────┼────────────┼───────┼─┤ │7b9590d4│2848689430│01.03.2021 20:54:47│released│79296786432│ 240696│79296786432│ 240696│n│ 0s│notReachable│ 20/0 │ │ │c87b4ca1│2869457863│01.03.2021 20:54:52│released│79296786432│ 240696│79296786432│ 240696│n│ 0s│notReachable│ 20/0 │ │ │38b7a5ae│2898833640│01.03.2021 20:54:59│released│79296786432│ 240696│79296786432│ 240696│n│ 0s│notReachable│ 20/0 │ │ │91189dd0│2923500032│01.03.2021 20:55:05│released│79296786432│ 240696│79296786432│ 240696│n│ 0s│notReachable│ 20/0 │ │ │e27f7f73│2944563368│01.03.2021 20:55:10│released│79296786432│ 240696│79296786432│ 240696│n│ 0s│notReachable│ 20/0 │ │ │d0a3655e│2940246997│01.03.2021 21:12:13│released│ 9017574612│ 246052│ 9017574612│ 246052│n│ 23s│normal │ 31/0 │ │ │f19b8c8e│3015806800│01.03.2021 21:12:31│released│ 240475│ 419145│ 3854240475│ 419145│n│ 5s│normal │ 16/0 │ │ │2c721e0a│3096209101│01.03.2021 21:12:50│released│ 240475│89913699011│ 3854240475│9913699011│n│ 15s│normal │ 16/0 │ │ │a49917a6│3666119754│01.03.2021 21:15:06│released│ 240475│89913699011│ 3854240475│9913699011│n│ 27s│normal │ 16/0 │ │ │33363890│3032690560│01.03.2021 21:29:39│offhook │ 9250210858│ 245866│ 9250210858│ 245866│n│ 10s│ │ │ │ └────────┴──────────┴───────────────────┴────────┴───────────┴───────────┴───────────┴──────────┴─┴────────┴────────────┴───────┴─┘ 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: 123 Selected call processes' records: 10 [exec at: 01.03.2021 21:29:49, exec time: 48ms, nodes: core1@ecss1 v.3.14.7.620]
Пример 2.
admin@mycelium1@ecss1:/$ domain/biysk.local/trace/list --id bcd769ee --release-description ┌────────┬──────────┬───────────────────┬────────┬──────────┬────────┬──────────┬──────┬─┬────────┬───────┬───────┬──────────────────────────────┬─┐ │Short ID│ CallRef │ Start │ Stage │ Original │Original│ CgPN │ CdPN │M│Duration│Release│ ISUP │ Release │F│ │ │ │ │ │ CgPN │ CdPN │ │ │ │ │ │release│ description │ │ ├────────┼──────────┼───────────────────┼────────┼──────────┼────────┼──────────┼──────┼─┼────────┼───────┼───────┼──────────────────────────────┼─┤ │bcd769ee│2597113878│24.02.2021 20:34:35│released│4959664510│ 245452│4959664510│245452│n│ 24s│normal │ 16/0 │Call is cancelled by initiator│ │ └────────┴──────────┴───────────────────┴────────┴──────────┴────────┴──────────┴──────┴─┴────────┴───────┴───────┴──────────────────────────────┴─┘ 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: 4 Selected call processes' records: 1 [exec at: 24.02.2021 22:17:54, exec time: 24ms, nodes: core1@ecss1 v.3.14.7.617] admin@mycelium1@ecss1:/$ domain/biysk.local/trace/list --release-description --addr-a 4959664510 ┌────────┬──────────┬───────────────────┬────────┬──────────┬────────┬──────────┬──────┬─┬────────┬───────┬───────┬──────────────────────────────┬─┐ │Short ID│ CallRef │ Start │ Stage │ Original │Original│ CgPN │ CdPN │M│Duration│Release│ ISUP │ Release │F│ │ │ │ │ │ CgPN │ CdPN │ │ │ │ │ │release│ description │ │ ├────────┼──────────┼───────────────────┼────────┼──────────┼────────┼──────────┼──────┼─┼────────┼───────┼───────┼──────────────────────────────┼─┤ │bcd769ee│2597113878│24.02.2021 20:34:35│released│4959664510│ 245452│4959664510│245452│n│ 24s│normal │ 16/0 │Call is cancelled by initiator│ │ └────────┴──────────┴───────────────────┴────────┴──────────┴────────┴──────────┴──────┴─┴────────┴───────┴───────┴──────────────────────────────┴─┘ 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: 4 Selected call processes' records: 1 [exec at: 24.02.2021 22:20:53, exec time: 24ms, nodes: core1@ecss1 v.3.14.7.617]
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@mycelium1@ecss1:/$ domain/biysk.local/trace/media-topology --Tl 1 ------------------------------------------------------------------------------------- TraceId: <<"METADATA">> First message time: 01.01.1970 07:00:00 ------------------------------------------------------------------------------------- 290. in: timer_rebuild_topology_awake 14:49:27:227 (2021/03/01 21:49:27:227) ------------------------------------------------------------------------------------- ------------------------------------------------------------------------------------- 357. in: timer_rebuild_topology_awake 14:49:27:259 (2021/03/01 21:49:27:259) ------------------------------------------------------------------------------------- ┌──────────┐ ┌────────────────────┐ ┌───────────────┐ │ <player> │ │ <connection> │ │ <detector> │ │ CFC │ ──> │ o-leg: 79299541235 │ ──> │ DTMF detector │ └──────────┘ └────────────────────┘ └───────────────┘ ∧ │ │ ┌────────────────────┐ │ <player> │ └────────────────────┘ ------------------------------------------------------------------------------------- 360. in: timer_rebuild_topology_awake 14:49:27:291 (2021/03/01 21:49:27:291) ------------------------------------------------------------------------------------- ┌──────────┐ ┌────────────────────┐ ┌───────────────┐ │ <player> │ │ <connection> │ │ <detector> │ │ CFC │ ──> │ o-leg: 79299541235 │ ──> │ DTMF detector │ └──────────┘ └────────────────────┘ └───────────────┘ ∧ │ │ ┌────────────────────┐ │ <player> │ └────────────────────┘ ------------------------------------------------------------------------------------- 366. in: timer_rebuild_topology_awake 14:49:27:330 (2021/03/01 21:49:27:330) ------------------------------------------------------------------------------------- ┌──────────┐ ┌────────────────────┐ ┌───────────────┐ │ <player> │ │ <connection> │ │ <detector> │ │ CFC │ ──> │ o-leg: 79299541235 │ ──> │ DTMF detector │ └──────────┘ └────────────────────┘ └───────────────┘ ∧ │ │ ┌────────────────────┐ │ <player> │ └────────────────────┘ ------------------------------------------------------------------------------------- 373. in: timer_rebuild_topology_awake 14:49:27:370 (2021/03/01 21:49:27:370) ------------------------------------------------------------------------------------- ┌──────────┐ ┌────────────────────┐ ┌───────────────┐ │ <player> │ │ <connection> │ │ <detector> │ │ CFC │ ──> │ o-leg: 79299541235 │ ──> │ DTMF detector │ └──────────┘ └────────────────────┘ └───────────────┘ ∧ │ │ ┌────────────────────┐ │ <player> │ └────────────────────┘ ------------------------------------------------------------------------------------- 417. in: timer_rebuild_topology_awake 14:49:30:602 (2021/03/01 21:49:30:602) ------------------------------------------------------------------------------------- ┌──────────┐ │ <player> │ │ CFC │ └──────────┘ ┌──────────┐ │ <player> │ └──────────┘ ------------------------------------------------------------------------------------- 425. in: service_cp <<"064e94f7722e1a33">> 14:49:30:605 (2021/03/01 21:49:30:605) ------------------------------------------------------------------------------------- {monitor_awake,service_cp,'biysk.local',<<"064e94f7722e1a33">>, {dialog_monitor,{'biysk.local',service_cp,<<"064e94f7722e1a33">>}}, normal} ------------------------------------------------------------------------------------- 426. in: timer_rebuild_topology_awake 14:49:30:633 (2021/03/01 21:49:30:633) ------------------------------------------------------------------------------------- ┌──────────┐ │ <player> │ │ CFC │ └──────────┘ ┌──────────┐ │ <player> │ └──────────┘ ------------------------------------------------------------------------------------- 438. in: timer_rebuild_topology_awake 14:49:30:668 (2021/03/01 21:49:30:668) ------------------------------------------------------------------------------------- ┌──────────┐ │ <player> │ │ CFC │ └──────────┘ ┌──────────┐ │ <player> │ └──────────┘ OK [exec at: 01.03.2021 22:46:11, exec time: 621ms, nodes: core1@ecss1 v.3.14.7.620]
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@mycelium1@ecss1:/$ domain/biysk.local/trace/purge --Te 5988fd89 Successfully removed records: 1 [exec at: 24.02.2021 22:46:28, exec time: 28ms, nodes: core1@ecss1 v.3.14.7.617]
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@mycelium1@ecss1:/$ domain/biysk.local/trace/route --Tl 1
1. ==========================================
Traceroute to 245866 from 9250210858(<<"smg-4">>) at 01.03.2021 21:29:39, final number
Default context is ctx_from_ewsd
digitmap: X.
Update numbering plan on <<"np_240">>
1. ctx_from_ewsd / default
A: "9250210858"(displayName=undefined, ni=private, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="9250210858")
B: "245866"(displayName=undefined, ni=undefined, 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: 3854245866
result: keep on
2. ctx_from_ewsd / default
A: "9250210858"(displayName=undefined, ni=private, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="9250210858")
B: "3854245866"(displayName=undefined, ni=undefined, 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: 89250210858, sorm_digits: "79250210858", sorm_ni: intercity
result: keep on
3. ctx_city_common / default
A: "9250210858"(displayName=undefined, ni=intercity, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="89250210858")
B: "3854245866"(displayName=undefined, ni=undefined, 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: 245866, ni: local
------------------------------------------
Routing result: external
A: "9250210858"(displayName=undefined, ni=intercity, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="89250210858")
B: "245866"(displayName=undefined, ni=local, nai=subscriberNumber, inc=false, inni=routingToInternalNumberAllowed, npi=isdnTelephony, category=undefined)
Options:
sorm_ni_a: intercity
sorm_digits_a: 79250210858
A interface info: B interfaces info:
#{['cfc-support'] => true, [#{['cfc-support'] => true,
[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">>},
[group] => "smg.gr", [group] => "ssw.gr",
[iface] => <<"smg-4">>, [iface] => <<"ems1">>,
[isActive] => true, [isActive] => true,
['media-profile'] => ['media-profile'] =>
{media_profile,"default",user, {media_profile,"default",user,
[{media_profile_codecs,'<other>', [{media_profile_codecs,'<other>',
[{media_profile_codec,<<"<other>">>,<<"*">>,true,#{}}], [{media_profile_codec,<<"<other>">>,<<"*">>,true,#{}}],
#{offroad => false,'rtcp-enabled' => true}}, #{offroad => false,'rtcp-enabled' => 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 => false,'rtcp-enabled' => true}}], #{offroad => false,'rtcp-enabled' => true}}],
#{'dtmf-receive-type' => auto,'dtmf-transmit-type' => transit}}, #{'dtmf-receive-type' => auto,'dtmf-transmit-type' => transit}},
[mode] => sipt, [mode] => sipproxy,
[name] => "smg-4", [name] => "ems1",
[owner] => "sip1", [owner] => "sip1",
['routing.context'] => ctx_from_ewsd, ['routing.context'] => ctx_from_local,
[site] => <<"local">>, [site] => <<"local">>,
[subtype] => trunk, [subtype] => trunk,
[terminal_type] => smart, [terminal_type] => smart,
[trunk] => "biysk.local.smg.gr.trunk.autoname", [trunk] => "biysk.local.ssw.gr.trunk.autoname",
[type] => sip, [type] => sip,
[zone] => <<"default">>} [zone] => <<"default">>}]
A alias info:
#{[access_group] => all,
[alias] => {"biysk.local",<<"smg-4">>},
[cdr_group] => bsk3,
[cpt,traces] => [],
[domain] => "biysk.local",
[iface] => <<"smg-4">>,
[language] => ru,
['media-profile'] =>
{media_profile,"default",user,
[{media_profile_codecs,'<other>',
[{media_profile_codec,<<"<other>">>,<<"*">>,true,#{}}],
#{offroad => false,'rtcp-enabled' => 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 => false,'rtcp-enabled' => true}}],
#{'dtmf-receive-type' => auto,'dtmf-transmit-type' => transit}},
[original_address] => "9250210858",
[original_cdpn_address] => "245866",
[pin] => "1111",
[ss,mgm,telephone] => enabled,
[timezone] => 'UTC+07:00'}
[exec at: 01.03.2021 21:33:03, exec time: 117ms, nodes: core1@ecss1 v.3.14.7.620, ds1@ecss1 v.3.14.7.620]
Вывод трассировки маршрутизации вызова из dets файла:
admin@mycelium1@ecss1:/$ domain/biysk.local/trace/route --file ecss1 2021_03_01/21-00/064e94ad33363890.dets 1. ========================================== Traceroute to 245866 from 9250210858(<<"smg-4">>) at 01.03.2021 21:29:39, final number Default context is ctx_from_ewsd digitmap: X. Update numbering plan on <<"np_240">> 1. ctx_from_ewsd / default A: "9250210858"(displayName=undefined, ni=private, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="9250210858") B: "245866"(displayName=undefined, ni=undefined, 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: 3854245866 result: keep on 2. ctx_from_ewsd / default A: "9250210858"(displayName=undefined, ni=private, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="9250210858") B: "3854245866"(displayName=undefined, ni=undefined, 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: 89250210858, sorm_digits: "79250210858", sorm_ni: intercity result: keep on 3. ctx_city_common / default A: "9250210858"(displayName=undefined, ni=intercity, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="89250210858") B: "3854245866"(displayName=undefined, ni=undefined, 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: 245866, ni: local ------------------------------------------ Routing result: external A: "9250210858"(displayName=undefined, ni=intercity, nai=nationalNumber, inc=false, npi=isdnTelephony, apri=presentationAllowed, screening=networkProvided, category=ordinarySubscriber(10), caller_id="89250210858") B: "245866"(displayName=undefined, ni=local, nai=subscriberNumber, inc=false, inni=routingToInternalNumberAllowed, npi=isdnTelephony, category=undefined) Options: sorm_ni_a: intercity sorm_digits_a: 79250210858 A interface info: B interfaces info: #{['cfc-support'] => true, [#{['cfc-support'] => true, [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">>}, [group] => "smg.gr", [group] => "ssw.gr", [iface] => <<"smg-4">>, [iface] => <<"ems1">>, [isActive] => true, [isActive] => true, ['media-profile'] => ['media-profile'] => {media_profile,"default",user, {media_profile,"default",user, [{media_profile_codecs,'<other>', [{media_profile_codecs,'<other>', [{media_profile_codec,<<"<other>">>,<<"*">>,true,#{}}], [{media_profile_codec,<<"<other>">>,<<"*">>,true,#{}}], #{offroad => false,'rtcp-enabled' => true}}, #{offroad => false,'rtcp-enabled' => 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 => false,'rtcp-enabled' => true}}], #{offroad => false,'rtcp-enabled' => true}}], #{'dtmf-receive-type' => auto,'dtmf-transmit-type' => transit}}, #{'dtmf-receive-type' => auto,'dtmf-transmit-type' => transit}}, [mode] => sipt, [mode] => sipproxy, [name] => "smg-4", [name] => "ems1", [owner] => "sip1", [owner] => "sip1", ['routing.context'] => ctx_from_ewsd, ['routing.context'] => ctx_from_local, [site] => <<"local">>, [site] => <<"local">>, [subtype] => trunk, [subtype] => trunk, [terminal_type] => smart, [terminal_type] => smart, [trunk] => "biysk.local.smg.gr.trunk.autoname", [trunk] => "biysk.local.ssw.gr.trunk.autoname", [type] => sip, [type] => sip, [zone] => <<"default">>} [zone] => <<"default">>}] A alias info: #{[access_group] => all, [alias] => {"biysk.local",<<"smg-4">>}, [cdr_group] => bsk3, [cpt,traces] => [], [domain] => "biysk.local", [iface] => <<"smg-4">>, [language] => ru, ['media-profile'] => {media_profile,"default",user, [{media_profile_codecs,'<other>', [{media_profile_codec,<<"<other>">>,<<"*">>,true,#{}}], #{offroad => false,'rtcp-enabled' => 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 => false,'rtcp-enabled' => true}}], #{'dtmf-receive-type' => auto,'dtmf-transmit-type' => transit}}, [original_address] => "9250210858", [original_cdpn_address] => "245866", [pin] => "1111", [ss,mgm,telephone] => enabled, [timezone] => 'UTC+07:00'} [exec at: 01.03.2021 21:38:00, exec time: 93ms, nodes: core1@ecss1 v.3.14.7.620, ds1@ecss1 v.3.14.7.620]
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@mycelium1@ecss1:/$ domain/biysk.local/trace/save-trace --dets --Te 33363890 --file ecss1 2021_03_01/21-00/trace2.dets ok [exec at: 01.03.2021 21:41:43, exec time: 60ms, nodes: core1@ecss1 v.3.14.7.620]
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@mycelium1@ecss1:/$ domain/biysk.local/trace/save-media --Te a49917a6 --file ecss1 240475_media.dets Trace saved succesfull. [exec at: 01.03.2021 21:44:13, exec time: 149ms, nodes: core1@ecss1 v.3.14.7.620]
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@ecss1:/$ domain/biysk.local/trace/dump -u -m -u <<"064e94e956ff4254">> OK [1/2] Saving media trace... <<"064e94e956ff4254">> OK [2/2] DONE Traces has been saved in "/var/lib/ecss/cp/biysk.local/traces/dump_2021_03_01_21_47_02" Media traces has been saved in "/var/lib/ecss/cp/biysk.local/traces/dump_2021_03_01_21_47_02/media" [exec at: 01.03.2021 21:47:02, exec time: 277ms, nodes: core1@ecss1 v.3.14.7.620]
Пример 2:
admin@mycelium1@ecss1:/$ domain/biysk.local/trace/dump -a -u -m -u <<"064e94e956ff4254">> OK [1/2] Saving media trace... <<"064e94e956ff4254">> OK [2/2] DONE Traces has been saved in "/var/lib/ecss/cp/biysk.local/traces/dump_2021_03_01_21_47_56.tar" [exec at: 01.03.2021 21:47:56, exec time: 431ms, nodes: core1@ecss1 v.3.14.7.620]
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 - пропускать внутренние сообщения;
- --sip-call-id - поиск трасировок по Call-ID вызова;
- --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@mycelium1@ecss1:/$ domain/biysk.local/trace/show --short-payload --Tl 1 --timers Current release: 3.14.7.620 Trace id: <<"064e94e956ff4254">> First message time: 2021/03/01 21:45:41 1. 0 00:00:00:000 891508 i SetupInd smg-4 A:9264374787,B:245888,sdp_o 2. 0 00:00:00:005 n Notification {branch_next,main} 3. 0 00:00:00:006 o Timer start o_heartbeat_send 1h 4. 0 00:00:00:006 o Timer start o_heartbeat_receive 1h 6m 5. 0 00:00:00:006 891508 o SetupIndAck smg-4 6. 0 00:00:00:008 o Timer start fill_seizure_timeout 2s 7. 0 00:00:00:011 n Notification {{leg,o},call_id,<<"1614-609970-893632">>} 8. 0 00:00:00:011 n Notification {{leg,o},{zone,"default"},{site,"local"},{profile,"default"}} 9. 0 00:00:00:012 n Notification o dtmf transmit type: transit 10. 0 00:00:00:012 n Notification o dtmf receive type: auto 11. 0 00:00:00:018 o Timer cancel fill_seizure_timeout 0s 12. 0 00:00:00:020 o Timer start router_resp_timeout 5s 13. 0 00:00:00:061 o Timer cancel router_resp_timeout 0s 14. 0 00:00:00:078 n Notification t dtmf receive type: auto 15. 0 00:00:00:078 n Notification t dtmf transmit type: transit 16. 0 00:00:00:080 n Notification {{leg,t},{zone,"default"},{site,"local"},{profile,"default"}} 17. 0 00:00:00:080 o Timer start o_no_answer_timeout 5m 18. 0 00:00:00:080 o Timer start no_answer_timeout 1m 19. 0 00:00:00:114 n Notification {{leg,t},contact,bh,"bond1.2@192.168.2.21?22abcd"} 20. 0 00:00:00:122 n Notification {{leg,t},invite_bh_answer} 21. 0 00:00:00:133 o Timer start bh_timeout 200ms 22. 0 00:00:00:133 o Timer start response_ack_timeout 6s 23. 0 00:00:00:133 891508 o SetupReq ems1 A:9264374787,B:245888,sdp_o 24. 0 00:00:00:146 891508 i SetupReqAck ems1 25. 0 00:00:00:156 o Timer start t_heartbeat_send 1h 26. 0 00:00:00:156 o Timer start t_heartbeat_receive 1h 6m 27. 0 00:00:00:156 o Timer cancel response_ack_timeout 0s 28. 0 00:00:00:156 o Timer start response_timeout 25s 29. 0 00:00:00:334 i Timer awake bh_timeout 200ms [exec at: 01.03.2021 21:45:44, exec time: 129ms, nodes: core1@ecss1 v.3.14.7.620]
Все трассировки находятся в хранилищах трассировок. Количество хранилищ однозначно не регламентировано, и может варьироваться вместе с масштабированием ядра ESCC-1.