Порты 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@ecss1 и sip1@ecss2.
  • На нодах открыты виртуальные адреса (резерв keepalive): 
    sip1@ecss1: 192.168.10.1 и 10.10.10.1
    sip1@ecss2: 192.168.10.2 и 10.10.10.2

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

admin@[mycelium1@ecss1#ECSS 010145]:/$ cluster/adapter/sip1/sip/network/set ip_set set.pub node-ip node = sip1@ecss1 ip = 192.168.10.1 
admin@[mycelium1@ecss1#ECSS 010145]:/$ cluster/adapter/sip1/sip/network/set ip_set set.pub node-ip node = sip1@ecss2 ip = 192.168.10.2 
admin@[mycelium1@ecss1#ECSS 010145]:/$ cluster/adapter/sip1/sip/network/set ip_set set.pub listen-ports list = [5060]
admin@[mycelium1@ecss1#ECSS 010145]:/$ cluster/adapter/sip1/sip/network/set ip_set set.loc node-ip node = sip1@ecss1 ip = 10.10.10.1 
admin@[mycelium1@ecss1#ECSS 010145]:/$ cluster/adapter/sip1/sip/network/set ip_set set.loc node-ip node = sip1@ecss2 ip = 10.10.10.2
admin@[mycelium1@ecss1#ECSS 010145]:/$ cluster/adapter/sip1/sip/network/set ip_set set.loc listen-ports list = [5060,5062] 
admin@[mycelium1@ecss1#ECSS 010145]:/$ domain/test.arko/sip/network/set ip_set [set.pub, set.loc] 
admin@[mycelium1@ecss1#ECSS 010145]:/$ domain/test.arko/sip/ip-sets --complete                                                    
Executed on the sip1@ecss1
┌───────────┬──────────────────────────────────┐
│    pbx    │             ip-sets              │
├───────────┼──────────────────────────────────┤
│ test.arko │ set.pub: 5060                    │
│           │ set.pub: sip1@ecss1 192.168.10.1 │
│           │ set.pub: sip1@ecss2 192.168.10.2 │
│           │ set.pub: dscp 0                  │
│           │ set.loc: 5060, 5062              │
│           │ set.loc: sip1@ecss1 10.10.10.1   │
│           │ set.loc: sip1@ecss2 10.10.10.2   │
│           │ set.loc: dscp 0                  │
└───────────┴──────────────────────────────────┘
┌─────────────┐
│ elements: 2 │
└─────────────┘

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

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

  • udp - используется для входящих и исходящих соединений;
  • tcp - используется для входящих соединений.

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

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

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

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

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