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

Ключ

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

Оглавление
maxLevel4


Общие сведения

В данном разделе приведены примеры конфигурирования функций пограничного контроллера сессий.

Переход в режим конфигурирования осуществляется следующими командами:

Блок кода
vesbc# configure 
vesbc(config)# esbc 
vesbc(config-esbc)#

Максимальное количество объектов конфигурации ESBC каждого типа представлено в таблице ниже.

ОбъектКоличество
sip transport500
trunk500
user-interface500
trunk-group250
sip profile1000
route table500
rule64 на таблицу route table
condition 64 на правило rule
media profile 1000
media resource1000
mod-table500
mod64 на таблицу mod-table
Предупреждение

Не рекомендуется использовать максимальное количество объектов конфигурации одновременно, это может повлиять на работоспособность системы.

Настройка ESBC для SIP-абонентов

Схема применения:

Image RemovedImage Added

Описание:

Абонентский SIP-абоненты (IP-телефон/VOiP шлюз/Мобильный SIP-абоненты клиент и т. д.) отправляют сообщение на IP-адрес 192.168.20.120 порт 5062, ESBC пересылает данный трафик с IP-адреса 192.168.16.113 порт 5061 на адрес Softswitch (IP АТС/SIP-proxy и т. д) 192.168.16.65 порт 5060.

Для реализации данной схемы общий алгоритм настройки следующий:

...

1. Пробросить сетевые интерфейсы в vESBC по инструкции (только для vESBC):

gi1/0/1 — внутренний сетевой интерфейс до SSW;
gi1/0/2 — внешний сетевой интерфейс для абонентов.

...

Блок кода
vesbc#
vesbc# configure
vesbc(config)# esbc
vesbc(config-esbc)# media resource MEDIA_SSW
vesbc(config-esbc-media-resource)# ip address 192.168.16.113

# указатьУказать диапазон портов, который будет выделяться на ESBC для передачи голоса. Данная команда необязательная, если ее не указывать будет использоваться диапазон портов 8000–65535
vesbc(config-esbc-media-resource)# port-range 1024-65535

...

Блок кода
vesbc# 
vesbc# configure 
vesbc(config)# esbc 
vesbc(config-esbc)# user-interface sip ABONENTS 
vesbc(config-esbc-user-interface-sip)# route-table TO_SSW

Scroll Pagebreak

12. Применить конфигурацию и подтвердить изменения:

...

Настройка ESBC для SIP-транков

Схема применения:

Image Modified

Описание:

Транковый шлюз (IP АТС/ SIP-proxy/Удаленный SSW и др.) отправляет сообщения с IP-адреса 192.168.20.99 порта 5060 на IP-адрес 192.168.20.120 порт 5067, ESBC пересылает данный трафик с IP-адреса 192.168.16.113 порта 5065 на адрес Softswitch 192.168.16.65 порт 5060. И в обратную сторону SSW отправляет сообщения с IP-адреса 192.168.16.65 порта 5060 на IP-адрес 192.168.16.113 порт 5065, ESBC пересылает данный трафик с IP-адреса 192.168.20.120 порта 5067 на адрес транкового шлюза 192.168.20.99 порт 5060.

...

1. Пробросить сетевые интерфейсы в vESBC по инструкции (только для vESBC):

gi1/0/1 — сетевой интерфейс до SSW;
gi1/0/2 — сетевой интерфейс до транкового шлюза.

...

Блок кода
vesbc# configure
vesbc(config)# interface gigabitethernet 1/0/1
vesbc(config-if-gi)# description "SSW"
vesbc(config-if-gi)# ip address 192.168.16.113/24

Scroll Pagebreak
3. Настроить  Настроить IP-адрес на интерфейсе в сторону транкового шлюза:

...

Блок кода
vesbc# commit
vesbc# confirm


Примечание

Cоздание транков с одинаковым SIP-транспортом и IP:Port разрешено только в случае, если отличается домен.

В приведенной схеме описаны базовые настройки, описание всех команд приведено в разделе Настройка ESBC.

Создание/конфигурирование медиаресурсов

...

После привязки созданного медиаресурса к какому-либо направлению (транку, транковой группе или абонентскому интерфейсу), он будет использоваться для передачи/получения потоков RTP на выбранных направлениях.

