Компоновщик выражений правил SIP

Воспользуйтесь компоновщиком подвыражений для создания сложных условий правил из подвыражений с помощью AND, OR, NOT и скобочной группировки. Компоновщик правил проверяет правило при применении изменений и предупреждает о наличии несоответствующих скобок и неподдерживаемых логических операторов.

Для того чтобы открыть эту страницу административной консоли, выберите Серверы > Типы серверов > Маршрутизаторы нагрузки > имя-odr > Параметры маршрутизатора нагрузки SIP > Правила SIP стратегии маршрутизации > Добавить > Редактор подвыражений.

Для того чтобы изменить правила с помощью компоновщика правил, необходимо обладать правами доступа администратора.

Выбор операнда

Операнды маршрутизации и стратегии обслуживания

В зависимости от выбранного протокола, отображаются разные операнды. В приведенной ниже таблице представлены имена операндов, отображаемые в консоли, фактический операнд, употребляемый в выражении, допустимые протоколы для каждого операнда и описание каждого операнда.

Таблица 1. Операнды. В следующей таблице описаны имена операндов, отображаемых в консоли
Операнд Синтаксис Описание
Метод SIP request.method

Метод SIP для запроса. Возможные значения: INVITE, TRYING, RINGING, ACK, OK и BYE. Если сообщение не является запросом, этот операнд возвращает нулевое значение.

Код ответа SIP response.code

Код ответа. Если сообщение не является ответом, этот операнд возвращает значение -1.

Схема заголовка получателя to.uri.scheme

Схема поля заголовка To (Получатель).

Схема URI request.uri.scheme

Схема URI.

Схема заголовка отправителя request.from.uri.scheme

Схема поля заголовка From (Отправитель).

URI запроса request.uri

URI запроса.

На URI request.to.uri

URI поля заголовка To (Получатель).

С URI request.from.uri

URI поля заголовка From (Отправитель).

Из заголовка request.from

Поле заголовка From (Отправитель).

Заголовок получателя request.to

Поле заголовка To.

В отображаемое имя заголовка request.to.display-name

Отображаемое имя в поле заголовка To (Получатель).

Из отображаемого имени заголовка request.from.display-name

Отображаемое имя в поле заголовка From (Отправитель).

Хосту URI request.to.uri.host

Порт в URI поля заголовка To (Получатель).

Хост сервера serverhost Полное имя хоста сервера. Этот операнд не поддерживает числовые операторы, такие как >, >=, <, <=.
Порт port Порт приема, на который был получен запрос.
Заголовок контакта request.contact

Поле заголовка Contact (Контакт).

URI контакта request.contact.uri

URI поля заголовка Contact (Контакт).

Хост клиента clienthost Полное имя хоста клиента. Это значение имени хоста в IP-команде. Этот операнд не поддерживает числовые операторы, такие как >, >=, <, <=.
clientipv4 clientipv4 IP-адрес компьютера клиента, использующего тип адреса IPv4 в виде четырех чисел, разделенных точками, - n.n.n.n.
clientipv6 clientipv6 28-битовый тип адреса IPv6 в формате x:x:x:x:x:x:x:x, согласно RFC 1924 компьютера клиента.
serveripv4 serveripv4 IP-адрес компьютера сервера, использующего тип адреса IPv4 в виде четырех чисел, разделенных точками - n.n.n.n.
serveripv6 serveripv6 28-битовый тип адреса IPv6 в формате x:x:x:x:x:x:x:x, согласно RFC 1924 компьютера сервера.
Транспорт запроса request.transport

Транспорт запроса.

Пользователь URI запроса request.uri.user

Пользователь в URI запроса.

От пользователя URI request.from.uri.user

Пользователь в поле заголовка From (Отправитель).

Пользователю URI request.to.uri.user

Пользователь в поле заголовка To (Получатель).

Запрос хоста URI request.uri.host

Хост в URI запроса.

Из хоста URI request.from.uri.host

Хост в поле заголовка From (Отправитель).

Запрос порта URI request.uri.port

Порт в URI запроса.

Из порта URI request.from.uri.port

Порт в URI поля заголовка From (Отправитель).

Хосту URI request.to.uri.host

Хост в поле заголовка To (Получатель).

Название заголовка header $<имя> Имя и значение заголовка. Например, выражение header$Host='localhost' проверяет, содержится ли в запросе заголовок хоста HTTP со значением localhost. Для проверки на предмет отсутствия или наличия заголовка хоста используется одно из следующих выражений:
header$Host IS NOT NULL header$Host IS NULL
Время time

Этот операнд используется для определения даты и времени суток, когда необходимо удовлетворить данный запрос. Два необязательных поля - это StartTime и EndTime (Время начала и Время окончания). Если запрос получен вне указанного временного промежутка, он не будет обрабатываться.

Формат заполнения полей Время начала и Время окончания следующий: день-недели/число/месяц/год::час:мин:сек.

Например, четверг, 11 апреля 2007 года, 1:03:45 дня обозначается так:

Thu/11/Apr/2007::13:03:45

