...
Максимальное количество объектов конфигурации ESBC каждого типа представлено в таблице ниже.
| Объект | Количество |
|---|---|
| sip transport | 500 |
| trunk | 500 |
| user-interface | 500 |
| trunk-group | 250 |
| sip profile | 1000 |
| route table | 500 |
| rule | 64 на таблицу route table |
| condition | 64 на правило rule |
| media profile | 1000 |
| media resource | 1000 |
| mod-table | 500 |
| mod | 64 на таблицу mod-table |
| Предупреждение |
|---|
Не рекомендуется использовать максимальное количество объектов конфигурации одновременно, это может повлиять на работоспособность системы. |
...
| Блок кода |
|---|
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-транков
Схема применения:
Описание:
Транковый шлюз (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.
...
| Блок кода |
|---|
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-адрес на интерфейсе в сторону транкового шлюза:
...
- 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 |
|---|
Транскодирование
Поддержка кодеков для транскодирования осуществляется командами:
...
1. Замена атрибутов direction в offer sdp:
| Scroll Pagebreak |
|---|
2. Замена атрибутов direction в answer sdp:
...
| Блок кода | ||
|---|---|---|
| ||
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 (схема та же):
| Блок кода | ||
|---|---|---|
| ||
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. |
...
| Блок кода | ||
|---|---|---|
| ||
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. |
...
На ESBC имеется возможность контролировать интенсивность входящего трафика, в . В конфигурации доступна настройка максимального количества:
...
После применения изменений , ESBC не будет обрабатывать более 40 входящих SIP-запросов в секунду.
| Scroll Pagebreak |
|---|
Пример ограничения на транке:
...
После применения изменений , ESBC не будет обрабатывать более 10 входящих вызовов на SIP-транк TRUNK в секунду.
...
После применения изменений , ESBC не будет обрабатывать более 500 входящих вызовов на абонентский интерфейс USER_IFACE.
| Scroll Pagebreak |
|---|
Ограничение трафика на транковой группе
Ограничение на транковой группе применяется для всех транков, входящих в состав этой группы, и имеет приоритет над ограничением, установленным в настройках транка.
При этом суммарное количество входящего трафика на транках, входящих в состав группы, также не может превышать ограничение на группе.
...
После применения изменений , на транках TRUNK_0, TRUNK_1, TRUNK_2 не может быть суммарно более 30 входящих вызовов в секунду.
| Scroll Pagebreak |
|---|
Лицензионное ограничение обработки вызовов
...
| Блок кода | ||
|---|---|---|
| ||
#Просмотр активных лицензий: vesbc# show licence Feature Source State Value Valid from Expiries -------------------------------- -------- ----------- -------------------------------- -------------------- -------------------- ESBC-LIMIT-MAX-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) для просмотра:
- чёрного списка;
- белого списка;
- состояния транков;
- списка зарегистрированных абонентов;
- статистики вызовов.
...
Есть возможность просматривать статистику для всей системы, всех транков или , всех абонентских интерфейсов . Либо же или по конкретному транспорту, транку, абонентскому интерфейсу.
...
| Информация |
|---|
В выводе отображаются счётчики запросов/ответов за последние 3 секунды. Если ответ был сгенерирован ESBC, а не получен от встречной стороны, то соответствующий счётчик не увеличится. |
| Примечание |
|---|
Для отображения счётчиков необходимо включить ведение статистики вызовов в меню general. |
Пример:
Из TRUNK_IN в TRUNK_OUT через ESBC поступает 5 вызовов каждую секунду длительностью 5 секунд.
...
| Блок кода | ||
|---|---|---|
| ||
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# show 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# show 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
Работа с логами
| 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:
| Блок кода | ||
|---|---|---|
| ||
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 |
|---|

