...
В конфигурации есть два транка, настроена маршрутизация. Вызов, который приходит из TRUNK_IN, уходит в TRUNK_OUT. Из TRUNK_IN приходит INVITE с заголовком RouteTest_header. Требуется, используя только переменную var1, скопировать значение заголовка Test_header из INVITE на первом плече, вставить его в заголовок Test_header_INVITE в ответе 180 на втором плече, скопировать значение заголовка Test_header из ответа 200 на втором плече и вставить его в заголовок Test_header_200 в запрос BYE на первом плече.
| Блок кода | ||
|---|---|---|
| ||
vesbc# vesbc# configure vesbc(config)# esbc #Создание таблицы модификаторов MODTABLE_IN_TRUNK_IN для модификаций на первом плече: vesbc(config-esbc)# mod-table sip MODTABLE_IN_TRUNK_IN vesbc(esbc-mod-table)# #Добавление в таблицу модификаторов правила copy для копирования значения заголовка RouteTest_header в переменную routevar1: vesbc(esbc-mod-table)# mod 0 copy vesbc(esbc-mod-table-modification)# #Выбор запроса, в котором будет использоваться модификатор copy (в данном случае INVITE): vesbc(esbc-mod-table-modification)# sip method type Invite #Указать название заголовка, из которого необходимо копировать значение (в данном случае Test_header): vesbc(esbc-mod-table-modification)# sip header-pattern Test_header #Указать содержимое заголовка, при совпадении с которым будет выполнено копирование в переменную. В переменную будет скопирована та часть отбора, которая указана в скобках: vesbc(esbc-mod-table-modification)# value-pattern '(.+)' #Указать переменную, в которую будет скопировано значение, указанное в скобках, в примере - (.+): vesbc(esbc-mod-table-modification)# variable-str 'var1' vesbc(esbc-mod-table-modification)# exit #Добавление в таблицу модификаторов правила add для добавления заголовка Test_header_180 в BYE: vesbc(esbc-mod-table)# mod 1 add #Выбор запроса, в котором будет использоваться модификатор add (в данном случае BYE): vesbc(esbc-mod-table-modification)# sip method type Bye #Название добавляемого заголовка: vesbc(esbc-mod-table-modification)# header name Test_header_200 #Указать значение заголовка (переменная var1): vesbc(esbc-mod-table-modification)# header value '${var1}' 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_TRUNK_IN vesbc(config-esbc-trunk-sip)# exit #Создание таблицы модификаторов MODTABLE_IN_TRUNK_OUT для модификаций на втором плече: vesbc(config-esbc)# mod-table sip MODTABLE_IN_TRUNK_OUT vesbc(esbc-mod-table)# #Добавление в таблицу модификаторов правила copy для копирования значения заголовка Test_header в переменную var1: vesbc(esbc-mod-table)# mod 0 copy vesbc(esbc-mod-table-modification)# #Выбор ответа, в котором будет использоваться модификатор copy (в данном случае 200): vesbc(esbc-mod-table-modification)# sip response-pattern 200 #Указать название заголовка, из которого необходимо копировать значение (в данном случае Test_header): vesbc(esbc-mod-table-modification)# sip header-pattern Test_header #Указать содержимое заголовка, при совпадении с которым будет выполнено копирование в переменную. В переменную будет скопирована та часть отбора, которая указана в скобках: vesbc(esbc-mod-table-modification)# value-pattern '(.+)' #Указать переменную, в которую будет скопировано значение, указанное в скобках, в примере - (.+): vesbc(esbc-mod-table-modification)# variable-str 'var1' vesbc(esbc-mod-table-modification)# exit #Добавление в таблицу модификаторов правила add для добавления заголовка Test_header_INVITE в 180: vesbc(esbc-mod-table)# mod 1 add #Выбор ответа, в котором будет использоваться модификатор add (в данном случае 180): vesbc(esbc-mod-table-modification)# sip response-pattern '180' #Название добавляемого заголовка: vesbc(esbc-mod-table-modification)# header name Test_header_INVITE #Указать значение заголовка (переменная var1): vesbc(esbc-mod-table-modification)# header value '${var1}' 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 in MODTABLE_IN_TRUNK_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. |
...
Описание всех команд для настройки таймеров SIP-сессий приведено в разделе Настройки SIP-профиля Справочника команд CLI.
Пример настройки
Задача:.
Включить поддержку таймеров SIP-сессий на транке TRUNK_2 с параметрами Session Expires – 120, Min SE – 120, Refresher – UAS. На транке TRUNK_1 таймеры не используются.
Решение.:
Настроить SIP-профиль и привязать его к транку TRUNK_2:
...
| Блок кода | ||
|---|---|---|
| ||
vesbc# vesbc# configure vesbc(config)# esbc #Переход в общие настройки: vesbc(config-esbc)# general vesbc(config-esbc-general)# #Изменение времени блокировки адресов на 2880 минут (2 дня): vesbc(config-esbc-general)# security block-timeout 2880 #Применение и подтверждение изменений: vesbc(config-esbc-general)# do commit Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds. vesbc(config-esbc-general)# do confirm Configuration has been confirmed. Commit timer canceled. Происходит блокировка AOR 22222@192.168.80.26 vesbc# show esbc black-list ip IP black-list: ------------------------------------------------------------------------------------------------------- IP address Ban reason AOR AOR Blocking Time of blocking error timeout count in minutes --------------- ------------- --------------------- ------ ---------- ------------------- 192.168.80.26 IP RPS LIMIT 22222@192.168.80.26 40 2880 2880 2025-08-05 13:04:19 |
...
Пример использования crypto profile:
Задача:
Использовать сертификат, загруженный пользователем на ESBC, для абонентских подключений по tls версии 1.3 и шифрования медиа DTLS-SRTP.
Решение:
1. Выполнить базовую настройку ESBC для обеспечения маршрутизации абонентских подключений в сторону ECSS-10:
...
Для использования аутентификации абонентов через RADIUS-сервер необходимо указать AAA-профиль в конфигурации абонентского интерфейса (user-Interface), см. раздел Настройка абонентских интерфейсов.
| Scroll Pagebreak |
|---|
Пример настройки:
Задача:
Использовать RADIUS-серверы 192.168.113.200 (основной) и 192.168.113.201 (резервный) для аутентификации регистраций абонентов поступающих на абонентский интерфейс USERS_VIA_RADIUS в режиме RFC5090-no-challenge.
Решение:
1. Настроить основной RADIUS-сервер 192.168.113.200:
...
- Если не задано минимальное время регистрации на сервере (аналогично отключенной локальной регистрации):
- В сторону сервера регистрации отправляем REGISTER с expires, пришедшим от абонента;
- В сторону абонента отправляем 200 ОК с expires из ответа от сервера регистраций.
| Scroll Pagebreak |
|---|
- Если задано минимальное время регистрации на сервере:
- В сторону сервера регистрации отправляем REGISTER с наибольшим expires, пришедшим от абонента, и минимальным временем регистрации на сервере;
- В сторону абонента отправляем 200 ОК с минимальным expires из ответа от сервера регистраций и пришедшего от абонента.
| Scroll Pagebreak |
|---|
...
1.1 Если не задано минимальное время регистрации на сервере:
| Scroll Pagebreak |
|---|
1.2 Если задано минимальное время регистрации на сервере:
| Scroll Pagebreak |
|---|
2. Если в REGISTER, полученном от абонента, expires в поле Contact + 34 секунды (Timer B и время внутренней логики ESBC) меньше, чем оставшийся на ESBC expires, то регистрация будет обработана локально путем отправки абоненту 200 ОК с expires, пришедшим от него же самого.
| Информация |
|---|
При разрегистрации абонента логика локальной регистрации не используется. |
...
После применения изменений, количество SIP-сообщений, проходящих через абонентский интерфейс USER_IFACE в секунду, в рамках одной сессии, не может быть больше 30. При достижении лимита сессия будет завершена.
| Scroll Pagebreak |
|---|
Пример работы ограничения количества подписок в секунду на абонентском интерфейсе:
...
После применения изменений количество запросов SUBSCRIBE, проходящих через абонентский интерфейс USER_IFACE не может быть больше 50. Все запросы SUBSCRIBE, поступающие после превышении превышения лимита, будут проигнорированы.
| Scroll Pagebreak |
|---|
Пример работы ограничения количества общего количества активных подписок на абонентском интерфейсе:
| Блок кода | ||
|---|---|---|
| ||
vesbc# vesbc# config vesbc(config)# esbc #Переход в настройки абонентского интерфейса: vesbc(config-esbc)# user-interface sip USER_IFACE vesbc(config-esbc-user-interface)# #Ограничение максимального количества активных подписок: vesbc(config-esbc-user-interface-sip)# max in subscriptions 1000 #Применение и подтверждение изменений: vesbc(config-esbc-user-interface)# do commit vesbc(config-esbc-user-interface)# do confirm |
...
Т. к. транки TRUNK_1 и TRUNK_2 входят в состав транк-группы TRUNKGROUP, то суммарное количество исходящих CPS c любого из этих транков не может превышать 50, так как приоритет ограничения у транк-группы выше.
| Scroll Pagebreak |
|---|
Пример ограничения на транке исходящих вызовов в секунду:
...