Предупреждение

При использовании одинакового IP-адреса для разных медиаресурсов не допускается пересечение диапазонов портов между этими ресурсами. 

Scroll Pagebreak

Создание/конфигурирование SIP-транспорта

...

  • 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.

Scroll Pagebreak

Создание/конфигурирование транковых групп

...

Предупреждение

Для кодеков со статическим payload type рекомендуется указывать номер payload type, иначе, если в SDP не будет указан атрибут rtpmap, вызов будет отбиваться кодом 488.

Scroll Pagebreak

Транскодирование

Поддержка кодеков для транскодирования осуществляется командами: 

...

Блок кода
languagec#
vesbc# 
vesbc# configure 
vesbc(config)# esbc 

#Создание#Создать sip-профиляпрофиль NEW_SIP_PROFILE:
vesbc(config-esbc)# sip profile NEW_SIP_PROFILE 
vesbc(config-esbc-sip-profile)# 

#Включить контроль доступности:
vesbc(config-esbc-sip-profile)# keepalive enable 
vesbc(config-esbc-sip-profile)# 

#Настроить интервалы контроля:
vesbc(config-esbc-sip-profile)# keepalive success-interval 120
vesbc(config-esbc-sip-profile)# keepalive failed-interval 30
vesbc(config-esbc-sip-profile)#  
 
vesbc(config-esbc-sip-profile)# exit
vesbc(config-esbc)#

#Привязать SIP-профиль к транку TRUNK_OUT:
vesbc(config-esbc)# trunk sip NEW_TRUNK 
vesbc(config-esbc-trunk-sip)# sip profile NEW_SIP_PROFILE 
vesbc(config-esbc-trunk-sip)# 

#Применить и подтвердить изменения:
vesbc(config-esbc-trunk-sip)# do commit 
Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds.
vesbc(config-esbc-trunk-sip)# do confirm 
Configuration has been confirmed. Commit timer canceled.

...

Если из транка было получено какое-либо сообщение (в том числе ответ на OPTIONS), то транк считается доступным, следующий запрос OPTIONS отправится через 120 секунд (success-interval).

Предупреждение

Контроль доступности не работает для абонентских интерфейсов. 

Использование списка причин отбоя для перехода на следующее направление

...

Приходит вызов и начинает маршрутизироваться по данной таблице маршрутизации. В результате вызов уходит на TRUNK_GROUP и оттуда в TRUNK_1, он недоступен, вызов отбивается по Timer B и происходит перемаршрутизация на TRUNK_2 (следующий транк в транковой группе), из TRUNK_2 приходит ответ 404 Not Found, код ответа совпадает с маской из списка, который привязан к TRUNK-GROUP, поэтому происходит маршрутизация на следующее направление, в транковой группе больше нет транков, поэтому ESBC переходит к RULE_2, и вызов маршрутизируется в TRUNK_3. 

Предупреждение

Если нет привязанного списка, то перемаршрутизация происходит только по недоступности транка.


Предупреждение

Если с абонентского интерфейса пришёл ответ, совпадающий с маской, то перемаршрутизации не будет.

Scroll Pagebreak

Перемаршрутизация абонентов

...

На ESBC есть возможность настроить поведение при перенаправлении(получении 3xx ответа), доступны 3 варианта:

  • forbidden при получении 3xx ответа вызов завершается;
  • transit 3xx передаётся на другое плечо без изменений контакта;
  • process локальная обработка 3xx ответа.

...

Блок кода
languagec#
A(транк)---IP_a           |     IP_ESBC_1---ESBC---IP_ESBC_2       |                    IP_с
                          |                                        | 
                          |           INVITE number_с@IP_c         |---------------------->
                          |           From: number_a@IP_ESBC_2     |
                          |           To: number_b@IP_b            |
                          |           Diversion: number_b@IP_ESBC_2|
                          |                                        |
     <--------------------|-----------181 Call is Being Forwarded  |
Информация

Для того , чтобы транк считался доверенным, нужно включить опцию trusted-network в конфигурации транка.

В прочих случаях вызов завершается.

Работа с NAT

...

