Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

...

Эти настройки являются обязательными. Описание конфигурирования и базовой схемы применения представлено в разделе Примеры настройки ESBC

...

Логика работы:

Все перечисленные в предыдущем пункте настройки являются общими для всех транков, включенных в состав транковой группы. Это значит, что при отсутствии у транка, входящего в состав транковой группы, какой-либо из перечисленных настроек, будет использоваться настройка из транковой группы. Такой подход позволяет создавать множество транков с минимальным набором настроек, и, объединяя их в транковую группу, производить донастройку через нее. При необходимости можно изменить какие-либо параметры отдельно взятых транков из группы через индивидуальную настройку транков.

...

Поддержано несколько режимов работы с протоколами транспортного уровня, конфигурируется командой mode из примера выше. Режимы работы следующие: 

  • tcp-only — использовать только TCP-протокол;
  • tcp-prefer — прием по UDP и TCP. Отправка по TCP. В случае , если не удалось установить соединение по TCP, отправка производится по UDP;
  • tls — использовать tls;
  • udp-only — использовать только UDP-протокол;
  • udp-prefer — прием по UDP и TCP. Отправка пакетов более 1300 байт по TCP, менее 1300 байт — по UDP;
  • ws — использовать WebSocket;
  • wss — использовать WebSocket Secure.

...

Приходит вызов, у которого номер А=23000, номер Б=24000 и кастомный заголовок "Trunk:   For trunk_2". ESBC заходит в RULE_1 и анализирует условие CONDITION_1, условие истинно, далее происходит анализ условия из CONDITION_2, условие истинно, далее происходит анализ условия из CONDITION_3, условие ложно. Значит правило не подходит (правило подходит, только если все условия внутри правила истинны). Далее ESBC переходит к RULE_2, анализирует условие CONDITION_4, условие истинно, далее происходит анализ условия из CONDITION_5, условие истинно, далее происходит анализ условия из CONDITION_6, условие также истинно. Значит правило RULE_2 подходит для маршрутизации, и вызов отправляется в TRUNK_2. 

Если приходит вызов, который не подходит ни под одно правило, то такой вызов отбивается.

...

Блок кода
languagec#
value-pattern '(some)-(value)'
# Значения#Значения some и value заносятся в локальные переменные pcre 1 и 2 соответственно
replacement '\2-\1'
# Значения#Значения переменных меняются местами

...

Блок кода
languagec#
  route-table TO_UAS
    rule 0
      action direct-to-trunk UAS
    exit
  exit
  mod-table common COMMON_MOD
    mod 5 cgpn
      value-pattern '2(.+)'
      # Осуществляется#Осуществляется выбор номеров, начинающихся с 2. Остальная часть номера сохраняется в локальную переменную 1
      replacement '8\1'
      # Выполняется замена 2 на 8 и добавляется значение из переменной 1
    exit
    mod 10 cdpn
      value-pattern '23002'
      # Осуществляется#Осуществляется выбор номера 23002
      replacement '22222'
      # Выполняется#Выполняется замена номера 23002 на 22222
    exit
  exit
  trunk sip UAC
    remote addr 192.168.80.26
    remote port 5070
    sip transport UAC
    route-table TO_UAS
    mod-table common in COMMON_MOD
    media resource 0 MEDIA
  exit
  trunk sip UAS
    remote addr 192.168.80.26
    remote port 5080
    sip transport UAS
    media resource 0 MEDIA
  exit
exit

...

Модификации в рамках одной таблицы применяются последовательно ко всем заголовкам в порядке, добавленном в конфигурации, т. е. первая модификация применяется ко всем заголовкам, затем вторая модификация применится ко всем заголовкам и т. д.

...

  • LOCAL_DOMAIN — локальный домен;

  • LOCAL_ADDR — локальный IP-адрес, сейчас то же самое, что LOCAL_HOST;

  • LOCAL_HOST — локальный домен или IP-адрес;

  • LOCAL_PORT — локальный порт;

  • REMOTE_DOMAIN — домен удалённой стороны;

  • REMOTE_ADDR — IP-адрес удалённой стороны;

  • REMOTE_HOST — домен или IP-адрес удалённой стороны;

  • REMOTE_PORT — порт удалённой стороны;

  • IFACE_TYPE — тип интерфейса (TRUNK или USER);

  • IFACE_ID — числовой идентификатор интерфейса;

  • IFACE_NAME — имя интерфейса;

  • VERSION — версия ESBC (x.y.z.patch);

  • TIMESTAMP — текущее время в секундах (заполняется на момент применения модификации).

...