В любом поле допускается использование * в качестве символа подстановки. Например, 1-е число каждого месяца можно обозначить как */1.

Значениями для дня-недели являются: Sun, Mon, Tue, Wed, Thu, Fri, Sat. Значения числа задаются в диапазоне от 1 до 31.

Значение месяца является нечисловым и представляет собой один из 12 месяцев: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec.

Значение года следует указывать в 4-значном формате. Например, 2007.

Значение часа следует указывать в 24-часовом формате времени. Например, 8 ч утра обозначается как ::8. Минуты и секунды представляют собой целые значения в диапазоне от 0 до 59.

Символ косой черты (/) используется для разделения параметров даты, два двоеточия (::) - для разделения значений даты и времени, а двоеточием (:) отделяются параметры времени суток. Обратите внимание на то, что это булевский результат правила в целом, в котором используется операнд time, определяющий выполняемое действие маршрутизации.

Процентное отношение percentage$<значение> Операнд percentage обрабатывается как true, фиксированное процентное значение времени. Например, percentage$50 соответствует true в среднем 50% времени.
Увеличение rampup$<startTime>

  $<completionTime>

Операнд rampup преобразуется в true переменное процентное значение времени. Он всегда оценивается как false до времени начала -<startTime> и как true после времени окончания -<completionTime>. В течение промежутка времени от <startTime> до <completionTime>, этот операнд обрабатывается как true, линейно возрастающее процентное значение.

Формат значений времени начала и времени окончания (<startTime> и <completionTime>): день/месяц/год::час:мин:сек.

Где день соответствует числу месяца, месяц - одному из 12 месяцев: Jan, Feb, Mar, Apr, May, Jun, Jul, Aug, Sep, Oct, Nov, Dec, год - это год в 4-значном формате, час - значение часа в 2-значном 24-часовом формате, мин и сек - 2-значные значения минут и секунд.

Например:

rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00 начинает периодически обрабатываться как true с 8 ч утра 1 января 2007 г. и всегда оценивается как true до окончания заданного периода, т.е. до 5 ч вечера того же дня.

Оператор

Таблица 2. Операторы спецификации трассировки
Оператор Описание
Равно без учета регистра (EQUALSIGNORECASE) Оператор равенства без учета регистра. Регистр строк не учитывается. 'ABC' EQUALSIGNORECASE 'abc' равно true. ('ABC' = 'abc') равно false.
Не равно (< >) Оператор не равно означает, что значение операнда не равно введенному значению.
В (IN)
  • For строка IN список строк преобразуется в true, если строка в левой части точно совпадает (с учетом регистра) со строкой, представленной в списке в правой части. Например:
    • ’adrian’ in ('keith','eric','kalyan','david', 'adrian and etc') преобразуется в false.
    • 'adrian' in ('tom','adrian') преобразуется в true.
    • ’adrian’ in ('Tom','Adrian') преобразуется в false.
  • целое IN список целых чисел:
    • 1 in (1,2,3,4,5) равно true.
    • 6 in (1,2,3,4,5) равно false.
Подобно (LIKE)

Означает совпадение шаблонов для значений строкового операнда. Это значение должно содержать символ подстановки (%) в той позиции, с которой ожидается совпадение шаблонов.

Например, выражение
host LIKE %blanca
сопоставляет слово blanca с любым другим словом, оканчивающимся на blanca, а выражение:
host LIKE blanca%
сопоставляет слово blanca с любым другим словом, начинающимся на blanca. Выражение
host LIKE %blanca%
сопоставляет слово blanca с любым другим словом, в которое включена лексема blanca.
Подобно без учета регистра (LIKEIGNORECASE) Этот оператор означает совпадение шаблонов для значений строкового операнда. Регистр строк не учитывается.
Не пустой (IS NOT NULL) Проверка запроса подтверждает существование запрашиваемого параметра.
Конкатенация (+) Этот оператор преобразует 'abc'+'def' в 'abcdef'.
Как в (LIKEIN) Этот оператор означает, что строка likein (строка-1, строка-2, строка-3,...) преобразуется в true, если строка в левой части выражения с likein совпадает с одной или несколькими строками (строка-N).
Пустой (IS NULL) Проверка запроса подтверждает отсутствие запрашиваемого параметра. Проверяет, есть ли операнд со значением NULL.
Равен (=) Данный оператор равенства означает совпадение с учетом регистра.
Больше (>) Преобразуется в стандартный логический результат.
Больше или равно (>=) Преобразуется в стандартный логический результат.
Меньше (<) Преобразуется в стандартный логический результат.
Меньше или равно (<=) Преобразуется в стандартный логический результат.
Между (BETWEEN) Используется с оператором AND для выбора диапазона значений между первым (нижним) значением включительно и последним (верхним) значением включительно. Совместно они применяются к цифровым значениям и датам.

Значение

В зависимости от выбранного оператора, введите значение для подвыражения, которое вы собираетесь создать.

Генерировать подвыражение

Генерирует подвыражение как результат операнда, оператора и указанных пользователем значений.

Добавить

Щелкните для добавления в поле в панели правил.



Имя файла: sip_rulebuilder_detail.html