1. Замена атрибутов direction в offer sdp:

Scroll Pagebreak

2. Замена атрибутов direction в answer sdp:

Создание/конфигурирование модификаторов

...

ESBC поддерживает два типа модификаторов — common и sip.

...

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

Примечание

При применении на транке/абонентском интерфейсе модификаторов обоих типов одновременно, используется следующий порядок их обработки в зависимости от направления модификации:

  • IN — сначала применяется модификатор sip, затем — модификатор common;
  • OUT — сначала применяется модификатор common, затем — sip.

Scroll Pagebreak
mod-table common

...

Блок кода
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

...

В результате модификации mod 5 cgpn выполнена модификация CgPN 24001 на 84001, в результате mod 10 cdpn — модификация CdPN 23002 на 22222.

Примечание

При использовании модификатора CgPN помимо заголовка From изменяется user part SIP URI заголовка Contact. При использовании модификатора CdPN помимо заголовка To изменяется user part SIP в Request-URI.


Примечание

Модификаторы common, настроенные в качестве IN, могут влиять на результат маршрутизации при использовании в route-table условий (condition), т. к. правила route-table обрабатываются после применения модификации. Модификаторы. настроенные в качестве OUT, не влияют на результат маршрутизации.


Предупреждение

Для сообщений REGISTER модификаторы common не применяются.

Scroll Pagebreak
mod-table sip

Данный тип модификации позволяет изменять любые заголовки сообщений SIP. 

Примечание

Процесс модификации заголовков отличается в зависимости от режима использования модификатора IN или OUT.

Существуют ограничения на модификацию основных заголовков sip, к которым относятся: Call-ID, From, To, Via, CSeq, Contact, Max-Forwards, Route, Record-Route, Content-Type, Content-Lenght, Require, Supported.

...

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

Предупреждение

Применение модификаторов к основным заголовкам SIP может привести к нарушению обработки сообщений.

Scroll Pagebreak
Логика обработки сообщения SIP при использовании IN-модификации:

...

Блок кода
languagec#
INVITE sip:24000@192.168.114.129:5460 SIP/2.0
Via: SIP/2.0/UDP 192.168.114.130:5460;rport;branch=z9hG4bKPj-fvzSQlwN2zoMaGUR5JCLMkjmkBV3Vz1
Max-Forwards: 70
From: "Simple UAC send bye" <sip:24001@192.168.114.130>;tag=l2jkRSMeumV03IdhjPntOt7l0XBKy-Ln
To: "24000" <sip:24000@192.168.114.129>
Contact: <sip:24001@192.168.114.130:5460;transport=udp>
Call-ID: P-W.2oee.2vJw0JoaFbNkRDvnxY40FoP
CSeq: 30738 INVITE
Allow: PRACK, SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE
Supported: timer, 100rel, replaces
Session-Expires: 1800
Min-SE: 90
#Добавленный через таблицу модификаторов заголовок:
Test_header: example string 
Content-Type: application/sdp
Content-Length: 157

v=0
o=tester 3927594021 3927594021 IN IP4 192.168.114.130
s=A conversation
c=IN IP4 192.168.114.130
t=0 0
m=audio 8062 RTP/AVP 8
a=rtpmap:8 PCMA/8000


Scroll Pagebreak

Пример использования модификатора удаления заголовка (no-transit)

...


Пример использования локальных переменных pcre в модификации replace (схема та же): 

Блок кода
languagec#
vesbc# 
vesbc# configure 
vesbc(config)# esbc 

#Создание таблицы модификаторов MODTABLE_IN:
vesbc(config-esbc)# mod-table sip MODTABLE_IN
vesbc(esbc-mod-table)# 

#Добавление в таблицу модификаторов правила на замену заголовка:
vesbc(esbc-mod-table)# mod 1 replace

#Выбор запроса, в котором будут заменяться заголовки:
vesbc(esbc-mod-table-modification)# sip method-type Invite

#Указать название заголовка, содержимое которого необходимо заменить:
vesbc(esbc-mod-table-modification)# sip header-pattern Date

#Указать место в содержимом заголовка, которое необходимо заменить (шаблон — дата в формате "год-месяц-число"):
vesbc(esbc-mod-table-modification)# value-pattern "(\\d{4})-(\\d{2})-(\\d{2})"

