Дерево страниц
Перейти к концу метаданных
Переход к началу метаданных

Порты SIP-сигнализации

Работа параметров "node_ip" и "listen_ports"

Начиная с версии 3.4 для каждой виртуальной АТС (далее ВАТС) возможно использование более одного порта и более одного IP-адреса для SIP-сигнализации (сокета). В связи с необходимостью объявления адресов для поддержки резервирования в ECSS-10 реализована связка имен нод и IP-адресов, названых ip_set.

  • ip-set - это две или более (устанавливается по числу нод) связки IP-адресов и резервирующих друг друга нод.

Для каждой ВАТС должны быть объявлены следующие параметры:

  • listen_ports - список транспортных портов (UDP/TCP), минимальные требования один порт;
  • node_ip - сетевой ресурс виртуальной АТС. Объединяет связки "ip_set", которые будут использоваться одной виртуальной АТС. Как минимум должен включать одну связку "ip_set".

Обычно для работы ВАТС достаточно адреса одной подсети, но существуют ситуации, когда может потребоваться несколько сетевых адресов, например, обеспечение альтернативных маршрутов. При работе с несколькими подсетями необходимо учесть сетевую маршрутизацию между ними. Кроме того, в этом случае необходимо подключение нескольких MSR в количестве, равном количеству подсетей.

Одновременная работа с локальными и публичными адресами, не используя SBC или NAT, не рекомендуется.

Пример:

  • Кластер SIP-адаптера состоит из двух нод: sip1@node1 и sip1@node2.
  • На нодах открыты виртуальные адреса (резерв keepalive): 
    sip1@node1: 192.168.10.1 и 10.10.10.1
    sip1@node2: 192.168.10.2 и 10.10.10.2

Каждая нода работает со своими адресами. Если одна из нод выйдет из работы, то адреса отсутствующей ноды будут переданы для работы на активную ноду. Для корректной работы резервирования (с привязкой ВАТС и интерфейсов пользователей или транков к определенным подсетям) должны быть настроены следующие связки адресов:

ecss-root@[ecss_mycelium@alex]:/# domain/d.408/sip/network/set node_ip ip-set = set.pub node = sip1@node1 ip = 192.168.10.1
...

ecss-root@[ecss_mycelium@alex]:/# domain/d.408/sip/network/info 
-----------------------------------------------------------------
|      Property       |Domain|              Value               |
|---------------------+------+----------------------------------|
...
|node_ip              |VATS  |set.pub  sip1@node1   192.168.10.1|
|                     |      |set.pub  sip1@node2   192.168.10.2|
|                     |      |set.loc  sip1@node1   10.10.10.1  |
|                     |      |set.loc  sip1@node2   10.10.10.2  |

Имена для связки выбираются произвольно. Каждая связка описывает пару (при двух нодах в кластере) адресов одной подсети.

Кроме того, должен быть назначен список портов для прослушивания, минимальные требования - один порт. Порт по умолчанию - 5060.По умолчанию параметр "listen_ports" назначен как единственный 5060. При необходимости можно изменить номер и количество портов для прослушивания сигнализации SIP.
На объявленных портах в зависимости от режима работы открываются сокеты (для режима udp_preffer):

  • udp - используется для входящих и исходящих соединений;
  • tcp - используется для входящих соединений.
  • Применение сетевых настроек происходит сразу после выполнения команды, дополнительно выполнять команду применения "apply" не требуется.
  • В версии 3.3.x было реализовано промежуточное решение с привязкой ВАТС к определенному сетевому интерфейсу. При обновлении ПО с версии 3.3.x на текущую версию будет автоматически добавлен "ip-set" c именем соответствующего сетевого интерфейса - это имя через адрес, имеющее отношение к сетевому интерфейсу. Неиспользуемый параметр сетевого интерфейса будет удален.
  • При обновлении ПО с версии 2.14 или при новой установке для избежания конфликтов сетевые параметры автоматически не перенастраиваются. Необходима настройка наборов адресов в параметре "node_ip".

Использование "ip-set" и "listen_ports" SIP-интерфейсами

SIP-транки для приема входящих и совершения исходящих вызовов используют порт из списка "listen_ports", настроенный в параметрах транка. Для SIP-абонентов также используется порт из списка "listen_ports" для приема входящих и совершения исходящих вызовов, но используется только тот порт, через который была осуществлена регистрация. В настройках SIP-абонента дополнительно порт настраивать не нужно.

Аналогично работает привязка "ip-set" - для транков декларативно, для пользователей по сокету регистрации.

В дополнение к списку портов в параметрах ВАТС (путь команды domain/<DOMAIN>/sip/properties/) используется параметр "common_listen_port" для совместимости с предыдущими версиями. В частности, при обновлении версии существующие транки будут привязаны к порту, который задан через "common_listen_port". По умолчанию этот параметр будет соответствовать первому порту в списке "listen_ports". В качестве "ip-set" для транка будет автоматически выбрано первое значение в списке параметра "node_ip" соответствующей ВАТС.

При удалении "ip-set" или "listen port" проверяется их назначение транкам. Если найден транк, использующий удаляемый "ip-set" или "listen port", то предлагается: отменить удаление; выполнить удаление, несмотря на использование; выполнить удаление и при этом изменить значение параметра на транке.

