...
- Адрес удалённой стороны;
- Порт удалённой стороны;
- SIP-транспорт;
- Медиаресурсы;.
Эти настройки являются обязательными. Описание конфигурирования и базовой схемы применения представлено в разделе Примеры настройки ESBC.
...
- Таблица маршрутизации;
- Медиапрофиль;
- Медиаресурсы;
- SIP-профиль;
- Профиль безопасности;
- Таблица модификаций (для входящих и исходящих сообщений);
- QoS;
- Public IP;
- Ограничение входящего трафика;
- Опция "Доверенная сеть" для переадресаций.
Логика работы:
Все перечисленные в предыдущем пункте настройки являются общими для всех транков, включенных в состав транковой группы. Это значит, что при отсутствии у транка, входящего в состав транковой группы, какой-либо из перечисленных настроек, будет использоваться настройка из транковой группы. Такой подход позволяет создавать множество транков с минимальным набором настроек, и, объединяя их в транковую группу, производить донастройку через нее. При необходимости можно изменить какие-либо параметры отдельно взятых транков из группы через индивидуальную настройку транков.
...
Поддержано несколько режимов работы с протоколами транспортного уровня, конфигурируется командой mode из примера выше. Режимы работы следующие:
- tcp-only — использовать только TCP-протокол;
- tcp-prefer — — прием по UDP и TCP. Отправка по TCP. В случае , если не удалось установить соединение по TCP, отправка производится по UDP;
- tls — использовать tls;
- udp-only — использовать только UDP-протокол;
- udp-prefer — прием по UDP и TCP. Отправка пакетов более 1300 байт по TCP, менее 1300 байт — по UDP;
- ws — использовать WebSocket;
- wss — использовать WebSocket Secure.
...
Приходит вызов, у которого номер А=23000, номер Б=24000 и кастомный заголовок "Trunk: For trunk_2". ESBC заходит в RULE_1 и анализирует условие CONDITION_1, условие истинно, далее происходит анализ условия из CONDITION_2, условие истинно, далее происходит анализ условия из CONDITION_3, условие ложно. Значит правило не подходит (правило подходит, только если все условия внутри правила истинны). Далее ESBC переходит к RULE_2, анализирует условие CONDITION_4, условие истинно, далее происходит анализ условия из CONDITION_5, условие истинно, далее происходит анализ условия из CONDITION_6, условие также истинно. Значит правило RULE_2 подходит для маршрутизации, и вызов отправляется в TRUNK_2.
Если приходит вызов, который не подходит ни под одно правило, то такой вызов отбивается.
...
| Блок кода | ||
|---|---|---|
| ||
value-pattern '(some)-(value)' # Значения#Значения some и value заносятся в локальные переменные pcre 1 и 2 соответственно replacement '\2-\1' # Значения#Значения переменных меняются местами |
...
| Блок кода | ||
|---|---|---|
| ||
route-table TO_UAS
rule 0
action direct-to-trunk UAS
exit
exit
mod-table common COMMON_MOD
mod 5 cgpn
value-pattern '2(.+)'
# Осуществляется#Осуществляется выбор номеров, начинающихся с 2. Остальная часть номера сохраняется в локальную переменную 1
replacement '8\1'
# Выполняется замена 2 на 8 и добавляется значение из переменной 1
exit
mod 10 cdpn
value-pattern '23002'
# Осуществляется#Осуществляется выбор номера 23002
replacement '22222'
# Выполняется#Выполняется замена номера 23002 на 22222
exit
exit
trunk sip UAC
remote addr 192.168.80.26
remote port 5070
sip transport UAC
route-table TO_UAS
mod-table common in COMMON_MOD
media resource 0 MEDIA
exit
trunk sip UAS
remote addr 192.168.80.26
remote port 5080
sip transport UAS
media resource 0 MEDIA
exit
exit |
...
Модификации в рамках одной таблицы применяются последовательно ко всем заголовкам в порядке, добавленном в конфигурации, т. е. первая модификация применяется ко всем заголовкам, затем вторая модификация применится ко всем заголовкам и т. д.
...
LOCAL_DOMAIN — локальный домен;
LOCAL_ADDR — локальный IP-адрес, сейчас то же самое, что LOCAL_HOST;
LOCAL_HOST — локальный домен или IP-адрес;
LOCAL_PORT — локальный порт;
REMOTE_DOMAIN — домен удалённой стороны;
REMOTE_ADDR — IP-адрес удалённой стороны;
REMOTE_HOST — домен или IP-адрес удалённой стороны;
REMOTE_PORT — порт удалённой стороны;
IFACE_TYPE — тип интерфейса (TRUNK или USER);
IFACE_ID — числовой идентификатор интерфейса;
IFACE_NAME — имя интерфейса;
VERSION — версия ESBC (x.y.z.patch);
TIMESTAMP — текущее время в секундах (заполняется на момент применения модификации).
...