#Добавить правило для подмены содержимого заголовка (меняем формат даты на "месяц/число/год"):
vesbc(esbc-mod-table-modification)# replacement "\\2/\\3/\\1"

vesbc(esbc-mod-table-modification)# exit
vesbc(esbc-mod-table)# exit

#Привязать таблицу модификаторов к входящему транку TRUNK_IN:
vesbc(config-esbc)# trunk sip TRUNK_IN
vesbc(config-esbc-trunk-sip)# mod-table sip in MODTABLE_IN 

#Применить и подтвердить изменения:
vesbc(config-esbc-trunk-sip)# do commit 
Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds.
vesbc(config-esbc-trunk-sip)# do confirm 
Configuration has been confirmed. Commit timer canceled.

...

Блок кода
languagec#
vesbc# 
vesbc# configure 
vesbc(config)# esbc 

#Создание таблицы модификаторов MODTABLE_OUT:
vesbc(config-esbc)# mod-table sip MODTABLE_OUT
vesbc(esbc-mod-table)# 

#Добавление в таблицу модификаторов правила copy для копирования значения user part в переменную u01:
vesbc(esbc-mod-table)# mod 0 copy
vesbc(esbc-mod-table-modification)# 

#Выбор запроса, в котором будет использоваться модификатор copy (в данном случае INVITE):
vesbc(esbc-mod-table-modification)# sip method type Invite

#Указать название заголовка, из которого необходимо копировать значение (в данном случае Diversion):
vesbc(esbc-mod-table-modification)# sip header-pattern Diversion

#Указать содержимое заголовка, при совпадении с которым будет выполнено копирование в переменную. В переменную будет скопирована та часть отбора, которая указана в скобках:
vesbc(esbc-mod-table-modification)# value-pattern '<sip:(.+)@'

#Указать переменную, в которую будет скопировано значение, указанное в скобках, в примере - (.+):
vesbc(esbc-mod-table-modification)# variable-str 'u01'
vesbc(esbc-mod-table-modification)# exit

#Добавление в таблицу модификаторов правила replace для замены заголовка From:
vesbc(esbc-mod-table)# mod 1 replace

#Указать название заголовка, в котором будет осуществляться замена:
vesbc(esbc-mod-table-modification)# sip header-pattern 'From'

#Выбор запроса, в котором будет использоваться модификатор replace (в данном случае INVITE):
vesbc(esbc-mod-table-modification)# sip method type Invite

#Указать часть содержимого заголовка, которую необходимо заменить:
vesbc(esbc-mod-table-modification)# value-pattern '.+ <sip:'

##Указать Указать переменную u01, которая содержит значение, полученное в модификации copy:
vesbc(esbc-mod-table-modification)# replacement '\u01 <sip:$'
vesbc(esbc-mod-table-modification)# exit

#Добавление в таблицу модификаторов правила no-transit для удаления заголовка Diversion:
vesbc(esbc-mod-table)# mod 2 no-transit
vesbc(esbc-mod-table-modification)# sip header-pattern 'Diversion'
vesbc(esbc-mod-table-modification)# sip method type Invite
vesbc(esbc-mod-table-modification)# exit
vesbc(esbc-mod-table)# exit

#Привязать таблицу модификаторов к исходящему транку TRUNK_OUT:
vesbc(config-esbc)# trunk sip TRUNK_OUT 
vesbc(config-esbc-trunk-sip)# mod-table sip out MODTABLE_OUT 

#Применить и подтвердить изменения:
vesbc(config-esbc-trunk-sip)# do commit 
Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds.
vesbc(config-esbc-trunk-sip)# do confirm 
Configuration has been confirmed. Commit timer canceled.

...

Блок кода
languagec#
INVITE sip:23002@192.168.80.26:5080 SIP/2.0
Via: SIP/2.0/UDP 192.168.80.129:5080;rport;branch=z9hG4bKPjbURYAQZxa2m1zsT6x.s6RQ28ONE4EifS
Max-Forwards: 70
From: "11111" <sip:24001@192.168.80.129>;tag=Jfl7n8XBMrh6vjCcB036Ogz6QX4BTDCo
To: "sut" <sip:23002@192.168.80.26>
Contact: <sip:24001@192.168.80.129:5080>
Call-ID: bbf5db1c228015eecddfe0d7079ce876
CSeq: 8798 INVITE
Allow: PRACK, SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE
Supported: 100rel, replaces
Content-Type: application/sdp
Content-Length:   119

