...
В конфигурации есть два транка, настроена маршрутизация. Вызов, который приходит из TRUNK_IN, уходит в TRUNK_OUT. Из TRUNK_IN приходит INVITE с заголовком RouteTest_header. Требуется, используя только переменную var1, скопировать значение заголовка Test_header из INVITE на первом плече, вставить его в заголовок Test_header_INVITE в ответе 180 на втором плече, скопировать значение заголовка Test_header из ответа 200 на втором плече и вставить его в заголовок Test_header_200 в запрос BYE на первом плече.
| Блок кода | ||
|---|---|---|
| ||
vesbc# vesbc# configure vesbc(config)# esbc #Создание таблицы модификаторов MODTABLE_IN_TRUNK_IN для модификаций на первом плече: vesbc(config-esbc)# mod-table sip MODTABLE_IN_TRUNK_IN vesbc(esbc-mod-table)# #Добавление в таблицу модификаторов правила copy для копирования значения заголовка RouteTest_header в переменную routevar1: vesbc(esbc-mod-table)# mod 0 copy vesbc(esbc-mod-table-modification)# #Выбор запроса, в котором будет использоваться модификатор copy (в данном случае INVITE): vesbc(esbc-mod-table-modification)# sip method type Invite #Указать название заголовка, из которого необходимо копировать значение (в данном случае Test_header): vesbc(esbc-mod-table-modification)# sip header-pattern Test_header #Указать содержимое заголовка, при совпадении с которым будет выполнено копирование в переменную. В переменную будет скопирована та часть отбора, которая указана в скобках: vesbc(esbc-mod-table-modification)# value-pattern '(.+)' #Указать переменную, в которую будет скопировано значение, указанное в скобках, в примере - (.+): vesbc(esbc-mod-table-modification)# variable-str 'var1' vesbc(esbc-mod-table-modification)# exit #Добавление в таблицу модификаторов правила add для добавления заголовка Test_header_180 в BYE: vesbc(esbc-mod-table)# mod 1 add #Выбор запроса, в котором будет использоваться модификатор add (в данном случае BYE): vesbc(esbc-mod-table-modification)# sip method type Bye #Название добавляемого заголовка: vesbc(esbc-mod-table-modification)# header name Test_header_200 #Указать значение заголовка (переменная var1): vesbc(esbc-mod-table-modification)# header value '${var1}' vesbc(esbc-mod-table-modification)# exit vesbc(esbc-mod-table)# exit #Привязать таблицу модификаторов к входящему транку TRUNK_IN: vesbc(config-esbc)# trunk sip TRUNK_IN vesbc(config-esbc-trunk-sip)# mod-table sip in MODTABLE_IN_TRUNK_IN vesbc(config-esbc-trunk-sip)# exit #Создание таблицы модификаторов MODTABLE_IN_TRUNK_OUT для модификаций на втором плече: vesbc(config-esbc)# mod-table sip MODTABLE_IN_TRUNK_OUT vesbc(esbc-mod-table)# #Добавление в таблицу модификаторов правила copy для копирования значения заголовка Test_header в переменную var1: vesbc(esbc-mod-table)# mod 0 copy vesbc(esbc-mod-table-modification)# #Выбор ответа, в котором будет использоваться модификатор copy (в данном случае 200): vesbc(esbc-mod-table-modification)# sip response-pattern 200 #Указать название заголовка, из которого необходимо копировать значение (в данном случае Test_header): vesbc(esbc-mod-table-modification)# sip header-pattern Test_header #Указать содержимое заголовка, при совпадении с которым будет выполнено копирование в переменную. В переменную будет скопирована та часть отбора, которая указана в скобках: vesbc(esbc-mod-table-modification)# value-pattern '(.+)' #Указать переменную, в которую будет скопировано значение, указанное в скобках, в примере - (.+): vesbc(esbc-mod-table-modification)# variable-str 'var1' vesbc(esbc-mod-table-modification)# exit #Добавление в таблицу модификаторов правила add для добавления заголовка Test_header_INVITE в 180: vesbc(esbc-mod-table)# mod 1 add #Выбор ответа, в котором будет использоваться модификатор add (в данном случае 180): vesbc(esbc-mod-table-modification)# sip response-pattern '180' #Название добавляемого заголовка: vesbc(esbc-mod-table-modification)# header name Test_header_INVITE #Указать значение заголовка (переменная var1): vesbc(esbc-mod-table-modification)# header value '${var1}' vesbc(esbc-mod-table-modification)# exit vesbc(esbc-mod-table)# exit #Привязать таблицу модификаторов к входящему транку TRUNK_OUT: vesbc(config-esbc)# trunk sip TRUNK_OUT vesbc(config-esbc-trunk-sip)# mod-table sip in MODTABLE_IN_TRUNK_OUT #Применить и подтвердить изменения: vesbc(config-esbc-trunk-sip)# do commit Configuration has been successfully applied and saved to flash. Commit timer started, changes will be reverted in 600 seconds. vesbc(config-esbc-trunk-sip)# do confirm Configuration has been confirmed. Commit timer canceled. |
...
