目次

はじめに

前提条件

要件

使用するコンポーネント

設定

確認

トラブルシューティング

概要

このドキュメントでは、外部データベースからデータを取得し、スクリプトでそのデータを使用するために Intelligent Contact Manager（ICM）で DBLookup を設定する方法を説明します。 この機能の設定方法を説明するため、このドキュメントでは、（優先サービスを提供する場合などに）発信者がリストに含まれているかどうかをユーザが確認するというシナリオ例を使用します。

前提条件

要件

このドキュメントに関しては個別の要件はありません。

使用するコンポーネント

このドキュメントは、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。

本書の情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、初期（デフォルト）設定の状態から起動しています。 稼働中のネットワークで作業を行う場合、コマンドの影響について十分に理解したうえで作業してください。

設定

1. データベースを作成します。

最初にデータベースを作成します。 Miscrosoft SQL Server Management Studio で [Databases] を右クリックし、[New Database] を選択します。

次に、このデータベースにテーブルを作成します。 作成した新しいデータベースで [Tables] を右クリックします。 次に、いくつかの列を追加できます。

注: DB 検索ノードによってアクセスされる表内のすべての整数フィールドを 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] を選択します。

上記の手順が完了したら、変更を保存します。 これで、テーブルにデータを追加できます。

2. このデータベースに接続するために 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)

注: パスワードで次の特殊文字を使用しないで下さい: 「=」、「）」、「（」、「」、「か。」、「\」、「/」

3. [Edit Router] 画面で [Enable Database Routing] を選択してください。この画面は、Web インターフェイスのルータ セットアップからアクセスできます。

4. このデータベースをスクリプトで使用します。

[DBLookup] ノードを追加し、検索するテーブルを指定します。 次の例は、CallingLineID を使用した Priority テーブルの検索を示します。 データ型として nchar が選択されたため、検索を入力する前に数字を文字列に変換する必要があります。

検索はプライマリ キーとして設定された列で実行されます。 後で、同一行のデータを使用してコール変数に値を取り込むことができます。 次の例は、データベースと Configuration Manager の両方に [City] という列を追加する方法を示します。この列にはスクリプトでデータを取り込むことができます。

確認

この項の情報を使用して、DB Worker が外部データベースに接続できることを確認します。 DB Worker プロセスの最終再起動時点以降のログを含む dbw.txt というテキスト ファイルを作成します。

C:\Users\Administrator.ZFB>cdlog <instance_name> 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.

トラブルシューティング

現在のところ、この設定に関する特定のトラブルシューティング情報はありません。