[SDP]...

Scroll Pagebreak

Изменение количества модулей 

...

Максимальное количество модулей определяется динамически в зависимости от количества ядер CPU.

Предупреждение

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


Примечание

Заданное в конфигурации количество модулей не изменяется при увеличении/уменьшении количества ядер CPU системы.

Пример:

Блок кода
languagec#
vesbc#
vesbc# config 
vesbc(config)# esbc 

#Переход в общие настройки:
vesbc(config-esbc)# general 
vesbc(config-esbc-general)# 

#Увеличение количества медиа-воркеров до 2:
vesbc(config-esbc-general)# count media worker 2
vesbc(config-esbc-general)#

#Применение и подтверждение изменений:
vesbc(config-esbc-general)# do commit
2024-09-09T05:26:55+00:00 %SYS-W-EVENT: WARNING!!! After changing ESBC modules count, the system may work unstable. Please restart software.
2024-09-09T05:26:57+00:00 snmpd restarted
Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds.
2024-09-09T05:26:58+00:00 %CLI-I-CRIT: user admin from console  input: do commit
vesbc(config-esbc-general)# do confirm
Configuration has been confirmed. Commit timer canceled.
2024-09-09T05:27:01+00:00 %CLI-I-CRIT: user admin from console  input: do confirm
vesbc(config-esbc-general)# 

#Перезапуск ПО ESBC для корректного перераспределения модулей:
vesbc(config-esbc-general)# do reload esbc force
Do you really want to reload esbc now? (y/N): y
Примечание

Для вывода предупреждения о необходимости перезапуска нужно, чтобы уровень syslog severity был не ниже warning.

Контроль входящего трафика

На ESBC есть имеется возможность контролировать интенсивность входящего трафика, в . В конфигурации доступна настройка максимального количества:

...

После применения изменений , ESBC не будет обрабатывать более 40 входящих SIP-запросов в секунду. 

Scroll Pagebreak

Пример ограничения на транке:

...

После применения изменений , ESBC не будет обрабатывать более 10 входящих вызовов на SIP-транк TRUNK в секунду.

...

После применения изменений , ESBC не будет обрабатывать более 500 входящих вызовов на абонентский интерфейс USER_IFACE. 

Scroll Pagebreak

Ограничение трафика на транковой группе

Ограничение на транковой группе применяется для всех транков, входящих в состав этой группы, и имеет приоритет над ограничением, установленным в настройках транка.
При этом суммарное количество входящего трафика на транках, входящих в состав группы, также не может превышать ограничение на группе.

...

Блок кода
languagec#
vesbc#
vesbc# config 
vesbc(config)# esbc 

#Переход в настройки транка:
vesbc(config-esbc)# trunk sip TRUNK_1 
vesbc(config-esbc-trunk-sip)# 

#Ограничение максимального CPS на транке:
vesbc(config-esbc-trunk-sip)# max cps 50

#Переход в настройки транковой группы и добавление транков:
vesbc(config-esbc-trunk-sip)# exit
vesbc(config-esbc)# trunk-group GROUP
vesbc(config-esbc-trunk-group)# trunk 0 TRUNK_0
vesbc(config-esbc-trunk-group)# trunk 1 TRUNK_1
vesbc(config-esbc-trunk-group)# trunk 2 TRUNK_2

#Ограничение максимального CPS на группе:
vesbc(config-esbc-trunk-group)# max cps 30

#Применение и подтверждение изменений:
vesbc(config-esbc-trunk-group)# do commit 
2025-04-22T08:44:46+00:00 snmpd restarted
Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds.
2025-04-22T08:44:46+00:00 %CLI-I-CRIT: user admin from console  input: do commit
vesbc(config-esbc-trunk-group)# do confirm 
Configuration has been confirmed. Commit timer canceled.
vesbc(config-esbc-trunk-group)# 

