# SIP ルール式ビルダー

副次式ビルダーは、AND、OR、NOT、および括弧によるグループ化を使用して、副次式から複雑なルール条件を作成する場合に使用します。ルール・ビルダーは、変更内容を適用するときにルールを妥当性検査して、括弧数の不一致およびサポートされない論理演算子について警告します。

この管理コンソール・ページを表示するには、「サーバー」>「サーバー・タイプ」>「オンデマンド・ルーター」>「odr_name」>「SIP オンデマンド・ルーターの設定」>「ルーティング・ポリシー SIP ルール」>「追加」>「副次式ビルダー」をクリックします。

ルール・ビルダーでルールを変更するには、管理者の管理特権が必要です。

## オペランドの選択

### ルーティングおよびサービス・ポリシー・オペランド

選択したプロトコルによって、異なるオペランドが表示されます。 次の表に、コンソールに表示されるオペランド名、式に表示される実際のオペランド、オペランドごとの有効なプロトコル、および各オペランドの説明を示します。

表 1. オペランド以下の表で、コンソールで表示されるオペランド名について説明します。
オペランド | 構文 | 説明
--- | --- | ---
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` | 要求が受信された listen ポート。
連絡先ヘッダー | `request.contact` | 連絡先ヘッダー・フィールド
連絡先 URI | `request.contact.uri` | 連絡先ヘッダー・フィールドの URI
クライアント・ホスト | `clienthost` | 完全修飾クライアント・ホスト名。インターネット・プロトコル (IP) コマンドのホスト名の値です。このオペランドは`>、>=、<、<=` などの数値演算子はサポートしません。
clientipv4 | `clientipv4` | インターネット・プロトコル・バージョン 4 (IPv4) のドット付きクワッド・アドレス・タイプ `n.n.n.n` を使用した、クライアント・コンピューターの IP アドレス。
clientipv6 | `clientipv6` | Request for Comments 1924 (RFC 1924) に準拠した、クライアント・コンピューターのインターネット・プロトコル・バージョン 6 (IPv6) 128 ビット・アドレス・タイプ `x:x:x:x:x:x:x:x`。
serveripv4 | `serveripv4` | IPv4 のドット付きクワッド・アドレス・タイプ `n.n.n.n` を使用した、サーバー・コンピューターの IP アドレス。
serveripv6 | `serveripv6` | RFC 1924 に準拠した、サーバー・コンピューターの IPv6 128 ビット・アドレス・タイプ `x:x:x:x:x:x:x:x`。
要求トランスポート | `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` | このオペランドは、一定の要求を認可する必要がある日時を定義するのに使用されます。StartTime と EndTime という 2 つのオプション・フィールドがあります。要求がこの定義された時間枠外で受信された場合、その要求は処理されません。 開始時刻と終了時刻のフィールドの形式は `dayOfWeek/dayOfMonth/month/year::hour:minute:second` です。 例えば、2007 年 4 月 11 日 午後 1:03:45 は次のように指定します。 Thu/11/Apr/2007::13:03:45 いずれのフィールドも値 * でワイルドカードを使用できます。例えば、毎月の 1 日は */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 値は、4 桁の年です。例えば 2007。 hour 値は 24 時間クロックの時刻です。例えば、8am は ::8 と表わします。minute と second は 0 から 59 の整数です。 日付パラメーターを区切るにはスラッシュ (/) が使用され、日時の値を区切るには 2 重コロン (::) が使用され、時刻パラメーターを区切るにはコロン (:) が使用されます。 時刻オペランドが使用されるルール全体のブール結果が、ルーティング・アクションを決定するために使用されます。
比率 | `percentage$<val>` | percentage オペランドは、時間の固定パーセンテージを `true` に評価します。例えば、 `percentage$50` は、時間の平均 50% で `true`に評価します。
起動 | `rampup$<startTime>` `$<completionTime>` | `rampup` オペランドは、時間の可変パーセンテージを `true` に評価します。常に `<startTime>` の前には `false` に評価し、`<completionTime>` の後に `true` に評価します。 時間が `<startTime>` から `<completionTime>` に進むにつれ、`true` に評価します。パーセンテージは直線的に増加します。 `<startTime>` と `<completionTime>` の形式は `day/month/year::hour:min:sec` です。 `day` は日、`month` は月 (Jan、Feb、Mar、Apr、May、Jun、Jul、Aug、Sep、Oct、Nov、Dec)、`year` は 4 桁の年、`hour` は 24 時間クロックの 2 桁の時、`min` は 2 桁の分、`sec` は 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) | `string IN list of strings` は、左方のストリングが右方にリストされたストリングの 1 つと完全に一致する場合に (大/小文字の区別があります) true に評価されます。以下に例を示します。 ’adrian’ in `('keith','eric','kalyan','david', 'adrian and etc')` は false です。 `'adrian'` in `('tom','adrian')` は true です。 ’adrian’ in `('Tom','Adrian')` は false です。 `integer IN list of integers` : `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) | この演算子は、ストリング・オペランド値のパターン・マッチングを表します。 ストリングの大/小文字は無視されます。
NULL 以外 (IS NOT NULL) | 照会の妥当性検査は、要求されたパラメーターが存在することを示しています。
連結 (+) | この演算子は、`'abc'+'def'` を `'abcdef'` と評価します。
類似 - 次に含まれる (LIKEIN) | この演算子は、`string likein (string1, string2, string3,...)` とすると、`likein` の左方のストリングが stringN の 1 つ以上のストリングと一致している場合に true と評価されることを表します。
NULL (IS NULL) | 照会の妥当性検査は、要求されたパラメーターが存在しないことを示しています。オペランドに `NULL` 値が含まれているかどうかをテストします。
等号 ( = ) | 等価演算子は、大/小文字を区別した一致を表します。
より大 (>) | 標準的な論理結果に評価されます。
以上 (>=) | 標準的な論理結果に評価されます。
より小 (<) | 標準的な論理結果に評価されます。
以下 (<=) | 標準的な論理結果に評価されます。
間 (BETWEEN) | `AND` とともに使用して、最初の (低い) 値と最後の (高い) 値を含む、ある範囲の値を選択します。この演算子の組み合わせは、数と日付の値に対して機能します。

## 値

選択する演算子に応じて、作成のために選択する副次式の値を入力します。

## 副次式の生成

指定したオペランド、演算子、および値の結果として副次式を生成します。

## 付加

ルール・パネルのボックスに付加する場合にクリックします。

関連情報:
ルーティング・ポリシー SIP ルール
サービス・ポリシー SIP ルール

ファイル名: sip_rulebuilder_detail.html