Настройка E-SBC для SIP-абонентов
Схема применения:
Описание:
Абонентский шлюз/SIP-абоненты отправляют сообщение на IP-адрес 192.168.20.120 порт 5062, E-SBC пересылает данный трафик с IP-адреса 192.168.16.113 порт 5061 на адрес Softswitch 192.168.16.65 порт 5060.
Для реализации данной схемы общий алгоритм настройки следующий:
- Настроить сетевые интерфейсы на E-SBC в сторону SSW и в сторону SIP-абонентов.
- Создать SIP-транспорт в сторону SSW и SIP-абонентов.
- Создать медиаресурсы для обоих направлений, назначить им диапазон портов для передачи голоса.
- Создать SIP-Users и SIP-trunk.
- Создать правила, по которым будут маршрутизироваться вызовы от абонентов до SSW.
Порядок конфигурирования E-SBC:
1. Пробросить сетевые интерфейсы в vESR по инструкции:
gi1/0/1 — внутренний сетевой интерфейс до SSW;
gi1/0/2 — внешний сетевой интерфейс для абонентов.
2. Настроить IP-адрес на интерфейсе в сторону SSW:
vesr# configure vesr(config)# interface gigabitethernet 1/0/1 vesr(config-if-gi)# description "SSW" vesr(config-if-gi)# ip address 192.168.16.113/24 vesr(config-if-gi)# ip firewall disable
3. Настроить IP-адрес на внешнем интерфейсе в сторону абонентов:
vesr# configure vesr(config)# interface gigabitethernet 1/0/2 vesr(config-if-gi)# description "ABONENTS" vesr(config-if-gi)# ip address 192.168.20.120/24
4. Создать SIP-транспорт в сторону SSW:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# sip-transport TRANSPORT_SSW vesr(config-esbc-sip-transport)# ip-address 192.168.16.113 vesr(config-esbc-sip-transport)# port 5061
5. Создать SIP-транспорт в сторону абонентов:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# sip-transport TRANSPORT_ABONENTS vesr(config-esbc-sip-transport)# ip-address 192.168.20.120 vesr(config-esbc-sip-transport)# port 5062
6. Создать медиаресурсы для согласования и передачи голоса на плече SSW --- E-SBC:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# media-resource MEDIA_SSW vesr(config-esbc-media-resource)# ip-address 192.168.16.113 # указать диапазон портов, который будет выделяться на E-SBC для передачи голоса. Данная команда необязательная, если ее не указывать будет использоваться диапазон портов 8000–65535 vesr(config-esbc-media-resource)# port-range 1024-65535
7. Создать медиаресурсы для согласования и передачи голоса на плече E-SBC --- Абонентский шлюз/SIP-абоненты:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# media-resource MEDIA_ABONENTS vesr(config-esbc-media-resource)# ip-address 192.168.20.120
8. Создать SIP-trunk в сторону SSW:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# trunk sip TRUNK_SSW vesr(config-esbc-trunk-sip)# sip-transport TRANSPORT_SSW vesr(config-esbc-trunk-sip)# remote addr 192.168.16.65 vesr(config-esbc-trunk-sip)# remote port 5060 vesr(config-esbc-trunk-sip)# media resource 0 MEDIA_SSW
9. Создать user-interface в сторону абонентов:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# user-interface sip ABONENTS vesr(config-esbc-trunk-sip)# sip-transport TRANSPORT_ABONENTS vesr(config-esbc-trunk-sip)# media resource 0 MEDIA_ABONENTS # Если абоненты находятся за NAT выполнить команду: vesr(config-esbc-user-interface-sip)# nat-comedia-mode on
10. Создать таблицу маршрутизации и добавить туда правила, по которым вызовы, приходящие с абонентов будут маршрутизироваться на SSW:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# route-table TO_SSW vesr(config-esbc-route-table)# rule 0 vesr(config-esbc-route-table-rule)# action direct-to-trunk TRUNK_SSW
11. Привязать созданную таблицу маршрутизации к user-interface:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# user-interface sip ABONENTS vesr(config-esbc-user-interface-sip)# route-table TO_SSW
12. Применить конфигурацию и подтвердить изменения:
vesr# commit vesr# confirm
Настройка E-SBC для SIP-транков
Схема применения:
Описание:
Транковый шлюз отправляет сообщения с IP-адреса 192.168.20.99 порта 5060 на IP-адрес 192.168.20.120 порт 5067, E-SBC пересылает данный трафик с IP-адреса 192.168.16.113 порта 5065 на адрес Softswitch 192.168.16.65 порт 5060. И в обратную сторону SSW отправляет сообщения с IP-адреса 192.168.16.65 порта 5060 на IP-адрес 192.168.16.113 порт 5065, E-SBC пересылает данный трафик с IP-адреса 192.168.20.120 порта 5067 на адрес транкового шлюза 192.168.20.99 порт 5060.
Для реализации данной схемы общий алгоритм настройки следующий:
- Настроить сетевые интерфейсы на E-SBC в сторону SSW и в сторону транкового шлюза.
- Создать SIP-транспорт в сторону SSW и транкового шлюза.
- Создать медиаресурсы для обоих направлений, назначить им диапазон портов для передачи голоса.
- Создать 2 SIP-trunk в сторону SSW и в сторону транкового шлюза.
- Создать правила, по которым будут маршрутизироваться вызовы от транкового шлюза до SSW и наоборот от SSW до транкового шлюза.
Порядок конфигурирования E-SBC:
1. Пробросить сетевые интерфейсы в vESR по инструкции:
gi1/0/1 — сетевой интерфейс до SSW;
gi1/0/2 — сетевой интерфейс до транкового шлюза.
2. Настроить IP-адрес на интерфейсе в сторону SSW:
vesr# configure vesr(config)# interface gigabitethernet 1/0/1 vesr(config-if-gi)# description "SSW" vesr(config-if-gi)# ip address 192.168.16.113/24
3. Настроить IP-адрес на интерфейсе в сторону транкового шлюза:
vesr# configure vesr(config)# interface gigabitethernet 1/0/2 vesr(config-if-gi)# description "TRUNK_GATEWAY" vesr(config-if-gi)# ip address 192.168.20.120/24
4. Создать SIP-транспорт в сторону SSW:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# sip-transport TRANSPORT_SSW vesr(config-esbc-sip-transport)# ip-address 192.168.16.113 vesr(config-esbc-sip-transport)# port 5065
5. Создать SIP-транспорт в сторону транкового шлюза:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# sip-transport TRANSPORT_TRUNK_GATEWAY vesr(config-esbc-sip-transport)# ip-address 192.168.20.120 vesr(config-esbc-sip-transport)# port 5067
6. Создать медиаресурсы для согласования и передачи голоса на плече SSW --- E-SBC:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# media-resource MEDIA_SSW vesr(config-esbc-media-resource)# ip-address 192.168.16.113 # Указать диапазон портов, который будет выделяться на E-SBC для передачи голоса. Данная команда необязательная, если ее не указывать будет использоваться диапазон портов 8000–65535 vesr(config-esbc-media-resource)# port-range 1024-65535
7. Создать медиаресурсы для согласования и передачи голоса на плече E-SBC --- Транковый шлюз:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# media-resource MEDIA_TRUNK_GATEWAY vesr(config-esbc-media-resource)# ip-address 192.168.20.120
8. Создать SIP-trunk в сторону SSW:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# trunk sip TRUNK_SSW vesr(config-esbc-trunk-sip)# sip-transport TRANSPORT_SSW vesr(config-esbc-trunk-sip)# remote addr 192.168.16.65 vesr(config-esbc-trunk-sip)# remote port 5060 vesr(config-esbc-trunk-sip)# media resource 0 MEDIA_SSW
9. Создать SIP-trunk в сторону транкового шлюза:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# trunk sip TRUNK_GATEWAY vesr(config-esbc-trunk-sip)# sip-transport TRANSPORT_TRUNK_GATEWAY vesr(config-esbc-trunk-sip)# remote addr 192.168.20.99 vesr(config-esbc-trunk-sip)# remote port 5060 vesr(config-esbc-trunk-sip)# media resource 0 MEDIA_TRUNK_GATEWAY
10. Создать таблицу маршрутизации и добавить туда правила, по которым вызовы, приходящие с транкового шлюза будут маршрутизироваться на SSW:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# route-table TO_SSW vesr(config-esbc-route-table)# rule 0 vesr(config-esbc-route-table-rule)# action direct-to-trunk TRUNK_SSW
11. Создать таблицу маршрутизации и добавить туда правила, по которым вызовы, приходящие с SSW будут маршрутизироваться на транковый шлюз:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# route-table TO_TRUNK_GATEWAY vesr(config-esbc-route-table)# rule 0 vesr(config-esbc-route-table-rule)# action direct-to-trunk TRUNK_GATEWAY
12. Привязать созданные таблицы маршрутизации к транкам:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# trunk sip TRUNK_SSW vesr(config-esbc-trunk-sip)# route-table TO_TRUNK_GATEWAY vesr(config-esbc-trunk-sip)# exit vesr(config-esbc)# trunk sip TRUNK_GATEWAY vesr(config-esbc-trunk-sip)# route-table TO_SSW
13. Применить конфигурацию и подтвердить изменения:
vesr# commit vesr# confirm
Создание/конфигурирование медиаресурсов (media resources)
Медиаресурсы представляют собой диапазоны UDP-портов и IP-адресов, используемых E-SBC для передачи/получения потоков RTP.
Пример:
Требуется, чтобы E-SBC для передачи медиатрафика использовал IP-адрес 192.168.16.113 и порты с 20000 до 30000.
Решение:
Перейти к настройкам модуля управления конфигурацией E-SBC:
vesr# vesr# configure vesr(config)# esbc
Создать и настроить соответствующим образом медиаресурс:
#Создание/переход в настройки медиаресурса MEDIA_1: vesr(config-esbc)# media-resource MEDIA_1 #Назначить IP-адрес 192.168.16.113 для использования в медиаресурсах: vesr(config-esbc-media-resource)# ip-address 192.168.16.113 #Настроить диапазон UDP-портов с 20000 до 30000 для использовании в медиаресурсах: vesr(config-esbc-media-resource)# port-range 20000-30000
После привязки созданного медиаресурса к какому-либо направлению (транку, транковой группе или user-interface), он будет использоваться для передачи/получения потоков RTP на выбранных направлениях.
При использовании одинакового IP-адреса для разных медиаресурсов не допускается пересечение диапазонов портов между этими ресурсами.
Создание/конфигурирование SIP-транспорта (sip-transport)
SIP-транспорт представляет точку входа/выхода сигнализации, т. е. это IP-адрес и порт, с которого E-SBC будет отправлять и на который будет принимать сигнальные сообщения.
Пример:
Требуется, чтобы E-SBC для передачи/приема сигнальных сообщений на встречную сторону использовал IP-адрес 192.168.16.113 порт 5065.
Решение:
Перейти к настройкам модуля управления конфигурацией E-SBC:
vesr# vesr# configure vesr(config)# esbc
Создать и настроить соответствующим образом SIP-транспорт:
#Создание/переход в настройки sip-транспорта NEW_TRANSPORT: vesr(config-esbc)# sip-transport NEW_TRANSPORT #Назначить IP-адрес 192.168.16.113 для использования SIP-транспортом: vesr(config-esbc-sip-transport)# ip-address 192.168.16.113 #Назначить порт 5065 для использования SIP-транспортом: vesr(config-esbc-sip-transport)# port 5065 #Выбрать протокол транспортного уровня, используемый для приема/передачи сообщений SIP: vesr(config-esbc-sip-transport)# mode udp-prefer
После привязки созданного SIP-транспорта к какому-либо направлению (транку или user-interface) он будет использоваться для передачи/получения сигнальных SIP-сообщений на выбранных направлениях.
Поддержано несколько режимов работы с протоколами транспортного уровня, конфигурируется командой mode из примера выше. Режимы работы следующие:
- tcp-only — использовать только TCP-протокол;
- tcp-prefer — прием по UDP и TCP. Отправка по TCP. В случае, если не удалось установить соединение по TCP, отправка производится по UDP;
- tls — использовать tls;
- udp-only — использовать только UDP-протокол;
- udp-prefer — прием по UDP и TCP. Отправка пакетов более 1300 байт по TCP, менее 1300 байт — по UDP.
Создание/конфигурирование транковых групп (trunk-group)
Транк-группа представляет собой набор транков различного типа (в текущей версии поддерживается только SIP-транк) и алгоритм балансировки нагрузки между ними.
Помимо этого группа содержит набор следующих настроек:
- Таблица маршрутизации;
- Медиапрофиль;
- Медиаресурсы;
- SIP-профиль;
- Таблицы модификации всех типов как для пре-роутинга так и для пост-роутинга.
В текущей версии балансировка вызовов осуществляется алгоритмом round-robin.
Логика работы:
Все перечисленные в предыдущем пункте настройки являются общими для всех транков, включенных в состав транковой группы. Это значит, что при отсутствии у транка, входящего в состав транковой группы, какой-либо из перечисленных настроек, будет использоваться настройка из транковой группы. Такой подход позволяет создавать множество транков с минимальным набором настроек, и, объединяя их в транковую группу, производить донастройку через нее. При необходимости изменить какие-либо параметры отдельно взятых транков из группы можно провести индивидуальную настройку, используя настройки на транках.
Пример работы общих настроек:
Схема:
На E-SBC настроена транковая группа TG_SSW, в состав которой входят 2 транка TRUNK_SSW1 и TRUNK_SSW2, также настроен еще один транк TRUNK_IN, который не входит в состав транковой группы. Требуется настроить схему таким образом, чтобы вызовы, которые пришли с TRUNK_IN, маршрутизировались на TG_SSW, и наоборот, вызовы, которые пришли с TRUNK_SSW1 и TRUNK_SSW2, маршрутизировались на TRUNK_IN.
Решение:
1. Создать SIP-транспорт в сторону TRUNK_SSW1 и TRUNK_SSW2:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# sip-transport TRANSPORT_SSW vesr(config-esbc-sip-transport)# ip-address 192.168.16.113 vesr(config-esbc-sip-transport)# port 5065
2. Создать SIP-транспорт в сторону TRUNK_IN:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# sip-transport TRANSPORT_TRUNK_IN vesr(config-esbc-sip-transport)# ip-address 192.168.20.120 vesr(config-esbc-sip-transport)# port 5067
3. Создать медиаресурсы для согласования и передачи голоса на плече TRUNK_IN --- E-SBC:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# media-resource MEDIA_TRUNK_IN vesr(config-esbc-media-resource)# ip-address 192.168.20.120
4. Создать медиаресурсы для согласования и передачи голоса на плече E-SBC --- TG_SSW:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# media-resource MEDIA_TG_SSW vesr(config-esbc-media-resource)# ip-address 192.168.16.113
5. Создать SIP-trunk в сторону TRUNK_IN:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# trunk sip TRUNK_IN vesr(config-esbc-trunk-sip)# sip-transport TRANSPORT_TRUNK_IN vesr(config-esbc-trunk-sip)# remote addr 192.168.20.99 vesr(config-esbc-trunk-sip)# remote port 5060 vesr(config-esbc-trunk-sip)# media resource 0 MEDIA_TRUNK_IN
6. Создать SIP-trunk в сторону TRUNK_SSW1 и TRUNK_SSW2:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# trunk sip TRUNK_SSW1 vesr(config-esbc-trunk-sip)# sip-transport TRANSPORT_SSW vesr(config-esbc-trunk-sip)# remote addr 192.168.16.115 vesr(config-esbc-trunk-sip)# remote port 5060 vesr(config-esbc-trunk-sip)# exit vesr(config-esbc)# trunk sip TRUNK_SSW2 vesr(config-esbc-trunk-sip)# sip-transport TRANSPORT_SSW vesr(config-esbc-trunk-sip)# remote addr 192.168.16.116 vesr(config-esbc-trunk-sip)# remote port 5060
7. Создать транковую группу TG_SSW и добавить туда транки TRUNK_SSW1 и TRUNK_SSW2:
vesr# vesr# configure vesr(config)# esbc #Создание и переход в настройки транковой группы TG_SSW: vesr(config-esbc)# trunk-group TG_SSW #Добавление в состав транковой группы транков TRUNK_SSW1 и TRUNK_SSW2: vesr(config-esbc-trunk-group)# trunk 0 TRUNK_SSW1 vesr(config-esbc-trunk-group)# trunk 1 TRUNK_SSW2 #Добавление медиаресурсов: vesr(config-esbc-trunk-group)# media-resource 0 MEDIA_TG_SSW
8. Создать таблицу маршрутизации и добавить туда правила, по которым вызовы, приходящие с транка TRUNK_IN, будут маршрутизироваться в транковую группу TG_SSW:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# route-table TO_TG_SSW vesr(config-esbc-route-table)# rule 0 vesr(config-esbc-route-table-rule)# action direct-to-trunk-group TG_SSW
9. Создать таблицу маршрутизации и добавить туда правила, по которым вызовы, приходящие с TG_SSW, будут маршрутизироваться в транк TRUNK_IN:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# route-table TO_TRUNK_IN vesr(config-esbc-route-table)# rule 0 vesr(config-esbc-route-table-rule)# action direct-to-trunk TRUNK_IN
10. Привязать созданные таблицы маршрутизации к транку TRUNK_IN и транковой группе TG_SSW:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# trunk sip TRUNK_IN vesr(config-esbc-trunk-sip)# route-table TO_TG_SSW vesr(config-esbc-trunk-sip)# exit vesr(config-esbc)# trunk-group TG_SSW vesr(config-esbc-trunk-sip)# route-table TO_TRUNK_IN
11. Применить конфигурацию и подтвердить изменения:
vesr# commit vesr# confirm
На шаге 7 при создании транков, в конфигурацию транков не были добавлены медиаресурсы и таблица маршрутизации. Но эти настройки есть в транковой группе TG_SSW, куда включены оба транка. Поэтому при поступлении вызовов с этих транков они будут маршрутизироваться по таблице маршрутизации, которая привязана к TG_SSW, медиаресурсы для согласования и передачи RTP также будут браться из транковой группы TG_SSW.
В случае если необходимо, чтобы один из транков, входящих в состав транковой группы, при поступлении на него входящих вызовов маршрутизировался по другой таблице маршрутизации или использовал другие медиаресурсы, нужно добавить соответствующие настройки в данный транк. Настройки транковой группы при этом не меняются, т. к. настройки транка в приоритете.
Логика работы транковой группы для распределения вызовов на транки, входящие в ее состав
1. Распределение вызовов без использования алгоритма балансировки:
Все исходящие вызовы, маршрутизируемые через транковую группу, используют первый транк в группе. В случае недоступности транка или при совпадении ответа с маской из списка причин отбоя, вызов будет направлен через следующий транк в группе.
Пример:
На E-SBC натроена транковая группа TRUNK_GROUP, в состав которой входят 3 транка (TRUNK_1, TRUNK_2 и TRUNK_3). Приходит вызов и по правилу маршрутизации уходит на эту транковую группу. В результате E-SBC совершает попытку вызова в первый транк в составе транковой группы (TRUNK_1), если транк недоступен, то происходит попытка позвонить во второй транк (TRUNK_2). Если попытка вызова также неуспешна, то будет попытка позвонить в последний транк (TRUNK_3). Если попытка также неуспешна, то вызов на первом плече отбивается. Если на каком-то из транков пришел ответ 200ОК, то вызов устанавливается.
Все последующие вызовы также будут сначала отправлены в TRUNK_1, и только в случае неудачи будут попытки позвонить в TRUNK_2 и TRUNK_3.
2. Распределение вызовов без использования алгоритма балансировки, но с включенной опцией pick-once:
Все исходящие вызовы, маршрутизируемые через транковую группу, используют первый транк в группе. В случае недоступности транка или при совпадении ответа с маской из списка причин отбоя, вызов НЕ будет направлен через следующий транк в группе, вызов на первом плече сразу отбивается.
Опцию pick-once можно включить в настройках таблицы маршрутизации при выборе действия direct-to-trunk-group:
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# route-table TO_TG_SSW vesr(config-esbc-route-table)# rule 0 #Включение опции pick-once при создании правила маршрутизации на транковую группу TG_SSW: vesr(config-esbc-route-table-rule)# action direct-to-trunk-group TG_SSW pick-once
3. Распределение вызовов с использованием алгоритма балансировки round-robin (опция pick-once выключена):
Каждый последующий исходящий вызов, маршрутизируемый через транковую группу, используют следующий транк в группе независимо от результата маршрутизации предыдущего вызова в данную транковую группу. В случае недоступности транка или при совпадении ответа с маской из списка причин отбоя, вызов будет направлен через следующий транк в группе.
Пример:
На E-SBC настроена транковая группа TRUNK_GROUP, в состав которой входят 3 транка (TRUNK_1, TRUNK_2 и TRUNK_3). Приходит вызов и по правилу маршрутизации уходит на эту транковую группу. В результате E-SBC совершает попытку вызова в первый транк в составе транковой группы (TRUNK_1), если вызов неуспешный(транк недоступен или ответ совпал с маской из списка причин отбоя), то происходит попытка позвонить во второй транк (TRUNK_2). Если попытка вызова также неуспешна, то будет попытка позвонить в последний транк (TRUNK_3). Если попытка также неуспешна, то вызов на первом плече отбивается. Если на каком-то из транков пришел ответ 200ОК, то вызов устанавливается.
Второй вызов, который смаршрутизировался на данную транковую группу, сначала уйдет на TRUNK_2. Если вызов неуспешный, то E-SBC совершит попытку позвонить в TRUNK_3 и потом в TRUNK_1. Если попытки неуспешны, то вызов на первом плече отбивается. По такому же принципу третий вызов сначала распределится в TRUNK_3, четвертый вызов — в TRUNK_1 и т. д.
Опция балансировки round-robin включается в настройках транковой группы:
vesr# vesr# configure vesr(config)# esbc #Создание и переход в настройки транковой группы TRUNK_GROUP: vesr(config-esbc)# trunk-group TRUNK_GROUP #Добавление в состав транковой группы транков TRUNK_1, TRUNK_2 и TRUNK_3: vesr(config-esbc-trunk-group)# trunk 0 TRUNK_1 vesr(config-esbc-trunk-group)# trunk 1 TRUNK_2 vesr(config-esbc-trunk-group)# trunk 2 TRUNK_3 #Активация режима балансировки round-robin на траковой группе: vesr(config-esbc-trunk-group)# balancing round-robin
4. Распределение вызовов с использованием алгоритма балансировки round-robin (опция pick-once включена):
Каждый последующий исходящий вызов, маршрутизируемый через транковую группу, использует следующий транк в группе. В случае недоступности транка или при совпадении ответа с маской из списка причин отбоя вызов НЕ будет направлен через следующий транк в группе, вызов на первом плече сразу отбивается.
Пример:
В схеме из п. 3 первый вызов распределяется в TRUNK_1, если он отбивается, то первое плечо вызова сразу отбивается, попыток позвонить в TRUNK_2, TRUNK_3 нет. Второй вызов распределяется в TRUNK_2, третий — в TRUNK_3, четвертый — в TRUNK_1 и т. д.
Создание/конфигурирование таблиц маршрутизации (route-table)
Схематично таблица маршрутизации выглядит следующим образом:
Таблица маршрутизации представляет собой набор правил и действий, по которым обрабатывается входящий вызов, и указывается исходящий транк (или транк-группа) для формирования исходящего вызова.
Таблицы маршрутизации применяются к входящим вызовам и могут быть настроены для транков, транк-групп и user-interface.
Таблица состоит из правил (RULE), правило обязательно должно содержать действие (ACTION), и, опционально, — условия (CONDITION), которые должны быть соблюдены для выполнения данного действия маршрутизации. Если условия отсутствуют, действия совершаются безусловно.
Действие — это операция, результатом которой будет являться конкретное направление (DEST).
В текущей версии в качестве направлений могут выступают транки и транк-группы, поддержаны условия маршрутизации по CGPN и CDPN.
Правила маршрутизации выбираются по порядку до тех пор, пока второе плечо не будет успешно согласовано, или не будет рассмотрено последнее правило. Если рассматривать на примере вызова, то роутинг будет выполняться до тех пор, тока второе плечо не примет вызов.
В случае маршрутизации на транк-группу действует тот же алгоритм. Т. е. проходим по всем транкам выбранной группы по порядку до тех пор, пока сессия не согласуется, или не будет выбран последний транк. Если после прохождения по всем транкам выбранной группы нам не удалось согласовать второе плечо, мы продолжим выбирать оставшиеся правила из таблицы маршрутизации.
В общем, этот алгоритм можно описать так: проход по всем направлениям, всех правил маршрутизации, пока сессия не будет согласована, или не будет рассмотрено последнее правило.
Исключением является правило Reject — отбой входящей сессии. Это правило завершает проход по таблице маршрутизации.
Выбор следующего направления будет происходить:
при внутренних сбоях, до согласования сессии;
при отбое с встречной стороны, кроме 3хх кодов SIP.
Пример перебора правил:
В таблице маршрутизации два правила, первое направляет вызов в TRUNK_GROUP, второе направляет вызов в TRUNK_3, условия нигде не настроены. Приходит вызов и начинает маршрутизироваться по данной таблице маршрутизации. В результате вызов уходит на TRUNK_GROUP и оттуда в TRUNK_1, в случае если вызов через TRUNK_1 не установился (например, транк недоступен), то маршрутизация продолжает выполняться, вызов отправляется в TRUNK_2. Если попытка вызова в TRUNK_2 также завершилась неудачно, E-SBC переходит к RULE_2 и отправляет вызов в TRUNK_3. Если и здесь попытка установить вызов также оказалась неуспешной, то первое плечо отбивается, и вызов завершается, т. к. больше правил в таблице маршрутизации нет. Если попытка установить вызов успешна, то вызов устанавливается.
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# route-table ROUTE_TABLE #Добавление первого правила с действием отправить вызов в транковую группу TRUNK_GROUP: vesr(config-esbc-route-table)# rule 0 vesr(config-esbc-route-table-rule)# action direct-to-trunk-group TRUNK_GROUP vesr(config-esbc-route-table-rule)# exit #Добавление второго правила с действием отправить вызов в транк TRUNK_3: vesr(config-esbc-route-table)# rule 1 vesr(config-esbc-route-table-rule)# action direct-to-trunk TRUNK_3
Пример работы условий:
В таблице маршрутизации два правила, у обоих есть условия по CGPN и CDPN. Например, приходит вызов, у которого номер А=23000, номер Б=24000. E-SBC заходит в RULE_1 и анализирует условие CONDITION_1, условие истинно, далее происходит анализ условия из CONDITION_2, условие также истинно. Значит правило RULE_1 подходит для маршрутизации, и вызов отправляется в TRUNK_1.
Рассмотрим вызов с номерами, которые подходят под условия из RULE_2. Приходит вызов, у которого номер А=23000, номер Б=24001. E-SBC заходит в RULE_1 и анализирует условие CONDITION_1, условие истинно, далее происходит анализ условия из CONDITION_2, условие ложно. Значит правило не подходит (правило подходит, только если все условия внутри правила истинны). Далее E-SBC переходит к RULE_2, анализирует условие CONDITION_3, условие истинно, далее происходит анализ условия из CONDITION_4, условие также истинно. Значит правило RULE_2 подходит для маршрутизации, и вызов отправляется в TRUNK_2.
Если приходит вызов, который не подходит ни под одно правило, то такой вызов отбивается.
vesr# vesr# configure vesr(config)# esbc vesr(config-esbc)# route-table ROUTE_TABLE #Добавление первого правила с условиями CONDITION_1, CONDITION_2 и действием отправить вызов в транк TRUNK_1: vesr(config-esbc-route-table)# rule 0 vesr(config-esbc-route-table-rule)# condition 0 cgpn ^23000$ vesr(config-esbc-route-table-rule)# condition 1 cdpn ^24000$ vesr(config-esbc-route-table-rule)# action direct-to-trunk TRUNK_1 vesr(config-esbc-route-table-rule)# exit #Добавление второго правила с условиями CONDITION_3, CONDITION_4 и действием отправить вызов в транк TRUNK_2: vesr(config-esbc-route-table)# rule 1 vesr(config-esbc-route-table-rule)# condition 0 cgpn ^23000$ vesr(config-esbc-route-table-rule)# condition 1 cdpn ^24001$ vesr(config-esbc-route-table-rule)# action direct-to-trunk TRUNK_2
Синтаксис для написания условий
Для написания условий можно использовать регулярные выражения PCRE.
Создание/конфигурирование медиапрофилей(media profile)
Медиапрофили служат для настройки общих параметров передачи и приёма медиаданных. Медиапрофили используются в user-interface, транках и транк-группах.
Разрешённые типы медиаданных
В медиапрофиле можно настроить разрешённые типы медиаданных для направления, для выбора доступно 3 типа:
- audio
- image
- video
Если какой-то, из представленных в SDP, тип выключен в медиапрофиле, то он будет деактивирован.
vesr# vesr# configure vesr(config)# esbc #Создание медиапрофиля NEW_MEDIA_PROFILE: vesr(config-esbc)# media-profile NEW_MEDIA_PROFILE vesr(config-esbc-media-profile)# #Отключение передачи image и video: vesr(config-esbc-media-profile)# no media-type image vesr(config-esbc-media-profile)# no media-type video vesr(config-esbc-media-profile)# vesr(config-esbc-media-profile)# exit vesr(config-esbc)# exit #Привязать медиапрофиль к user-interface NEW_USER_IFACE: vesr(config-esbc)# user-interface sip NEW_USER_IFACE vesr(config-esbc-user-interface-sip)# media profile NEW_MEDIA_PROFILE vesr(config-esbc-user-interface-sip)# #Применить и подтвердить изменения: vesr(config-esbc-user-interface-sip)# do commit Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds. vesr(config-esbc-user-interface-sip)# do confirm Configuration has been confirmed. Commit timer canceled.
После внесения изменений любой тип медиаданных, пришедших на user-interface, кроме audio будет отключен.
По умолчанию все типы медиаданных включены
Создание/конфигурирование модификаторов (modification table)
Таблица модификаций содержит список модификаций, которые применяются к входящим или исходящим SIP-сообщениям. Таблицы модификаций используются в транках и транк-группах. Их можно подключить, как out — тогда правила будут применяться при отправке сообщения. Или, как in —тогда правила применяются при получении сообщения.
Таблица из транк-групп применяется только в том случае, если в транке нет своей таблицы. В модификациях можно использовать регулярные выражения PCRE.
При сравнении имён заголовков требуется точное совпадение строк, в то время как при поиске в теле заголовка — достаточно совпадения подстроки. По умолчанию из входящего сообщения вырезаются все заголовки. Модификации не применяются к тем сообщениям, которые создаются самим SBC (100 trying, ack в ответ на 200 OK, 200 OK в ответ на BYE).
Неподдерживаемые заголовки
Нельзя модифицировать следующие заголовки:
Call-ID
Contact
Content-Length
Content-Type
Cseq
From
To
Via
Accept
Allow
Expires
Min-Expires
Proxy-Authenticate
Proxy-Authorization
Require
Supported
WWW-Authenticate
Max-forwards
Min-SE
Session-Expires
Поддерживаемые модификации
В текущей версии поддерживаются следующие модификации:
- add — добавление заголовка.
- no-transit — удаление заголовка. Данная команда используется только в out заголовках (таблицы in всегда вырезают все заголовки, полученные в сообщении из сети).
replace — замена заголовка.
Данное правило не подразумевает передачу заголовка — если правило используется в in таблице, необходимо добавить передачу соответствующего заголовка с помощью правила transit.
transit — передача заголовка. Данная команда используется только в in таблицах (таблицы out всегда передают все заголовки, полученные с другого плеча).
Порядок применения модификаций
В первую очередь применяются модификации транзита — incoming и outcoming. Затем применяются модификации замены в том порядке, в котором они заданы в таблице. В конце добавляются новые заголовки.
Пример использования модификатора добавления заголовка (add)
Схема:
В конфигурации есть два транка, настроена маршрутизация. Вызов, который приходит из TRUNK_IN уходит в TRUNK_OUT. Требуется, чтобы в запросе INVITE, который отправляется в TRUNK_OUT, был добавлен заголовок Test_header со значением example string.
vesr# vesr# configure vesr(config)# esbc #Создание таблицы модификаторов MODTABLE_IN: vesr(config-esbc)# mod-table sip MODTABLE_IN vesr(esbc-mod-table)# #Добавление в таблицу модификаторов правила на добавление заголовка: vesr(esbc-mod-table)# mod 0 add vesr(esbc-mod-table-modification)# #Выбор запроса, в котором будет добавлен заголовок(в данном случае INVITE): vesr(esbc-mod-table-modification)# sip-method type Invite #Указать название заголовка, который необходимо вставить (в данном случае Test_header): vesr(esbc-mod-table-modification)# header name Test_header #Указать содержимое заголовка, которое необходимо вставить (в данном случае example string): vesr(esbc-mod-table-modification)# header value "example string" vesr(esbc-mod-table-modification)# exit vesr(esbc-mod-table)# exit #Привязать таблицу модификаторов к входящему транку TRUNK_IN: vesr(config-esbc)# trunk sip TRUNK_IN vesr(config-esbc-trunk-sip)# mod-table sip in MODTABLE_IN #Применить и подтвердить изменения: vesr(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. vesr(config-esbc-trunk-sip)# do confirm Configuration has been confirmed. Commit timer canceled.
После внесения изменений в конфигурацию с TRUNK_IN приходит следующий INVIITE:
INVITE sip:24000@192.168.114.130:5461 SIP/2.0 Via: SIP/2.0/UDP 192.168.114.129:5461;branch=z9hG4bK-372660-1-5 From: "Simple UAC send bye" <sip:24001@192.168.114.130;cpc=priority>;tag=1372660 To: "24000" <sip:24000@192.168.114.130> Call-ID: 1-372660@192.168.114.129 CSeq: 1 INVITE Contact: <sip:24001@192.168.114.129:5461> Max-Forwards: 70 Content-Type: application/sdp Content-Length: 149 v=0 o=tester 123456 654321 IN IP4 192.168.114.129 s=A conversation c=IN IP4 192.168.114.129 t=0 0 m=audio 8338 RTP/AVP 8 a=rtpmap:8 PCMA/8000
На TRUNK_OUT отправляется уже модифицированный INVITE с добавленным заголовком:
INVITE sip:24000@192.168.114.129:5460 SIP/2.0 Via: SIP/2.0/UDP 192.168.114.130:5460;rport;branch=z9hG4bKPj-fvzSQlwN2zoMaGUR5JCLMkjmkBV3Vz1 Max-Forwards: 70 From: "Simple UAC send bye" <sip:24001@192.168.114.130>;tag=l2jkRSMeumV03IdhjPntOt7l0XBKy-Ln To: "24000" <sip:24000@192.168.114.129> Contact: <sip:24001@192.168.114.130:5460;transport=udp> Call-ID: P-W.2oee.2vJw0JoaFbNkRDvnxY40FoP CSeq: 30738 INVITE Allow: PRACK, SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE Supported: timer, 100rel, replaces Session-Expires: 1800 Min-SE: 90 #Добавленный через таблицу модификаторов заголовок: Test_header: example string Content-Type: application/sdp Content-Length: 157 v=0 o=tester 3927594021 3927594021 IN IP4 192.168.114.130 s=A conversation c=IN IP4 192.168.114.130 t=0 0 m=audio 8062 RTP/AVP 8 a=rtpmap:8 PCMA/8000
Пример использования модификатора удаления заголовка (no-transit)
Схема:
В конфигурации есть два транка, настроена маршрутизация. Вызов, который приходит из TRUNK_IN уходит в TRUNK_OUT. В TRUNK_OUT отправляется запрос INVITE, в теле которого есть заголовок Test_header. Требуется, чтобы в запросе INVITE, который отправляется в TRUNK_OUT, вырезался заголовок Test_header, если в его содержимом есть "example string".
vesr# vesr# configure vesr(config)# esbc #Создание таблицы модификаторов MODTABLE_OUT: vesr(config-esbc)# mod-table sip MODTABLE_OUT vesr(esbc-mod-table)# #Добавление в таблицу модификаторов правила на удаление заголовка: vesr(esbc-mod-table)# mod 0 no-transit vesr(esbc-mod-table-modification)# #Выбор запроса, в котором будет удален заголовок (в данном случае INVITE): vesr(esbc-mod-table-modification)# sip-method type Invite #Указать название заголовка, который необходимо удалить (в данном случае Test_header): vesr(esbc-mod-table-modification)# sip-header pattern Test_header #Указать содержимое заголовка, при совпадении с которым заголовок будет удален (в данном случае example string): vesr(esbc-mod-table-modification)# value-pattern "example string" vesr(esbc-mod-table-modification)# exit vesr(esbc-mod-table)# exit #Привязать таблицу модификаторов к исходящему транку TRUNK_OUT: vesr(config-esbc)# trunk sip TRUNK_OUT vesr(config-esbc-trunk-sip)# mod-table sip out MODTABLE_OUT #Применить и подтвердить изменения: vesr(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. vesr(config-esbc-trunk-sip)# do confirm Configuration has been confirmed. Commit timer canceled.
До внесения изменений в конфигурацию в TRUNK_OUT отправлялся следующий INVIITE:
INVITE sip:24000@192.168.114.129:5460 SIP/2.0 Via: SIP/2.0/UDP 192.168.114.130:5460;rport;branch=z9hG4bKPjjju.7u4O03Aty93vQq0Q1huigSIqGVIr Max-Forwards: 70 From: "Simple UAC send bye" <sip:24001@192.168.114.130>;tag=CW.53L5FPJAUBsiRspMYqtjTtOTzZxHg To: "24000" <sip:24000@192.168.114.129> Contact: <sip:24001@192.168.114.130:5460;transport=udp> Call-ID: V4OOROjNahUbinXtA648s9eI2kjE5cCI CSeq: 18905 INVITE Allow: PRACK, SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE Supported: timer, 100rel, replaces Session-Expires: 1800 Min-SE: 90 #Заголовок, который должен быть удален: Test_header: example string Content-Type: application/sdp Content-Length: 157 v=0 o=tester 3927595234 3927595234 IN IP4 192.168.114.130 s=A conversation c=IN IP4 192.168.114.130 t=0 0 m=audio 8066 RTP/AVP 8 a=rtpmap:8 PCMA/8000
После внесения изменений в конфигурацию в TRUNK_OUT отправляется следующий INVITE (заголовок Test_header отсутствует):
INVITE sip:24000@192.168.114.129:5460 SIP/2.0 Via: SIP/2.0/UDP 192.168.114.130:5460;rport;branch=z9hG4bKPjz8Y5BfoTrBQlqecLCu34TIyYn-6rX5dH Max-Forwards: 70 From: "Simple UAC send bye" <sip:24001@192.168.114.130>;tag=qTwcY3ZHvA6SHvuRsoo7w40r9yXzjEEp To: "24000" <sip:24000@192.168.114.129> Contact: <sip:24001@192.168.114.130:5460;transport=udp> Call-ID: yHvNLSIvp0DQYSRFPRpfgVUv9U0uKEHT CSeq: 10147 INVITE Allow: PRACK, SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE Supported: timer, 100rel, replaces Session-Expires: 1800 Min-SE: 90 Content-Type: application/sdp Content-Length: 157 v=0 o=tester 3927597375 3927597375 IN IP4 192.168.114.130 s=A conversation c=IN IP4 192.168.114.130 t=0 0 m=audio 8070 RTP/AVP 8 a=rtpmap:8 PCMA/8000
В случае, если в заголовке Test_header будет содержимое отличное от "example string", заголовок будет отправлен в TRUNK_OUT.
INVITE sip:24000@192.168.114.129:5460 SIP/2.0 Via: SIP/2.0/UDP 192.168.114.130:5460;rport;branch=z9hG4bKPj8e1WEAvAy16Bk8Vrj-VZiFK-bNOjnjY9 Max-Forwards: 70 From: "Simple UAC send bye" <sip:24001@192.168.114.130>;tag=R83mrTm4KQsFL1Bk87hTOB8e182yCSJ. To: "24000" <sip:24000@192.168.114.129> Contact: <sip:24001@192.168.114.130:5460;transport=udp> Call-ID: eQueXFpyDZESB.hXK.uCGn7XL7TBUdmQ CSeq: 8831 INVITE Allow: PRACK, SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE Supported: timer, 100rel, replaces Session-Expires: 1800 Min-SE: 90 #Заголовок Test_header с содержимым отличным от "example string не удаляется: Test_header: new string Content-Type: application/sdp Content-Length: 157 v=0 o=tester 3927597832 3927597832 IN IP4 192.168.114.130 s=A conversation c=IN IP4 192.168.114.130 t=0 0 m=audio 8074 RTP/AVP 8 a=rtpmap:8 PCMA/8000
Пример использования модификатора транзита и замены заголовка (replace)
Схема:
В конфигурации есть два транка, настроена маршрутизация. Вызов, который приходит из TRUNK_IN, уходит в TRUNK_OUT. Из TRUNK_IN приходит INVITE с заголовком Test_header: 123. Требуется, чтобы в TRUNK_OUT отправился INVITE с заголовком Test_header: 123456.
vesr# vesr# configure vesr(config)# esbc #Создание таблицы модификаторов MODTABLE_IN: vesr(config-esbc)# mod-table sip MODTABLE_IN vesr(esbc-mod-table)# #Добавление в таблицу модификаторов правила на транзит заголовка: vesr(esbc-mod-table)# mod 0 transit vesr(esbc-mod-table-modification)# #Выбор запроса, в котором будет транзититься заголовок (в данном случае INVITE): vesr(esbc-mod-table-modification)# sip-method type Invite #Указать название заголовка, который необходимо транзитить (в данном случае Test_header): vesr(esbc-mod-table-modification)# sip-header pattern Test_header vesr(esbc-mod-table-modification)# exit #Добавление в таблицу модификаторов правила на замену заголовка: vesr(esbc-mod-table)# mod 1 replace #Выбор запроса, в котором будут заменяться заголовки: vesr(esbc-mod-table-modification)# sip-method type Invite #Указать название заголовка, содержимое которого необходимо заменить: vesr(esbc-mod-table-modification)# sip-header pattern Test_header #Указать место в содержимом заголовка, которое необходимо заменить (конец строки исходного содержимого заголовка): vesr(esbc-mod-table-modification)# value-pattern $ #Добавить правило для подмены содержимого заголовка (к концу строки исходного содержимого заголовка добавляется 456): vesr(esbc-mod-table-modification)# replacement 456 vesr(esbc-mod-table-modification)# exit vesr(esbc-mod-table)# exit #Привязать таблицу модификаторов к входящему транку TRUNK_IN: vesr(config-esbc)# trunk sip TRUNK_IN vesr(config-esbc-trunk-sip)# mod-table sip in MODTABLE_IN #Применить и подтвердить изменения: vesr(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. vesr(config-esbc-trunk-sip)# do confirm Configuration has been confirmed. Commit timer canceled.
После внесения изменений в конфигурацию с TRUNK_IN приходит следующий INVIITE:
INVITE sip:24000@192.168.114.130:5461 SIP/2.0 Via: SIP/2.0/UDP 192.168.114.129:5461;branch=z9hG4bK-375510-1-5 From: "Simple UAC send bye" <sip:24001@192.168.114.130;cpc=priority>;tag=1375510 To: "24000" <sip:24000@192.168.114.130> Call-ID: 1-375510@192.168.114.129 CSeq: 1 INVITE Contact: <sip:24001@192.168.114.129:5461> Max-Forwards: 70 #Заголовок, который необходимо протранзитить и заменить: Test_header: 123 Content-Type: application/sdp Content-Length: 149 v=0 o=tester 123456 654321 IN IP4 192.168.114.129 s=A conversation c=IN IP4 192.168.114.129 t=0 0 m=audio 7624 RTP/AVP 8 a=rtpmap:8 PCMA/8000
На TRUNK_OUT отправляется уже модифицированный INVITE с измененным заголовком:
INVITE sip:24000@192.168.114.129:5460 SIP/2.0 Via: SIP/2.0/UDP 192.168.114.130:5460;rport;branch=z9hG4bKPjIbcILUaVB0cQTFaGLLb7ccpnbTQIRvV3 Max-Forwards: 70 From: "Simple UAC send bye" <sip:24001@192.168.114.130>;tag=toP8wIO79wo47ChSYy69MFOyd4vhGRNF To: "24000" <sip:24000@192.168.114.129> Contact: <sip:24001@192.168.114.130:5460;transport=udp> Call-ID: dLsiFI4-aD2faceSTLZu.-kuHfN.pJtG CSeq: 22556 INVITE Allow: PRACK, SUBSCRIBE, NOTIFY, REFER, INVITE, ACK, BYE, CANCEL, UPDATE Supported: timer, 100rel, replaces Session-Expires: 1800 Min-SE: 90 #Измененный заголовок: Test_header: 123456 Content-Type: application/sdp Content-Length: 157 v=0 o=tester 3927607871 3927607871 IN IP4 192.168.114.130 s=A conversation c=IN IP4 192.168.114.130 t=0 0 m=audio 8090 RTP/AVP 8 a=rtpmap:8 PCMA/8000
Работа с логами
Логирование работы E-SBC осуществляется с помощью syslog. Более подробно настройки syslog описаны в разделе Управление SYSLOG справочника команд CLI.
Модули, входящие в состав E-SBC
Название | Описание | Назначение |
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 | модуль взаимодействия с ОС | служит прослойкой между E-SBC и ОС, на которой он разворачивается, предоставляет единый интерфейс взаимодействия с системой и реализует мониторинг различных системных событий |
Включение логирования работы модулей E-SBC производится в разделе debug:
vesr# #Переход в раздел debug: vesr# debug vesr(debug)# #Включение логирования модуля esbc_dispatcher: vesr(debug)# debug esbc disp #Включение логирования модуля esbc_config_manager: vesr(debug)# debug esbc cfgmgr #Включение логирования модуля esbc_access_mediator: vesr(debug)# debug esbc accmed #Включение логирования модуля esbc_core: vesr(debug)# debug esbc core #Включение логирования модуля esbc_sip_balancer: vesr(debug)# debug esbc sipbl #Включение логирования модуля esbc_sip_worker: vesr(debug)# debug esbc sipwrk #Включение логирования модуля esbc_media_balancer: vesr(debug)# debug esbc mediabl #Включение логирования модуля esbc_media_worker: vesr(debug)# debug esbc mediawrk #Включение логирования модуля esbc_sysio: vesr(debug)# debug esbc sysio #Включение логирования модуля esbc_sm: vesr(debug)# debug esbc submngr #Включение логирования модуля esbc_voip_guard: vesr(debug)# debug esbc voip-guard #Применение и подтверждение настроек: vesr(debug)# do commit vesr(debug)# do confirm