После применения изменений на транках TRUNK_0, TRUNK_1, TRUNK_2 не может быть суммарно более 30 входящих вызовов в секунду.

Scroll Pagebreak

Лицензионное ограничение обработки вызововЛицензирование ограничения трафика

Максимальное количество одновременных вызовов и максимальное количество вызовов в секунду ограничиваются лицензиями ESBC-LIMIT-MAX-CALLS и ESBC-LIMIT-MAX-CPS соответственно.
При этом в конфигурации можно задать ограничение, которое превышает лицензионное значение, но ESBC не будет обрабатывать больше, чем позволяет лицензия, пример:

Блок кода
languagec#
#Просмотр активных лицензий:
vesbc# show licence
Feature                            Source     State         Value                              Valid from             Expiries               
--------------------------------   --------   -----------   --------------------------------   --------------------   --------------------   
ESBC-LIMIT-MAX-CALLS               ELM        Active        5000-CALLS               ELM      Active        5000  --            --         --                     
ESBC-LIMIT-MAX-CPS                 ELM        Active        100                                --                     --                     
ESBC-VIRTUAL-LIMIT-DEFAULT         ELM        Active        true                               --                     --                     
ESBC-VIRTUAL-LIMIT-NET             ELM        Active        10000000000                        --                     --                     
vesbc#
vesbc# config 
vesbc(config)# esbc 

#Переход в общие настройки:
vesbc(config-esbc)# general 
vesbc(config-esbc-general)# 

#Ограничение максимального CPS:
vesbc(config-esbc-general)# max cps 
  COUNT  Possible max cps: 1-1000   #конфигурационное ограничение

vesbc(config-esbc-general)# max cps 1000
2025-04-22T09:10:17+00:00 %SYS-W-EVENT: WARNING!!! Configured max cps 1000 exceed licence limit that is equal to 100   #предупреждение о том, что введённое значение превышает лицензионное

#Применение и подтверждение изменений:
vesbc(config-esbc-general)# do commit 
2025-04-22T08:44:46+00:00 snmpd restarted
Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds.
2025-04-22T08:44:46+00:00 %CLI-I-CRIT: user admin from console  input: do commit
vesbc(config-esbc-general)# do confirm 
Configuration has been confirmed. Commit timer canceled.
vesbc(config-esbc-general)# 

После применения изменений в конфигурации будет отображаться max cps 1000, но обрабатываться будет не более 100 вызовов в секунду.

Scroll Pagebreak

Мониторинг

В ESBC доступен мониторинг, в . В текущей версии ПО в CLI есть команды (show esbc) для просмотра:

  • чёрного списка;
  • белого списка;
  • состояния транков;
  • списка зарегистрированных абонентов;
  • статистики вызовов.

...

Есть возможность просматривать статистику для всей системы, всех транков или , всех абонентских интерфейсов . Либо же или по конкретному транспорту, транку, абонентскому интерфейсу.

...

  • текущее количество вызовов в секунду;
  • количество активных входящих/исходщих вызовов;
  • счётчики полученных запросов/ответов:
    • получено/отправлено запросов;
    • получено/отправлено ответов;
    • успешно отвеченные вызовы;
    • вызовы на неверно набранный номер;
    • занятые вызовы;
    • вызовы без ответа;
    • запрещенные вызовы;
    • 3xx ответы;
    • 4xx ответы;
    • 5xx ответы;
    • 6xx ответы.

Описание каждой метрики можно найти в разделе Команды мониторинга Справочника команд CLI.

Информация

В выводе отображаются счётчики запросов/ответов за последние 3 секунды.

Если ответ был сгенерирован ESBC, а не получен от встречной стороны, то соответствующий счётчик не увеличится.


Примечание

Для отображения счётчиков необходимо включить ведение статистики вызовов в меню general.


Пример:

Из TRUNK_IN в TRUNK_OUT через ESBC поступает 5 вызовов каждую секунду длительностью 5 секунд.

TRUNK_IN------->ESBC------→TRUNK_OUTImage Added


Блок кода
languagec#
vesbc#
vesbc# config 
vesbc(config)# esbc 

#Переход в общие настройки:
vesbc(config-esbc)# general 
vesbc(config-esbc-general)# 

