В данном разделе описаны команды, позволяющие просматривать и сохранять в файл трассировки вызовов.

Трассировка вызова - список сохраненных сообщений/событий, связанных с определенным вызовом. Одному вызову соответствует одна трассировка, которая состоит из множества сообщений (все связанные вызовы, если они есть, трассируются отдельно).
Медиа трассировка - аналогичный список трассировок визуализирующий прохождения вызова внутри 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 - все типы вызовов
    По умолчанию используется режим "normal".
  • --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.