Пример:

ecss-root@[ecss_mycelium@alex]:/# domain/d.408/sip/network/clean listen_ports [5052 ]
[clean] next trunks listen to port 5052:
        [f004]

        next operations are possible:
          skip     - continue without remove of this port
          continue - remove this port without trunks changes
          change   - change listen port for trunks
operation to apply: skip/continue/change ?> change
[clean] Change listen port for trunks
Allowed to change: 3478/5060/5079 ?> 5079
Property listen_ports values successfully updated
В данном режиме автоподстановка по кнопке <TAB> не активна, выбор нужно прописывать полностью.

Использование портов

Общее описание

Работа SIP-адаптера с сетью возможна в двух режимах:

  1. порты для SIP-сигнализации (далее сокеты) используются виртуальными АТС раздельно;
  2. сокеты используются виртуальными АТС совместно.

По умолчанию в системе установлено раздельное использование сокетов виртуальными АТС. В этом случае для каждой ВАТС должен быть назначен свой SIP-интерфес - уникальные сочетания IP-адресов и портов. То есть возможно использование одного IP-адреса, но разных списков портов, или одинаковых портов, но на разных IP-адресах.

При совместном использовании одни и те же сокеты используются разными ВАТС. При этом определение входящих SIP-запросов происходит по хосту в RURI, который должен содержать имя ВАТС или быть именем ВАТС.

Для обеспечения большей безопасности и удобного мониторинга системы рекомендуется использовать режим работы сокетов по умолчанию - для разных ВАТС используются разные сокеты.

Совместное использование сокетов будет удобно, когда в системе используется большое количество однотипных ВАТС. Например, существует необходимость регистрации SIP-абонентов разных ВАТС системы на одном порту либо объединения ВАТС в группы, которые использовали бы один порт.

Настройка совместного использования сокетов

Параметры совместных сокетов настраиваются на уровне кластера во избежание влияния виртуальных АТС друг на друга.
Для настройки совместного использования сокетов используются параметры "share_set".

Параметры настраиваются командой CLI:

cluster/adapter/<CLUSTER>/sip/network/set share_set <SOME_SHARE_SET> node-ip node = <SOME_NODE> ip = <SOME_IP> 
cluster/adapter/<CLUSTER>/sip/network/set share_set <SOME_SHARE_SET> listen-ports list = [SOME_PORT1, ...]

Совместное использование сокетов включается командой CLI:

domain/<DOMAIN>/sip/network/set share_set <SOME_SHARE_SET>|undefined

где

<CLUSTER> - имя кластера SIP-адаптера;
<DOMAIN> - имя виртуальной АТС;
<SOME_SHARE_SET> - имя сокета для совместного доступа.

Пары "IP_адрес:Порт" должны быть уникальны в рамках всего кластера, их повторение в настройках сети ВАТС и совместного сокета не допускается. При попытке ввода одинаковых значений будет выдана соответствующая ошибка.

Контролируется дублирование именно пар "IP_адрес:Порт". Например, если в ВАТС в параметрах сети есть пара 192.168.23.23:5060, то при настройке совместного сокета, пока не выполнена команда настройки IP-адреса, будет разрешено выполнить команду настройки порта 5060. Но если затем выполнить для любой из нод команду настройки IP-адреса 192.168.23.23, система выдаст ошибку.

При настройке параметров совместного сокета на кластере сконфигурированные порты открываются сразу. Порты будут открыты до тех пор, пока такая настройка существует не зависимо от того, назначен ли данный сокет какой либо ВАТС или нет.
При включении совместного сокета для ВАТС ее локально настроенные сетевые параметры перестают использоваться, порты закрываются, но из конфигурации данные настройки не удаляются. После чего ВАТС работает с портами открытыми для выбранного совместного сокета кластера.
При отключении совместного сокета (присвоение значения undefined) будут вновь открыты порты, локально назначенные этой ВАТС, если они были настроены ранее.

При совместном доступе к сокетам возникает проблема: при получении запроса по протоколу SIP адаптеру необходимо знать, для какой ВАТС предназначен данный запрос, что в свою очередь необходимо для определения интерфейса, от которого поступил запрос (абонентский/транковый), и определения разрешений для обслуживания запроса.

При включении совместного использования сокетов контроль входящих запросов осуществляется по хосту в заголовке To. Соответственно в SIP-домене обязательно указание имени ВАТС. Требование справедливо для SIP-абонентов и SIP-транков. Наличие имени ВАТС в имени хоста заголовка RURI обязательно!
При декларации новых абонентов система предложит добавить в SIP-домен суффикс с именем ВАТС. Если этого не будет сделано явно, команда декларации произведет добавление автоматически.

Логика данного механизма конфликтует с конфигурациями предыдущих версий ПО, поэтому в версии ПО 3.4.2 имеется механизм поддержки прежних конфигураций. Таким образом, запрос, не содержащий в SIP-домене указания принадлежности к какой-либо ВАТС, будет обработан, если интерфейс без суффикса был задекларирован в ВАТС на прежних версиях ПО.
  • Нет меток