#Включение статистики вызовов:
vesbc(config-esbc-general)# statistics call 
vesbc(config-esbc-general)# 

#Применение и подтверждение изменений:
vesbc(config-esbc-general)# do commit 
2025-04-22T08:44:46+00:00 snmpd restarted
Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds.
2025-04-22T08:44:46+00:00 %CLI-I-CRIT: user admin from console  input: do commit
vesbc(config-esbc-general)# do confirm 
Configuration has been confirmed. Commit timer canceled.
vesbc(config-esbc-general)# 

#Просмотр статистики при активных вызовах:
vesbc# show esbc counters 
ESBC global counters:
-----------------------------------
 CPS:                         5
 INCOMING CALL-LEGS:          25
 OUTGOING CALL-LEGS:          25
 REQUESTS RECEIVED:           48
 REQUESTS SEND:               48
 RESPONSES RECEIVED:          64
 RESPONSES SEND:              64
 ANSWERED CALLS(SUCCESS):     15
 ANSWERED CALLS(UNSUCCESS):   0
 WRONG NUMBER CALLS:          0
 BUSY CALLS:                  0
 NO ANSWER CALLS:             0
 FORBIDDEN CALLS:             0
 3XX CODES:                   0
 4XX CODES:                   0
 5XX CODES:                   0
 6XX CODES:                   0


#Просмотр статистики на транке TRUNK_IN:
vesbc# shshow esbc trunks sip counters TRUNK_IN
Trunk:                        TRUNK_IN
---------------------------------------------
 CPS:                         5
 INCOMING CALL-LEGS:          25
 OUTGOING CALL-LEGS:          0
 REQUESTS RECEIVED:           48
 REQUESTS SEND:               0
 RESPONSES RECEIVED:          0
 RESPONSES SEND:              64
 ANSWERED CALLS(SUCCESS):     0
 ANSWERED CALLS(UNSUCCESS):   0
 WRONG NUMBER CALLS:          0
 BUSY CALLS:                  0
 NO ANSWER CALLS:             0
 FORBIDDEN CALLS:             0
 3XX CODES:                   0
 4XX CODES:                   0
 5XX CODES:                   0
 6XX CODES:                   0

#Просмотр статистики на транке TRUNK_OUT:
vesbc# shshow esbc trunks sip counters TRUNK_OUT
Trunk:                        TRUNK_OUT
---------------------------------------------
 CPS:                         0              #CPS - 0, так как отображается текущее количество входящих вызовов в секунду
 INCOMING CALL-LEGS:          0
 OUTGOING CALL-LEGS:          25
 REQUESTS RECEIVED:           0
 REQUESTS SEND:               48
 RESPONSES RECEIVED:          64
 RESPONSES SEND:              0
 ANSWERED CALLS(SUCCESS):     15
 ANSWERED CALLS(UNSUCCESS):   0
 WRONG NUMBER CALLS:          0
 BUSY CALLS:                  0
 NO ANSWER CALLS:             0
 FORBIDDEN CALLS:             0
 3XX CODES:                   0
 4XX CODES:                   0
 5XX CODES:                   0
 6XX CODES:                   0

#Просмотр статистики после остановки вызовов:
vesbc# show esbc counters 
ESBC global counters:
-----------------------------------
 CPS:                         0
 INCOMING CALL-LEGS:          0
 OUTGOING CALL-LEGS:          0
 REQUESTS RECEIVED:           10   #вызовы завершились, но некоторые счётчики ещё не сбросились
 REQUESTS SEND:               10
 RESPONSES RECEIVED:          10
 RESPONSES SEND:              10
 ANSWERED CALLS(SUCCESS):     0
 ANSWERED CALLS(UNSUCCESS):   0
 WRONG NUMBER CALLS:          0
 BUSY CALLS:                  0
 NO ANSWER CALLS:             0
 FORBIDDEN CALLS:             0
 3XX CODES:                   0
 4XX CODES:                   0
 5XX CODES:                   0
 6XX CODES:                   0

