...
Для написания условий можно использовать регулярные выражения PCRE.
Маршрутизация на разные направления через общую таблицу маршрутизации
Для всех транков (например, TRUNK_1, TRUNK_2, TRUNK_3) указать одну таблицу маршрутизации (например, MAIN). Все правила и условия для маршрутизации в конкретный транк указаны в отдельной таблице маршрутизации для этого транка (таблицы маршрутизации RT_1, RT_2, RT_3). При добавлении транков в конфигурации необходимо создать соответствующую таблицу маршрутизации и добавить новое правило в таблицу MAIN.
Пример конфигурации:
Смена таблиц маршрутизации
В конфигурации таблицы маршрутизации реализована команда switch-route-table <route-table-name> для продолжения маршрутизации SIP-запроса через другую таблицу маршрутизации.
Использование каскадного принципа таблиц маршрутизации позволяет гибко настраивать маршрутизацию между направлениями.
Примеры использования каскадных таблиц маршрутизации
Допускается использовать каскадный переход из нескольких таблиц маршрутизации, например:
| Блок кода | ||
|---|---|---|
| ||
vesbc# configure
vesbc(config)# esbc
#Создание таблицы маршрутизации ROUTE_TABLE_1 и добавление правила с действием сменить таблицу маршрутизации на ROUTE_TABLE_2:
vesbc(config-esbc)# route-table ROUTE_TABLE_1
vesbc(config-esbc-route-table)# rule 5
vesbc(config-esbc-route-table-rule)# | ||
| Блок кода | ||
route-table MAIN rule 0 action switch-route-table RT_1 exit rule 1 action switch-route-table RTROUTE_TABLE_2 vesbc(config-esbc-route-table-rule)# exit vesbc(config-esbc-route-table)# exit #Создание таблицы rule 2 action switch-маршрутизации ROUTE_TABLE_2 и добавление правила с действием сменить таблицу маршрутизации на ROUTE_TABLE_3: vesbc(config-esbc)# route-table RTROUTE_TABLE_3 exit exit 2 vesbc(config-esbc-route-table)# rule 5 vesbc(config-esbc-route-table-rule)# action switch-route-table RTROUTE_TABLE_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 3 vesbc(config-esbc-route-table-rule)# exit vesbc(config-esbc-route-table)# exit #Создание таблицы маршрутизации ROUTE_TABLE_3 и добавление правила с действием сменить таблицу маршрутизации на ROUTE_TABLE_4: vesbc(config-esbc)# route-table ROUTE_TABLE_3 vesbc(config-esbc-route-table)# rule 5 vesbc(config-esbc-route-table-rule)# action switch-route-table ROUTE_TABLE_4 vesbc(config-esbc-route-table-rule)# exit vesbc(config-esbc-route-table)# exit #Создание таблицы маршрутизации ROUTE_TABLE_4 и добавление правила с действием отправить вызов в транк TRUNK_1: vesbc(config-esbc)# route-table ROUTE_TABLE_4 vesbc(config-esbc-route-table)# rule 5 vesbc(config-esbc-route-table-rule)# action direct-to-trunk TRUNK_1 |
| Примечание | ||||||||
|---|---|---|---|---|---|---|---|---|
Запрещено указывать в правиле action switch-route-table название той таблицы, в которой указывается данное правило. Пример:
|
В таком случае маршрутизация любого вызова из любого направления будет осуществляться по всем правилам всех таблиц маршрутизации до первого совпадения CdPN. Если совпадение не будет найдено, то вызов завершится кодом SIP 404 "Not Found".
Смена таблиц маршрутизации
В конфигурации таблицы маршрутизации реализована команда switch-route-table <route-table-name> для продолжения маршрутизации SIP-запроса через другую таблицу маршрутизации.
Использование каскадного принципа таблиц маршрутизации позволяет гибко настраивать маршрутизацию между направлениями.
Примеры использования каскадных таблиц маршрутизации
Допускается использовать каскадный переход из нескольких таблиц маршрутизации, например:
Маршрутизация на разные направления через общую таблицу маршрутизации
Для всех транков (например, TRUNK_1, TRUNK_2, TRUNK_3) указать одну таблицу маршрутизации (например, MAIN). Все правила и условия для маршрутизации в конкретный транк указаны в отдельной таблице маршрутизации для этого транка (таблицы маршрутизации RT_1, RT_2, RT_3). При добавлении транков в конфигурации необходимо создать соответствующую таблицу маршрутизации и добавить новое правило в таблицу MAIN.
Пример конфигурации:
| Блок кода | ||
|---|---|---|
route-table MAIN
rule 0
action switch-route-table RT_1
exit
rule 1
action switch-route-table RT_2
exit
rule 2
| ||
| Блок кода | ||
| ||
vesbc# configure vesbc(config)# esbc #Создание таблицы маршрутизации ROUTE_TABLE_1 и добавление правила с действием сменить таблицу маршрутизации на ROUTE_TABLE_2: vesbc(config-esbc)# route-table ROUTE_TABLE_1 vesbc(config-esbc-route-table)# rule 5 vesbc(config-esbc-route-table-rule)# action switch-route-table ROUTE_TABLE_2 vesbc(config-esbc-route-table-rule)# exit vesbc(config-esbc-route-table)# exit #Создание таблицы маршрутизации ROUTE_TABLE_2 и добавление правила с действием сменить таблицу маршрутизации на ROUTE_TABLE_3: vesbc(config-esbc)#RT_3 exit exit route-table RT_1 rule 0 action direct-to-trunk TRUNK_1 condition 0 cdpn '100' exit exit route-table ROUTERT_TABLE_2 vesbc(config-esbc-route-table)# rule 5 vesbc(config-esbc-route-table-rule)# action switch-route-table ROUTE_TABLE_3 vesbc(config-esbc-route-table-rule)# exit vesbc(config-esbc-route-table)# exit #Создание таблицы маршрутизации ROUTE_TABLE_3 и добавление правила с действием сменить таблицу маршрутизации на ROUTE_TABLE_4: vesbc(config-esbc)#0 action direct-to-trunk TRUNK_2 condition 0 cdpn '200' exit exit route-table ROUTERT_TABLE_3 vesbc(config-esbc-route-table)# rule 5 vesbc(config-esbc-route-table-rule)#0 action switchdirect-routeto-tabletrunk ROUTETRUNK_TABLE_4 vesbc(config-esbc-route-table-rule)# exit vesbc(config-esbc-route-table)# exit #Создание таблицы маршрутизации ROUTE_TABLE_4 и добавление правила с действием отправить вызов в транк TRUNK_1: vesbc(config-esbc)# route-table ROUTE_TABLE_4 vesbc(config-esbc-route-table)# rule 5 vesbc(config-esbc-route-table-rule)# action direct-to-trunk TRUNK_1 | ||
| Примечание | ||
Запрещено указывать в правиле action switch-route-table название той таблицы, в которой указывается данное правило. Пример: Блок кода | 3 condition 0 cdpn '300' exit exit trunk sip TRUNK_1 route-table MAIN ... exit trunk sip TRUNK_2 route-table MAINrule 5 action switch- ... exit trunk sip TRUNK_3 route-table MAINexit ... exit |
В таком случае маршрутизация любого вызова из любого направления будет осуществляться по всем правилам всех таблиц маршрутизации до первого совпадения CdPN. Если совпадение не будет найдено, то вызов завершится кодом SIP 404 "Not Found".
Маршрутизация на разные направления через последовательный каскад таблиц маршрутизации
...
