SIP 規則表示式建置器

請利用子表示式建置器,透過 AND、OR、NOT 和括弧分組,從子表示式建置複式規則條件。 規則建置器會在您套用變更時驗證規則,並在括弧不對稱及邏輯運算子不受支援時發出警示。

如果要檢視這個管理主控台頁面,請按一下伺服器 > 伺服器類型 > 隨需應變路由器 > odr_name > SIP 隨需應變路由器設定 > 遞送原則 SIP 規則 > 新增 > 子表示式建置器

如果要利用規則建置器來修改規則,您必須有管理者的管理專用權。

選取運算元

遞送及服務原則運算元

依所選的通訊協定而定,會顯示不同的運算元。下表包括主控台所顯示的運算元名稱、出現在表示式中的實際運算元、每個運算元的有效通訊協定,以及每個運算元的說明。

表 1. 運算元下表說明顯示於主控台的運算元名稱
運算元 語法 說明
SIP 方法 request.method

要求的 SIP 方法。可能的值如下:INVITE、TRYING、RINGING、ACK、OK 及 BYE。如果訊息不是要求,則此運算元傳回空值。

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,遵循用戶端電腦的「意見請求 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

要求的傳輸。

要求 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 主機標頭。如果要測試主機標頭是否存在,請使用下列其中一個表示式:
header$Host IS NOT NULL 
header$Host IS NULL
時間 time

此運算元是用來定義必須允許使用給定要求的日期和時間。兩個選用欄位是「開始時間」和「結束時間」。如果在所定義時間間隔之外收到要求,則要求不會加以處理。

「開始時間」和「結束時間」欄位皆使用下列格式:dayOfWeek/dayOfMonth/month/year::hour:minute:second

例如,2007 年 4 月 11 日星期四下午 1 點 3 分 45 秒指定為:

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

任何欄位都可以在值中使用萬用字元 *。例如,每月的第一天可指定為 */1。

dayofWeek 值是 Sun、Mon、Tue、Wed、Thu、Fri、Sat,而 dayOfMonth 值的範圍是 1 到 31。

month 值是非數值,代表十二個月份:Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec。

year 值是由年份的四位數字組成。例如,2007。

hour 值是當日時刻,24 小時表示法。例如,上午 8 點表示為 ::8。minutesecond 是範圍 0 到 59 的整數。

正斜線 (/) 是用來分開日期參數,雙冒號 (::) 是用來分開日期和時間值,冒號 (:) 是用來分開日期時間參數。 請注意,它是使用 time 運算元的整個規則 Boolean 結果,判定要採取的遞送動作。

百分比 percentage$<val> 對於時間的固定百分比,percentage 運算元求值為 true。例如,對於時間平均值 50%,percentage$50 求值為 true
加速 rampup$<startTime>

  $<completionTime>

對於時間的可變百分比, rampup 運算元求值為 true。如果在 <startTime> 之前,則 rampup 運算元一律求值為 false;如果在 <completionTime> 之後,則 rampup 運算元一律求值為 true。當時間以線性遞增百分比從 <startTime> 進展到 <completionTime> 時,rampup 運算元將求值為 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 是 24 小時表示法的 2 位數小時, 而 minsec 分別是表示分鐘及秒鐘的 2 位數值。

例如,

rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00 在 2007 年 1 月 1 日上午 8 點開始時,偶而求值為 true,但在同一天的加速完成時間下午 5 點,一律求值為 true

運算子

表格 2. 追蹤規格運算子
運算子 說明
等於且不區分大小寫 (EQUALSIGNORECASE) 「等於且不區分大小寫」運算子。會忽略字串的大小寫。'ABC' EQUALSIGNORECASE 'abc' 為 true。('ABC' = 'abc') 為 false。
不等於 (< >) 不等於運算子表示運算元值不等於您輸入的值。
In (IN)
  • 如果左側的字串與右側列出的字串完全相符(區分大小寫), 則 字串 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'
Like In (LIKEIN) 這個運算子表示如果 likein 左側的字串符合一或多個字串 (stringN), 則 string likein (string1, string2, string3,...) 會求值為 true。
空值 (IS NULL) 查詢的驗證作業顯示所要求的參數不存在。測試運算元是否有 NULL 值。
等於 ( = ) 這個相等運算子表示一個區分大小寫的相符項目。
大於 (>) 求值為標準邏輯結果。
大於或等於 (>=) 求值為標準邏輯結果。
小於 (<) 求值為標準邏輯結果。
小於或等於 (<=) 求值為標準邏輯結果。
介於 (BETWEEN) AND 搭配使用, 以選取包含第一個值(低值)到最後一個值(高值)的值範圍。它們一起運作於數字和日期值。

請依所選的運算子,輸入選擇要建立之子表示式的值。

產生子表示式

產生子表示式作為所指定運算元、運算子和值的結果。

附加

請按一下這裡,在規則畫面上附加到此框。



檔名:sip_rulebuilder_detail.html