#Просмотр статистики через 3 секунды:
vvesbc# show esbc counters 
ESBC global counters:
-----------------------------------
 CPS:                         0
 INCOMING CALL-LEGS:          0
 OUTGOING CALL-LEGS:          0
 REQUESTS RECEIVED:           0
 REQUESTS SEND:               0
 RESPONSES RECEIVED:          0
 RESPONSES SEND:              0
 ANSWERED CALLS(SUCCESS):     0
 ANSWERED CALLS(UNSUCCESS):   0
 WRONG NUMBER CALLS:          0
 BUSY CALLS:                  0
 NO ANSWER CALLS:             0
 FORBIDDEN CALLS:             0
 3XX CODES:                   0
 4XX CODES:                   0
 5XX CODES:                   0
 6XX CODES:                   0

Якорь
logs
logs
Работа с логами

Логирование ESBC осуществляется с помощью syslog. Более подробно настройки syslog описаны в разделе Управление SYSLOG справочника команд CLI.

Модули, входящие в состав ESBC

Название

Описание

Назначение

esbc_core

модуль основной логики

обработка вызовов, отвечает за маршрутизацию вызовов, обеспечивает взаимодействие остальных модулей

esbc_sip_balancer

модуль управления подсистемой SIP

получение сообщений SIP (на открытый сокет) и передача их в модуль esbc_sip_worker

esbc_sip_worker

модуль расширения подсистемы SIP

адаптер протокола SIP, обрабатывает сообщения и передает данные модулю esbc_core

esbc_media_balancer

модуль управления подсистемой media

управление ресурсами в подсистеме media, выделяет RTP-порты и передает их в модуль esbc_media_worker

esbc_media_worker

модуль расширения подсистемы media

обработка медиапотоков (RTP)

esbc_config_manager

адаптер базы данных конфигурации

хранение конфигурации системы

esbc_access_mediator

модуль внешнего доступа

обработка внешних взаимодействий с системой CLI

esbc_ipc

брокер сообщений

обеспечение связи всех модулей в системе

esbc_dispatcher

модуль контроля состояния модулей

контроль модулей, индикация об изменении состояний модулей

esbc_sm

модуль управления абонентскими записями

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

esbc_voip_guard

модуль fail2ban

отслеживает попытки обращения к сервису телефонии, при обнаружении постоянно повторяющихся неудачных попыток обращения с одного и того же IP-адреса или хоста модуль блокирует попытки с этого IP-адреса/хоста

esbc_sysio

модуль взаимодействия с ОС

служит прослойкой между ESBC и ОС, на которой он разворачивается, предоставляет единый интерфейс взаимодействия с системой и реализует мониторинг различных системных событий

esbc_mon

модуль мониторинга

обеспечение функции мониторинга и сбора статистики

Scroll Pagebreak

Включение логирования модулей ESBC производится в разделе debug:

Блок кода
languagec#
vesbc#
 
#Переход в раздел debug:
vesbc# debug
vesbc(debug)#
 
#Включение логирования модуля esbc_dispatcher:
vesbc(debug)# debug esbc disp
 
#Включение логирования модуля esbc_config_manager:
vesbc(debug)# debug esbc cfgmgr
 
#Включение логирования модуля esbc_access_mediator:
vesbc(debug)# debug esbc accmed
 
#Включение логирования модуля esbc_mon:
vesbc(debug)# debug esbc mon

#Включение логирования модуля esbc_core:
vesbc(debug)# debug esbc core
 
#Включение логирования модуля esbc_sip_balancer:
vesbc(debug)# debug esbc sipbl
 
#Включение логирования модуля esbc_sip_worker:
vesbc(debug)# debug esbc sipwrk
 
#Включение логирования модуля esbc_media_balancer:
vesbc(debug)# debug esbc mediabl
 
#Включение логирования модуля esbc_media_worker:
vesbc(debug)# debug esbc mediawrk
 
#Включение логирования модуля esbc_sysio:
vesbc(debug)# debug esbc sysio
 
#Включение логирования модуля esbc_sm:
vesbc(debug)# debug esbc submngr
 
#Включение логирования модуля esbc_voip_guard:
vesbc(debug)# debug esbc voip-guard

#Применение и подтверждение настроек:
vesbc(debug)# do commit
vesbc(debug)# do confirm

Scroll Pagebreak