
В разделе приведены описания команд управления транками, работающими по протоколу SIP.
Примечание. В командах предусмотрен флаг --force. Его применение позволяет выполнить команду без дополнительного подтверждения, что бывает удобно, например, в скриптах автоматизации. Если флаг "--force" не указывать, то система выведет сообщение, например: [block] Trunk eltex will be blocked
Continue: yes/no ?> Если ввести команду "yes", то команда будет выполнена . Если ввести команду "no", то нет. |
apply
Команда используется для применения к транку профиля настроек.
Примечание. Параметры профиля применяются к транку разово. Если в профиле были изменения, то по необходимости нужно снова выполнить его применение к транку. |
Путь команды:
/domain/<DOMAIN>/trunk/sip/apply
Синтаксис:
apply <GROUP> <IFACE> profile <PROFILE>
Параметры:
<GROUP> - название группы интерфейсов;
<TRUNK_INTERFACE> - логическое имя транка;
<PROFILE> - имя профиля настроек транков. Для применения доступны профили, которые соответствует локализованным спецификациям ISUP:
- ISUP.ANSI;
- ISUP.ETSI;
- ISUP.RUS;
- ISUP.TELCORDIA.
Профиль стандарта ISUP отличается от пользовательских профилей возможностью настраивать только определенные стандартом параметры.
Пример:
/domain/test_domain/trunk/sip/apply smg.gr smg-4 profile ISUP.RUS
Executed on the sip1@ecss1
profile 'ISUP.RUS' is applyed to trunk 'smg-4'. |
block
Команда для блокировки определенного транка, всех транков одной группы. Соответствующий интерфейс переводится в неактивное состояние. Путь команды: /domain/<DOMAIN>/trunk/sip/block Синтаксис: block <GROUP> <TRUNK_INTERFACE> [--force] Параметры: <GROUP> - имя группы, интерфейс/интерфейсы которой нужно заблокировать; <TRUNK_INTERFACE> - имя блокируемого интерфейса, при указании символа "*" будут заблокированы все транки заданной группы; [--force] - опционально, при указании данного флага блокировка транка/транков будет производиться без дополнительного вопроса. Пример: /domain/test_domain/trunk/sip/block ssw.gr ems2
[block] Trunk ems2 will be blocked
continue: yes/no ?> yes
Executed on the sip1@ecss2
┌──────┬────┐
│ ems2 │ ok │
└──────┴────┘ |
|
call-list
Команда просмотра списка активных вызовов через транк. Путь команды: /domain/<DOMAIN>/trunk/sip/call-list Синтаксис: сall-list [GROUP] [INTERFACE] [OPTIONS] Параметры: <GROUP> - название группы интерфейсов. Символ "*" указывается для экспорта всех групп интерфейсов; <INTERFACE> - логическое имя транка; OPTIONS: - <--complete> - установка данного флага позволяет отобразить все интерфейсы, на которые были приняты вызовы;
- <--more T [sec|min|hour]> - установка данного флага позволяет отобразить все вызовы, длительность которых более установленного времени;
- <--less T [sec|min|hour]> - установка данного флага позволяет отобразить все вызовы, длительность которых менее установленного времени.
Пример: Executed on the sip1@ecss2
┌───────────────┬────────────────────────────────┬───────────┬──────────────────────────────────────────┬──────────────────────────────────────────────┐
│ Interface URI │ Direction │ State │ Time │ Additional info │
├───────────────┼────────────────────────────────┼───────────┼──────────────────────────────────────────┼──────────────────────────────────────────────┤
│ ems1 │ sip[245000] <- ssw[3854240466] │ outgoing │ Start: Wed, 24 Feb 2021 09:03:53 │ Node: sip1@ecss2, <0.5153.0> │
│ │ │ │ Last activity: Wed, 24 Feb 2021 09:03:58 │ CallRef: 575129842 │
│ │ │ │ │ Call-ID: "064e204899e1090f" │
│ │ │ │ │ SessionID: <<"064e204899e1090f">> │
│ │ │ │ │ Session handler: {amqp_io_5,<0.5153.0>} │
│ smg-4 │ sip[3854416977] -> ssw[240244] │ connected │ Start: Wed, 24 Feb 2021 09:03:41 │ Node: sip1@ecss1, <70694.14176.0> │
│ │ │ │ Last activity: Wed, 24 Feb 2021 09:03:58 │ CallRef: 524796025 │
│ │ │ │ │ Call-ID: "1614-132254-752677" │
│ │ │ │ │ SessionID: <<"064e2047d7c7d650">> │
│ │ │ │ │ Session handler: {amqp_io_7,<70694.14176.0>} │
└───────────────┴────────────────────────────────┴───────────┴──────────────────────────────────────────┴──────────────────────────────────────────────┘
┌────────────┐
│ 2 sessions │
└────────────┘ |
|

