簡介
本文檔介紹如何在Intelligent Contact Manager(ICM)中配置DBLookup函式,以便從外部資料庫提取資料並在指令碼中使用它。為了說明如何配置該函式,本文檔使用使用者嘗試識別呼叫方是否為清單一部分的示例場景(例如,為了提供優先順序服務)。
必要條件
需求
本文件沒有特定需求。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路正在作用,請確保您已瞭解任何指令可能造成的影響。
設定
- 建立資料庫。
首先,建立資料庫。在Microsoft 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欄位。可以將這三個欄位定義為NULL。
選擇varchar資料型別,因為它允許靈活使用數字中的字元。要將Phone列設定為主鍵,請取消選中該覈取方塊中的Allow Nulls。要將此列設定為主鍵,請按一下右鍵並選擇設定主鍵:
完成這些步驟後,儲存更改。現在,可以向表中新增資料:
- 配置ICM以連線到此資料庫。
使用資源管理器工具下的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作為資料型別,因此必須在輸入查詢之前將數字轉換為字串:
在設定為主鍵的列上進行查詢。以後,您可以使用同一行中的資料來填充呼叫變數。此示例顯示了在資料庫和配置管理器中新增的另一列City,該列可以填充到指令碼中:
驗證
使用此部分可以確認DB Worker能夠連線到外部資料庫。建立一個dbw.txt檔案,該檔案包含自上次重新啟動資料庫工作進程以來的日誌:
C:\Users\Administrator.ZFB>cdlog
ra
C:\icm\inst1\ra\logfiles>dumplog dbw /o /ms /last
驗證DB Worker是否可以使用dbw.txt連線到資料庫:
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
當主鍵列中沒有匹配條目(由指令碼中的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.
疑難排解
目前尚無適用於此組態的具體疑難排解資訊。