概要
このドキュメントでは、外部データベースからデータを取得し、スクリプトでそのデータを使用するために Intelligent Contact Manager(ICM)で DBLookup を設定する方法を説明します。 この機能の設定方法を説明するため、このドキュメントでは、(優先サービスを提供する場合などに)発信者がリストに含まれているかどうかをユーザが確認するというシナリオ例を使用します。
前提条件
要件
このドキュメントに関しては個別の要件はありません。
使用するコンポーネント
このドキュメントは、特定のソフトウェアやハードウェアのバージョンに限定されるものではありません。
本書の情報は、特定のラボ環境にあるデバイスに基づいて作成されたものです。 このドキュメントで使用するすべてのデバイスは、初期(デフォルト)設定の状態から起動しています。 稼働中のネットワークで作業を行う場合、コマンドの影響について十分に理解したうえで作業してください。
設定
- データベースを作成します。
最初にデータベースを作成します。 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] を選択します。
上記の手順が完了したら、変更を保存します。 これで、テーブルにデータを追加できます。
- このデータベースに接続するために 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 <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.
トラブルシューティング
現在のところ、この設定に関する特定のトラブルシューティング情報はありません。