ICM Scripting:
Troubleshooting Tools
and Methods
Cisco Systems, Inc. All rights reserved. Cisco Confidential 1
Troubleshooting
1. Script Creation and Testing
2. Routing Logic and Configuration
3. System Troubleshooting
Cisco Systems, Inc. All rights reserved. Cisco Confidential 2
Script Creation and Testing
• Validate Script
• Validate formula
• Monitor mode
• Test scripts (prompt testing etc.)
• Call Tracer
• Help - Script Editor
Cisco Systems, Inc. All rights reserved. Cisco Confidential 3
Validate Script
Validate script
button
Highlights error
Displays and
highlights
offending node
for immediate
edit
Does NOT test
YOUR logic!
Think of as
“Spell Checker”
Cisco Systems, Inc. All rights reserved. Cisco Confidential 4
Validate Formula
Automatically
validates when
click OK to exit
Choose to
ignore and
return later or
fix
Cisco Systems, Inc. All rights reserved. Cisco Confidential 5
Validate Formula
Validate
button
Highlights
offending
section
Does NOT
check your
logic, only
mathematical
syntax
Cisco Systems, Inc. All rights reserved. Cisco Confidential 6
Monitor Mode
Display Node IDs
Place in Monitor Mode
Observe calls flowing through script nodes
Cisco Systems, Inc. All rights reserved. Cisco Confidential 7
Script Creation and Testing - Test Scripts
Simplest
possible scripts
Plenty of room to
observe calls
flow through in
monitor mode
Each fail and
success node to
separate end or
other node for
better visibility
Only what is
needed to test
node
Cisco Systems, Inc. All rights reserved. Cisco Confidential 8
Call Tracer
Open call tracer,
enter parameters
as required to
define call type:
DN, ANI, CED
Send Call
Observer call flow,
node by node, in
script window
Cisco Systems, Inc. All rights reserved. Cisco Confidential 9
Call Tracer
Follow call flow logic,
node by node, in the
trace diagram
Trace includes all node
IDs as well as all results
of all formulas and
variables
Indicates which result
“wins” with asterisk (*)
Cisco Systems, Inc. All rights reserved. Cisco Confidential 10
Routing Logic and Configuration
• SET node
• Check Routes
• Router Log Viewer
• Web View
• Help - Database Schema
• Script Real Time display
Cisco Systems, Inc. All rights reserved. Cisco Confidential 11
SET Node
Store values
used in routing
decisions in
Termination Call
Detail records
Typically stored
in Peripheral
Variables
Concatenate to
store multiple
values in one
variable location
Cisco Systems, Inc. All rights reserved. Cisco Confidential 12
Check Routes
Choose Script
Choose Dialed
Number
Choose Script
Check routes,
peripheral
targets, and
labels
Errors in bottom
window
Cisco Systems, Inc. All rights reserved. Cisco Confidential 13
Router Log Viewer
Shows all
calls placed
Time, DN,
ANI, CED,
Label, etc.
Any
configuration
errors noted
in bottom
window
Cisco Systems, Inc. All rights reserved. Cisco Confidential 14
Database Schema
Typical MS help
format
Alphabetical,
keyword, or
search modes
Defines table
location of all
fields
Explanation of
field
Data type
Cisco Systems, Inc. All rights reserved. Cisco Confidential 15
Script Real Time
Shows current agent data
Predict routing behavior and check against monitor mode results
Cisco Systems, Inc. All rights reserved. Cisco Confidential 16
System Troubleshooting
• Rttest
• “expr” and “watch”
• “dump_vars”
Cisco Systems, Inc. All rights reserved. Cisco Confidential 17
rttest
Doc #20428 – “The Cisco ICM rttest utility”
http://www.cisco.com/en/US/partner/products/sw/custcosw/ps1001/products
_tech_note09186a00800ac69b.shtml
Cisco Systems, Inc. All rights reserved. Cisco Confidential 18
rttest: “expr”
The expr command is useful for testing mathematical formulas used in
routing scripts, or for determining the value of a particular ICM expression.
This is a useful tool if you are attempting to validate that a particular
expression or formula results in an actual value, versus an error condition
(usually a divide by zero).
rttest: expr /?
Usage: expression Expression [/long LongResult] [/float FloatResult]
[/char CharResult] [/wild Wildcard] [/invalid] [/error]
[/disable] [/help] [/?]
If you ran the following command, rttest would display the appropriate results
for CallsAnsweredTo5 for the specified skillgroup. If you modify the
properties of your NT command prompt to allow for inserts and quick edit,
you can copy and paste from the script editor or call tracer into rttest.
rttest: expr SkillGroup.G3_1.skillgroup1.CallsAnsweredTo5
Cisco Systems, Inc. All rights reserved. Cisco Confidential 19
rttest: “expr”
Use rttest expression command to confirm that your variable
1. Command string to open utility: rttest /cust lab2
2. Command string to run expression utility and check current
value of global variable: expr Global.user1_BM_Open
3. Results: (long) 1 … so the current value for this variable is “1”
OR “YES” therefore the business is OPEN
Cisco Systems, Inc. All rights reserved. Cisco Confidential 20
rttest: “watch”
The watch command “extends” the expression (“expr”)
command by writing an entry in the router logs (rtr)
each time the value changes for the configured
expression
Can run the watch command many times to configure
multiple expressions
This is a very effective tool for troubleshooting historical
call events
Combine with TCD, RCD historical records (with SET
node data), logs, and Peripheral reports to get a very
complete picture of call routing circumstances
Cisco Systems, Inc. All rights reserved. Cisco Confidential 21
rttest: “watch”
1. Watch
command for
several global
variables
12:57:02 Trace: Router detected PG setting
actual HH value for current HH.
2. Results in 13:16:16 Trace: Global.user1_BM_Open = 1
Router (rtr) log 13:23:05 Trace: Global.user1_BM_Holiday = 3
13:23:39 Trace: Global.user2_BM_Open = 1
13:28:00 Trace: Global.user1_BM_Holiday = 1
13:28:01 Trace: Global.user1_BM_Holiday = 3
13:29:01 Trace: Global.user1_BM_Holiday = 1
NOTE: Value is written to logs ONLY when it CHANGES not every time
the Administrative Script is runs.
Cisco Systems, Inc. All rights reserved. Cisco Confidential 22
Cisco Systems, Inc. All rights reserved. Cisco Confidential 23