check
Команда проверки доступности направления. Выполняется посредством отправки запроса OPTIONS. Тест может выполняться для определенного транка или для всех транков группы либо кластера. Путь команды: /domain/<DOMAIN>/trunk/sip/check Синтаксис: check <GROUP> [<TRUNK_INTERFACE>] [timerF = <TIMEOUT>] Параметры: <GROUP> - название существующей группы интерфейсов. Символ "*" используется для указания всех групп транков; <TRUNK_INTERFACE> - логическое имя транка. Символ "*" используется для указания всех интерфейсов группы. Если ответ не получен (направление на данный транк не доступно), то выводится результат "timeout". Примечание. Если удаленный клиент не поддерживает запросы OPTIONS, и при этом не отвечает ответом 405, то результат будет таким же, хотя реально направление доступно для вызовов. В таком случае периодический контроль доступности должен быть отключен (set options_control 0). |
<TIMEOUT> - тайм-аут ожидания ответа, в пределах которого отправляются повторные запросы, если удаленная сторона не отвечает. Задается в миллисекундах. Для выключения контроля установите значение тайм-аута - 0. Пример: /domain/test_domain/trunk/sip/check sip sip options timerF = 5000
Executed on the sip1@ecss1
Intermediate (incomplete) result:
Process to <<"sip">> check acros node sip1@ecss1 (my node is sip1@ecss1)
...
Executed on the sip1@ecss1
Intermediate (incomplete) result:
Process to <<"sip">> check is started: {<0.10445.4>,<0.10445.4>}
...
Executed on the sip1@ecss1
Intermediate (incomplete) result:
Try to send OPTIONS to <<"sip">> (timerF = 5000)
...
Executed on the sip1@ecss1
┌───────┬───────┬────────────┬────────────────────────────────────────────────────────────────────────────────┐
│ Group │ Trunk │ Accessible │ Check info │
├───────┼───────┼────────────┼────────────────────────────────────────────────────────────────────────────────┤
│ sip │ sip │ true │ OPTIONS to <sip:10.0.20.31>: 200 OK, cseq: 865280 OPTIONS. Request by node: sip│
│ │ │ │1@ecss1 │
└───────┴───────┴────────────┴────────────────────────────────────────────────────────────────────────────────┘ |
/domain/test_domain/trunk/sip/check sip sip notify timerF = 5000
Executed on the sip1@ecss1
Intermediate (incomplete) result:
Process to <<"sip">> check acros node sip1@ecss1 (my node is sip1@ecss1)
...
Executed on the sip1@ecss1
Intermediate (incomplete) result:
Process to <<"sip">> check is started: {<0.10455.4>,<0.10455.4>}
...
Executed on the sip1@ecss1
Intermediate (incomplete) result:
Try to send NOTIFY to <<"sip">> (timerF = 5000)
...
Executed on the sip1@ecss1
┌───────┬───────┬────────────┬────────────────────────────────────────────────────────────────────────────────┐
│ Group │ Trunk │ Accessible │ Check info │
├───────┼───────┼────────────┼────────────────────────────────────────────────────────────────────────────────┤
│ sip │ sip │ true │ NOTIFY to <sip:10.0.20.31>: 200 OK, cseq: 515942 NOTIFY. Request by node: sip1@│
│ │ │ │ecss1 │
└───────┴───────┴────────────┴────────────────────────────────────────────────────────────────────────────────┘ |
|
clean
Команда устанавливает значения по умолчанию для параметров профиля транка.
Путь команды:
/domain/<DOMAIN>/trunk/sip/clean
Синтаксис:
clean --profile <PROFILE> <PARAMETER> [--force]
Параметры:
<PROFILE> - имя профиля;
<PARAMETER> - параметр, для которого устанавливается значение по умолчанию.
--force - выполнить команду без запроса подтверждения.
Пример:
/domain/test_domain/trunk/sip/clean ssw.gr ems3 req100rel
[clean] Set parameters to default value
continue: yes/no ?> yes
clean to 1 interfaces ...
[**********************************************************************] 5ms
Executed on the sip1@ecss2
complete |
declare
Команда декларации транка SIP.
Декларация нового транка возможна только в существующем контексте маршрутизации.
Может быть выбрана существующая группа или задекларирована новая.
При декларации выполняется проверка на существование имени интерфейса (одинаковые имена запрещены, о чем будет сразу выдано предупреждение "trunk already exists") и связки IP:Порт:Слушающий_порт (в случае совпадения с существующим именем будет выдано предупреждение, декларация может быть выполнена, а в дальнейшем параметры могут быть изменены).
При успешной операции выполняется проверка доступности заданного направления посредством запроса OPTIONS (см. команду check).
Путь команды:
/domain/<DOMAIN>/trunk/sip/declare
Синтаксис:
declare <ROUTING_CONTEXT> <GROUP> <TRUNK_INTERFACE> <IP_SET>[--registration | <DEST_HOST> <DEST_PORT> <MODE> <LISTEN_PORT>]
Параметры:
<ROUTING_CONTEXT> - название существующего контекста маршрутизации;
<GROUP> - название группы интерфейсов (может быть задана существующая или новая группа);
<TRUNK_INTERFACE> - имя системного интерфейса, описывающего данное направление. Имя интерфейса является внутрисистемным идентификатором, участвующем в маршрутизации, отображении статистики и другое;
<IP_SET> - набор IP-адресов;
--registration - декларация динамического транка (с регистрацией);
Примечание: При декларации динамического транка операторская регистрация должна выполнятся для пользователя <TRUNK_INTERFACE>@<GROUP>. Параметры <DEST_HOST>, <DEST_PORT>, <MODE>, <LISTEN_PORT> не задаются. Режим для динамических транков устанавливается sip-proxy, регистрация для транков с инкапсуляцией ISUP использоваться не должна. |
<DEST_HOST> - хост, назначаемый для транка (IP-адрес или доменное имя);
<DEST_PORT> - порт, назначаемый для транка;
<MODE> - режим инкапсуляции ISUP:
- sip-proxy - направление работает только по протоколу SIP (RFC 3261);
- sip-t - направление работает по SIP с инкапсуляцией ISUP по протоколу SIP-T (RFC 3372);
- sip-i - направление работает по SIP с инкапсуляцией ISUP по протоколу SIP-I (Q.1912-5);
- sip-q - направление работает по SIP с инкапсуляцией QSIG по протоколу SIP-Q(Q.931).
Примечание. Работа в режимах sip-t, sip-i в основном отличается при кодировании/декодировании инкапсулированного ISUP и при маппинге статусов ответов о завершении. В дальнейшем режим может быть изменен. |
<LISTEN_PORT> - слушающий порт. На адаптере может быть открыто несколько слушающих портов.
Используя слушающие порты, можно детектировать запросы с разных транков одного удаленного хоста, которые имеют одинаковые IP-адрес и номер порта.
Пример:
/domain/test_domain/trunk/sip/declare default_routing sip sip_trunk_test test_set static 10.0.20.32 5060 sip-i 5060 --options_check
Executed on the sip1@ecss1
Intermediate (incomplete) result:
Process to <<"sip_trunk_test">> check is started: {<0.11445.4>,<0.11445.4>}
...
Executed on the sip1@ecss1
Intermediate (incomplete) result:
Try to send OPTIONS to <<"sip_trunk_test">> (timerF = 5000)
...
Executed on the sip1@ecss1
Accessible: OPTIONS to <sip:10.0.20.32>: 200 OK, cseq: 305877 OPTIONS. Request by node: sip1@ecss1 |
info
Команда для просмотра информации о настройках параметров транка и профилей транка. Дополнительное описание параметров интерфейсов (транков) приведено в Приложении Б. Набор параметров интерфейса SIP. Путь команды: /domain/<DOMAIN>/trunk/sip/info Синтаксис: info <GROUP> [<TRUNK_INTERFACE>] [--profile <PROFILE>] Параметры: <GROUP> - название существующей группы интерфейсов, символ "*" используется для указания всех групп транков; <TRUNK_INTERFACE> - логическое имя транка, символ "*" используется для указания всех интерфейсов группы. Для просмотра свойств группы имя интерфейса транка (символ "*") не указывается. --profile - флаг используется для просмотра информации о конфигурации профилей транка; <PROFILE> - имя профиля, символ "*" используется для указания всех профилей транков. Если в профиле безопасности (/system/security/profile/) параметр show_password_at_cli = off, то в выводе пароль скрывается, и вместо него показываются ********. В режиме on_request пароль показывается автоматически |
Активность транка (параметр Is Active) определяется по его регистрации (успешной или не успешной) и не зависит от блокировки транка. При блокировке транка Is Accessible становится false и запросы register/options/notify на него отправляться не будут. |
Пример: Свойства определенного транка: /domain/test_domain/trunk/sip/info sip domain_b
Executed on the sip1@ecss1
┌───────┬──────────┬───────────┬────────────┬───────────────┬────────────┬───────────────────────────────────────────────────────────────────────┐
│ Group │ Uri │ Is active │ Is blocked │ Type of trunk │ Is dynamic │ Parameters │
├───────┼──────────┼───────────┼────────────┼───────────────┼────────────┼───────────────────────────────────────────────────────────────────────┤
│ sip │ domain_b │ true │ false │ static │ false │ remote-end-point = 10.0.20.31:5061 │
│ │ │ │ │ │ │ local-end-point = test_set:5062 │
│ │ │ │ │ │ │ mode = sip-proxy │
│ │ │ │ │ │ │ connect time = 19.02.2026 10:38:05 │
│ │ │ │ │ │ │ uptime = 6h 8m │
│ │ │ │ │ │ │ disconnections number = 0 │
│ │ │ │ │ │ │ - - - - - - - - - - - - - - = - - - - - - - - - - - - - - │
│ │ │ │ │ │ │ access_group = all │
│ │ │ │ │ │ │ alarm_enable = false │
│ │ │ │ │ │ │ category_to_sip = default │
│ │ │ │ │ │ │ cdpn-transformation = none │
│ │ │ │ │ │ │ cgpn_to_displayname = false │
│ │ │ │ │ │ │ channel-contact-map = [] │
│ │ │ │ │ │ │ content_encoding = none │
│ │ │ │ │ │ │ disable-remote-port-control = false │
│ │ │ │ │ │ │ display-name-encoding = default │
│ │ │ │ │ │ │ dtmf-duration = 100 │
│ │ │ │ │ │ │ dtmf-relay = false │
│ │ │ │ │ │ │ external_id = 75067749 │
│ │ │ │ │ │ │ external_uuid = undefined │
│ │ │ │ │ │ │ external_vsn = undefined │
│ │ │ │ │ │ │ history-info = false │
│ │ │ │ │ │ │ inc-authentication = none │
│ │ │ │ │ │ │ inc-authentication_type = user │
│ │ │ │ │ │ │ inc-login = none │
│ │ │ │ │ │ │ inc-password = none │
│ │ │ │ │ │ │ invite-transaction-timeout = 32000 │
│ │ │ │ │ │ │ keep_alive_control = disable (options) │
│ │ │ │ │ │ │ maddr = none │
│ │ │ │ │ │ │ my_from = test_domain /use number │
│ │ │ │ │ │ │ original-cdpn-to = true │
│ │ │ │ │ │ │ original_cdpn_uri = false │
│ │ │ │ │ │ │ out-login = none │
│ │ │ │ │ │ │ out-password = none │
│ │ │ │ │ │ │ out-registration = disable │
│ │ │ │ │ │ │ referred-by-as-cgpn = false │
│ │ │ │ │ │ │ remote-client = default │
│ │ │ │ │ │ │ remote-ctr-indication = rpi │
│ │ │ │ │ │ │ remote-network-type = local │
│ │ │ │ │ │ │ rfc-4028-control = force │
│ │ │ │ │ │ │ routing.context = default_routing │
│ │ │ │ │ │ │ sip-domain = 10.0.20.31 (use-address) │
│ │ │ │ │ │ │ sip-modifications = │
│ │ │ │ │ │ │ sip-transit = │
│ │ │ │ │ │ │ sip_transport = udp_prefer │
│ │ │ │ │ │ │ symbol_hash_as_is = false │
│ │ │ │ │ │ │ tel-uri-in-diversion = false │
│ │ │ │ │ │ │ transmit-global-call-reference = false │
│ │ │ │ │ │ │ trunk (trunk name) = test_domain.sip.trunk.autoname │
│ │ │ │ │ │ │ user-name = domain_b /default │
└───────┴──────────┴───────────┴────────────┴───────────────┴────────────┴───────────────────────────────────────────────────────────────────────┘
/domain/test_domain/trunk/sip/info *
read info about 2 interfaces in group sip ...
[**********************************************************************] 8ms
Executed on the sip1@ecss2
┌───────┬──────────┬───────────────────────────┬────────────┬──────────────┬───────────┬──────────────────────┬──────────────────────────────┐
│ Group │ Uri │ Is active / Is accessible │ Is blocked │ Need │ Mode │ Destination │ Listen on │
│ │ │ │ │ registration │ │ │ │
│ │ │ │ │ (is dynamic) │ │ │ │
├───────┼──────────┼───────────────────────────┼────────────┼──────────────┼───────────┼──────────────────────┼──────────────────────────────┤
│ sip │ domain_b │ true / true │ false │ false │ sip-proxy │ 10.0.20.31:5061 │ "test_set"/"10.0.20.32":5062 │
│ │ │ │ │ │ │ │ │
│ sip │ phoneup │ true / true │ false │ false │ sip-proxy │ 192.168.108.191:5060 │ "test_set"/"10.0.20.32":5060 │
└───────┴──────────┴───────────────────────────┴────────────┴──────────────┴───────────┴──────────────────────┴──────────────────────────────┘
┌─────────────┐
│ elements: 2 │
└─────────────┘
|
Просмотр конфигурации профилей транков: /domain/test_domain/trunk/sip/info --profile *
Executed on the sip1@ecss2
┌───────────┬───────────────────────────┐
│ Profile │ Parameters │
├───────────┼───────────────────────────┤
│ ISUP.RUS │ isup_r_ccl_send = true │
│ ISUP.ETSI │ network-node-id = 0 │
│ │ network-id = 0 │
│ │ use-global-callref = true │
│ │ country-code = 250 │
└───────────┴───────────────────────────┘ |
|
remove
Команда для удаления определенного транка, всех транков одной группы или профиля транка.
Путь команды:
/domain/<DOMAIN>/trunk/sip/remove
Синтаксис:
remove <GROUP> <TRUNK_INTERFACE>|--profile <PROFILE> [--force]
Параметры:
<GROUP> - название существующей группы интерфейсов;
<TRUNK_INTERFACE> - имя интерфейса, который нужно удалить. Символ "*" используется для указания всех интерфейсов группы. При удалении всех интерфейсов группы также удаляется сама группа.
<PROFILE> - имя профиля, символ "*" используется для указания всех профилей транков.
- --profile - флаг используется для удаления профиля транка;
- --force - опционально, при указании данного флага удаление транка/транков будет производиться без дополнительного вопроса.
Пример:
Удаление транка:
/domain/test_domain/trunk/sip/remove sbc.gr brn.sbc --force
Executed on the sip1@ecss2 |
set
Данной командой выполняется настройка параметров группы транков.
Путь команды:
domain/<DOMAIN>/trunk/sip/set
Синтаксис:
set <GROUP> <TRUNK_INTERFACE> <PARAMETER> <VALUE> | --profile <PROFILE>
Параметры:
<GROUP> - название существующей группы интерфейса. Символ "*" используется для указания всех групп транков;
<TRUNK_INTERFACE> - имя интерфейса. Символ "*" используется для указания всех интерфейсов группы;
<PARAMETER> - название параметра, список параметров приведен в Приложении Б. Набор параметров интерфейса SIP.
<VALUE> - значение параметра, список значений параметров приведен в Приложении Б. Набор параметров интерфейса SIP.
--profile - флаг используется для создания/настройки профиля транков;
<PROFILE> - имя профиля.
Пароли проверяются на соответствие требованиям, установленным в профиле безопасности (/system/security/profile/), параметр restrictions.
Примеры:
Установка периода контроля по keep_alive_control:
/domain/test_domain/trunk/sip/set sip sip keep_alive_control options 32
complete |
/domain/test_domain/trunk/sip/set sip sip keep_alive_control notify 32
complete |
Установка options_check:
/domain/test_domain/trunk/sip/set sip sip local-end-point test_set 5060 sip1@ecss1 (10.0.20.31) --options_check
Executed on the sip1@ecss1
Intermediate (incomplete) result:
Process to <<"sip">> check is started: {<0.10759.4>,<0.10759.4>}
...
Executed on the sip1@ecss1
Intermediate (incomplete) result:
Try to send OPTIONS to <<"sip">> (timerF = 5000)
...
Executed on the sip1@ecss1
Intermediate (incomplete) result:
Accessible: OPTIONS to <sip:10.0.20.31>: 200 OK, cseq: 298092 OPTIONS. Request by node: sip1@ecss1
...
complete |
/domain/test_domain/trunk/sip/set sip sip remote-end-point 10.0.20.136 5060 --options_check
Executed on the sip1@ecss1
Intermediate (incomplete) result:
Process to <<"sip">> check is started: {<0.11256.4>,<0.11256.4>}
...
Executed on the sip1@ecss1
Intermediate (incomplete) result:
Try to send OPTIONS to <<"sip">> (timerF = 5000)
...
Executed on the sip1@ecss1
Intermediate (incomplete) result:
Accessible: OPTIONS to <sip:10.0.20.136>: 200 OK, cseq: 691763 OPTIONS. Request by node: sip1@ecss1
...
complete |
Установка контекста маршрутизации:
/domain/test_domain/trunk/sip/set sbc.gr nsk_sbc routing.context ctx_from_local
change context for 1 users ...
[**********************************************************************] 4ms
complete |
unblock
Команда для разблокировки определенного транка, всех транков одной группы. Соответствующий интерфейс переводится в активное состояние. Путь команды: /domain/<DOMAIN>/trunk/sip/unblock Синтаксис: unblock <GROUP> <TRUNK_INTERFACE>[--force] Параметры: <GROUP> - имя группы, интерфейс/интерфейсы которой нужно разблокировать; <TRUNK_INTERFACE> - имя интерфейса, символ "*" используется для указания всех интерфейсов группы; [--force] - опционально, при указании данного флага разблокировка транка/транков будет производиться без дополнительного вопроса. Пример: /domain/test_domain/trunk/sip/unblock ssw.gr * --force
Executed on the sip1@ecss1
┌──────┬────┐
│ bsk1 │ ok │
│ bsk2 │ ok │
│ ems1 │ ok │
│ ems2 │ ok │
└──────┴────┘ |
|