...
| Объект | Количество |
|---|---|
| sip transport | 500 |
| trunk | 500 |
| user-interface | 500 |
| trunk-group | 250 |
| sip profile | 500 |
| route table | 500 |
| rule | 128 на таблицу route table |
| condition(route-table) | 8 на правило rule |
| media profile | 1000 |
| media resource | 1000 |
| mod-table | 500 |
| mod | 64 на таблицу mod-table |
| condition(mod-table) | 8 на модификатор mod |
| cause-list | 64 |
| crypto profile | 64 |
| flood filter | 250 |
| security-profile | 500 |
| aaa profile | 64 |
| radius profile | 64 |
| radius server | 8 на radius profile |
| credential profile | 64 |
| number | 24 на credential profile |
| stun server external | 64 |
| stun server local | 64 |
...
| Предупреждение |
|---|
Не рекомендуется использовать максимальное количество объектов конфигурации одновременно, это может повлиять на работоспособность системы. |
| Scroll Pagebreak |
|---|
Расчет максимального количества контактов зарегистрированных абонентов для vESBC:
Объем оперативной памяти (RAM) vESBC, GB | Количество контактов |
|---|---|
3 | 4500 |
≥4 | 20000*(объем RAM - 3) |
...
- Таблица модификаций (для входящих и исходящих сообщений);
- SIP-профиль;
- Медиапрофиль;
- Профиль безопасности;
- Режим работы абонентов за NAT;
- Public IP;
- QoS;
- Контроль входящего и исходящего трафика;
- Локальная обработка регистрации;
- AAA профиль;
- STUN-cервер;
- SIP-домен. При настройке домен будет использоваться в host-part URI в заголовках To и From для исходящих сообщений. Во входящих сообщениях будет осуществляться проверка домена в заголовке From;
- Опция "Разрешить вызовы без регистрации". Разрешает принимать входящие сообщения INVITE от незарегистрированных абонентов.
| Примечание |
|---|
По умолчанию вызовы с абонентского интерфейса без предварительной регистрации запрещены. |
| Примечание |
|---|
С целью повышения безопасности, входящие запросы OPTIONS, поступающие в абонентский интерфейс будут игнорироваться. Для изменения поведения см. раздел Игнорирование OPTIONS. |
Подробное описание параметров всех настроек можно найти в разделе разделе Настройки абонентского интерфейса справочника команд CLI.
...
- Если не задано минимальное время регистрации на сервере (аналогично отключенной локальной регистрации):
- В сторону сервера регистрации отправляем 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, пришедшим от него же самого.
| Информация |
|---|
При разрегистрации абонента логика локальной регистрации не используется. |
...
На абонентский интерфейс ESBC приходит запрос REGISTER от абонента 23001 с expires 3600, который пересылается на сервер регистрации SSW со значением expires 10800. После получения 200 ОК от сервера регистрации со значением expires 10800, ESBC отправляет 200 ОК абоненту с expires 3600:
На ESBC создается запись зарегистрированного абонента с expires 10800:
...
Спустя время приходит запрос REGISTER с expires 3600 для перерегистрации. Так как "Registration expires in" больше, чем пришедший expires, то запрос будет обработан локально с отправкой 200 ОК абоненту c expires 3600:
Scroll Pagebreak
...
- Таблица маршрутизации;
- Таблица модификаций (для входящих и исходящих сообщений);
- SIP-профиль;
- Медиапрофиль;
- Профиль безопасности;
- Режим работы за NAT;
- Режим локальной аутентификации запросов;
- Режим клиентской регистрации транка;
- Public IP;
- STUN-cервер;
- QoS;
- Контроль входящего и исходящего трафика;
- Динамический режим. Используется для подключения к группе вышестоящих SIP-устройств (IP АТС/ SIP-proxy/Удаленный SSW и др.);
- Опция "Доверенная сеть" для переадресаций;
- AAA профиль;
- SIP-домен. При настройке домен будет использоваться в host-part URI в заголовках To и From для исходящих сообщений. Во входящих сообщениях будет осуществляться проверка домена в заголовке From.
...
| Примечание |
|---|
Cоздание транков с одинаковым SIP-транспортом и IP:Port разрешено только в случае, если отличается SIP-домен. |
| Примечание |
|---|
С целью повышения безопасности, входящие запросы OPTIONS, поступающие в транк будут игнорироваться. Для изменения поведения см. раздел Игнорирование OPTIONS. |
Scroll Pagebreak
Динамический режим транкаЯкорь sip_trunks_dynamic sip_trunks_dynamic
| sip_trunks_dynamic | |
| sip_trunks_dynamic |
...
RADIUS
1. Настроить RADIUS-сервер.
Пример конфигурации freeradius:
...
2. Задать параметры RADIUS-сервера на ESBC:
| Блок кода | ||
|---|---|---|
| ||
vesbc(config)# radius-server host 192.168.16.250 #Пароль, который должен совпадать с secret на сервере: vesbc(config-radius-server)# key ascii-text password vesbc(config-radius-server)# usage voip #Адрес интерфейса, с которого будут отправляться запросы: vesbc(config-radius-server)# source-address 192.168.16.113 |
...
3. Создать RADIUS-профиль, добавить в его конфигурацию RADIUS-серверасервер:
| Блок кода |
|---|
vesbc(config)# esbc vesbc(config-esbc)# radius profile RADIUS_PROFILE vesbc(config-radius-profile)# radius-server host 192.168.16.250 |
...
SIP-абонент отправляет сообщение REGISTER, в hostname RURI указывает ssw125_2.domain. ESBC для определения адреса назначения отправляет запрос (Access-Request) на RADIUS-сервер (192.168.16.250) c аттрибутом атрибутом User-Name, в котором содержится домен ssw125_2.domain.
RADIUS-сервер присылает Access-Accept с адресом SIP-сервера (192.168.16.125) в аттрибуте атрибуте Framed-IP-Address.
ESBC отправляет регистрацию на указанный адрес, подставляя в заголовки To и From ssw125_2.domain, последующие запросы с этого абонента при указании того же домена будут отправляться в транк 192.168.16.125 без предварительного обращения к внешнему сервису.
...
- Таблица маршрутизации;
- Медиапрофиль;
- Медиаресурсы;
- SIP-профиль;
- Профиль безопасности;
- Таблица модификаций (для входящих и исходящих сообщений);
- QoS;
- Public IP;
- STUN-cервер;
- Контроль входящего и исходящего трафика;
- Опция "Доверенная сеть" для переадресаций.
...
SIP-транспорт представляет точку входа/выхода сигнализации, т. е. это IP-адрес и порт, с которого ESBC будет отправлять и на который будет принимать сигнальные сообщения.
| Информация |
|---|
Возможно использование IP-адреса, полученного по DHCP. |
...
| Блок кода |
|---|
vesbc# vesbc# configure vesbc(config)# esbc |
| Scroll Pagebreak |
|---|
Создать и настроить соответствующим образом SIP-транспорт:
| Блок кода | ||
|---|---|---|
| ||
#Создание/переход в настройки SIP-транспорта NEW_TRANSPORT: vesbc(config-esbc)# sip transport NEW_TRANSPORT #Назначить IP-адрес 192.168.16.113 для использования SIP-транспортом: vesbc(config-esbc-sip-transport)# ip address 192.168.16.113 #Назначить порт 5065 для использования SIP-транспортом: vesbc(config-esbc-sip-transport)# port 5065 #Выбрать протокол транспортного уровня, используемый для приема/передачи сообщений SIP: vesbc(config-esbc-sip-transport)# mode udp-prefer |
...
Создать и настроить соответствующим образом медиаресурс:
| Блок кода | ||
|---|---|---|
| ||
#Создание/переход в настройки медиаресурса MEDIA_1: vesbc(config-esbc)# media resource MEDIA_1 #Назначить IP-адрес 192.168.16.113 для использования в медиаресурсах: vesbc(config-esbc-media-resource)# ip address 192.168.16.113 #Настроить диапазон UDP-портов с 20000 до 30000 для использовании в медиаресурсах: vesbc(config-esbc-media-resource)# port-range 20000-30000 |
...
Настройка таблиц маршрутизацииЯкорь route-table route-table
| route-table | |
| route-table |
Схематично таблица маршрутизации выглядит следующим образомСхема осуществления маршрутизации SIP-сообщения:
Таблица маршрутизации представляет собой набор правил и действий, по которым обрабатывается входящий вызов и указывается исходящий транк (или транк-группа) или переход на другую таблицу маршрутизации для формирования исходящего вызова.
...
при внутренних сбоях, до согласования сессии;
при отбое с встречной стороны, кроме 3хх кодов SIP.
Пример перебора правил:
В таблице маршрутизации два правила, первое направляет вызов в TRUNK_GROUP, второе направляет вызов в TRUNK_3, условия нигде не настроены. Приходит вызов и начинает маршрутизироваться по данной таблице маршрутизации. В результате вызов уходит на TRUNK_GROUP и оттуда в TRUNK_1, в случае если вызов через TRUNK_1 не установился (например, транк недоступен), то маршрутизация продолжает выполняться, вызов отправляется в TRUNK_2. Если попытка вызова в TRUNK_2 также завершилась неудачно, ESBC переходит к RULE_2 и отправляет вызов в TRUNK_3. Если и здесь попытка установить вызов также оказалась неуспешной, то первое плечо отбивается, и вызов завершается, т. к. больше правил в таблице маршрутизации нет. Если попытка установить вызов успешна, то вызов устанавливается.
...
Scroll Pagebreak
Пример работы условий:
В таблице маршрутизации два правила, у обоих есть условия по CGPN, CDPN и SIP-MESSAGE. Например, приходит вызов, у которого номер А=23000, номер Б=24000, и кастомный заголовок "Trunk: For trunk_1". ESBC заходит в RULE_1 и анализирует условие CONDITION_1, условие истинно, далее происходит анализ условия из CONDITION_2, условие истинно, далее происходит анализ условия из CONDITION_3, условие также истинно. Значит правило RULE_1 подходит для маршрутизации, и вызов отправляется в TRUNK_1.
...
Синтаксис для написания условий
Для написания условий можно использовать используются регулярные выражения PCRE.Возможность перехода между таблицами маршрутизации (каскадирование
| Scroll Pagebreak |
|---|
Смена таблиц маршрутизации
...
В конфигурации таблицы маршрутизации реализована команда switch-route-table <route-table-name> для продолжения маршрутизации SIP-запроса через другую таблицу маршрутизации.
...
| Примечание | ||
|---|---|---|
Запрещено указывать в правиле action switch-route-table название той таблицы, в которой указывается данное правило. Пример:
|
| Scroll Pagebreak |
|---|
Маршрутизация на разные направления через общую таблицу маршрутизации
Для всех транков (например, TRUNK_1, TRUNK_2, TRUNK_3) указать одну таблицу маршрутизации (например, MAIN). Все правила и условия для маршрутизации в конкретный транк указаны в отдельной таблице маршрутизации для этого транка (таблицы маршрутизации RT_1, RT_2, RT_3). При добавлении транков в конфигурации необходимо создать соответствующую таблицу маршрутизации и добавить новое правило в таблицу MAIN.
| Scroll Pagebreak |
|---|
Пример конфигурации:
| Блок кода |
|---|
route-table MAIN
rule 0
action switch-route-table RT_1
exit
rule 1
action switch-route-table RT_2
exit
rule 2
action switch-route-table RT_3
exit
exit
route-table RT_1
rule 0
action direct-to-trunk TRUNK_1
condition 0 cdpn '100'
exit
exit
route-table RT_2
rule 0
action direct-to-trunk TRUNK_2
condition 0 cdpn '200'
exit
exit
route-table RT_3
rule 0
action direct-to-trunk TRUNK_3
condition 0 cdpn '300'
exit
exit
trunk sip TRUNK_1
route-table MAIN
...
exit
trunk sip TRUNK_2
route-table MAIN
...
exit
trunk sip TRUNK_3
route-table MAIN
...
exit |
В таком случае маршрутизация любого вызова из любого направления будет осуществляться по всем правилам всех таблиц маршрутизации до первого совпадения CdPN. Если совпадение не будет найдено, то вызов завершится кодом SIP 404 "Not Found".
Scroll Pagebreak
Маршрутизация на разные направления через последовательный каскад таблиц маршрутизации
Правила для маршрутизации добавляются в одну таблицу маршрутизации, при достижении ограничения количества правил (128) в качестве последнего правила добавляется переход на следующую таблицу маршрутизации.
| Scroll Pagebreak |
|---|
Пример конфигурации:
| Блок кода |
|---|
route-table RT_1
rule 0
action direct-to-trunk TRUNK_1
condition 0 cdpn '100'
exit
rule 1
action direct-to-trunk TRUNK_2
condition 0 cdpn '200'
exit
rule 2
action direct-to-trunk TRUNK_3
condition 0 cdpn '300'
exit
...
rule 127
action switch-route-table RT_2
exit
exit
route-table RT_2
rule 0
action direct-to-trunk TRUNK_4
condition 0 cdpn '400'
exit
rule 1
action direct-to-trunk TRUNK_5
condition 0 cdpn '500'
exit
...
rule 127
action switch-route-table RT_3
exit
exit
route-table RT_3
...
exit
...
trunk sip TRUNK_1
route-table RT_1
...
exit
trunk sip TRUNK_2
route-table RT_1
...
exit
trunk sip TRUNK_3
route-table RT_1
...
exit
trunk sip TRUNK_4
route-table RT_1
...
exit
trunk sip TRUNK_5
route-table RT_1
...
exit |
...
Осуществляется последовательный проход по всем направлениям, каждого правила каждой таблицы маршрутизации до тех пор, пока сессия не будет согласована, или не будет рассмотрено последнее правило в каждой таблице маршрутизации.
При проверке правил , ESBC сохраняет информацию о всех пройденных объектах (транки, транк-группы, таблицы маршрутизации) , с целью исключения петли маршрутизации.
...
Настроена маршрутизация через три таблицы. Осуществляется вызов на номер 200. При осуществлении маршрутизации, в соответствии с правилом rule 0 таблицы RT_1 происходит переход к таблице RT_2. В таблице RT_2 таккже также первым правилом указан переход на таблицу RT_3. В таблице RT_3 нет правил маршрутизации, поэтому осуществляется переход к предыдущей таблице (RT_2) к следующему по порядку правилу (rule1). Т. к. это правило не подходит для направления вызова в транк TRUNK (CdPN 200 !== CdPN 100), то осуществляется переход к предыдущей таблице (RT_1) к следующему по порядку правилу (rule1). Последнее правло правило в этой таблице - — reject, вызов будет завершен кодом SIP 403 "Forbidden".
Пример 2:
Сценарий аналогичный примеру 1, за исключением того, что в таблице RT_3 настроено правило перехода к таблице RT_1. В данном случае логика обработки запроса будет аналогична примеру выше, т. к. при маршрутизации RT_1 уже была пройдена и повторный возврат к правилу rule 0 этой таблицы привел бы к зацикливанию вызова.
| Scroll Pagebreak |
|---|
Настройка модификаторовЯкорь mod-table mod-table
| mod-table | |
| mod-table |
...
| Примечание |
|---|
При применении на транке/абонентском интерфейсе модификаторов обоих типов одновременно, используется следующий порядок их обработки в зависимости от направления модификации:
|
| Scroll Pagebreak |
|---|
Общие модификаторы
Пример использования модификатора common.
...
Модификаторы SIP позволяют гибко осуществлять выбор требуемого метода (Request) или ответного сообщения (Response) по конкретному коду. Для этого используются команды:
- sip method pattern <PATTERN> <PATTERN> — необходимый метод или несколько методов задается при помощи регулярного выражения PCRE.
- sip method type <TYPE> — необходимый метод выбирается из списка шести базовых методов стандарта RFC3261 (REGISTER, INVITE, ACK, CANCEL, BYE и OPTIONS).
- sip response-pattern <PATTERN> <PATTERN> — необходимый код ответного сообщения задается при помощи регулярного выражения PCRE.
...
| Блок кода | ||
|---|---|---|
| ||
mod-table sip SIP_MOD mod 1 add #Т.к. по условию требуется добавлять заголовок только в сообщения INVITE, можно воспользоваться командой "sip method type": sip method type Invite header name Test_header header value test_value exit |
...
| Блок кода | ||
|---|---|---|
| ||
mod-table sip SIP_MOD
mod 1 add
#Т.к. по условию требуется добавлять заголовок в INVITE и BYE, надо воспользоваться командой "sip method pattern":
sip method pattern INVITE|BYE
#Для добавления заголовка в ответы 200 OK следует добавить команду "sip response-pattern"
sip response-pattern 200
header name Test_header
header value test_value
exit
|
...
| Блок кода | ||
|---|---|---|
| ||
mod-table sip SIP_MOD mod 1 add #Т.к. по условию требуется добавлять заголовок во все методы, используется отбор любых значений: sip method pattern .+ #Т.к. по условию требуется добавлять заголовок во все ответы, используется отбор любых значений: sip response-pattern .+ header name Test_header header value test_value exit |
...
| Блок кода | ||
|---|---|---|
| ||
INVITE sip:23002@192.168.80.27:5063 SIP/2.0 Via: SIP/2.0/UDP 192.168.80.135:5060;rport;branch=z9hG4bKPj69d21930-f472-4e64-8555-6b68a532deae Max-Forwards: 70 From: "24001" <sip:24001@192.168.80.135>;tag=f3db1c01-0c06-45cf-8b4d-a233070ae693 To: "23002" <sip:23002@192.168.80.27> Contact: <sip:24001@192.168.80.135:5060;transport=udp> Call-ID: 977eea09afecfc44932d4d9c1b2eeb15 CSeq: 6757 INVITE Allow: INVITE, ACK, BYE, CANCEL Supported: 100rel, replaces, ice, timer Call-Info: call to TRUNK_OUT; ESBC version: 1.6.0.0085 Content-Type: application/sdp Content-Length: 141 [SDP]... |
| Scroll Pagebreak |
|---|
Использование условий в модификаторахмодификаторах
В ESBC поддержано использование условий во всех типах SIP-модификаторов.
...
Список причин отбоя для перехода на следующее направлениенаправление
Список причин отбоя для указания статус-кодов ответов SIP, по которым будет осуществляться перемаршрутизация вызовов и регистраций на альтернативное направление (следующий транк в транковой группе/следующее правило в таблице маршрутизации).
...
Описание всех команд для настройки причин отбоя для перехода на следующее направление приведено в разделе Настройки SIP-профиля Справочника команд CLI.
| Scroll Pagebreak |
|---|
Пример использования:
В таблице маршрутизации два правила, первое — направляет вызов в TRUNK_GROUP, второе — направляет вызов в TRUNK_3.
...
Вызов с зарегистрированного абонента будет направлен в тот транк, через который осуществлялась его регистрация. В случае неуспешного вызова , перемаршрутизация осуществляться не будет.
При вызове с незарегистрированного абонента сначала идёт проверка, разрешены ли с этого абонентского интерфейса вызовы без регистрации (allow_unreg_call), если проверка успешна, то вызов смаршрутизируется по привязанной таблице маршрутизации и в случае недоступности транка/совпадении ответа с маской из списка произойдёт маршрутизация на следующее направление.
...
1) IP_C соответствует IP_ESBC_2 и на ESBC зарегистрирован абонент с номером numernumber_c.
Если IP-адрес из заголовка Contact пришедшего 302 ответа соответствует IP-адресу транспорта ESBC, с которого был отправлен запрос, и на ESBC существует зарегистрированный абонент с номером, указанным в заголовке Contact, то ESBC отправит INVITE на тот транк, где этот абонент зарегистрирован и 181 в сторону инициатора вызова.
Пример работы:
1. Регистрация SIP-абонента с номером 300 на UAS C:
2. С UAC поступает вызов на UAS B, он отвечает 302, в Contact указывает 300@192.168.50.50:
3. Так как существует зарегистрированный абонент с номером 300, то ESBC отправляет INVITE на тот транк, где этот абонент зарегистрирован, то есть на UAS C, а на UAC отправляет 181 ответ:
2) IP_C соответствует IP_ESBC_2 и на ESBC не зарегистрирован абонент с номером numernumber_c.
Если IP-адрес из заголовка Contact пришедшего 302 ответа соответствует IP-адресу транспорта ESBC, с которого был отправлен запрос, но на ESBC не существует зарегистрированного абонента с номером, указанным в заголовке Contact, то ESBC перешлёт ответ на другое плечо и заменит адрес в заголовке Contact на IP-адрес UAC.
...
3) IP_C не соответствует IP_ESBC_2 и UAS – — доверенный транк.
Если IP-адрес из заголовка Contact пришедшего 302 ответа не соответствует IP-адресу транспорта ESBC, с которого был отправлен запрос, и транк UAS – — доверенный транк, то ESBC отправит INVITE на указанный адрес и 181 в сторону UAC.
...
| Информация |
|---|
Для того чтобы транк считался доверенным, необходимо включить опцию trusted-network в конфигурации транка. |
В прочих случаях — вызов завершается.
Игнорирование OPTIONS
| Якорь | ||||
|---|---|---|---|---|
|
Данный режим используется для обработки входящих сообщений OPTIONS.
...
Описание всех команд для настройки игнорирования OPTIONS приведено в разделе Настройки SIP-профиля Справочника команд CLI.
| Предупреждение |
|---|
Игнорирование входящих запросов OPTIONS по умолчанию включено. |
| Информация |
|---|
Если к user-interface привязан sip profile с включенным игнорированием OPTIONS, то при получении OPTIONS от зарегистрированных абонентов ESBC будет обрабатывать эти запросы и отвечать 200 OK (только если в запросе указан заголовок Contact).Если OPTIONS приходят не с зарегистрированных абонентов, то такие запросы игнорируются Прочие входящие запросы OPTIONS будут игнорироваться. |
Таймеры SIP-сессий (RFC 4028)Якорь rfc_4028 rfc_4028
| rfc_4028 | |
| rfc_4028 |
Использование таймеров SIP-сессий (RFC 4028) предназначено для контроля состояния сеансов связи и предотвращения зависания разговорных сессий, в случае возникновения каких-либо проблем, например с сетью.
...
Поведение по умолчанию — поддержка таймеров SIP-сессий отключена. Для включения используется команда — session команда session timer enable.
Описание всех команд для настройки таймеров SIP-сессий приведено в разделе Настройки SIP-профиля Справочника команд CLI.
| Scroll Pagebreak |
|---|
Пример настройки
Задача:
Включить поддержку таймеров SIP-сессий на транке TRUNK_2 с параметрами Session Expires – 120, Min SE – 120, Refresher – UAS. На транке TRUNK_1 таймеры не используются.
...
| Блок кода | ||
|---|---|---|
| ||
vesbc# vesbc# configure vesbc(config)# esbc #Создать SIP-профиль NEW_SIP_PROFILE: vesbc(config-esbc)# sip profile NEW_SIP_PROFILE #Включить поддержку таймеров SIP-сессий (RFC4028): vesbc(config-esbc-sip-profile)# session timer enable vesbc(config-esbc-sip-profile)# #Настроить минимальный период контроля сессии 120 секунд: vesbc(config-esbc-sip-profile)# session timer min-se 120 vesbc(config-esbc-sip-profile)# #Настроить запрашиваемый период контроля сессии 150 секунд: vesbc(config-esbc-sip-profile)# session timer session-expires 150 vesbc(config-esbc-sip-profile)# #Настроить сторону обновления сессии: vesbc(config-esbc-sip-profile)# session timer refresher uas vesbc(config-esbc-sip-profile)# vesbc(config-esbc-sip-profile)# exit vesbc(config-esbc)# #Привязать SIP-профиль к транку TRUNK_2: vesbc(config-esbc)# trunk sip TRUNK_2 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. |
| Scroll Pagebreak |
|---|
При исходящем вызове в транк TRUNK_2, в сообщение INVITE будут добавлены заголовки в соответствии с настройкой. Если сторона Б также поддерживает RFC 4028, то будет включен контроль сессии:
...
Т. к. refresher=uas, то в данном примере , сторона Б будет отправлять сообщения UPDATE каждые 60 сек. Если по истечении 90 сек. от стороны Б не будет получено сообщение UPDATE, вызов будет разрушен (ESBC отправит BYE в обе стороны).
| Примечание |
|---|
При использовании таймеров SIP-сессий на одном из плеч вызова, запросы re-INVITE или UPDATE, полученные от удаленной стороны, в рамках контроля сессии будут передаваться на второе плечо, независимо от настроек таймеров на этом плече. |
| Scroll Pagebreak |
|---|
Транзит сообщений ISUP для работы в режиме SIP-T/SIP-I
...
В данном примере для транка TRUNK_1 не требуется использование отдельного медиапрофиля, т. к. при вызовах, поступающих в TRUNK_1, и, маршрутизируемых в TRUNK_2, все видеокодеки из SDP будут удалены в соответствии с медиапрофилем, используемым для транка TRUNK_2.
Для вызовов, поступающих в TRUNK_2, все видеокодеки из SDP будут удалены вне зависимости от направления маршрутизации.
2. Запретить использование кодеков G729 и G726 для транка TRUNK_1.
...
| Блок кода |
|---|
media profile FOR_TRUNK_1
codec allow AMR
codec allow CLEARMODE
codec allow CN
codec allow G722/ 9
codec allow G728 15
codec allow GSM 3
codec allow H26
codec allow H261 31
codec allow H263 34
codec allow ILBC
codec allow L16/44100 11
codec allow L16/44100/2 10
codec allow OPUS
codec allow PCMA 8
codec allow PCMU 0
codec allow SPEEX
codec allow T38 t38
codec allow VP
codec allow telephone-event
exit |
В данном примере в транк TRUNK_1 приходит INVITE c SDP Offer1, в котором наиболее приоритетным кодеком является G729, а также указан кодек G726, но т. к. настройками медиапрофиля FOR_TRUNK_1 данные кодеки запрещены, то в транк TRUNK_2 будет отправлен SDP Offer2 без данных кодеков. UA TRUNK_2 выбирает в качестве приоритетного кодек PCMA (SDP Answer2), и в результате ESBC отправляет в SDP Answer1 наиболее приоритетный кодек из SDP Offer1 (кроме G729) — PCMA.
...
| Блок кода |
|---|
media profile FOR_TRUNKS codec allow AMR codec allow CLEARMODE codec allow CN codec allow G72 codec allow G722/ 9 codec allow G728 15 codec allow G729/ 18 codec allow GSM 3 codec allow H26 codec allow H261 31 codec allow H263 34 codec allow ILBC codec allow L16/44100 11 codec allow L16/44100/2 10 codec allow OPUS codec allow PCMA 8 codec allow PCMU 0 codec allow QCELP codec allow SPEEX codec allow T38 t38 codec allow VP codec allow telephone-event exit |
В данном примере в транк TRUNK_1 приходит INVITE c SDP Offer1, в котором содержится кодек QCELP, и т. к. настройками медиапрофиля FOR_TRUNKS этот кодек разрешен, то он будет передаваться SDP Offer2, отправляемый в транк TRUNK_2. UA TRUNK_2 выбирает кодек QCELP, и в результате он будет согласован в SDP Answer1.
...
| Блок кода |
|---|
media profile FOR_TRUNK_1
codec allow PCMA 8
exit |
В данном примере в транк TRUNK_1 приходит INVITE c SDP Offer1 с набором кодеков. Т. к. настройками медиапрофиля FOR_TRUNK_1 запрещены все кодеки кроме PCMA, то в транк TRUNK_2 будет отправлен SDP Offer2, содержащий только кодек PCMA.
...
В SDP Offer1, полученном с транка TRUNK_1, указаны кодеки PCMA и PCMU, и т. к. в медиапрофиле FOR_TRUNK_1 отсутствуют кодеки, разрешенные для транскодирования, в SDP Offer2, который будет отправлен в TRUNK_2, кодек G729 не будет добавлен. Соответственно при вызовах из TRUNK_1 в TRUNK_2 (и в обратном направлении) возможно только проксирование медиаданных.
Если в медиапрофиле не содержится ни одного паттерна для проксирования кодеков, а указаны только кодеки, доступные для транскодирования, то при наличии одинаковых кодеков в медиапрофилях, используемых на входящем и исходящем направлениях, медиаданные будут передаваться в режиме проксирования.
...
В SDP Offer1, полученном с транка TRUNK_1, указаны кодеки PCMA и PCMU, и т. к. в медиапрофиле FOR_TRUNKS не указан кодек PCMU (ни для проксирования, ни для транскодирования), то в SDP Offer2, который будет отправлен в TRUNK_2, кодек PCMU не будет добавлен. При получении SDP Answer2 происходит согласование кодека PCMA, и в TRUNK_1 будет отправлен SDP Answer1 с кодеком PCMA. При этом медиаданные будут передаваться в режиме проксирования, т. к. наиболее приоритетные кодеки в SDP Offer и SDP Answer совпадают.
| Scroll Pagebreak |
|---|
...
В SDP Offer1, полученном с транка TRUNK_1, указан кодек PCMA, и т. к. в медиапрофиле FOR_TRUNK_2 указан только кодек PCMU для транскодирования, в SDP Offer2, который будет отправлен в TRUNK_2, кодек PCMA будет заменен на PCMU. Соответственно при вызовах из TRUNK_1 в TRUNK_2 (и в обратном направлении) возможно только транскодирование медиаданных.
Если в SDP Offer1, полученном с транка TRUNK_1, будут указаны любые кодеки кроме PCMA, то вызов не будут установлен, ESBC отправит на INVITE ответ 488.
...
2.1 В SDP Offer1, полученном с транка TRUNK_1, указаны кодеки PCMA, PCMU, G726 и G722. Т. к. в медиапрофиле FOR_TRUNK_1 есть кодек G722, разрешенный для транскодирования, то в SDP Offer2, который будет отправлен в TRUNK_2, будет добавлен кодек G729. Остальные кодеки будут передаваться из SDP Offer1 в SDP Offer2, т. к. на обоих медиапрофилях настроены паттерны, разрешающие проксирование этих кодеков. В SDP Answer2, полученном из TRUNK_2, указан кодек PCMU. Этот кодек будет согласован ESBC в SDP Answer1. Т. к. этот кодек был в SDP Offer1, то будет выбран режим проксирования медиаданных.
| Scroll Pagebreak |
|---|
2.2 В SDP Offer1, полученном с транка TRUNK_1, указаны кодеки PCMA, PCMU, G726 и G722. Т. к. в медиапрофиле FOR_TRUNK_1 есть кодек G722, разрешенный для транскодирования, то в SDP Offer2, который будет отправлен в TRUNK_2, будет добавлен кодек G729. Остальные кодеки будут передаваться из SDP Offer1 в SDP Offer2, т. к. на обоих медиапрофилях настроены паттерны, разрешающие проксирование этих кодеков. В SDP Answer2, полученном из TRUNK_2, указан кодек G729. Т. к. этого кодека не было в SDP Offer1, то будет согласован единственный возможный кодек для TRUNK_1 — G722. Т. к. кодеки на плечах TRUNK_1 и TRUNK_2 отличаются, будет включено транскодирование медиаданных G722 <---> G729.
| Scroll Pagebreak |
|---|
2.3 В SDP Offer1, полученном с транка TRUNK_1, указаны кодеки PCMA, PCMU, GSM, G726 и G722. Т. к. в медиапрофиле FOR_TRUNK_1 есть кодеки G722 и GSM, разрешенные для транскодирования, то в SDP Offer2, который будет отправлен в TRUNK_2, будет добавлен кодек G729. Остальные кодеки будут передаваться из SDP Offer1 в SDP Offer2, т. к. на обоих медиапрофилях настроены паттерны, разрешающие проксирование этих кодеков. В SDP Answer2, полученном из TRUNK_2, указан кодек G729. Т. к. этого кодека не было в SDP Offer1, то будет согласован наиболее приоритетный кодек для TRUNK_1 — GSM. Т. к. кодеки на плечах TRUNK_1 и TRUNK_2 отличаются, будет включено транскодирование медиаданных GSM <---> G729.
| Scroll Pagebreak |
|---|
...
Picture Fast Update (PFU) — это механизм быстрого восстановления видеоизображения , за счет обновления поврежденных кадров, обеспечивая минимальные задержки и стабильное качество видео даже при потере пакетов.
| Примечание |
|---|
| Опция работает только для вызовов с транскодированием видео, при проксировании полученные сообщения INFO пересылаются на другое плечо. |
Включение/выключение режима осуществляется командами rfc5168 enable и enable и no rfc5168 enable соответственно.
...
Т. к. используется транскодирование, то ESBC самостоятельно обрабатывает INFO, отправляет 200 ОК.
Управление безопасностью системыЯкорь security security
| security | |
| security |
...
AAA (Authentication, Authorization, Accounting) – — это базовая архитектура управления доступом, используемая в сетевых устройствах для идентификации клиентов, определения их прав и регистрации выполняемых действий.
В контексте ESBC механизмы AAA применяются для контроля доступа к устройству, управления сессиями и взаимодействия с внешними серверами аутентификации. Реализация AAA включает три ключевых компонента:
Authentication (аутентификация) – — процесс проверки подлинности клиента на основе предоставленных учетных данных.
Authorization (авторизация, проверка полномочий, проверка уровня доступа) – — определение разрешенных действий для прошедшего аутентификацию клиента.
Accounting (учёт) – — регистрация событий доступа, изменений и сессий для последующего аудита и анализа.
...
Использовать RADIUS-серверы 192.168.113.200 (основной) и 192.168.113.201 (резервный) для аутентификации регистраций абонентов, поступающих на абонентский интерфейс USERS_VIA_RADIUS в режиме RFC5090-no-challenge.
...
| Блок кода |
|---|
vesbc(config)# radius-server host 192.168.113.201
vesbc(config-radius-server)# key ascii-text password
vesbc(config-radius-server)# source-address 192.168.113.207
vesbc(config-radius-server)# usage voip
#Указываем более низкий приоритет, чем у основного сервера. По умолчанию приоритет 1. Чем меньше значение, тем приоритетнее сервер.
vesbc(config-radius-server)# priority 100
vesbc(config-radius-server)# exit |
...
При получении сообщений REGISTER на абонентский интерфейс USERS_VIA_RADIUS, ESBC будет отправлять абоненту параметры для digest-аутентификации в сообщении 401 Unauthorized, далее эти параметры и digest response, полученный от абонента, будет передаваться на RADIUS-сервер 192.168.113.200 в сообщении Access-Request. При
При получении от сервера Access-Accept, сообщение сообщение REGISTER от абонента будет направлено на вышестоящий SIP-сервер. При получении :
При получении Access-Reject, будет отправлено сообщение 403 Forbidden:
. При недоступности RADIUS-сервера 192.168.113.200, после таймаута , будет отправлено сообщение Access-Request будет отправлено на резервный RADIUS-сервер 192.168.113.201.:
Настройка локальной аутентификации запросов
| Якорь | ||||
|---|---|---|---|---|
|
Локальная аутентификация на ESBC используется для аутентификации клиентов, используя учётные данные, привязанные к транку ESBC.
...
Если на отправленный запрос придёт ответ с требованием аутентификации, то ESBC обработает его и самостоятельно переотправит изначальный запрос на сервер вместе с аутентификационными данными.
| Информацияnote |
|---|
Если в профиле учётных данных не будет подходящего номера, то ESBC перешлёт 401/407 ответ на первое плечо. |
Схема работы:
Пример настройки локальной аутентификации абонента:
...
1. Настроить IP-адрес на интерфейсе в сторону SSW:
| Блок кода |
|---|
vesbc# 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 vesbc(config-if-gi)# ip firewall disable |
...
Для повышения безопасности подключения к внешней среде используется клиентская регистрация транка ESBC на взаимодействующем сервере регистрации провайдера. Для этого используются аутентификационные данные, которые выдаёт провайдер.
При этом через транк разрешаются:
- Исходящие вызовы с зарегестрированных зарегистрированных номеров на любые.
- Входящие вызовы с любых номеров на зарегестрированныезарегистрированные.
При отсутствии регистраций направление будет считаться недоступным.
| Scroll Pagebreak |
|---|
Схема работы:
Алгоритм настройки транка для транка для работы функции:
- Добавить аутентификационные данные в профиль учётных данных.
- Привязать профиль учётных данных к AAA-профилю.
- Привязать AAA-профиль к транку.
- Включить клиентский режим работы регистрации транка.
...
Для решения задачи на ESBC нужно настроить транк для Softswitch и транк с клиентской регистрацией для IP-ATC провайдера.
| Scroll Pagebreak |
|---|
Решение:
Порядок конфигурирования ESBC:
...
Подробное описание команд настройки профиля учётных данных на ESBC представлено в настройках профиля учетных данных в CLI.
| Информация |
|---|
В однинодин профиль можно добавить до 24 номеров. |
8. Создать ААА профиль с созданным профилем учётных данных:
| Блок кода |
|---|
vesbc# vesbc# config vesbc(config)# esbc vesbc(config-esbc)# aaa profile AAA_PROFILE vesbc(config-aaa-profile)# credential local profile CREDENTIAL_PROFILE |
9. Создать SIP-транк в сторону IP-ATC и привязать к нему настроенный ААА профиль, а так же также выданный провайдером домен:
| Блок кода |
|---|
vesbc# vesbc# configure vesbc(config)# esbc vesbc(config-esbc)# trunk sip TRUNK_IP vesbc(config-esbc-trunk-sip)# sip transport TRANSPORT_IP vesbc(config-esbc-trunk-sip)# aaa profile AAA_PROFILE vesbc(config-esbc-trunk-sip)# remote address 192.168.16.65 vesbc(config-esbc-trunk-sip)# remote port 5060 vesbc(config-esbc-trunk-sip)# media resource 0 MEDIA_IP vesbc(config-esbc-trunk-sip)# domain DOMAIN.loc |
...
11. Создать таблицу маршрутизации и добавить в него нее правила, по которым вызовы, приходящие с SSW, будут маршрутизироваться на IP-ATC:
...
13. Создать таблицу маршрутизации и добавить в него нее правила, по которым вызовы, приходящие с IP-ATC, будут маршрутизироваться на SSW:
...
14. Привязать созданную таблицу маршрутизации к транку, смотрящему в сторону IP-ATC:
| Блок кода |
|---|
vesbc# vesbc# configure vesbc(config)# esbc vesbc(config-esbc)# trunk sip TRUNK_IP vesbc(config-esbc-trunk-sip)# route-table TO_SSW |
15. На транке, смотрящем на IP-ATC, задать параметры регистрации и включить клиентскую регистрацию:
| Блок кода |
|---|
vesbc# vesbc# configure vesbc(config)# esbc vesbc(config-esbc)# trunk sip TRUNK_IP #Выбираем время, на которое будет регистрироваться транк (по умолчанию 3600 секунд): vesbc(config-esbc-trunk-sip)# registration expires 900 #Выбираем время, через которое начнётся повторная отправка регистрации после неудачной попытки (по умолчанию 60 секунд): vesbc(config-esbc-trunk-sip)# registration retry-after 40 #Включаем режим клиентской регистрации на транке: vesbc(config-esbc-trunk-sip)# registration mode client |
...
| Блок кода |
|---|
vesbc# show esbc trunks sip TRUNK_IP registration Registration type: Client Total registrations: 1 Active registrations: 1 AOR Contact Status Expires Expires in -------------------- ------------------------------ -------------- ---------- ---------- 100@DOMAIN.loc sip:100@192.168.16.113:5061 Registered 900 867 |
После применения конфигрурации с транка отправится запрос регистрации (REGISTER) на IP-ATC провайдера. Если придёт ответ, требующий аутентификацию (401,407), то ESBC использует использует локальную аутентификацию запросов и ответит на него, используя данные из профиля учётных данных. После успешной регистрации через транк смогут проходить транка, исходящие вызовы только с зарегестрированного с него возможны на любые номера только с зарегистрированного номера. А входящие Входящие вызовы будут обработаны с любого номера только на зарегестрированный. зарегистрированный номер.
| Scroll Pagebreak |
|---|
Пример работы:
| Scroll Pagebreak |
|---|
Настройка NAT
| Якорь | ||||
|---|---|---|---|---|
|
NAT NAT (Network Address Translation — «преобразование сетевых адресов») — это это технология, которая позволяет преобразовывать локальные IP-адреса внутренней сети в один или несколько глобальных IP-адресов и обратно. NAT обеспечивает механизм подключения областей с приватными адресами к внешним областям, в которых используются уникальные в глобальном масштабе зарегистрированные адреса. Кроме того, NAT осуществляет преобразование портов — то есть меняет номера портов в пакетах данных, что помогает однозначно сопоставлять исходящие и входящие соединения.
В данном разделе будут описаны различные функции для работы с NAT, а также настройки ESBC для его обхода, такие как:
...
С целью преодоления соединений через устройства NAT, в ESBC реализована поддержка nat comedia-mode для абонентов и транковтранков и абонентских интерфейсов.
Механизм NAT comedia-mode используется в том случае, когда встречное устройство находится за NAT.
Настройка и принцип работы nat comedia-mode для транков (trunk)
...
- flexible — проверяет источник во входящем RTP-потоке и транслирует исходящий поток на IP-адрес и UDP-порт, с которого принимается медиапоток, в . В случае прерывания входящего RTP-потока более чем на 1 секунду, исходящий поток продолжает транслироваться;
- on — проверяет источник во входящем RTP-потоке и транслирует исходящий поток на IP-адрес и UDP-порт, с которого принимается медиапоток, в . В случае прерывания входящего RTP-потока более чем на 1 секунду, исходящий поток перестает транслироваться.
Принцип работы
При включении режима nat comedia-mode on/flexible отправка и получение сообщений сигнализации SIP осуществляется с/на IP-адрес и порт, указанные в настройках транка.
Оправка RTP будет осуществляться на IP-адрес и порт, с которого был получен первый RTP-пакет от встречной стороны. До получения RTP от встречной стороны, медиатрафик не будет передаваться от ESBC в эту сторону.
| Scroll Pagebreak |
|---|
Настройка и принцип работы nat comedia-mode для абонентов (user-interface)
...
- flexible — проверяет источник во входящем RTP-потоке и транслирует исходящий поток на IP-адрес и UDP-порт, с которого принимается медиапоток, в случае прерывания входящего RTP-потока более чем на 1 секунду, исходящий поток продолжает транслироваться;
- on — проверяет источник во входящем RTP-потоке и транслирует исходящий поток на IP-адрес и UDP-порт, с которого принимается медиапоток, в случае прерывания входящего RTP-потока более чем на 1 секунду, исходящий поток перестает транслироваться..
Принцип работы.
При включении режима nat comedia-mode on/flexible отправка сообщений сигнализации SIP осуществляется симметрично (на IP-адрес и Также данная настройка позволяет передавать сообщения протокола SIP симметрично (на порт, с которого был принят запрос) в случае, если клиент в инициирующем запросе не использовал параметр RPORT.
Отправка сообщений сигнализации SIP на зарегистрированного абонента будет осуществляться на IP-адрес и порт, с которого был принят запрос REGISTER, а не на данные абонента, указанные в заголовке Contact.
Оправка RTP будет осуществляться на IP-адрес и порт, с которого был получен первый RTP-пакет от встречной стороны. До получения RTP от встречной стороны, медиатрафик не будет передаваться от ESBC в эту сторону.
Команда nat keep-alive-intervalв настройках абонентского интерфейса используется для настройки интервала для поддержки соединения за NAT. При включении опции, абоненту с заданным интервалом будут Команда nat keep-alive-interval в настройках абонентского интерфейса используется для настройки интервала для поддержки соединения за NAT. При включении опции, абоненту, с заданным интервалом будут отправляться пакеты с содержанием "0d0a" для предотвращения разрушения сессии на NAT-маршрутизаторе.
Подмена атрибутов direction в SDP
...
Данный механизм используется для предотвращения ситуации, в которой абонент за NAT не начнет первым отправку RTP-пакетов в сторону ESBC, и соответственно ESBC не не начнет отправку встречного потока RTP к абоненту.
| Scroll Pagebreak |
|---|
Примеры:
1. Замена атрибутов direction в offer sdp:
...
2. Замена атрибутов direction в answer sdp:
Настройка Public IPЯкорь public-ip public-ip
| public-ip | |
| public-ip |
...
Настройка используется в случае, когда ESBC не имеет публичного IP-адреса и выход в публичную сеть осуществляется через NAT. В таком случае в качестве Public IP указывается адрес WAN-интерфейса NAT для подстановки в сигнальные сообщения протокола SIP.
Public IP можно можно настроить для настроить для абонентского интерфейса, транка и транковой группы.
| Информация |
|---|
Если Public IP настроен в транке и в транковой группе, в которую входит этот транк, то будет использоваться Public IP из настроек транка. |
| Информация |
|---|
В качестве публичного адреса можно использовать как IPv4, так и IPv6 (не поддерживается в текущей версии ПО) адрес. |
При наличии Public IP, адреса в SDP, заголовках Via и Contact будут заменены на значение public-ip из конфигурации объекта. Media будет работать в режиме NAT-comedia.
...
| Блок кода | ||
|---|---|---|
| ||
INVITE sip:23002@192.168.1.1:5060 SIP/2.0 Via: SIP/2.0/UDP 192.168.1.4:5061;rport;branch=z9hG4bK-1914230-1-1 From: "24001" <sip:24001@192.168.1.4:5061>;tag=1 To: "23002" <sip:23002@192.168.1.1:5060> Call-ID: 1-1914230@192.168.1.4 Cseq: 1 INVITE Contact: <sip:24001@192.168.1.4:5061> Max-Forwards: 70 Allow: INVITE, ACK, BYE, CANCEL Content-Type: application/sdp Content-Length: 138 Session Description Protocol Version (v): 0 Owner/Creator, Session Id (o): user1 77755765 7773687637 IN IP4 192.168.1.4 Session Name (s): - Time Description, active time (t): 0 0 Connection Information (c): IN IP4 192.168.1.4 Media Description, name and address (m): audio 10000 RTP/AVP 8 Media Attribute (a): rtpmap:8 PCMA/8000 |
ESBC пересылает INVITE в через транк TRUNK_PUBLIC_IP на встречное устройство.
В SDP, Via и Contact вместо адреса привязанного используемого SIP-транспорта (192.168.1.1) используется указывается адрес Public IP транка (10.25.0.1):
...
STUN – сетевой протокол, позволяющий клиенту, находящемуся за NAT, определить свой публичный (внешний) IP-адрес и порт для обеспечения установления и корректной передачи медиатрафика через NAT. Применяется в механизмах обхода NAT (например, ICE) для установления прямых медиасоединений.
ESBC поддерживает STUN в двух режимах работы:
- взаимодействие с внешними STUN-серверами;
- функционирование в качестве STUN-сервера для клиентов за NAT.
...
ESBC поддерживает взаимодействие с внешними STUN-серверами для определения собственного публичного адреса (например, если ESBC находится в частной сети за NAT-устройством). ESBC отправляет STUN Binding Request на указанный сервер и использует полученный в ответе IP-адрес и порт в качестве публичного, подставляя его в сигнальные сообщения протокола SIP. Для получения портов для RTP/RTCP также будут отправляться STUN Binding Request в момент установления вызова.
По умолчанию ESBC взаимодействует с внешними STUN-серверами в режиме согласно RFC 3489 (Simple Traversal of UDP through NATs или "classic STUN") – использует в качестве публичного адреса и порта значения, полученные в аттрибуте атрибуте MAPPED-ADDRESS в Binding Response от STUN-сервера.
Доступна поддержка RFC 5389 (Session Traversal Utilities for NAT) – в этом случае ESBC в Binding Request на STUN-сервер будет отправлять Cookie, с помощью которого сервер зашифрует адрес и порт и передаст их в Binding Response в аттрибуте атрибуте XOR-MAPPED-ADDRESS, ESBC дешифрует полученные данные и использует в качестве публичного адреса и порта.
Доступна настройка интервала отправки запросов на внешний STUN-сервер.
Внешний STUN-сервер можно можно использовать в настройках абонентского интерфейса, транка и транковой группы.
...
- при наличии настроенного Public IP в SIP-сообщениях будет использоваться адрес из Public-IP;
- если Public IP не настроен, то SIP запросы на это направление будут отбиваться отклонены ошибкой 503.
Подробное описание команд настройки внешних STUN-серверов на ESBC представлено в разделе Настройки STUN Cправочника команд CLI.
...
ESBC находится в частной сети за NAT устройством, настроены 2 транка – — TRUNK_A (в той же сети, что и ESBC) и TRUNK_B (в публичной сети), настроена маршрутизация между ними, адрес WAN-интерфейса NAT-устройства неизвестен. В публичной сети находится STUN-сервер. Необходимо настроить получение публичного адреса через STUN-сервер для вызовов, направленных в TRUNK_B.
| Блок кода | ||
|---|---|---|
| ||
#Настройка внешнего STUN-сервера: vesbc# configure vesbc(config)# esbc vesbc(config-esbc)# stun server external EXTERNAL_STUN vesbc(config-esbc-stun-server-ext)# remote address 203.0.113.10 #Интервал отправки запросов на STUN-сервер = 60 секунд: vesbc(config-esbc-stun-server-ext)# keepalive interval 60 vesbc(config-esbc-stun-server-ext)# exit #Добавление STUN-сервера в настройки транка: vesbc(config-esbc)# trunk sip TRUNK_B vesbc(config-esbc-trunk-sip)# stun server EXTERNAL_STUN #Применение и подтверждение изменений: vesbc(config-esbc-stun-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-stun-trunk-sip)# do confirm Configuration has been confirmed. Commit timer canceled |
После успешного применения конфигурации ESBC начнёт каждые 60 секунд отправлять Binding Request на STUN-сервер с порта, который указан в привязанном к транку TRUNK_B SIP-транспорте, полученный в ответе адрес и порт будет использоваться в SIP-сообщениях на плече ESBC–TRUNK_B.
При исходящем вызове в транк TRUNK_B ESBC отправит запросы на STUN-сервер с RTP и RTCP-порта для согласования обмена медиатрафиком.
При входящем вызове из транка TRUNK_B ESBC также отправит запросы на STUN-сервер с RTP и RTCP-порта для согласования обмена медиатрафиком перед отправкой SDP-Answer инициатору.
| Scroll Pagebreak |
|---|
Настройка локального STUN-сервера
| Якорь | ||||
|---|---|---|---|---|
|
ESBC может функционировать в качестве STUN-сервера для клиентовабонентов, находящихся за NAT. Для этого на ESBC настраиваются локальные STUN-серверы (до 64 шт.).
При получении STUN -запроса Binding Request, ESBC формирует ответ Binding Success Response, содержащий публичный IP-адрес и порт, с которого данный запрос был получен. Этот адрес называется reflexive address Reflexive Address и может использоваться клиентом для корректной подстановки в корректного формирования SIP-сообщений, SDP и организации обеспечения прохождения медиатрафика (RTP) через NAT.
Поддерживается работа протокола STUN в режимах Classic STUN (RFC 3489) и cовременный STUN (RFC 5389+).
Подробное описание команд настройки локальных STUN-серверов на ESBC представлено в разделе Настройки STUN Cправочника команд CLI.
...
| Блок кода | ||
|---|---|---|
| ||
vesbc# configure vesbc(config)# esbc vesbc(config-esbc)# stun server local LOCAL_STUN vesbc(config-esbc-stun-server-loc)# ip address 19230.16830.12630.2171 vesbc(config-esbc-stun-server-loc)# port 13478 vesbc(config-esbc-stun-server-loc)# #Применение и подтверждение изменений: vesbc(config-esbc-stun-server-loc)# do commit Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds. vesbc(config-esbc-stun-server-loc)# do confirm Configuration has been confirmed. Commit timer canceled |
После описанной выше настройки ESBC будет принимать сообщения STUN на IP-адрес 30.30.30.1 и порт UDP 13478.
| Примечание |
|---|
При использовании в конфигурации ESBC локального STUN-сервера не требуется дополнительной настройки firewall, необходимые правила для пропуска входящих STUN-запросов будут настроены автоматически. |
Когда абонент, находящийся за NAT, отправит STUN-запрос, который будет получен ESBC с адреса 20.20.20.1:15060 на адрес ESBC и порт локального STUN-сервера (30.30.30.1:13478), в ответе ESBC укажет 20.20.20.1:15060 в качестве Reflexive Address. Если клиент за NAT отправит STUN-запрос, который будет получен ESBC с адреса 192.168.113.200:8002 на адрес ESBC и порт локального STUN-сервера, то в ответе ESBC укажет 192.168.113.200:8002 в качестве reflexive address.
| Scroll Pagebreak |
|---|
Настройка QoSЯкорь qos qos
| qos | |
| qos |
...
- аудиопакетов;
- видеопакетов;
- пакетов сигнализации-SIPсигнализации SIP.
Параметры QoS настраиваются в конфигурации абонентского интерфейса, транка и транковой группы.
...
Реализация ограничения входящего трафика поддерживается для следующих объектов:
...
- Ограничения для всей системы. Настройки ограничений general переопределяют настройки ограничений остальных объектов (trunk, trunk-group, user-interface) ESBC.
- Ограничения для транк-группы. Настройки ограничений trunk-group переопределяют настройки ограничений транков, входящих в данную транк-группу, но переопределяются настройками general.
- Ограничения для транков и абонентских интерфейсов. Настройки ограничений trunk переопределяются настройками ограниченийтранк-группы (если транк входит в состав какой-либо транк-группы) или настройками general. Настройки ограничений user-interface переопределются настройками переопределяются настройками general.
| Примечание |
|---|
Приоритет использования ограничений распространяется только для максимальных значений, т. е. например, при использовании max in cps 100 для всей системы (general), и использовании max in cps 10 для какого-либо транка, ограничение обработки CPS для этого транка будет 10, а не 100. |
При одновременном использовании max in cps и max in rps в настройках транка, транковой группы или абонентского интерфейса, максимальным порогом для всех входящих запросов будет являться значение, настроенное в max in rps. При этом ограничение для входящих запросов INVITE можно уменьшить отдельно настройкой max in cps.
...
- В конфигурации настроено max in cps 10 и max in rps 5. В таком случаее случае максимальное ограничение на входящие вызовы (INVITE) будет 5.
- В конфигурации настроено max in cps 5 и max in rps 10. В таком случаее случае максимальное ограничение на входящие вызовы будет 5, а на остальные запросы - — 10.
Пример работы приоритета системных ограничений над абонентским интерфейсом:
| Блок кода | ||
|---|---|---|
| ||
vesbc# vesbc# config vesbc(config)# esbc #Переход в общие настройки: vesbc(config-esbc)# general vesbc(config-esbc-general)# #Установка ограничения входящего максимального количества CPS для всей системы -— 5: vesbc(config-esbc-general)# max in cps 5 vesbc(config-esbc-general)# exit #Установка ограничения максимального входящего количества CPS для отдельного абонентского интерфейса (USER_IFACE) -— 10: vesbc(config-esbc)# user-interface sip USER_IFACE vesbc(config-esbc-user-interface-sip)# max in cps 10 #Применение и подтверждение изменений: vesbc(config-esbc-user-interface-sip)# do commit vesbc(config-esbc-user-interface-sip)# do confirm |
...
| Блок кода | ||
|---|---|---|
| ||
vesbc# vesbc# config vesbc(config)# esbc #Переход в настройки транка: vesbc(config-esbc)# trunk sip TRUNK vesbc(config-esbc-trunk-sip)# #Установка ограничения входящего максимального количества CPS для транка -— 50: vesbc(config-esbc-trunk-sip)# max in cps 50 vesbc(config-esbc-trunk-sip)# exit #Переход в настройки транк-группы: vesbc(config-esbc)# trunk-group TRUNKGROUP # Добавление транка TRUNK в состав транк-группы: vesbc(config-esbc-trunk-group)# trunk 0 TRUNK #Установка ограничения входящего максимального количества CPS для транк-группы -— 10: vesbc(config-esbc-trunk-group)# max in cps 10 #Применение и подтверждение изменений: vesbc(config-esbc-trunk-group)# do commit vesbc(config-esbc-trunk-group)# do confirm |
...
| Блок кода | ||
|---|---|---|
| ||
vesbc# vesbc# config vesbc(config)# esbc #Переход в настройки абонентского интерфейса: vesbc(config-esbc)# user-interface sip USER_IFACE vesbc(config-esbc-user-interface)# #Установка ограничения максимального количества одновременных вызовов для абонентского-интерфейса -— 10: vesbc(config-esbc-user-interface-sip)# max in calls 10 #Применение и подтверждение изменений: vesbc(config-esbc-user-interface)# do commit vesbc(config-esbc-user-interface)# do confirm |
...
| Блок кода | ||
|---|---|---|
| ||
vesbc# vesbc# config vesbc(config)# esbc #Переход в настройки абонентского интерфейса: vesbc(config-esbc)# user-interface sip USER_IFACE vesbc(config-esbc-user-interface)# #Установка ограничения входящего максимального количества CPS для абонентского-интерфейса -— 10: vesbc(config-esbc-user-interface-sip)# max in cps 10 #Применение и подтверждение изменений: vesbc(config-esbc-user-interface)# do commit vesbc(config-esbc-user-interface)# do confirm |
...
Пример работы ограничения количества SIP-сообщений в секунду в рамках одной сессии сессии на абонентском интерфейсе:
| Блок кода | ||
|---|---|---|
| ||
vesbc# vesbc# config vesbc(config)# esbc #Переход в настройки абонентского интерфейса: vesbc(config-esbc)# user-interface sip USER_IFACE vesbc(config-esbc-user-interface)# #Ограничение максимального количества SIP-сообщений в секунду в рамках одной сессии в секунду: vesbc(config-esbc-user-interface-sip)# max in session pps 30 #Применение и подтверждение изменений: vesbc(config-esbc-user-interface)# do commit vesbc(config-esbc-user-interface)# do confirm |
После применения изменений , количество 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)#
#Ограничение максимального количества запросов 50:
vesbc(config-esbc-user-interface-sip)# max in user rpp 50
#В интервал времени 240 секунд:
vesbc(config-esbc-user-interface-sip)# max in user rpp 50 240
#С блокировкой при достижении лимитов:
vesbc(config-esbc-user-interface-sip)# max in user rpp 50 240 block
#Применение и подтверждение изменений:
vesbc(config-esbc-user-interface)# do commit
vesbc(config-esbc-user-interface)# do confirm |
...
| Блок кода | ||
|---|---|---|
| ||
vesbc#
vesbc# config
vesbc(config)# esbc
#Переход в настройки абонентского интерфейса:
vesbc(config-esbc)# user-interface sip USER_IFACE
vesbc(config-esbc-user-interface)#
#Ограничение максимального количества контактов для одного AOR:
vesbc(config-esbc-user-interface-sip)# max in user contacts 2
#Применение и подтверждение изменений:
vesbc(config-esbc-user-interface)# do commit
vesbc(config-esbc-user-interface)# do confirm |
...
Описание всех команд для контроля исходящего трафика приведено в разделах для каждого объекта в CLI:
Реализация ограничения исходящего трафика поддержана на следующих объектах:
...
- В конфигурации настроено max out cps 10 и max out rps 5. В таком случаее случае максимальное ограничение на вызовы (INVITE) будет 5.
- В конфигурации настроено max out cps 5 и max out rps 10. В таком случаее случае максимальное ограничение на вызовы будет 5, а на остальные запросы - — 10.
| Примечание |
|---|
При применении ограничений приоритет определяется уровнем: приоритет ограничений транк-групп выше, чем приоритет ограничений отдельных транков, входящих в эту транк-группу. |
...
При вводе show esbc call-flow sip info <SESSION_ID> будет доступна диаграмма отдельной сессии.
Пример вывода статистики:, см. ниже.
| Блок кода | ||
|---|---|---|
| ||
#Просмотр диаграммы отфильтрованной call-flow сессий:
vesbc# show esbc call-flow sip info 50300000000000c
ESBC call flow 50300000000000c
Time Leg A Direction Leg B
--------------- -------------------------------------- --------- ---------------------------------------
2025-10-08 (UDP SDP) INVITE --->
09:50:25.976 sip:1142@192.168.113.177:5090 SIP/2.0
(+00:00:00.000)
2025-10-08 (UDP) SIP/2.0 100 Trying <---
09:50:25.976
(+00:00:00.000)
2025-10-08 ---> (UDP SDP) INVITE
09:50:25.992 sip:1142@192.168.113.172:5070 SIP/2.0
(+00:00:00.016)
2025-10-08 <--- (UDP) SIP/2.0 100 Trying
09:50:26.003
(+00:00:00.027)
2025-10-08 <--- (UDP) SIP/2.0 180 Ringing
09:50:26.046
(+00:00:00.070)
2025-10-08 (UDP) SIP/2.0 180 Ringing <---
09:50:26.048
(+00:00:00.072)
2025-10-08 <--- (UDP SDP) SIP/2.0 200 OK
09:50:27.544
(+00:00:01.568)
2025-10-08 (UDP SDP) SIP/2.0 200 OK <---
09:50:27.557
(+00:00:01.581)
2025-10-08 (UDP) ACK --->
09:50:27.600 sip:1142@192.168.113.177:5090;transport=
(+00:00:01.624) udp SIP/2.0
2025-10-08 ---> (UDP) ACK sip:1142@192.168.113.172:5070
09:50:27.603 SIP/2.0
(+00:00:01.627)
2025-10-08 <--- (UDP) BYE
09:50:44.673 sip:1140@192.168.113.177:5071;transport=
(+00:00:18.697) udp;line=83b0f9ea4622375be3232f3c892b024
0 SIP/2.0
2025-10-08 (UDP) BYE <---
09:50:44.675 sip:1140@192.168.113.170;transport=udp
(+00:00:18.699) SIP/2.0
2025-10-08 (UDP) SIP/2.0 200 Ok --->
09:50:44.700
(+00:00:18.724)
2025-10-08 ---> (UDP) SIP/2.0 200 OK
09:50:44.703
(+00:00:18.727)
vesbc# |
...
- IP black-list:
- IP address — заблокированный IP-адрес;
- Ban reason — причина блокировки;
- AOR;
- AOR error count — количество ошибок AOR;
- Blocking timeout in minutes — оставшееся время блокировки в минутах;
- Time of blocking — время блокировки.
Scroll Pagebreak
- AOR:
- AOR;
- Ban reason — причина блокировки;
- AOR error count — количество ошибок AOR;
- Forgive time in minutes — оставшееся время блокировки в минутах;
- Time of blocking — время блокировки.
- SIP user
- AOR;
- Ban reason — причина блокировки;
- UA error count — количество ошибок UA;
- Forgive time in minutes — оставшееся время блокировки в минутах;
- Time of blocking — время блокировки.
- User-agent black-list:
- UA;
- Ban reason — причина блокировки;
- UA error count — количество ошибок UA;
- Forgive time in minutes — оставшееся время блокировки в минутах;
- Time of blocking — время блокировки.
...
Поддержана возможность просматривать белый список IPсписок IP-адресов, AOR и User-Agent командой show esbc white-list в CLI и, для IP-адресов, на странице Мониторинг → Списки доступа → Белый список в WEB.
...
- Trunk — имя транка;
- Trunk type — тип транка;
- Status — статус транка (принимает значения Uncontrolled, Available или Not available, в зависимости от настройки SIP профиля и реального состояния транка);
- Last change time — время изменения статуса транка.
- Registration type — режим регистрации транка(принимает значения None или Client)
- Registration count (active/all) — краткое отображение активных регистраций (active) и всех номеров (all), которые присутствуют в привязанном к транку профилю учётных данных. Отображается только при включении клиентской регистрации транка.
Scroll Pagebreak
Список зарегистрированных абонентов
...
Реализован просмотр статистики для всей системы, всех транков, всех абонентских интерфейсов или по конкретному объекту командой show esbc statistics (вызовы, регистрации, подписки, RPS) в CLI или на странице Мониторинг → Телефония → Статистика вызовов в WEB.
| Предупреждение |
|---|
Ведение статистики по умолчанию включено. |
...
Данные выводятся в виде гистограммы. При вызове команды отображается 3 графика – – за последнюю минуту, час и 3 дня. Опция interval позволяет отобразить график для конкретного интервала времени.
| Примечание |
|---|
График отображает значения метрики от 10 и выше. Вертикальная ось графика автоматически подстраивается под диапазон отображаемых данных. |
| Scroll Pagebreak |
|---|
Пример 1.
Схема:
Из транка UAC в транк UAS через ESBC поступает 10 вызовов каждую секунду длительностью 25 секунд.
| Блок кода | ||
|---|---|---|
| ||
#Просмотр истории максимальной статистики активных вызовов:
vesbc# show esbc history active-calls max
CALLS ACTIVE
Active calls, quantity
300 |
270 |
240 |###########################
210 |##############################
180 |#################################
150 |####################################
120 |#######################################
90 |##########################################
60 |#############################################
30 |################################################
0 |....|....|....|....|....|....|....|....|....|....|....|....|
0 5 10 15 20 25 30 35 40 45 50 55 60
Time, seconds
CALLS ACTIVE
Active calls, quantity
100 |
90 |
80 |
70 |
60 |
50 |
40 |
30 |
20 |
10 |
0 |....|....|....|....|....|....|....|....|....|....|....|....|
0 5 10 15 20 25 30 35 40 45 50 55 60
Time, minutes
CALLS ACTIVE
Active calls, quantity
100 |
90 |
80 |
70 |
60 |
50 |
40 |
30 |
20 |
10 |
0 |....|....|....|....|....|....|....|....|....|....|....|....|....|....|..
0 5 10 15 20 25 30 35 40 45 50 55 60 65 70
Time, hours
#Просмотр истории максимальной статистики входящих попыток вызова за последнюю минуту на транке UAC:
vesbc# show esbc history call-attempts-incoming max interval seconds trunk sip
UAC
INCOMING CALL ATTEMPS
Call attemps, quantity
100 |
90 |
80 |
70 |
60 |
50 |
40 |
30 |
20 |
10 |################################################
0 |....|....|....|....|....|....|....|....|....|....|....|....|
0 5 10 15 20 25 30 35 40 45 50 55 60
Time, seconds
#Просмотр истории максимальной статистики исходящих попыток вызова за последнюю минуту на транке UAS:
vesbc# show esbc history call-attempts-outgoing max interval seconds trunk sip
UAS
OUTGOING CALL ATTEMPS
Call attemps, quantity
100 |
90 |
80 |
70 |
60 |
50 |
40 |
30 |
20 |
10 |################################################
0 |....|....|....|....|....|....|....|....|....|....|....|....|
0 5 10 15 20 25 30 35 40 45 50 55 60
Time, seconds
#Просмотр истории максимальной статистики средней длительности вызова (ACD) за последний час:
vesbc# show esbc history average-call-duration max interval minutes
AVERAGE CALLS AVERAGE DURATION
Avg duration, sec
100 |
90 |
80 |
70 |
60 |
50 |
40 |
30 |
20 |#####
10 |######
0 |....|....|....|....|....|....|....|....|....|....|....|....|
0 5 10 15 20 25 30 35 40 45 50 55 60
Time, minutes |
| Scroll Pagebreak |
|---|
Пример 2.
Через абонентский интерфейс USERS_1 каждую секунду регистрируются 10 абонентов. Всего зарегистрировалось 500 абонентов.
...
Включение журналирования аварий происходит c помощью команды alarm enable journal esbc в CLI.
Данная команда без указания параметров включает весь набор аварий:
- cdr-send-error — ошибки отправки CDR;
- cdr-write-error — ошибки записи CDR;
- geов;neralgeneral-max-calls-limit — превышение общего лимита вызов
- general-max-cps-limit — превышение общего лимита cps;
- general-max-rps-limit — превышение общего лимита rps;
- media-resources — превышение медиаресурсовотсутствие свободных медиаресурсов (портов для RTP);
- module-connection — падение перезапуск модулей ESBC;
- trunk-group-max-calls-limit — превышение лимита вызовов на транк-группе;
- trunk-group-max-cps-limit — превышение лимита cps на транк-группе;
- trunk-group-max-rps-limit — превышение общего лимита rps на транк-группе;
- trunk-max-calls-limit — превышение лимита вызовов на транке;
- trunk-max-cps-limit — превышение лимита cps на транке;
- trunk-max-rps-limit — превышение общего лимита rps на транке;
- trunk-unavailable — недоступность транка;
- user-interface-max-calls-limit — превышение лимита вызовов на user-interface;
- user-interface-max-cps-limit — превышение лимита cps на user-interface;
- user-interface-max-rps-limit — превышение общего лимита rps на user-interface.
...
Для отображения только активных аварий используется команда команда show alarms brief active.
| Scroll Pagebreak |
|---|
Пример:
| Блок кода | ||
|---|---|---|
| ||
#Просмотр истории аварийных событий:
vesbc# show alarms brief
History Alarms
--------------
Severity Group Set time Clear time Description
-------- --------------- -------------------- -------------------- -----------------------------------
major esbc 2026-03-20 09:55:32 2026-03-20 10:01:32 Trunk(TRUNK_SSW_1) is unavailable
major esbc 2026-03-20 15:51:17 - Trunk(TRUNK_SSW_2) is unavailable
#Просмотр активных аварийных событий:
vesbc# show alarms brief active
History Alarms
--------------
Severity Group Set time Clear time Description
-------- --------------- -------------------- -------------------- -----------------------------------
major esbc 2026-03-20 15:51:17 - Trunk(TRUNK_SSW_2) is unavailable
|
Для удаления истории аварийных событий используется команда clear alarms в CLI.
| Примечание |
|---|
Аварии сохраняются локально. Для отправки уведомлений об авариях на удаленный хост необходимо настроить snmp-трапы. |
Текст аварий и причины их нормализации представлены в таблице ниже.
Для удаления истории аварийных событий используется команда clear alarms в CLI.
| Примечание |
|---|
Аварии сохраняются локально. Для отправки уведомлений об авариях на удаленный хост необходимо настроить отправку аварийных SNMP-трапов. |
Текст аварий и причины их нормализации представлены в таблице ниже.
Авария | Текст аварии | Причины нормализации |
|---|---|---|
cdr-send-error | CDR alarm: failed to send to <main | reserve> ftp server | успешная отправка CDR на FTP-сервер |
cdr-write-error | CDR alarm: failed to write | успешная запись CDR |
general-max-calls-limit | Host <host_name> max calls limit reached | через 10 секунд после последней аварии ИЛИ при снижении счетчика на 80 % от лимита |
general-max-cps-limit | Host <host_name> max cps limit reached | через 10 секунд после последней аварии |
general-max-rps-limit | Host <host_name> max rps limit reached | через 10 секунд после последней аварии |
media-resources | Session<session_id>: <Trunk/User interface><trunk_name/ui_name> media resources out | через 15 секунд после последней аварии ИЛИ при освобождении портов для RTP |
module-connection | Module <module_type> host <host_id> is down | при успешном добавлении модуля в диспетчер ESBC |
trunk-group-max-calls-limit | Trunk-Group <trunk_group_name> max calls limit reached | через 10 секунд после последней аварии ИЛИ при снижении счетчика на 80 % от лимита |
trunk-group-max-cps-limit | Trunk-Group <trunk_group_name> max cps limit reached | через 10 секунд после последней аварии |
trunk-group-max-rps-limit | Trunk-Group <trunk_group_name> max rps limit reached | через 10 секунд после последней аварии |
trunk-max-calls-limit | Trunk <trunk_name> max calls limit reached | через 10 секунд после последней аварии ИЛИ при снижении счетчика на 80 % от лимита |
trunk-max-cps-limit | Trunk <trunk_name> max cps limit reached | через 10 секунд после последней аварии |
trunk-max-rps-limit | Trunk <trunk_name> max rps limit reached | через 10 секунд после последней аварии |
trunk-unavailable | Trunk <trunk_name> is unavailable | при обновлении статуса транка на "Available" |
user-interface-max-calls-limit | User interface <ui_name> max calls limit reached | через 10 секунд после последней аварии ИЛИ при снижении счетчика на 80 % от лимита |
user-interface-max-cps-limit | User interface <ui_name> max rps limit reached | через 10 секунд после последней аварии |
user-interface-max-rps-limit | User interface <ui_name> max cps limit reached | через 10 секунд после последней аварии |
Отправка аварийных SNMP-трапов
| Якорь | ||||
|---|---|---|---|---|
|
Отправка уведомлений об аварийных событиях на удаленный хост с помощью SNMP-трапов настраивается с помощью команды snmp-server enable traps esbc в CLI.
Данная команда без указания параметров включает весь набор SNMP-трапов:
- cdr-send-error — ошибки отправки CDR;
- cdr-write-error — ошибки записи CDR;
- general-max-calls-limit — превышение общего лимита вызовов;
- general-max-cps-limit — превышение общего лимита cps;
- general-max-rps-limit — превышение общего лимита rps;
- media-resources — отсутствие свободных медиаресурсов (портов для RTP);
- module-connection — перезапуск модулей ESBC;
- trunk-group-max-calls-limit — превышение лимита вызовов на транк-группе;
- trunk-group-max-cps-limit — превышение лимита cps на транк-группе;
- trunk-group-max-rps-limit — превышение общего лимита rps на транк-группе;
- trunk-max-calls-limit — превышение лимита вызовов на транке;
- trunk-max-cps-limit — превышение лимита cps на транке;
- trunk-max-rps-limit — превышение общего лимита rps на транке;
- trunk-unavailable — недоступность транка;
- user-interface-max-calls-limit — превышение лимита вызовов на user-interface;
- user-interface-max-cps-limit — превышение лимита cps на user-interface;
- user-interface-max-rps-limit — превышение общего лимита rps на user-interface;
- voip-block-aor — блокировки по AOR;
- voip-block-ip — блокировки по IP-адресу;
- voip-block-user-agent — блокировки по User-Agent;
- voip-block-sip-user — блокировки по SIP-User.
| Примечание |
|---|
При включении отправки SNMP-трапов командой snmp-server enable traps esbc, трапы будут отправляться вне зависимости от включения журналирования аварий локально. |
Текст SNMP-трапов и причины их нормализации представлены в таблице ниже.
SNMP-трап | Текст SNMP-трапа | Причины нормализации | |
|---|---|---|---|
cdr-send-error | CDR alarm: failed to send to <main | reserve> ftp server | успешная отправка CDR на FTP-сервер | |
cdr-write-error | CDR alarm: failed to write | успешная запись CDR | |
general-max-calls-limit | Host <host_name> max calls limit reached | через 10 секунд после последней аварии ИЛИ при снижении счетчика на 80% от лимита | |
general-max-cps-limit | Host <host_name> max cps limit reached | через 10 секунд после последней аварии | |
general-max-rps-limit | Host <host_name> max rps limit reached | через 10 секунд после последней аварии | |
media-resources | Session<session_id>: <Trunk/User interface><trunk_name/ui_name> media resources out | через 15 секунд после последней аварии ИЛИ при освобождении портов для RTP | |
module-connection | Module <module_type> host <host_id> is down | при успешном добавлении модуля в диспетчер ESBC | |
trunk-group-max-calls-limit | Trunk-Group <trunk_group_name> max calls limit reached | через 10 секунд после последней аварии ИЛИ при снижении счетчика на 80 % от лимита | |
trunk-group-max-cps-limit | Trunk-Group <trunk_group_name> max cps limit reached | через 10 секунд после последней аварии | |
trunk-group-max-rps-limit | Trunk-Group <trunk_group_name> max rps limit reached | через 10 секунд после последней аварии | |
trunk-max-calls-limit | Trunk <trunk | ||
Авария | Текст аварии | Причины нормализации | |
cdr-send-error | CDR alarm: failed to send to <main | reserve> ftp server | успешная отправка CDR на FTP-сервер | |
cdr-write-error | CDR alarm: failed to write | успешная запись CDR | |
general-max-calls-limit | Host <host_name> max calls limit reached | через 10 секунд после последней аварии ИЛИ при снижении счетчика на 80% 80 % от лимита | |
generaltrunk-max-cps-limit | Host <hostTrunk <trunk_name> max cps limit reached | через 10 секунд после последней аварии | |
generaltrunk-max-rps-limit | Host <hostTrunk <trunk_name> max rps limit reached | через 10 секунд после последней аварии | |
mediatrunk-resourcesunavailable | Session<session_id>: <Trunk/User interface><trunk_name/ui_name> media resources out | через 15 секунд после последней аварии ИЛИ уничтожение превышающий сессии | |
module-connection | Module <module_type> host <host_id> is down | при успешном добавлении модуля в диспетчер | |
| Trunk <trunk_name> is unavailable | при обновлении статуса транка на "Available" | ||
user-interfacetrunk-group-max-calls-limit | Trunk-Group <trunk_groupUser interface <ui_name> max calls limit reached | через 10 секунд после последней аварии ИЛИ при снижении счетчика на 80% от лимита | |
trunkuser-groupinterface-max-cps-limit | Trunk-Group <trunk_group_User interface <ui_name> max cps rps limit reached | через 10 секунд после последней аварии | |
trunkuser-groupinterface-max-rps-limit | Trunk-Group <trunk_group_User interface <ui_name> max rps cps limit reached | через 10 секунд после последней аварииtrunk | |
voip- | maxblock- | calls-limitTrunk <trunk_name> max calls limit reached | через 10 секунд после последней аварии ИЛИ при снижении счетчика на 80% от лимита |
trunk-max-cps-limit | Trunk <trunk_name> max cps limit reached | через 10 секунд после последней аварии | |
trunk-max-rps-limit | Trunk <trunk_name> max rps limit reached | через 10 секунд после последней аварии | |
trunk-unavailable | Trunk <trunk_name> is unavailable | при обновлении статуса транка на "Available" | |
user-interface-max-calls-limit | User interface <ui_name> max calls limit reached | через 10 секунд после последней аварии ИЛИ при снижении счетчика на 80% от лимита | |
user-interface-max-cps-limit | User interface <ui_name> max rps limit reached | через 10 секунд после последней аварии | |
user-interface-max-rps-limit | User interface <ui_name> max cps limit reached | через 10 секунд после последней аварии |
...
Отправка уведомлений об аварийных событиях на удаленный хост с помощью SNMP-трапов настраивается с помощью команды snmp-server enable traps esbc в CLI.
Данная команда без указания параметров включает весь набор SNMP-трапов:
- cdr-send-error — ошибки отправки CDR;
- cdr-write-error — ошибки записи CDR;
- general-max-calls-limit — превышение общего лимита вызовов;
- general-max-cps-limit — превышение общего лимита cps;
- general-max-rps-limit — превышение общего лимита rps;
- media-resources — превышение медиаресурсов;
- module-connection — падение модулей ESBC;
- trunk-group-max-calls-limit — превышение лимита вызовов на транк-группе;
- trunk-group-max-cps-limit — превышение лимита cps на транк-группе;
- trunk-group-max-rps-limit — превышение общего лимита rps на транк-группе;
- trunk-max-calls-limit — превышение лимита вызовов на транке;
- trunk-max-cps-limit — превышение лимита cps на транке;
- trunk-max-rps-limit — превышение общего лимита rps на транке;
- trunk-unavailable — недоступность транка;
- user-interface-max-calls-limit — превышение лимита вызовов на user-interface;
- user-interface-max-cps-limit — превышение лимита cps на user-interface;
- user-interface-max-rps-limit — превышение общего лимита rps на user-interface;
- voip-block-aor — блокировки по AOR;
- voip-block-ip — блокировки по IP-адресу;
- voip-block-user-agent — блокировки по User-Agent;
- voip-block-sip-user – блокировки по SIP-User.
| Примечание |
|---|
SNMP-трапы могут отправляться даже при отключенном журналировании аварий. |
Текст SNMP-трапов и причины их нормализации представлены в таблице ниже.
...
SNMP-трап
...
Причины нормализации
...
cdr-send-error
...
успешная отправка CDR на FTP-сервер
...
cdr-write-error
...
успешная запись CDR
...
general-max-calls-limit
...
через 10 секунд после последней аварии ИЛИ при снижении счетчика на 80% от лимита
...
general-max-cps-limit
...
general-max-rps-limit
...
media-resources
...
через 15 секунд после последней аварии ИЛИ уничтожение превышающий сессии
...
module-connection
...
при успешном добавлении модуля в диспетчер
...
trunk-group-max-calls-limit
...
через 10 секунд после последней аварии ИЛИ при снижении счетчика на 80% от лимита
...
trunk-group-max-cps-limit
...
trunk-group-max-rps-limit
...
trunk-max-calls-limit
...
через 10 секунд после последней аварии ИЛИ при снижении счетчика на 80% от лимита
...
trunk-max-cps-limit
...
trunk-max-rps-limit
...
trunk-unavailable
...
при обновлении статуса транка на "Available"
...
user-interface-max-calls-limit
...
через 10 секунд после последней аварии ИЛИ при снижении счетчика на 80% от лимита
...
user-interface-max-cps-limit
...
user-interface-max-rps-limit
...
voip-block-aor
...
voip-block-ip
...
aor | AOR <aor> has been banned | не нормализуются |
voip-block-ip | IP address <ip> has been banned | не нормализуются |
| voip-block-user-agent | User-Agent <user-agent> has been banned | не нормализуются |
| voip-block-sip-user | SIP user <aor> has been banned | не нормализуются |
| Примечание |
|---|
В отличие от аварий, SNMP-трапы передают уведомления о заблокированных объектах:
Для просмотра заблокированных объектов в CLI используется команда show esbc black-list. |
Конфигурирование удаленного хоста для отправки SNMP-уведомлений выполняется с помощью команды snmp-server host в CLI.
Scroll Pagebreak
Настройка CDRЯкорь cdr cdr
| cdr | |
| cdr |
CDR (Call Detail Record, рус. «запись сведений о звонках») — это запись, содержащая подробную информацию о совершённых вызовах.
В файл CDR записываются следующие данные:
Заголовок файла (опционален) (<hostname> CDR. File started at 'YYYYMMDDhhmmss');
Отличительный признак (опционален);
Время поступления вызова;
Время ответа на вызов;
Входящий номер вызывающего абонента;
- Исходящий номер вызывающего абонента;
Входящий номер вызываемого абонента;
Исходящий номер вызываемого абонента;
Имя trunk/user-interface вызывающего абонента;
Имя trunk/user-interface вызываемого абонента;
Длительность вызова;
Причина разъединения (согласно ITU-T Q.850);
Индикатор успешного вызова (1 — успешный, 0 — неуспешный);
Сторона-инициатор разъединения (1 — вызывающая сторона, 2 — вызываемая сторона, 3 — ESBC);
Call-ID входящего вызова;
Call-ID исходящего вызова;
Номер вызываемого абонента при переадресации;
IP-адрес шлюза вызывающего абонента;
IP-адрес шлюза вызываемого абонента;
Список IP-адресов из заголовка Record-Route при установлении соединения в направлении от вызывающего абонента;
Список IP-адресов из заголовка Via при установлении соединения в направлении от вызывающего абонента;
IP-адрес из заголовка Contact вызывающего абонента;
IP-адрес из заголовка Contact вызываемого абонента.
Значения параметров в файле CDR записываются в указанном выше порядке и разделяются символом ";".
| Информация |
|---|
Запись "Номер вызываемого абонента при переадресации" создается только, при включенной локальной обработке 3xx ответа в настройках sip profile. |
Хранение записей CDR осуществляется в локальном хранилище ESBC или на внешнем USB-накопителе.
Отправка на внешний сервер осуществляется по протоколу FTP, SFTP и SCP. Поддерживается отправка на два FTP-сервера, два SFTP-сервера и два SCP-сервера одновременно.
Дополнительно поддерживается сохранение и отправка CDR в SYSLOG. Для отправки в SYSLOG требуется дополнительная конфигурация syslog.
Описание всех команд для настройки CDR приведено в разделе Настройки CDR.
Пример настройки записи CDR с опциональными полями, локальным хранением и отправкой на сервер FTP с резервированием в случае неудачной отправки приведен ниже.
| Блок кода | ||
|---|---|---|
| ||
vesbc#
vesbc# configure
vesbc(config)# esbc
vesbc(config-esbc)# cdr
vesbc(config-esbc-cdr)# enable
#Добавление заголовка в CDR-запись:
vesbc(config-esbc-cdr)# add-header
#Запись неудачных вызовов:
vesbc(config-esbc-cdr)# collect unsuccess
#Запись пустых CDR:
vesbc(config-esbc-cdr)# collect empty-files
#Режим создания записей:
vesbc(config-esbc-cdr)# create-mode periodically
vesbc(config-esbc-cdr)# per days 1
vesbc(config-esbc-cdr)# period hours 12
vesbc(config-esbc-cdr)# per minutes 30
#Включение отправки логов:
vesbc(config-esbc-cdr)# syslog enable
#Добавление отличительного признака:
vesbc(config-esbc-cdr)# signature otlichitelnyi_priznak
#Настройка локального хранения:
vesbc(config-esbc-cdr)# local
vesbc(config-esbc-cdr-local)# create-directories by-date
vesbc(config-esbc-cdr-local)# keep days 30
vesbc(config-esbc-cdr-local)# keep hours 12
vesbc(config-esbc-cdr-local)# keep minutes 30
vesbc(config-esbc-cdr-local)# path flash:cdr/cdr_record
vesbc(config-esbc-cdr-local)# save
vesbc(config-esbc-cdr-local)# exit
#Настройка основного FTP-сервера:
vesbc(config-esbc-cdr)# ftp
vesbc(config-esbc-cdr-ftp)# login main_ftp_server
vesbc(config-esbc-cdr-ftp)# password password_m_ftp
vesbc(config-esbc-cdr-ftp)# path /main_ftp/cdr_record
vesbc(config-esbc-cdr-ftp)# remote address 192.168.23.100
vesbc(config-esbc-cdr-ftp)# save
vesbc(config-esbc-cdr-ftp)# exit
#Настройка резервного FTP-сервера:
vesbc(config-esbc-cdr)# reserved-ftp
vesbc(config-esbc-cdr-res-ftp)# as-reserved
vesbc(config-esbc-cdr-res-ftp)# login reserve_ftp_server
vesbc(config-esbc-cdr-res-ftp)# password password_r_ftp
vesbc(config-esbc-cdr-res-ftp)# path /reserve_ftp/cdr_record
vesbc(config-esbc-cdr-res-ftp)# remote address 192.168.23.200
vesbc(config-esbc-cdr-res-ftp)# save
#Применение и подтверждение изменений:
vesbc(config-esbc-cdr-res-ftp)# do commit
Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds.
vesbc(config-esbc-cdr-res-ftp)# do confirm
Configuration has been confirmed. Commit timer canceled.
|
Если отправка записи CDR на основной FTP-сервер (192.168.23.100) по какой-либо причине не произойдет, то она попытается отправиться на резервный FTP-сервер (192.168.23.200), в случае неудачи и на резервном, запись сохранится только локально.
Пример записи файла CDR
На ESBC настроена следующая конфигурация CDR:
| Блок кода |
|---|
cdr
enable
add-header
signature test_signature
period minutes 1
local
save
path flash:cdr/
create-directories by-date
keep days 1
exit
exit |
После совершения успешного вызова длительностью 5 секунд, с номера 241 на номер 231 будет сформирован файл CDR (через 1 минуту) вида:
| Блок кода |
|---|
vesbc CDR. File started at '20260320050817'
test_signature
2026-03-20 05:07:45;2026-03-20 05:07:53;241;241;231;231;UAC;UAS;000005;016;1;1;974433e3-9ebd-123f-7cb4-ecb1e029e6ba;93a6cc0da4e18d8ad308b277e3434d53;;192.168.1.6;192.168.1.2;;192.168.1.6;192.168.1.6;192.168.12.2; |
Якорь logs logs
Работа с логами
| logs | |
| logs |
Логирование ESBC осуществляется с помощью syslog. Более подробно настройки syslog описаны в разделе Управление SYSLOG справочника команд CLI.
По умолчанию логирование модулей ESBC выключено.
| Предупреждение |
|---|
Включение логирования всех модулей при большой вызывной нагрузке может повлиять на производительность системы. Наибольшее влияние на производительность оказывает вывод логов в консоль (syslog console). |
Для получения наиболее подробной информации, при диагностики неисправностей, рекомендуется использовать уровень логирования debug.
| Scroll Pagebreak |
|---|
Пример настройки логирования на внешний syslog-сервер с уровнем debug:
| Блок кода |
|---|
vesbc# configure
vesbc(config)# syslog host SYSLOG_SERVER
vesbc(config-syslog-host)# remote-address 192.168.1.1
vesbc(config-syslog-host)# severity debug
vesbc(config-syslog-host)# do commit
|
| Примечание |
|---|
В отличие от аварий, SNMP-трапы поддерживают уведомления о заблокированных объектах:
|
Конфигурирование удаленного хоста для отправки SNMP-уведомлений выполняется с помощью команды snmp-server host в CLI.
Scroll Pagebreak
...
CDR (Call Detail Record, рус. «запись сведений о звонках») — это запись, содержащая подробную информацию о совершённых вызовах.
В файл CDR записываются следующие данные:
Заголовок файла (опционален) (<hostname> CDR. File started at 'YYYYMMDDhhmmss');
Отличительный признак (опционален);
Время поступления вызова;
Время ответа на вызов;
Входящий номер вызывающего абонента;
- Исходящий номер вызывающего абонента;
Входящий номер вызываемого абонента;
Исходящий номер вызываемого абонента;
Имя trunk/user-interface вызывающего абонента;
Имя trunk/user-interface вызываемого абонента;
Длительность вызова;
Причина разъединения (согласно ITU-T Q.850);
Индикатор успешного вызова (1 — успешный, 0 — неуспешный);
Сторона-инициатор разъединения (1 — вызывающая сторона, 2 — вызываемая сторона, 3 — ESBC);
Call-ID входящего вызова;
Call-ID исходящего вызова;
Номер вызываемого абонента при переадресации;
IP-адрес шлюза вызывающего абонента;
IP-адрес шлюза вызываемого абонента;
Список IP-адресов из заголовка Record-Route при установлении соединения в направлении от вызывающего абонента;
Список IP-адресов из заголовка Via при установлении соединения в направлении от вызывающего абонента;
IP-адрес из заголовка Contact вызывающего абонента;
IP-адрес из заголовка Contact вызываемого абонента.
Значения параметров в файле CDR записываются в указанном выше порядке и разделяются символом ";".
| Информация |
|---|
Запись "Номер вызываемого абонента при переадресации" создается только, при включенной локальной обработке 3xx ответа в настройках sip profile. |
Хранение записей CDR осуществляется в локальном хранилище ESBC или на внешнем USB-накопителе.
Отправка на внешний сервер осуществляется по протоколу FTP, SFTP и SCP. Поддерживается отправка на два FTP-сервера, два SFTP-сервера и два SCP-сервера одновременно.
Дополнительно поддерживается сохранение и отправка CDR в SYSLOG. Для отправки в SYSLOG требуется дополнительная конфигурация syslog.
Описание всех команд для настройки CDR приведено в разделе Настройки CDR.
Пример настройки записи CDR с опциональными полями, локальным хранением и отправкой на сервер FTP с резервированием в случае неудачной отправки приведен ниже.
| Блок кода | ||
|---|---|---|
| ||
vesbc# vesbc# configure vesbc(config)# esbc vesbc(config-esbc)# cdr vesbc(config-esbc-cdr)# enable #Добавление заголовка в CDR-запись: vesbc(config-esbc-cdr)# add-header #Запись неудачных вызовов: vesbc(config-esbc-cdr)# collect unsuccess #Запись пустых CDR: vesbc(config-esbc-cdr)# collect empty-files #Режим создания записей: vesbc(config-esbc-cdr)# create-mode periodically vesbc(config-esbc-cdr)# per days 1 vesbc(config-esbc-cdr)# period hours 12 vesbc(config-esbc-cdr)# per minutes 30 #Включение отправки логов: vesbc(config-esbc-cdr)# syslog enable #Добавление отличительного признака: vesbc(config-esbc-cdr)# signature otlichitelnyi_priznak #Настройка локального хранения: vesbc(config-esbc-cdr)# local vesbc(config-esbc-cdr-local)# create-directories by-date vesbc(config-esbc-cdr-local)# keep days 30 vesbc(config-esbc-cdr-local)# keep hours 12 vesbc(config-esbc-cdr-local)# keep minutes 30 vesbc(config-esbc-cdr-local)# path flash:cdr/cdr_record vesbc(config-esbc-cdr-local)# save vesbc(config-esbc-cdr-local)# exit #Настройка основного FTP-сервера: vesbc(config-esbc-cdr)# ftp vesbc(config-esbc-cdr-ftp)# login main_ftp_server vesbc(config-esbc-cdr-ftp)# password password_m_ftp vesbc(config-esbc-cdr-ftp)# path /main_ftp/cdr_record vesbc(config-esbc-cdr-ftp)# remote address 192.168.23.100 vesbc(config-esbc-cdr-ftp)# save vesbc(config-esbc-cdr-ftp)# exit #Настройка резервного FTP-сервера: vesbc(config-esbc-cdr)# reserved-ftp vesbc(config-esbc-cdr-res-ftp)# as-reserved vesbc(config-esbc-cdr-res-ftp)# login reserve_ftp_server vesbc(config-esbc-cdr-res-ftp)# password password_r_ftp vesbc(config-esbc-cdr-res-ftp)# path /reserve_ftp/cdr_record vesbc(config-esbc-cdr-res-ftp)# remote address 192.168.23.200 vesbc(config-esbc-cdr-res-ftp)# save #Применение и подтверждение изменений: vesbc(config-esbc-cdr-res-ftp)# do commit Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds. vesbc(config-esbc-cdr-res-ftpsyslog-host)# do confirm Configuration has been confirmed. Commit timer canceled. |
Если отправка записи CDR на основной FTP-сервер (192.168.23.100) по какой-либо причине не произойдет, то она попытается отправиться на резервный FTP-сервер (192.168.23.200), в случае неудачи и на резервном, запись сохранится только локально.
Пример записи файла CDR
На ESBC настроена следующая конфигурация CDR:
| Блок кода |
|---|
cdr
enable
add-header
signature test_signature
period minutes 1
local
save
path flash:cdr/
create-directories by-date
keep days 1
exit
exit |
После совершения успешного вызова длительностью 5 секунд, с номера 241 на номер 231 будет сформирован файл CDR (через 1 минуту) вида:
| Блок кода |
|---|
vesbc CDR. File started at '20260320050817'
test_signature
2026-03-20 05:07:45;2026-03-20 05:07:53;241;241;231;231;UAC;UAS;000005;016;1;1;974433e3-9ebd-123f-7cb4-ecb1e029e6ba;93a6cc0da4e18d8ad308b277e3434d53;;192.168.1.6;192.168.1.2;;192.168.1.6;192.168.1.6;192.168.12.2; |
...
Логирование ESBC осуществляется с помощью syslog. Более подробно настройки syslog описаны в разделе Управление SYSLOG справочника команд CLI.
По умолчанию логирование модулей ESBC выключено.
| Предупреждение |
|---|
Включение логирования всех модулей при большой вызывной нагрузке может повлиять на производительность системы. Наибольшее влияние на производительность оказывает вывод логов в консоль (syslog console). |
Модули, входящие в состав 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
...
модуль мониторинга
...
обеспечение функции мониторинга и сбора статистики
...
esbc_aaa
...
модуль aaa
...
Модули, входящие в состав 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 | модуль мониторинга | обеспечение функции мониторинга и сбора статистики |
esbc_aaa | модуль aaa | аутентификация, хранение информации о вызовах |
stun_server | модуль stun-server | обработка запросов STUN в режиме сервера |
| 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_aaa:
vesbc(debug)# debug esbc aaa
#Включение логирования модуля 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
#Включение логирования модуля stun_server:
vesbc(debug)# debug esbc stun-server |
Для отключения логирования модулей ESBC используется команда, аналогичная включению, с приставкой no:
| Блок кода |
|---|
#Выключение логирования модуля esbc_voip_guard:
vesbc(debug)# no debug esbc voip-guard |
Для установки параметров логирования по умолчанию используется команда no debug all. Данная команда отключает логирование всех модулей ESBC.
| Примечание |
|---|
С целью исключения повышенной нагрузки на устройство, рекомендуется отключать логирование модулей ESBC (no debug all) сразу после получения логов, необходимых для анализа неисправности. |
Изменение количества модулейЯкорь count count
| count | |
| count |
При обработке сигнального SIP-трафика и медиапотоков RTP, ресурсы CPU используются разными модулями ESBC. Соответственно для оптимизации нагрузки на CPU предусмотрена возможность управлять количеством модулей.
При высокой нагрузке сигнальным SIP-трафиком наибольшую нагрузку на ядро CPU производит модуль sip worker, а при большом количестве одновременных вызовов (особенно в режиме транскодирования медиа) — media worker.
Поэтому для установления баланса производительности, для многоядерных систем следует использовать оптимальное количество каждого из модулей, т. к. каждый дополнительный экземпляр модуля будет использовать ресурс дополнительного ядра CPU системы.
По умолчанию в системе используется по одному экземпляру каждого модуля.
Список модулей, количество которых можно изменить:
- core
- sip worker
- sip balancer
- media worker
- media balancer
- stun server
Максимальное количество модулей определяется динамически в зависимости от количества ядер CPU.
| Предупреждение |
|---|
После изменения количества модулей для стабильной работы необходим перезапуск ПО ESBC. |
| Примечание |
|---|
Заданное в конфигурации количество модулей не изменяется при увеличении/уменьшении количества ядер CPU системы. |
Описание всех команд для настройки количества модулей приведено в разделе Общие настройки ESBC.
| Scroll Pagebreak |
|---|
Пример:
| Блок кода | ||
|---|---|---|
| ||
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. |
Scroll Pagebreak
Настройка VPN (PPTP и L2TP over IPSec)Якорь esbc_vpn esbc_vpn
| esbc_vpn | |
| esbc_vpn |
Для организации абонентских и транковых подключений, с целю передачи сигнального (SIP) и медиа (RTP) трафика через VPN-соединение, ESBC поддерживает работу в следующих режимах:
- PPTP-сервер
- PPTP-клиент
- L2TP-сервер
- L2TP-клиент
Подробное описание настройки каждого из режимов приведено в разделе Управление удаленным доступом документации ESR.
Описание всех команд приведено в разделе Управление VPN. Настройки удаленного доступа справочника команд CLI.
Общий порядок настройки VPN:
- Базовая настройка сети (конфигурация IP-адресов интерфейсов, настройка маршрутизации и т. д.).
- Настройка туннелирования (конфигурация PPTP/L2TP-сервера, и/или настройка PPTP/L2TP-туннелей).
- Настройка firewall для прохождения протоколов туннелирования (разрешить TCP-порт 1723, протокол GRE(47) для PPTP и UDP-порты 500, 1701, 4500 и протоколы ESP (50) и GRE (47) для L2TP).
- Настройка транков и/или абонентских интерфейсов ESBC для работы через VPN.
| Примечание |
|---|
Ниже приведены примеры настройки ESBC в качестве PPTP-сервера и в качестве PPTP-клиента. Настройки для L2TP-сервера и L2TP-клиента осуществляются аналогично. |
Пример настройки PPTP-сервера для подключения SIP-транков
Задача
Организовать подключение двух PPTP-клиентов к ESBC и использовать эти подключения в качестве SIP-транков.
IP-адрес сервера PPTP — 20.20.20.1.
Учетная запись для подключения клиента 1 – логин: pptp_user, пароль: simplepass, IP-адрес: 20.20.20.5
Учетная запись для подключения клиента 2 – логин: pptp_user2, пароль: simplepass2, IP-адрес: 20.20.20.6
Схема
Решение
Выполнить настройку сетевых интерфейсов:
| Блок кода |
|---|
vesbc# configure
vesbc(config)# interface gigabitethernet 1/0/1
vesbc(config-if-gi)# description LAN
vesbc(config-if-gi)# ip address 192.168.113.207/20
vesbc(config-if-gi)# exit
vesbc(config)# interface gigabitethernet 1/0/2
vesbc(config-if-gi)# description WAN
vesbc(config-if-gi)# ip address 10.30.101.150/24
vesbc(config-if-gi)# exit |
Выполнить настройку firewall для разрешения прохождения протокола PPTP на интерфейс gigabitethernet 1/0/2:
| Блок кода |
|---|
vesbc(config)# security zone WAN
vesbc(config-security-zone)# exit
vesbc(config)# security zone-pair WAN self
vesbc(config-security-zone-pair)# rule 10
vesbc(config-security-zone-pair-rule)# action permit
vesbc(config-security-zone-pair-rule)# match protocol gre
vesbc(config-security-zone-pair-rule)# enable
vesbc(config-security-zone-pair-rule)# exit
vesbc(config-security-zone-pair)# rule 20
vesbc(config-security-zone-pair-rule)# action permit
vesbc(config-security-zone-pair-rule)# match protocol tcp
vesbc(config-security-zone-pair-rule)# match destination-port port-range 1723
vesbc(config-security-zone-pair-rule)# enable
vesbc(config-security-zone-pair-rule)# exit
vesbc(config-security-zone-pair)# exit
vesbc(config)# |
| Scroll Pagebreak |
|---|
Поместить интерфейс gigabitethernet 1/0/2 в зону безопасности WAN:
| Блок кода |
|---|
vesbc(config)#
vesbc(config)# interface gigabitethernet 1/0/2
vesbc(config-if-gi)# security-zone WAN
vesbc(config-if-gi)# exit
vesbc(config)# |
Создать зону безопасности, к которой будут относиться сессии пользователей:
| Блок кода |
|---|
vesbc(config)#
vesbc(config)# security zone VPN_USERS
vesbc(config-security-zone)# exit
vesbc(config)# |
Выполнить настройку PPTP-сервера:
| Блок кода | ||
|---|---|---|
| ||
vesbc(config)# remote-access pptp PPTP_SERVER
vesbc(config-pptp-server)# authentication mode local
#IP-адрес PPTP-сервера:
vesbc(config-pptp-server)# local-address ip-address 20.20.20.1
#Диапазон IP-адресов, которые будут выдаваться PPTP-клиентам:
vesbc(config-pptp-server)# remote-address address-range 20.20.20.5-20.20.20.6
#IP-адрес ESBC для организации подключения по протоколу PPTP:
vesbc(config-pptp-server)# outside-address ip-address 10.30.101.150
vesbc(config-pptp-server)# security-zone VPN_USERS
#Создание и настройка учетной записи клиента pptp_user:
vesbc(config-pptp-server)# username pptp_user
vesbc(config-ppp-user)# password ascii-text simplepass
#Указать, какой именно IP-адрес из диапазона будет выдан клиенту pptp_user:
vesbc(config-ppp-user)# remote address 20.20.20.5
vesbc(config-ppp-user)# enable
vesbc(config-ppp-user)# exit
#Создание и настройка учетной записи клиента pptp_user2:
vesbc(config-pptp-server)# username pptp_user2
vesbc(config-ppp-user)# password ascii-text simplepass2
#Указать, какой именно IP-адрес из диапазона будет выдан клиенту pptp_user2:
vesbc(config-ppp-user)# remote address 20.20.20.6
vesbc(config-ppp-user)# enable
vesbc(config-ppp-user)# exit
vesbc(config-pptp-server)# enable
vesbc(config-pptp-server)# exit
vesbc(config)# |
| Scroll Pagebreak |
|---|
| Примечание |
|---|
Для использования подключенных PPTP-клиентов в качестве SIP-транков следует указывать IP-адрес, который будет выдаваться сервером PPTP каждому клиенту в явном виде (команда remote address в конфигурации ppp-user). Иначе IP-адреса, выдаваемые PPTP-клиентам, будут выдаваться в случайном порядке из диапазона, указанного в настройках PPTP-сервера. В таком случае невозможно будет настроить SIP-транк до конкретного клиента, т. к. для работы в режиме транка требуется указание адреса встречной стороны. Для использования подключенных PPTP-клиентов в качестве SIP-абонентов, указывать IP-адрес в явном виде не требуется. |
Выполнить настройку транков ESBC для работы с клиентами 1 и 2:
| Блок кода | ||
|---|---|---|
| ||
esbc(config)# esbc
vesbc(config-esbc)# media resource MEDIA_PPTP
#Указать IP-адрес сервера PPTP:
vesbc(config-esbc-media-resource)# ip address 20.20.20.1
vesbc(config-esbc-media-resource)# exit
vesbc(config-esbc)# sip transport PPTP_1
#Указать IP-адрес сервера PPTP:
vesbc(config-esbc-sip-transport)# ip address 20.20.20.1
vesbc(config-esbc-sip-transport)# port 5070
vesbc(config-esbc-sip-transport)# exit
vesbc(config-esbc)# sip transport PPTP_2
#Указать IP-адрес сервера PPTP:
vesbc(config-esbc-sip-transport)# ip address 20.20.20.1
vesbc(config-esbc-sip-transport)# port 5071
vesbc(config-esbc-sip-transport)# exit
vesbc(config-esbc)# trunk sip PPTP_USER
vesbc(config-esbc-trunk-sip)# sip transport PPTP_1
vesbc(config-esbc-trunk-sip)# media resource 1 MEDIA_PPTP
#Указать IP-адрес PPTP-клиента pptp_user:
vesbc(config-esbc-trunk-sip)# remote address 20.20.20.5
vesbc(config-esbc-trunk-sip)# remote port 5080
vesbc(config-esbc-trunk-sip)# exit
vesbc(config-esbc)# trunk sip PPTP_USER2
vesbc(config-esbc-trunk-sip)# sip transport PPTP_2
vesbc(config-esbc-trunk-sip)# media resource 1 MEDIA_PPTP
#Указать IP-адрес PPTP-клиента pptp_user2:
vesbc(config-esbc-trunk-sip)# remote address 20.20.20.6
vesbc(config-esbc-trunk-sip)# remote port 5081
vesbc(config-esbc-trunk-sip)# exit
|
| Scroll Pagebreak |
|---|
Выполнить настройку ESBC для транка TRUNK_1:
| Блок кода | ||
|---|---|---|
| ||
vesbc(config-esbc)#
vesbc(config-esbc)# media resource MEDIA_TRUNK_1
vesbc(config-esbc-media-resource)# ip address 192.168.113.207
vesbc(config-esbc-media-resource)# exit
vesbc(config-esbc)# sip transport TRANSPORT_TRUNK_1
vesbc(config-esbc-sip-transport |
| 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_aaa:
vesbc(debug)# debug esbc aaa
#Включение логирования модуля 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
|
Для отключения логирования модулей ESBC используется команда, аналогичная включению, с приставкой no:
| Блок кода |
|---|
#Выключение логирования модуля esbc_voip_guard:
vesbc(debug)# no debug esbc voip-guard |
Для установки параметров логирования по умолчанию используется команда no debug all. Данная команда отключает логирование всех модулей ESBC.
| Scroll Pagebreak |
|---|
...
При обработке сигнального SIP-трафика и медиапотоков RTP, ресурсы CPU используются разными модулями ESBC. Соответственно для оптимизации нагрузки на CPU предусмотрена возможность управлять количеством модулей.
При высокой нагрузке сигнальным SIP-трафиком наибольшую нагрузку на ядро CPU производит модуль sip worker, а при большом количестве одновременных вызовов (особенно в режиме транскодирования медии) — media worker.
Поэтому для установления баланса производительности, для многоядерных систем следует использовать оптимальное количество каждого из модулей, т. к. каждый дополнительный экземпляр модуля будет использовать ресурс дополнительного ядра CPU системы.
По умолчанию в системе используется по одному экземпляру каждого модуля.
Список модулей, количество которых можно изменить:
- core
- sip worker
- sip balancer
- media worker
- media balancer
Максимальное количество модулей определяется динамически в зависимости от количества ядер CPU.
| Предупреждение |
|---|
После изменения количества модулей для стабильной работы необходим перезапуск ПО ESBC. |
| Примечание |
|---|
Заданное в конфигурации количество модулей не изменяется при увеличении/уменьшении количества ядер CPU системы. |
Описание всех команд для настройки количества модулей приведено в разделе Общие настройки ESBC.
| Scroll Pagebreak |
|---|
Пример:
| Блок кода | ||
|---|---|---|
| ||
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. |
Scroll Pagebreak
...
Для организации абонентских и транковых подключений, с целю передачи сигнального (SIP) и медиа (RTP) трафика через VPN-соединение, ESBC поддеживает работу в следующих режимах:
- PPTP-сервер
- PPTP-клиент
- L2TP-сервер
- L2TP-клиент
Подробное описанние настройки каждго из режимов приведено в разделе Управление удаленным доступом документации ESR.
Описание всех команд приведено в разделе Управление VPN. Настройки удаленного доступа справочника команд CLI.
Общий порядок настройки VPN:
- Базовая настройка сети (конфигурация IP-адресов интерфейсов, настройка маршрутизации и т.д.)
- Настройка тунелирования (конфигурация PPTP/L2TPсервера, и/или настройка PPTP/L2TP тунелей)
- Настройка firewal для прохождения протоколов тунелирования (разрешить TCP-порт 1723, протокол GRE(47) для PPTP и UDP-порты 500, 1701, 4500 и протоколы ESP (50) и GRE (47) для L2TP).
- Настройка транков и/или абонентских интерфейсов ESBC для работы через VPN.
Пример настройки PPTP-сервера для подключения SIP-транков.
Задача
Организовать подключение двух PPTP-клиентов к ESBC и использовать эти подключения в качестве SIP-транков.
IP-адрес сервера PPTP - 20.20.20.1.
Учетная запись для подключения клиента 1 – логин: pptp_user, пароль: simplepass, IP-адрес: 20.20.20.5
Учетная запись для подключения клиента 2 – логин: pptp_user2, пароль: simplepass2, IP-адрес: 20.20.20.6
Решение
Выполнить настройку сетевых интерфейсов:
| Блок кода |
|---|
vesbc# configure vesbc(config)# interface gigabitethernet 1/0/1 vesbc(config-if-gi)# description LAN vesbc(config-if-gi)# ip address 192.168.113.207/20 vesbc(config-esbc-sip-transport)# port 5090 vesbc(config-esbc-sip-transport)# exit vesbc(config-esbc)# route-table TO_PPTP_USER vesbc(config-esbc-route-table)# rule 1 vesbc(config-esbc-route-table-rule)# action direct-to-trunk PPTP_USER vesbc(config-esbc-route-table-rule)# exit vesbc(config-esbc-ifroute-gitable)# exit vesbc(config-esbc)# trunk sip TRUNK_1 vesbc(config-esbc-trunk-sip)# interfacesip gigabitethernettransport 1/0/2TRANSPORT_TRUNK_1 vesbc(config-esbc-trunk-sip)# route-table TO_PPTP_USER vesbc(config-ifesbc-trunk-gisip)# media resource description WAN1 MEDIA_TRUNK_1 vesbc(config-esbc-iftrunk-gisip)# ipremote address 10192.168.30.101.150/24113.200 vesbc(config-esbc-trunk-sip)# remote port 5091 vesbc(config-esbc-trunk-sip)# exit vesbc(config-if-giesbc)# exit vesbc(config)# |
Настроить маршрутизацию вызовов из транка PPTP_USER в транк TRUNK_1Выполнить настройку firewal для разрешения прохождения протокола PPTP на интерфейс gigabitethernet 1/0/2:
| Блок кода |
|---|
vesbc(config)# security zoneesbc WAN vesbc(config-security-zoneesbc)# exit vesbc(config)# security zone-pair WAN selfroute-table TO_TRUNK_1 vesbc(config-securityesbc-zoneroute-pairtable)# rule 101 vesbc(config-securityesbc-zoneroute-pairtable-rule)# action permit direct-to-trunk TRUNK_1 vesbc(config-securityesbc-zoneroute-pairtable-rule)# match protocol greexit vesbc(config-securityesbc-zoneroute-pair-ruletable)# enableexit vesbc(config-security-zone-pair-ruleesbc)# exit trunk sip PPTP_USER vesbc(config-securityesbc-zonetrunk-pairsip)# rule 20route-table TO_TRUNK_1 vesbc(config-securityesbc-zonetrunk-pair-rulesip)# action permitexit vesbc(config-security-zone-pair-rule)# match protocol tcp vesbc(config-security-zone-pair-rule)# match destination-port port-range 1723esbc)# exit |
Настройка маршрутизации для транка PPTP_USER2 выполняется аналогично.
| Scroll Pagebreak |
|---|
Пример настройки PPTP-клиента для подключения SIP-транков
Задача
Организовать подключение в режиме PPTP-клиента к вышестоящему серверу и использовать это подключение в качестве SIP-транка.
IP-адрес сервера PPTP — 10.30.101.150
Учетная запись для подключения клиента — логин: pptp_user, пароль: simplepass.
Схема
Решение
Выполнить настройку сетевых интерфейсов:
| Блок кода |
|---|
vesbc# configure vesbc(config)# interface gigabitethernet 1/0/1 vesbc(config-security-zone-pair-ruleif-gi)# description enableLAN vesbc(config-security-zone-pair-ruleif-gi)# exit ip address 192.168.113.208/20 vesbc(config-securityif-zone-pairgi)# exit vesbc(config)# |
...
interface gigabitethernet 1/0/2 |
...
| Блок кода |
|---|
vesbc(config)# vesbc(config-if-gi)# interface gigabitethernet 1/0/2description WAN vesbc(config-if-gi)# security-zoneip WAN address 10.30.101.151/24 vesbc(config-if-gi)# exit vesbc(config)# |
Создать зону безопасности , к которой будут относиться сессии пользователейдля PPTP-туннеля:
| Блок кода |
|---|
vesbc(config)# vesbc(config)# security zone VPNPPTP_USERSTENNEL vesbc(config-security-zone)# exit vesbc(config)# |
| Scroll Pagebreak |
|---|
Создать и настроить Выполнить настройку PPTP-сервератуннель:
| Блок кода | ||
|---|---|---|
| ||
vesbc(config)# vesbc(config)# remote-access pptp PPTP_SERVER tunnel pptp 1 vesbc(config-pptp)# security-zone PPTP_TENNEL #Указать учетные данные пользователя pptp_user: vesbc(config-pptp-server)# authentication mode local username pptp_user password ascii-text simplepass #Указать IP-адрес PPTP-сервера: vesbc(config-pptp-server)# local-addressremote ip-address 2010.2030.20.1 # IP-адрес 101.150 vesbc(config-pptp)# ignore default-route vesbc(config-pptp)# enable vesbc(config-pptp)# exit vesbc(config)# |
Выполнить настройку транка ESBC для работы через PPTP-туннель:
| Блок кода | ||
|---|---|---|
| ||
vesbc# configure vesbc(config)# esbc vesbc(config-esbc)# media resource MEDIA_PPTP #Указать туннель pptp 1:PPTP-сервера #Диапазон IP-адресов которые будут выдаваться PPTP-клиентам vesbc(config-pptpesbc-media-serverresource)# ip remote-address address-range 20.20.20.5-20.20.20.6 #IP-адрес ESBC для организации подключения по протоколу PPTP vesbc(config-pptp-server)# outside-address ip-address 192.168.113.207 vesbc(config-pptp-server)# security-zone VPN_USERS #Создание и настройка учетной записи клиента pptp_user vesbc(config-pptp-server)# username pptp_user vesbc(config-ppp-user)# password ascii-text simplepass # Указать какой именно IP-адрес из диапазона будет выдан клиенту pptp_user vesbc(config-ppp-user interface pptp 1 vesbc(config-esbc-media-resource)# exit vesbc(config-esbc)# sip transport PPTP #Указать туннель pptp 1: vesbc(config-esbc-sip-transport)# ip address interface pptp 1 vesbc(config-esbc-sip-transport)# port 5080 vesbc(config-esbc-sip-transport)# exit vesbc(config-esbc)# trunk sip PPTP vesbc(config-esbc-trunk-sip)# sip transport PPTP vesbc(config-esbc-trunk-sip)# media resource 0 MEDIA_PPTP #Указать Remote IP PPTP-туннеля: vesbc(config-esbc-trunk-sip)# remote address 20.20.20.5 1 vesbc(config-pppesbc-trunk-usersip)# remote enableport 5070 vesbc(config-pppesbc-trunk-usersip)# exit #Создание и настройка учетной записи клиента pptp_user2 vesbc(config-pptp-server)# username pptp_user2 vesbc(config-ppp-user)# password ascii-text simplepass2 # Указать какой именно IP-адрес из диапазона будет выдан клиенту pptp_user2 vesbc(config-ppp-user)# remote address 20.20.20.6 vesbc(config-ppp-user)# enable vesbc(config-ppp-user)# exit vesbc(config-pptp-server)# enable vesbc(config-pptp-server)# exit vesbc(config)# |
| Примечание |
|---|
Для использования подключенных PPTP-клиентов в качестве SIP-транков следует указывать IP-адрес, который будет выдвваться сервером PPTP каждому клиенту, в явном виде (команда remote address в конфигурации ppp-user ). Иначе IP-адреса, выдаваемые PPTP-клиентам будут выдаваться в случайном порядке из диапазона указанного в настроках PPTP-сервера. В таком случае невозможно будет настроить SIP-транк до конкретного клиента, т.к. для работы в режиме транка требуется указание адреса встречной стороны. |
vesbc(config-esbc)# |
| Примечание |
|---|
IP-адреса (Local и Remote) PPTP-туннеля можно узнать командой show tunnels status. |
| Блок кода |
|---|
vesbc# show tunnels status
Tunnel Admin Link MTU Local IP Remote IP Last change
State State (d,h:m:s)
--------- ----- ----- ------ ----------- ----------- -------------
pptp 1 Up Up 1500 20.20.20.5 20.20.20.1 00,00:13:35 |
| Scroll Pagebreak |
|---|
Выполнить настройку ESBC для транка TRUNK_1:Выполнить настройку ESBC
| Блок кода | ||
|---|---|---|
| ||
esbcvesbc(config)# esbc vesbc(config-esbc)# media resource MEDIA_PPTP #Указать IP-адрес сервера PPTPTRUNK_1 vesbc(config-esbc-media-resource)# ip address 20192.20168.20113.1208 vesbc(config-esbc-media-resource)# exit vesbc(config-esbc)# sip transport PPTPTRANSPORT_TRUNK_1 #Указать IP-адрес сервера PPTP vesbc(config-esbc-sip-transport)# ip address 20192.20168.20113.1208 vesbc(config-esbc-sip-transport)# port 50705091 vesbc(config-esbc-sip-transport)# exit vesbc(config-esbc)# sip transport PPTP_2 #Указать IP-адрес сервера PPTProute-table TO_PPTP vesbc(config-esbc-route-table)# rule 1 vesbc(config-esbc-route-siptable-transportrule)# ip address 20.20.20.1action direct-to-trunk PPTP vesbc(config-esbc-route-siptable-transportrule)# port 5071exit vesbc(config-esbc-siproute-transporttable)# exit vesbc(config-esbc)# trunk sip PPTPTRUNK_USER1 vesbc(config-esbc-trunk-sip)# sip transport PPTP_1TRANSPORT_TRUNK_1 vesbc(config-esbc-trunk-sip)# route-table TO_PPTP vesbc(config-esbc-trunk-sip)# media resource 1 MEDIA_PPTP #Указать IP-адрес PPTP-клиента pptp_userTRUNK_1 vesbc(config-esbc-trunk-sip)# remote address 20192.20168.20113.5200 vesbc(config-esbc-trunk-sip)# remote port 50805092 vesbc(config-esbc-trunk-sip)# exit vesbc(config-esbc)# trunk sip PPTP_USER2exit vesbc(config)# |
Настроить маршрутизацию вызовов из транка PPTP в транк TRUNK_1:
| Блок кода |
|---|
vesbc(config)# esbc vesbc(config-esbc-trunk-sip)# sip transport PPTP_2route-table TO_TRUNK_1 vesbc(config-esbc-trunkroute-siptable)# mediarule resource 1 MEDIA_PPTP #Указать IP-адрес PPTP-клиента pptp_user21 vesbc(config-esbc-route-table-rule)# action direct-to-trunk TRUNK_1 vesbc(config-esbc-trunkroute-table-siprule)# remote address 20.20.20.6exit vesbc(config-esbc-trunk-sip-route-table)# exit vesbc(config-esbc)# remotetrunk portsip 5081PPTP vesbc(config-esbc-trunk-sip)# exit route-table TO_TRUNK_1 vesbc(config-esbc-trunk-sip)# exit vesbc(config-esbc)# exit |
Scroll Pagebreak
Примеры настройки ESBC Якорь ESBC_set_examples ESBC_set_examples
| ESBC_set_examples | |
| ESBC_set_examples |
...
9. Создать таблицу маршрутизации и добавить туда в нее правила, по которым вызовы, приходящие с абонентов будут маршрутизироваться на SSW:
...
| Блок кода |
|---|
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 |
...
9. Создать таблицу маршрутизации и добавить туда в нее правила, по которым вызовы, приходящие с транкового шлюза, будут маршрутизироваться на SSW:
...
10. Создать таблицу маршрутизации и добавить туда в нее правила, по которым вызовы, приходящие с SSW, будут маршрутизироваться на транковый шлюз:
...
10. Создать таблицу маршрутизации и добавить туда в нее правила, по которым вызовы, приходящие с абонентов, будут маршрутизироваться на SSW:
| Блок кода |
|---|
vesbc# vesbc# configure vesbc(config)# esbc vesbc(config-esbc)# route-table TO_SSW vesbc(config-esbc-route-table)# rule 0 vesbc(config-esbc-route-table-rule)# action direct-to-trunk TRUNK_SSW |
...
























































