はじめに
このドキュメントでは、外部データベースからデータを取得し、スクリプトでそのデータを使用するために Intelligent Contact Manager(ICM)で DBLookup を設定する方法を説明します。この機能の設定方法を説明するため、このドキュメントでは、(優先サービスを提供する場合などに)発信者がリストに含まれているかどうかをユーザが確認するというシナリオ例を使用します。
前提条件
要件
このドキュメントに関する固有の要件はありません。
使用するコンポーネント
このドキュメントの内容は、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
このドキュメントの情報は、特定のラボ環境にあるデバイスに基づいて作成されました。このドキュメントで使用するすべてのデバイスは、クリアな(デフォルト)設定で作業を開始しています。対象のネットワークが実稼働中である場合には、どのようなコマンドについても、その潜在的な影響について確実に理解しておく必要があります。
設定
- データベースを作成します。
最初にデータベースを作成します。Miscrosoft SQL Server Management Studio で [Databases] を右クリックし、[New Database] を選択します。
次に、このデータベースにテーブルを作成します。作成した新しいデータベースで [Tables] を右クリックします。次に、いくつかの列を追加できます。
注意: DBLookupノードによってアクセスされる表内のすべての整数フィールドをNOT NULLとして定義します。SQLデータベースでサポートされているデータ型は、SQLINT1 (tinyint)、SQLINT2 (smallint)、SQLINT4 (int)、SQLCHAR (char)、SQLVARCHAR (varchar)、SQLFLT4DBFLT4 (real)、SQLFLT8DBFLT8 (float)、およびSQLDATETIME (datetime)のみです。 SQLDATETIME、SQLVARCHAR、および SQLCHAR を除くすべてのフィールドを NOT NULL フィールドとして定義する必要があります。除外した 3 つのフィールドは NULL として定義できます。
varchar データ型を選択します。これは、varchar では数値に文字を使用できる柔軟性があるためです。[Phone] 列をプライマリ キーとして設定するため、[Allow Nulls] のチェックボックスをオフにします。この列をプライマリ キーとして設定するため、右クリックして [Set Primary Key] を選択します。
上記の手順が完了したら、変更を保存します。これで、テーブルにデータを追加できます。
- このデータベースに接続するために ICM を設定します。
Explorer ツールの下の Configuration Manager を使用して [Database Lookup Explorer] を開きます。次に、新たに作成したデータベースと列を追加します。
デフォルトでは、システムでは sa と空のパスワードが使用されるため、データベースにログインするためのユーザ名/パスワードを設定する必要もあります。次のキーを使用してレジストリでユーザ名/パスワードを設定します。
HKEY_LOCAL_MACHINE\SOFTWARE\Cisco Systems,
Inc.\ICM\inst1\RouterA\Router\CurrentVersion\Configuration\Database\SQLLogin
次の例は、ドメイン ユーザを使用したキーの設定方法を示します。
\\POD2SPRAWLA\DBLookup=(ZFB\Administrator,password)
注:パスワードには、「=」、「)」、「(」、「」、「?」、「\」、「/」などの特殊文字は使用しないでください。
-
[Edit Router] 画面で [Enable Database Routing] を選択してください。この画面は、Web インターフェイスのルータ セットアップからアクセスできます。
- このデータベースをスクリプトで使用します。
[DBLookup] ノードを追加し、検索するテーブルを指定します。次の例は、CallingLineID を使用した Priority テーブルの検索を示します。データ型として nchar が選択されたため、検索を入力する前に数字を文字列に変換する必要があります。
検索はプライマリ キーとして設定された列で実行されます。後で、同一行のデータを使用してコール変数に値を取り込むことができます。次の例は、データベースと Configuration Manager の両方に [City] という列を追加する方法を示します。この列にはスクリプトでデータを取り込むことができます。
確認
この項の情報を使用して、DB Worker が外部データベースに接続できることを確認します。DB Worker プロセスの最終再起動時点以降のログを含む dbw.txt というテキスト ファイルを作成します。
C:\Users\Administrator.ZFB>cdlog
ra
C:\icm\inst1\ra\logfiles>dumplog dbw /o /ms /last
dbw.txt が含まれているデータベースに DB Worker が接続できることを確認します。
12:39:08:413 ra-dbw Trace: Attempting integrated security open of
POD2SPRAWLA using ZFB\Administrator
12:39:08:451 ra-dbw Trace: Sucessfully impersonated ZFB\Administrator
12:39:08:476 ra-dbw Trace: 'id' is column 2 in sysobjects.
12:39:08:477 ra-dbw Trace: ID for table Priority is 5575058
12:39:08:484 ra-dbw Trace: Columns for Priority:
12:39:08:484 ra-dbw Trace: Column 1: Phone, type=47, length=30
12:39:08:536 ra-dbw Trace: Primary key for Priority is Phone, column 1.
12:39:08:557 ra-dbw Trace: Created connection to POD2SPRAWLA,DBLookup for thread 0
12:39:08:557 ra-dbw Trace: Created connection to POD2SPRAWLA,DBLookup for thread 1
12:39:08:558 ra-dbw Trace: Created connection to POD2SPRAWLA,DBLookup for thread 2
12:39:08:558 ra-dbw Trace: Created connection to POD2SPRAWLA,DBLookup for thread 3
12:39:08:558 ra-dbw Trace: Created connection to POD2SPRAWLA,DBLookup for thread 4
12:39:08:558 ra-dbw Trace: ScriptTable Piority is now available.
12:39:08:559 ra-dbw Trace: ScriptTable Piority (ID 5000) connected to
POD2SPRAWLA,DBLookup,Priority
12:39:08:559 ra-dbw Trace: Internal connect for POD2SPRAWLA,DBLookup,Priority
12:39:08:559 ra-dbw Trace: 'id' is column 2 in sysobjects.
12:39:08:560 ra-dbw Trace: ID for table Priority is 5575058
12:39:08:560 ra-dbw Trace: Columns for Priority:
12:39:08:560 ra-dbw Trace: Column 1: Phone, type=47, length=30
12:39:08:561 ra-dbw Trace: Primary key for Priority is Phone, column 1.
12:39:08:561 ra-dbw Trace: Column Phone (ID 5002) is table column 1, type 47.
12:39:08:561 ra-dbw Trace: ScriptTable Piority (ID 5000) connected to
POD2SPRAWLA,DBLookup,Priority
DB Worker ログには、(スクリプトの DBLookup ノードによりトリガーされる)プライマリ キー列に一致するエントリがない場合に次の応答が示されます。
13:24:05:294 ra-dbw Trace: Queue a lookup request
13:24:05:295 ra-dbw Trace: DBWorker Thread 0 (ID 350760 Table:Priority):
Received request: transactionID 1
13:24:05:295 ra-dbw Trace: DBWorker Thread 0 (ID 350760),transactionID 1,
Attempt to read the record:
13:24:05:295 ra-dbw Trace: DBWorker transactionID 1, Failed! result=1
一致するエントリがある場合の応答は次のとおりです。
13:25:25:810 ra-dbw Trace: Queue a lookup request
13:25:25:810 ra-dbw Trace: DBWorker Thread 1 (ID 354428 Table:Piority):
Received request: transactionID 2
13:25:25:810 ra-dbw Trace: DBWorker Thread 1 (ID 354428),transactionID 2,
Attempt to read the record:
13:25:25:811 ra-dbw Trace: DBWorker Thread 1 (ID 354428),transactionID 2,
Succeeded.
トラブルシュート
現在、この設定に関する特定のトラブルシューティング情報はありません。