Cisco Unified Intelligent Contact Management Enterprise

CTI Test Guide

Document ID: 20474

Updated: Jul 12, 2007



This document describes a Computer Telephony Integration (CTI) Test, which you can use as an interactive CTI client for demonstration or debug purposes.

A CTI Test can also help to identify, isolate, and resolve problems that relate to CTI. A CTI Test is a console program that runs in a window and displays CTI events on the screen. The CTI Test connects to the CTI Server through a socket connection. The program displays either all the events that occur on the switch, which is a CTI bridge client application, or only the events that pertain to a single agent. If a CTI Test has the same configuration as the application configuration, you see the expected events and switch behavior in the CTI Test program.



Cisco recommends that you have knowledge of these topics:

  • Cisco Intelligent Contact Management (ICM)

  • CTI

Components Used

The information in this document is based on ICM version 4.6.2 and later.

The information in this document was created from the devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If your network is live, make sure that you understand the potential impact of any command.


Refer to Cisco Technical Tips Conventions for more information on document conventions.

CTI Test Setup

Use the command-line interface (CLI) on a Peripheral Gateway (PG) in order to start the CTI Test program. The CLI requires:

  • The IP address of the CTI Server, or PG

  • The socket number

  • The agent ID and login information

Directory and Files

You can find the CTI Test program file and trace DLL in the \icr\bin directory on a PG where you have installed the CTI Server. The CTI Test program file is ctitest.exe, and the trace DLL is icrmsgs.dll. Because icrmsgs.dll is an active services file, copy these two files into a separate directory.


Complete these steps in order to configure the CTI Test:

Note: In the example in this section, abc is the separate directory that the Directory and Files section discusses.

  1. Profile—Set up a profile which consists of settings that serve as input to CTI Test.

    Start the CTI Test with this command in order to initiate a new profile:

    c:\abc\> ctitest /p profile name
  2. Host and Socket—Configure the CTI Server and socket to which the CTI Test connects.

    • Configure Side A CTI Server—Issue this command in order to configure the CTI Server Side A for the CTI Test:

      c:\abc\> ctitest: config /hostA ctiserver_hostnameA /portA ctiserver_portA
    • Configure Side B CTI Server—Issue this command in order to configure the CTI Server Side B for the CTI Test, if you have a duplex configuration:

      c:\abc\> ctitest: config /hostb ctiserver_hostnameB /portB ctiserver_portB

      Note: In this example, the ctiserver_hostnameA and ctiserver_hostnameB represent the IP address or host name of the CTI Server or PG side A and B. The ctiserver_portA and ctiserver_portB represent the port number of side A and B.

      Note: In a simplex environment, use "" to specify a null value.

  3. Protocol Version—Configure the CTI protocol version to 6:

    c:\abc\> ctitest: config /version 6
  4. Service Mask—Configure the service mask to 7:

    c:\abc\> ctitest: config /service 7
  5. Heartbeat—Turn off heartbeats while you debug the CTI issues.

    Issue this command in order to configure the heartbeat to -1:

    c:\abc\> ctitest: config /hb -1
  6. Agent—Configure the agent in order to determine the desired client events for Client mode.

    Note: These events vary. The variation depends on your CTI Server environment.

    c:\abc\> ctitest: agent /periph peripheral_id /id agentid /password password 
    /ext extension /inst instrument

    Note: This command displays over two lines due to space limitations.

    Note: If there is no agent password requirement to log in, use "" in order to specify a null value. Issue the agent /? command for help.

Open Session

The open command performs a socket connection to the CTI Server. The open command issues to the CTI Server the appropriate commands in order to establish message communication. By default, the CTI Test repeatedly attempts to open a session until a session opens or until you issue the close command or the quit command. The program automatically attempts to connect to the other side after a failure of the CTI Server. Issue this command in order to open a session after you successfully complete a configuration:

c:\abc\> ctitest: open

If your CTI Test configuration is correct, a message appears that is similar to this:

session #2 opened after 0 ms CCTime 13:52:32 PGStatus NORMAL Peripheral: Online

If errors occur when a session opens, verify your CTI Test configuration, as the Configuration section outlines.


If the session successfully opens, you can issue the login command in order to log in to the Automatic Call Distributor (ACD) with which the PG communicates. This is the syntax of the login command:

CTITest: login /? 
usage: agent_login ID PASSWORD [/periph N] [/instrument N] [/reason N] [/position N] 
       [/supervisor N] [/auctoIN] [/manualIN] [/skill N[.pri] [/skill N[.pri]] ...]

Use the type and configuration of the ACD as a basis, and provide these parameters for a successful login. Once you have connected, you can use the CTI Test in order to change agent states, answer call, transfer call, make call, conference, and so forth.

Useful Commands

This section provides a list of commands with frequent use in CTI Test.

Command Parameters
agent_login (login)
ID PASSWORD [/periph n] [/instrument N] [/reason N] 
[/position N] [/supervisor N] [/autoIN] [/manualIN]  
[/skill N[.pri] [/skill N[.pri]] ...]
agent_logout (logout)
[/agentID ID] [/password PASSWORD] [/periph n] 
[/instrument N] [/reason N] [/skill N[.pri] [/skill N[.pri]] ...] 
agent_not_ready (not_ready)
[/agentID ID] [/periph n] [/instrument N] [/reason N] 
[/skill N[.pri] [/skill N[.pri]] ...] 
agent_ready (ready)
[/agentID ID] [/periph n] [/instrument N] [/reason N] [/autoIN] 
[/manualIN] [/skill N[.pri] [/skill N[.pri]] ...]
agent_work_not_ready (wrapup)
[/agentID ID] [/periph N] [/instrument N] [/reason N] 
[/skill N[.pri] [/skill N[.pri]] ...] 
agent_work_ready (callwork)
[/agentID ID] [/periph N] [/instrument N] [/reason N] 
[/skill N[.pri] [/skill N[.pri]] ...] 
answer_call (answer)
[/periph N] [/callid CALLID.DEVID] [/stack N] 
[/instrument N] 
[/on] [/off]
clear_call (clear)
[/periph N] [/callid N.devid] [/stack N]
conference_call (conf)
[/periph N] [/active CALLID.DEVID] [/held CALLID.DEVID] 
[/stack ACTIVE HELD] [/blind DN] [/placement TYPE]  
[/manner TYPE] [/alertRings N] [/callopt TYPE] 
[/TG N] [/SG N] [/authorize code] [/account code] 
consult_call (cc)
DN [/periph N] [/instrument N] [/callid N.devid] 
[/stack N] [/placement TYPE] [/manner TYPE] [/transfer] [/conference] 
[/alertRings N] [/callopt TYPE] [/priority] [/postroute] [/TG N] 
[/SG N] [/authorize code] [/account code]
get_agent_state (state)
[/periph n] [/instrument N]
[/periph N] [/instrument N] [/ext string] [/id string]
get_skill_stats (sk_stats)
[/periph N] [/skill N] [/skillID N]
hold_call (hold)
[/periph N] [/callid N.devid] [/stack N]
make_call (mc)
DN [/periph N] [/instrument N] [/placement TYPE] 
[/manner TYPE] [/alertRings N] [/callopt TYPE] [/priority] 
[/postroute] [/TG N] [/SG N] [/authorize code] [/account code] 
[keyword=VALUE ...]
[/periph N] [/callid N.devid] [/stack N]
retrieve_call (retrieve)
[/periph N] [/callid N.devid] [/stack N] 
transfer_call (transfer)
[/periph N] [/active CALLID.DEVID] [/held CALLID.DEVID] 
[/stack ACTIVE HELD] [/blind DN][/placementTYPE]
[/manner TYPE] [/alertRings N] [/callopt TYPE] [/TG N] [/SG N] 
[/authorize code] [/account code]

Related Information

Updated: Jul 12, 2007
Document ID: 20474