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

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

Примеры:

Вывод трассировки маршрутизации последнего вызова:

 Нажмите здесь для раскрытия...
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] --filename <host> <filename> [--force]

Параметры:

  • --Tb <TemplateBegin> - префикс, шаблон с начала, идентификаторов вызовов(8 символов);
  • --Te <TemplateEnd> - суффикс, шаблон с конца, идентификаторов вызовов(8 символов);
  • --Tl <CallNumber> - порядковый номер вызовов с конца списка трассировок, который необходимо сохранить. Например, 1 - последний вызов, 2 - предпоследний, и так далее;
  • --text - при указании команды трассировки вызовов будут сохраняться в текстовом файле;
  • --dets(по умолчанию) - при указании команды трассировки вызовов будут сохраняться в формате DETS файла. Файл в формате DETS можно будет использовать в команде "show";
  • --filename <HOST> <FILENAME> - при указании команды трассировки вызовов будут сохраняться на заданном хосте (<HOST>), в заданном файле (<FILENAME>);
  • --force - сохранять трассировку, даже если файл существует(с перезаписью).
  • Примечание 1. Сохранение сигнальной трассировки в файл производится по пути: {DATA-ROOT}/cp/<DOMAIN>/traces. По умолчанию - /var/lib/ecss/cp/<DOMAIN>/traces/.
  • Примечание 2. Команда "save-trace --filename <Host> <File>" эквивалентна команде "save-trace --dets --Tl 1 --filename <Host> <File>".

Пример:

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.