通过使用 AND、OR、NOT 和括号进行分组,可以使用子表达式构建器,根据子表达式构建复杂的规则条件。应用更改时,规则构建器将对规则进行验证。如果找到未配对的括号以及不支持的逻辑运算符,那么将发出警报。
要查看此管理控制台页面,请单击
。要使用规则构建器来修改规则,您必须拥有管理员管理特权。
根据所选协议的不同,将显示不同的操作数。下表列示了控制台中显示的操作数名称、表达式中出现的实际操作数、每个操作数的有效协议以及每个操作数的描述。
操作数 | 语法 | 描述 |
---|---|---|
SIP 方法 | request.method | 请求的 SIP 方法。可能的值包括 INVITE、TRYING、RINGING、ACK、OK 和 BYE。如果消息并非请求,那么此操作数返回 NULL。 |
SIP 响应代码 | response.code | 响应的响应代码。如果消息并非响应,那么此操作数返回 -1。 |
目标头模式 | to.uri.scheme | “目标”头字段的模式。 |
URI 的模式 | request.uri.scheme | URI 的模式。 |
源头模式 | request.from.uri.scheme | “源”头字段的模式。 |
请求 URI | request.uri | 请求 URI。 |
目标 URI | request.to.uri | “目标”头字段的 URI。 |
源 URI | request.from.uri | “源”头字段的 URI。 |
源头 | request.from | “源”头字段。 |
目标头 | request.to | “目标”头字段。 |
目标头显示名 | request.to.display-name | “目标”头字段中的显示名称。 |
源头显示名 | request.from.display-name | “源”头字段中的显示名称。 |
目标 URI 主机 | request.to.uri.host | “目标”头字段的 URI 中的端口。 |
服务器主机 | serverhost | 服务器的标准主机名。此操作数不支持 >、>=、< 和 <= 之类的数字运算符。 |
端口 | port | 接收到请求的侦听端口。 |
联系人头 | request.contact | “联系人”头字段。 |
联系人 URI | request.contact.uri | “联系人”头字段的 URI。 |
客户机主机 | clienthost | 标准客户机主机名。这是因特网协议(IP)命令主机名的值。此操作数不支持 >、>=、< 和 <= 之类的数字运算符。 |
clientipv4 | clientipv4 | 客户机的 IP 地址,使用因特网协议版本 4(IPv4)点分四段地址类型 n.n.n.n。 |
clientipv6 | clientipv6 | 因特网协议版本 6(IPv6)128 位地址类型 x:x:x:x:x:x:x:x,符合客户机的 Request for Comments 1924(RFC 1924)。 |
serveripv4 | serveripv4 | 服务器的 IP 地址,使用 IPv4 点分四段地址类型 n.n.n.n。 |
serveripv6 | serveripv6 | IPv6 128 位地址类型 x:x:x:x:x:x:x:x,遵循服务器的 RFC 1924 协议。 |
请求传输 | request.transport | The transport of the request. |
请求 URI 用户 | request.uri.user | 请求 URI 中的用户。 |
源 URI 用户 | request.from.uri.user | “源”头字段中的用户。 |
目标 URI 用户 | request.to.uri.user | “目标”头字段中的用户。 |
请求 URI 主机 | request.uri.host | 请求 URI 中的主机。 |
源 URI 主机 | request.from.uri.host | “源”头字段中的主机。 |
请求 URI 端口 | request.uri.port | 请求 URI 中的端口。 |
源 URI 端口 | request.from.uri.port | “源”头字段的 URI 中的端口。 |
目标 URI 主机 | request.to.uri.host | “目标”头字段中的主机。 |
头名称 | header$<name> | 头的名称或值。例如,表达式
header$Host='localhost' 会测试请求以了解它是否包含值为
localhost
的 HTTP 主机头。要测试主机头是否存在,请使用下列其中一个表达式:
|
时间 | time | 此操作数用于定义必须处理给定请求的当日的日期和时间。两个可选字段是 StartTime 和 EndTime。如果在该已定义窗口外接收到请求,那么不会处理该请求。 “开始时间和结束时间”字段都必须使用以下格式:dayOfWeek/dayOfMonth/month/year::hour:minute:second。 例如,2007 年 4 月 11 日下午 1:03:45 指定为: Thu/11/Apr/2007::13:03:45 任何字段都可使用值为 * 的通配符。例如,每个月的第一天指定为 */1。 dayofWeek 值为 Sun、Mon、Tue、Wed、Thu、Fri、Sat,而 dayOfMonth 值的范围是 1 到 31。 month 值是表示 12 个月的非数字值:Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov 和 Dec。 year 值由表示年份的四位数字组成。例如,2007。 hour 值是以 24 小时制表示的当天小时。例如,8am 表示为 ::8。minute 和 second 是范围在 0 到 59 之间的整数。 正斜杠 (/) 用来分隔日期参数,双冒号 (::) 用来分隔日期和时间参数,冒号 (:) 用来分隔时间参数。请注意,由使用了 time 操作数的整个规则的布尔结果来确定要执行的路由操作。 |
百分比 | percentage$<val> | 百分比操作数对时间的固定百分比求值为 true。例如,percentage$50 对时间的平均值 50% 求值为 true。 |
Ramp up | rampup$<startTime> $<completionTime> |
rampup 操作数对时间的可变百分比求值为
true。它在 <startTime>
之前一直求值为
false,在 <completionTime>
之后一直求值为 true。从
<startTime> 至
<completionTime>
的时间内,它对线性增长的百分比求值为 true。 <startTime> 和 <completionTime> 的格式为 day/month/year::hour:min:sec。 其中 day 表示月份中的日期,month 表示 12 个月(Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov 和 Dec)中的一个月,year 是用 4 位数字表示的年份,hour 是用 2 位数字表示的 24 小时制的小时,min 和 sec 分别是用 2 位数字值表示的分钟和秒。例如, rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00 开始在 2007 年 1 月 1 日上午 8 点偶然求值为 true,并且在同一天的下午 5 点 ramp up 完成时一直求值为 true。 |
运算符 | 描述 |
---|---|
忽略大小写等于 (EQUALSIGNORECASE) | 忽略大小写等于运算符。将会忽略字符串的大小写。'ABC' EQUALSIGNORECASE 'abc' 为 true。('ABC' = 'abc') 为 false。 |
不等于 (< >) | “不等于”运算符表示操作数值与输入的值不相等。 |
包含 (IN) |
|
模式匹配 (LIKE) | 表示针对字符串操作数值的模式匹配。在模式匹配的预期开始位置,值必须包含通配符 (%)。 例如,表达式:
host LIKE %blanca匹配单词 blanca 以及任何其他以 blanca 结尾的词,而表达式: host LIKE blanca%匹配单词 blanca 以及任何其他以 blanca 开头的表达式。表达式: host LIKE %blanca%匹配单词 blanca 和内嵌有标记 blanca 的任何单词。 |
忽略大小写模式匹配 (LIKEIGNORECASE) | 此运算符表示针对字符串操作数值的模式匹配。将会忽略字符串的大小写。 |
不为 Null (IS NOT NULL) | 查询验证结果表明所请求的参数存在。 |
连接 (+) | 此运算符将 'abc'+'def' 求值为 'abcdef'。 |
模式匹配包含 (LIKEIN) | 当 likein 左边的字符串与一个或多个字符串 (stringN) 匹配时,此运算符表示 string likein (string1, string2, string3,...) 求值为 true。 |
为 Null (IS NULL) | 查询验证结果表明所请求的参数不存在。操作数测试值为 NULL。 |
等于 ( = ) | “等于”运算符表示以区分大小写方式进行匹配。 |
大于 (>) | 求值为标准逻辑结果。 |
大于或等于 (>=) | 求值为标准逻辑结果。 |
小于 (<) | 求值为标准逻辑结果。 |
小于或等于 (<=) | 求值为标准逻辑结果。 |
Between (BETWEEN) | 与 AND 配合使用,用于选择一组值,包括第一个值(下限值)和最后一个值(上限值)。这两个运算符可以共同对数字和日期值执行运算。 |
根据所选运算符的不同,输入要创建的子表达式的值。
根据已指定的操作数、运算符和值,生成子表达式。
单击以追加至规则面板上的框。