Создание SIP-транков
Перед созданием SIP-транка необходимо выполнение следующих условий:
- создана виртуальная АТС;
- созданы и проимпортированы контексты маршрутизации.
Для создания SIP-транка используется команда:
/domain/<DOMAIN>/trunk/sip/declare <ROUTING_CONTEXT> <GROUP> <TRUNK_INTERFACE> <IPSET> [static <DEST_HOST> <DEST_PORT> <MODE> <LISTEN_PORT> | dynamic <LOGIN> <PASSWORD>]
где
<DOMAIN> - имя виртуальной АТС;
<ROUTING_CONTEXT> - название существующего контекста маршрутизации;
<GROUP> - название группы интерфейсов (может быть задана существующая или новая группа);
<TRUNK_INTERFACE> - имя системного интерфейса, описывающего данное направление. Имя интерфейса является внутрисистемным идентификатором, участвующем в маршрутизации, отображении статистики и другое;
<IPSET> - имя группы локальных адресов;
static - декларация статического транка;
dynamic - декларация динамического транка (с регистрацией);
- При декларации динамического транка операторская регистрация должна выполнятся для пользователя <TRUNK_INTERFACE>@<GROUP>.
- Параметры <DEST_HOST>, <DEST_PORT>, <MODE>, <LISTEN_PORT> не задаются.
- Режим для динамических транков устанавливается sip-proxy, регистрация для транков с инкапсуляцией ISUP использоваться не должна.
<DEST_HOST> - IP-адрес или доменное имя встречного устройства для взаимодействия;
<DEST_PORT> - транспортный порт встречного устройства для взаимодействия с ним по протоколу SIP;
<MODE> - режим работы транка:
- sip-proxy - на направлении работает протокол SIP;
- sip-t - на направлении работает протокол SIP-T (используется инкапсуляция ISUP);
- sip-i - на направлении работает протокол SIP-I (используется инкапсуляция ISUP);
- sip-q - на направлении работает протокол SIP-Q(используется для инкапсуляции ISUP)
<LISTEN_PORT> - транспортный порт, используемый SIP-адаптером для приема сигнализации. SIP-адаптер может использовать несколько портов для приема сигнализации, что позволяет организовать несколько транков с одним и тем же устройством. Как минимум один локальный (слушающий) порт должен быть назначен в обязательном порядке.
<LOGIN> - логин;
<PASSWORD> - пароль.
В режиме sip-proxy осуществляется работа по протоколу SIP, базовая рекомендация RFC 3261.
В режимах sip-t, sip-i в тело сообщений протокола SIP инкапсулируются сообщения ISUP. Работа протокола SIP-I описана в рекомендации Q.1912.5, протокола SIP-T в RFC 3372, а протокола SIP-Q в ECMA-143, ECMA-165.
При создании SIP-транка производится проверка имени интерфейса (в системе запрещено создавать транки с одинаковыми именами в пределах одной виртуальной АТС) и связки <dest_host>:<dest_port>:<ip_set>:<listen_port>. Если имя интерфейса SIP-транка совпадет с существующим именем, системой будет выдано предупреждение "trunk already exists". Декларация интерфейса в этом случае не будет выполнена.
При успешном создании SIP-транка имеется возможность сразу (в рамках одной команды) проверить доступность указанного направления посредством передачи запроса OPTIONS. Для этого используется ключ --check
, в отличие от версии 2.14, где попытка такой проверки была безусловной. Результат проверки доступности:
- {final,"is accessible"} - направление доступно, если встречное оборудование отвечает на запрос OPTIONS;
- {final,"timeout"} - направление недоступно, если встречное оборудование не отвечает на запрос OPTIONS.
Для удаления SIP-транка или всех транков одной группы используется команда:
/domain/<DOMAIN>/trunk/sip/remove <GROUP> <TRUNK_INTERFACE> [--force]
где
<DOMAIN> - имя виртуальной АТС;
<GROUP> - имя группы транков, логическая группировка транков в определенной виртуальной АТС;
<TRUNK_INTERFACE> - имя SIP-транка;
--force - дополнительный параметр (ключ), предназначен для безусловного удаления группы транков или транка.
Настройка параметров SIP-транка
Для настройки параметров SIP-транка используется команда:
/domain/<DOMAIN>/trunk/sip/set <GROUP> <TRUNK_INTERFACE> <PARAMETER> <VALUE>
где
<DOMAIN> - имя виртуальной АТС;
<GROUP> - имя группы транков, логическая группировка транков внутри виртуальной АТС;
<TRUNK_INTERFACE> - имя SIP-транка;
<PARAMETER> - настраиваемый параметр, список параметров приведен в Части 5 Руководство по обслуживанию системы ECSS-10, в Приложении Б. Набор параметров интерфейса SIP.
<VALUE> - значение параметра.
Для просмотра информации о SIP-транке используется команда:
/domain/<DOMAIN>/trunk/sip/info <GROUP> [<TRUNK_INTERFACE>]
где
<DOMAIN> - имя виртуальной АТС;
<GROUP> - название существующей группы интерфейсов, символ "*" используется для указания всех групп транков;
<TRUNK_INTERFACE> - логическое имя транка, символ "*" используется для указания всех интерфейсов группы.
Для просмотра свойств группы имя интерфейса транка (символ "*") не указывается.
Проверка состояния SIP-транка
Проверка доступности транка выполняется передачей запроса OPTIONS. Тест может выполняться для определенного транка или для всех транков группы.
Для проверки состояния SIP-транка используется команда:
/domain/<DOMAIN>/trunk/sip/check <GROUP> [<TRUNK_INTERFACE>] [timerF = <TIMERF>]
где
<DOMAIN> - имя виртуальной АТС;
<GROUP> - название существующей группы интерфейсов. Символ "*" используется для указания всех групп транков;
<TRUNK_INTERFACE> - логическое имя транка. Символ "*" используется для указания всех интерфейсов группы.
Если ответ не получен (направление на данный транк не доступно), то выводится результат "timeout".
- Если удаленный клиент не поддерживает запросы OPTIONS, и при этом не отвечает ответом 405, то результат будет таким же, хотя реально направление доступно для вызовов.
- В таком случае периодический контроль доступности должен быть отключен (set options_control 0).
<TIMERF> - тайм-аут ожидания ответа, в пределах которого отправляются повторные запросы, если удаленная сторона не отвечает. Задается в миллисекундах. Для выключения контроля установите значение тайм-аута - 0.
Если встречное оборудование доступно, то результатом выполнения команды будет значение "Accessible", если недоступно - "Unaccessible".
Динамический SIP-транк
Для направлений, на которых необходима регистрация встречных SIP-транков в системе ECSS-10, создаются динамические SIP-транки.
Создание, удаление динамического транка
Создание динамического SIP-транка
Перед созданием динамического SIP-транка необходимо выполнение следующих условий:
- создана виртуальная АТС;
- созданы и проимпортированы контексты маршрутизации.
Для создания динамического SIP-транка используется команда:
/domain/<DOMAIN>/trunk/sip/declare <ROUTING_CONTEXT> <GROUP> <TRUNK_NAME> <IPSET> [dynamic LOGIN PASSWORD]
где
<DOMAIN> - имя виртуальной АТС;
<ROUTING_CONTEXT> - контекст маршрутизации для данного транка;
<GROUP> - имя группы транков (параметр идентичен <TRUNK_GROUP> для обычных SIP-транков);
<TRUNK_NAME> - имя для регистрации динамического SIP-транка;
<IPSET> - имя группы локальных адресов;
<LOGIN> - логин;
<PASSWORD> - пароль.
При создании динамического SIP-транка в системе создается виртуальный абонент-транк с URI <TRUNK_INTERFACE>@<GROUP>.
Удаление динамического SIP-транка
Для удаления динамического SIP-транка используется команда:
/domain/<DOMAIN>/trunk/sip/remove <GROUP> <TRUNK_NAME> [--force]
где
<DOMAIN> - имя виртуальной АТС;
<GROUP> - имя группы транков (параметр идентичен <TRUNK_GROUP> для обычных SIP-транков);
<TRUNK_NAME> - имя для регистрации динамического SIP-транка (параметр идентичен <TRUNK_NAME> для обычных SIP-транков);
--force - дополнительный параметр (ключ), предназначен для безусловного удаления группы транков или транка;
Настройка параметров динамического транка
Для настройки параметров динамического SIP-транка используется команда:
/domain/<DOMAIN>/trunk/sip/set <GROUP> <TRUNK_NAME> <PARAMETER> <VALUE>
где
<DOMAIN> - имя виртуальной АТС;
<GROUP> - имя группы транков, логическая группировка транков в определенной виртуальной АТС;
<TRUNK_NAME> - имя динамического SIP-транка;
<PARAMETER> - настраиваемый параметр;
<VALUE> - значение параметра.
Основной перечень параметров динамического SIP-транка соответствует параметрам стандартного SIP-транка и описан выше.
Дополнительные параметры для динамического SIP-транка:
- inc_authentication - требование авторизации входящих со стороны транка вызовов, принимает значения:
- false - авторизация не требуется, установлено по умолчанию;
- true - необходима авторизация;
- inc_authentication_type - метод авторизации входящих вызовов, принимает значения:
- proxy - требование авторизации передается в ответе 407/Proxy-Authenticate;
- user - требование авторизации передается в ответе 401/WWW-Authentication, установлено по умолчанию;
- inc_authentication_login - имя, используемое при авторизации входящих вызовов, по умолчанию не задано;
- inc_authentication_password - пароль, используемый при авторизации входящих вызовов, по умолчанию не задан.
Для просмотра информации о динамическом SIP-транке используется команда:
/domain/<DOMAIN>/trunk/sip/info <GROUP> <TRUNK_NAME>
где
<DOMAIN> - имя виртуальной АТС;
<GROUP> - имя группы транков, символ "*" используется для просмотра информации о всех транках кластера;
<TRUNK_NAME> - имя динамического SIP-транка.
Исходящая регистрация транков SIP-адаптера
Регистрация транка выполняется на вышестоящем сервере. Запрос регистрации отправляется только с одной из нод кластера.
Количество контактов, передаваемое в запросе регистрации, равно количеству нод в кластере. IP-адреса в контактах устанавливаются из параметра "ip-set", назначенного транку.
Параметр "ip-set" настраивается командой domain/<DOMAIN>/sip/network/set node_ip
.
Настройка параметров SIP-транка для исходящей регистрации выполняется командами:
- Настройка периода времени регистрации на вышестоящем сервере или отключение регистрации:
/domain/<DOMAIN>/trunk/sip/set <GROUP> <TRUNK_INTERFACE> out_registration <EXPIRE>
где <EXPIRE> - период регистрации в секундах, 0 - отключение регистрации, при этом отправляется запрос разрегистрации (REGISTER с Expire=0). При изменении параметра <EXPIRE> будет отправлен внеочередной (первый, если параметр не был установлен ранее) запрос регистрации, и время последующей передачи запроса будет пересчитано от текущего момента. - Настройка регистрируемого имени SIP-транка
/domain/<DOMAIN>/trunk/sip/set <GROUP> <TRUNK_INTERFACE> user_name <NAME>
где <NAME> - имя SIP-транка для исходящей регистрации. Если имя не указано, то по умолчанию используется имя интерфейса. - Настройка домена регистрации SIP-транка
/domain/<DOMAIN>/trunk/sip/set <GROUP> <TRUNK_INTERFACE> sipdomain <SipDomain>
где <SipDomain> - имя SIP-домена. Если параметр не задан, то в его качестве используется параметр "host" (IP-адрес или доменное имя транка), настроенный в параметрах транка.
Для просмотра информации о SIP-транке используется команда:/domain/<DOMAIN>/trunk/sip/info <GROUP> [<TRUNK_INTERFACE>]
где
<DOMAIN> - имя виртуальной АТС;
<GROUP> - имя группы транков, символ "*" используется для просмотра информации о всех транках кластера;
<TRUNK_INTERFACE> - имя SIP-транка. - Установка логина
/domain/<DOMAIN>/trunk/sip/set <GROUP> <TRUNK_INTERFACE> out_authentication_login <ENTRY_LOGIN_TO_OUTGOING_PROXY_AUTHENTICA>
где
<ENTRY_LOGIN_TO_OUTGOING_PROXY_AUTHENTICA> - имя SIP-транка, используемое при аутентификации, опциональный параметр.
Установка пароля
/domain/<DOMAIN>/trunk/sip/set <GROUP> <TRUNK_INTERFACE> out_authentication_password <ENTRY_PASSWORD_TO_OUTGOING_PROXY_AUTHENT>
где
<ENTRY_PASSWORD_TO_OUTGOING_PROXY_AUTHENT> - пароль SIP-транка, используемый при аутентификации, опциональный параметр.
Примеры:
Создание нового SIP-транка "new_test_trunk" в группу "sip_trunks", режим sip-proxy, транк направлен на 192.168.123.123:5060, транк использует контекст маршрутизации default_context
admin@[mycelium1@ecss1]:/$ domain/test.domain/trunk/sip/declare default_context sip_trunks new_test_trunk ipset 192.168.123.123 5060 sip-proxy 5070 Executed on the sip1@ecss1 declared
Просмотр информации о SIP-транке "test"
admin@[mycelium1@ecss1]:/$ domain/test.domain/trunk/sip/info test_group test Executed on the sip1@ecss1 ┌───────┬──────┬───────────┬────────────┬────────────┬────────────────────────────────────────────────────────────────────────┐ │ Group │ Uri │ Is active │ Is blocked │ Is dynamic │ Parameters │ ├───────┼──────┼───────────┼────────────┼────────────┼────────────────────────────────────────────────────────────────────────┤ │ test │ test │ false │ false │ true │ declared by admin at 02.11.2015 09:20:28 │ │ │ │ │ │ │ │ │ │ │ │ │ │ listen-port = 50000 │ │ │ │ │ │ │ ip-set = ipset1 │ │ │ │ │ │ │ mode = 'sip-proxy' │ │ │ │ │ │ │ current number of calls = 0 │ │ │ │ │ │ │ disconnect time = 29.12.2015 10:19:49 │ │ │ │ │ │ │ disconnections number = 0 │ ... │ │ │ │ │ │ try-contact-for-anonymous = true │ │ │ │ │ │ │ unreliable-early-media = false │ │ │ │ │ │ │ user_name = test │ └───────┴──────┴───────────┴────────────┴────────────┴────────────────────────────────────────────────────────────────────────┘
Создание динамического транка "new_test_trunk_reg" в группе "sip_trunks", транк использует контекст маршрутизации default_context
admin@[mycelium1@ecss1]:/$ domain/test.domain/trunk/sip/declare default_context sip_trunks new_test_trunk_reg ipset --registration Executed on the sip1@ecss1 {declared,["test.domain",default_context,"sip_trunks",<<"new_test_trunk_reg">>, "dynamic",0,sipproxy]}
Удаление SIP-транка "new_test_trunk"
admin@[mycelium1@ecss1]:/$ domain/test.domain/trunk/sip/remove sip_trunks new_test_trunk [remove] This command removes trunks interfaces. Undo will be impossible. Continue: yes/no ?> yes Executed on the sip1@ecss1 [{"new_test_trunk",removed}]
Управление медиапрофилями для транка
Для установки/изменения медиапрофиля для транка используются следующие команды:
- Установка медиапрофиля по входящей и исходящей связи для транка или нескольких транков. Если media-profile-outgoing для транка установлен, то параметр влияет только на входящую связь.
/domain/<DOMAIN>/alias/set-for-iface <IFACE_GROUP> <IFACE_RANGE> media-profile <MEDIA_PROFILE_NAME>
где
<DOMAIN> - имя виртуальной АТС;
<IFACE_GROUP> - имя группы транков (интерфейсов),
<IFACE_RANGE> - имя одного транка (интерфейса) или список транков, для которых будет устанавливаться медиапрофиль,
<MEDIA_PROFILE_NAME> - имя медиа-профиля Установка медиапрофиля по исходящей связи для транка или нескольких транков. Если параметр не задан, то для исходящей связи используется тот же медиапрофиль, что и для входящей связи - заданный параметров media-profile.
/domain/<DOMAIN>/alias/set-for-iface <IFACE_GROUP> <IFACE_RANGE> media-profile-outgoing <MEDIA_PROFILE_NAME>
где
<DOMAIN> - имя виртуальной АТС;
<IFACE_GROUP> - имя группы транков (интерфейсов),
<IFACE_RANGE> - имя одного транка (интерфейса) или список транков, для которых будет устанавливаться медиапрофиль,
<MEDIA_PROFILE_NAME> - имя медиа-профиляПросмотр текущего медиапрофиля на транке.
/domain/<DOMAIN>/alias/iface-info <IFACE_GROUP> <IFACE_RANGE>
где
<DOMAIN> - имя виртуальной АТС;
<IFACE_GROUP> - имя группы транков (интерфейсов),
<IFACE_RANGE> - имя одного транка (интерфейса) или список транков для которых будут отображаться параметры.Команда выдаст таблицу со всеми параметрами установленными для транка. В таблице необходимо найти параметры media-profile и media-profile-outgoing.
Если параметров не установлено, то используется медиапрофиль по умолчанию (default).Сброс медиапрофиля на транке в значение по умолчанию
/domain/<DOMAIN>/alias/iface-clean <IFACE_GROUP> <IFACE_RANGE> media-profile
где
<DOMAIN> - имя виртуальной АТС;
<IFACE_GROUP> - имя группы транков (интерфейсов),
<IFACE_RANGE> - имя одного транка (интерфейса) или список транков, для которых будет сбрасываться параметр.Сброс медиапрофиля для исходящей связи в значение по умолчанию
/domain/<DOMAIN>/alias/iface-clean <IFACE_GROUP> <IFACE_RANGE> media-profile-outgoing
где
<DOMAIN> - имя виртуальной АТС;
<IFACE_GROUP> - имя группы транков (интерфейсов),
<IFACE_RANGE> - имя одного транка (интерфейса) или список транков, для которых будет сбрасываться параметр.