SIP オペランドおよびその関連プロトコルは、副次式ユーティリティー・ビルダーで使用できます。このビルダーはオプション・ツールであり、AND、OR、NOT、および括弧によるグループ化を使用して、副次式から複雑なルール条件を作成する際に役立ちます。
それぞれの作業クラスは、オプションの番号付きルールのリストを含みます。 このルールは、特定の要求について評価され、その要求に対するポリシーを 決定します。それぞれのルールはブール式とポリシー値で 構成されます。式が特定の要求を真と評価した場合、 そのルールに関連したポリシーが使用されます。
ルールに対するブール式の構文とセマンティクスは、 構造化照会言語 (SQL) 式の WHERE 文節に 似ています。具体的には、式の構文は Java™ Message Service (JMS) 1.1 仕様 で定義されます。詳しくは、ルール・ベースの要求分類 を参照してください。
JMS 仕様では、 ID は特定の照会パラメーター、Cookie、HTTP ヘッダーなど、 要求に関連するさまざまな属性を 参照します。JMS ID は要求変数またはオペランド と考えることができます。このオペランドはプロトコル固有のものである場合があります。例えば、SOAP サービス名は、 SOAP 作業クラスでのみ有効なオペランドです。
clienthost LIKE '%.ibm.com'で、'%.ibm.com' は要求のクライアント・ホスト名との比較に使用されるリテラルです。この式は、ibm.com ドメインのコンピューターから発信されるすべての要求に対して、 真です。ストリング・リテラルを単一引用符で 囲みます。数字リテラルは単一引用符で囲まないで ください。AND、 OR、NOT 演算子を含む括弧も、複合ブール式の形成に 使用できます。詳しくは、JMS 1.1 仕様 を参照してください。
オペランド | 構文 | 説明 |
---|---|---|
クライアント・ホスト |
clienthost | 完全修飾クライアント・ホスト名。これは、 インターネット・プロトコル (IP) コマンド・ホスト名の値です。このオペランドは、>、>=、<、<= などの数値演算子をサポートしていません。 |
クライアント IPV4 |
clientipv4 | Internet Protocol version 4 (IPv4) ドット付きクワッドのアドレス・タイプ n.n.n.n を使用したクライアントの IP アドレス。 |
クライアント IPV6 |
clientipv6 | クライアント・コンピューターの Request for Comments 1924 (RFC 1924) に準じた、 Internet Protocol バージョン 6 (IPv6) 128 ビット・アドレス・タイプ x:x:x:x:x:x:x:x。 |
連絡ヘッダー |
request.contact | 連絡ヘッダー・フィールド。 |
連絡 URI |
request.contact.uri | 連絡ヘッダー・フィールドの URI。 |
要求元ヘッダー |
request.from | 要求元ヘッダー・フィールド |
要求元ヘッダーの表示名 |
request.from.display-name | 要求元ヘッダー・フィールドの表示名。 |
要求元 URI |
request.from.uri | 要求元ヘッダー・フィールドの URI。 |
要求元 URI ホスト |
request.from.uri.host | 要求元ヘッダー・フィールド内のホスト。 |
要求元 URI ポート |
request.from.uri.port | 要求元ヘッダー・フィールドの URI 内のポート。 |
要求元 URI ユーザー |
request.from.uri.user | 要求元ヘッダー・フィールド内のユーザー。 |
ヘッダー・ルール |
header $<name> | ヘッダー名と値。 例えば、式 header$Host='localhost' は、要求をテストし、
値が localhost である HTTP ホスト・ヘッダーを含むかどうかを確かめます。ホスト・ヘッダーが存在するかどうかをテストするには、
次の式のいずれかを使用します。
header$Host IS NOT NULL header$Host IS NULL |
割合 |
percentage$<val> | パーセンテージ・オペランドは、時間の固定パーセンテージに対して true に評価されます。
例えば、percentage$50 は、時間のパーセンテージが平均で 50% の場合に true に評価されます。 |
ポート |
port | 要求を受け取った listen ポート。 |
ランプアップ |
rampup$<startTime>$<completionTime> | ランプアップ・オペランドは、時間の可変パーセンテージに対して 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 は、24 時間クロックで表した時の 2 桁の時間、min と sec はそれぞれ分と秒です。以下に例を示します。 rampup$01/Jan/2007::08:00:00$01/Jan/2007::17:00:00 は、2007 年 1 月 1 日午前 8 時から 時折 true に評価されるようになり、同日の午後 5 時のランプアップ完了時刻に至る頃には 常に true に評価されています。 |
要求トランスポート |
request.transport | 要求のトランスポート。 |
要求 URI |
request.uri | 要求 URI。 |
要求 URI ホスト |
request.uri.host | 要求 URI 内のホスト。 |
要求 URI ポート |
request.uri.port | 要求 URI 内のポート。 |
要求 URI ユーザー |
request.uri.user | 要求 URI 内のユーザー。 |
要求元ヘッダーのスキーム |
request.from.uri.scheme | 要求元ヘッダー・フィールドのスキーム。 |
宛先ヘッダーのスキーム |
to.uri.scheme | 宛先ヘッダー・フィールドのスキーム。 |
URI のスキーム |
request.uri.scheme | URI のスキーム。 |
サーバー・ホスト |
serverhost | サーバーの完全修飾ホスト名。このオペランドは、 >、>=、<、<= などの数値演算子をサポートしていません。 |
サーバー IPV4 |
serveripv4 | IPv4 ドット付きクワッドのアドレス・タイプ n.n.n.n を使用する、サーバー・コンピューターの IP アドレス。 |
サーバー IPV6 |
serveripv6 | サーバー・コンピューターの RFC 1924 に準じた、IPv6 128 ビット・アドレス・タイプ x:x:x:x:x:x:x:x。 |
SIP メソッド |
request.method | 要求に対する SIP メソッド。指定可能な値は、INVITE、TRYING、RINGING、ACK、OK、および BYE です。メッセージが要求でない場合、このオペランドはヌルを返します。 |
SIP 応答コード |
response.code | 応答の応答コード。メッセージが応答でない場合、このオペランドは -1 を返します。 |
宛先クライアント・ホスト |
clienthost | 宛先ヘッダー・フィールド内のクライアント・ホスト。 |
宛先ヘッダー |
request.to | 宛先ヘッダー・フィールド。 |
宛先ヘッダーの表示名 |
request.to.display-name | 宛先ヘッダー・フィールド内の表示名。 |
宛先 URI |
request.to.uri | 宛先ヘッダー・フィールドの URI。 |
宛先 URI ホスト |
request.to.uri.host | 宛先ヘッダー・フィールドの URI 内のポート。 |
宛先 URI ユーザー |
request.to.uri.user | 宛先ヘッダー・フィールド内のユーザー。 |
WebSphere® Virtual Enterprise は、ルール式で以下の表の演算子をサポートします。これらの演算子は、WHERE または HAVING 文節の内部に現れるので、SQL 用語では述部 とも呼ばれます。演算子は大/小文字を区別しません。
演算子 | 説明 |
---|---|
OR | 論理 OR 演算子。 |
AND | 論理 AND 演算子。 |
NOT | 否定演算子。 |
IN | 単一の式に複数の値を持つオペランドを表します。その意味は、演算子に対する SQL 標準の意味と整合します。
例えば、ポート値を 9080、9090、9091 などの値のいずれかまたはそのすべての可能性がある場合、以下の式フラグメントを使用します。
port IN (9080,9090,9091)
SQL では、括弧内の値の表し方は、ポートのデータ・タイプによって決まります。port が整数の場合、単一引用符がなくても値は構文的に正しくなります。port がストリングの場合、正しい式は、以下のようになります。
port IN ('9080','9090','9091') |
LIKE | ストリング・オペランド値のパターン・マッチングを表わします。値には、パターン・マッチングの始まりが予期される位置にワイルドカード文字 (%) が含まれている必要があります。 例えば、
host LIKE %blancaという式は、blanca という語および blanca で終わるすべての語に一致し、 host LIKE blanca%という式は、blanca という語および blanca で始まるすべての語に一致します。 host LIKE %blanca%という式は、blanca という語およびトークン blanca が埋め込まれたすべての語に一致します。 java.util.regex.Pattern クラスが使用されます。 |
= | 等価演算子は、大/小文字を区別した一致を表します。 |
> | より大演算子は、数値オペランドで使用されます。 |
>= | より大演算子または等価演算子は、数値オペランドで使用されます。 |
< | より小演算子は、数値オペランドで使用されます。 |
<= | より小演算子または等価演算子は、数値オペランドで使用されます。 |
< > | 非等価演算子。 |
BETWEEN | AND とともに使用して、最初の (低い) 値と最後の (高い) 値を含む、ある範囲の値を選択します。これら 2 つの値を一緒にして、数と日付の値に対して使用します。 |
IS NULL | オペランドに NULL 値が含まれているかどうかをテストします。 |
IS NOT NULL | オペランドに NULL 以外の値が含まれているかどうかをテストします。 |