ShoreTel Enterprise ContactCenter 8 Applications
Interface Guide
November 2012
Legal Notices
Document and Software CopyrightsCopyright © 1998-2012 by ShoreTel Inc., Sunnyvale, California, USA. All rights reserved.
Printed in the United States of America. Contents of this publication may not be reproduced or transmitted in any form or by any means, electronic or mechanical, for any purpose, without prior written authorization of ShoreTel, Inc. ShoreTel, Inc. reserves the right to make changes without notice to the specifications and materials contained herein and shall not be responsible for any damage (including consequential) caused by reliance on the materials presented, including, but not limited to typographical, arithmetic or listing errors.
TrademarksShoreTel, ShoreTel (and logo), ControlPoint, Brilliantly Simple, Brilliantly Simple Communication, ShoreCare, ShoreGear, ShorePhone, and ShoreWare are registered trademarks of ShoreTel, Inc. in the United States and/or other countries. The ShoreTel logo is a trademark of ShoreTel, Inc. in the United States and/or other countries..
All other copyrights and trademarks herein are the property of their respective owners.
PatentsShoreTel Enterprise Contact Center is covered by patents as listed at http://www.shoretel.com/about/patents.html.
Version InformationApplications Interface GuidePart Number: 800-1708-01Contact Center 8Version: 8Date: 2/12/13
Company InformationShoreTel, Inc.
960 Stewart Drive
Sunnyvale, California 94085 USA
+1.408.331.3300
+1.408.331.3333 (fax)
www.shoretel.com
ShoreTel Enterprise Contact Center ShoreTel Enterprise Contact Center 8 Applications Interface Guide 2
ShoreTel Enterprise Contact Center ShoreTel Contact Center 8 Applications Interface Guide 3
Organization . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4Conventions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5Call Profile Fields . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7Extracting and Storing Call Profile Information in TAPI . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9Integrating with a Customer Information Database . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10Example: Routing a Call Based on CRM Information . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11Example: Providing Self-Service Options Using CRM Information . . . . . . . . . . . . . . . . . . 11Storing Dial List Results . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14Setting the ActivateServer Parameter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18Configuring Agent Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22Agent Toolbar as a DDE Client . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
DDE Commands . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24Agent Toolbar as a DDE Server . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
The ACD Topic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28The TEL Topic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30The REQUEST Topic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30The OTHER Topic . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
Advanced Configuration Options . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Using DDE Poke instead of DDE Execute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31Using Multiple DDE Commands for the Same Event . . . . . . . . . . . . . . . . . . . . . . . . . 31Working with more than One DDE Server Application at the Same Time . . . . . . . . . 32
Configuring Agent Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Managing Agent Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33Agent Toolbar Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
The ACD Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34The TEL Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Agent Toolbar Methods (Services) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36The ACD Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37The TEL Methods . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37Properties (Get Only) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39Possible OnDenied Causes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40Variable Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
Configuring Agent Toolbar . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Activating an Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Activation Events . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45Command Substitution . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46Code of VbController.exe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48The Control Panel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
Table of Contents
Before You Start
The following sections provide an overview of the book.
About This Book.......................................................................................................... 4
About This Book
This guide describes how to integrate the ShoreTel Enterprise Contact Center Solution (ECC) with external applications, including Customer Relationship Management (CRM) products. It details the available interfaces and provides necessary reference information, including examples.
This guide provides information for professional services engineers and application programmers who must plan the integration of the ShoreTel ECC Solution to selected external applications before development begins.
Organization
The document is divided into the following chapters:
Chapter 1, Integrating with a Customer Database
Chapter 2, Using Dial Lists
Chapter 3, Automating Agent Activities
Appendix A, Integration Examples
Appendix B, ActiveX API Quick Reference
Appendix C, Supported SQL Syntax
Note
The options and modules required for application integration are only available with the ShoreTel ECC Solution.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 4
Before You Start Conventionsii
Conventions
The following typographical marking conventions are used in this document.
Marking Meaning
Bold Names of interface objects, such as buttons and menus.
Courier Code examples.
Courier Italic Variables in code examples.
Blue Cross references with hyperlinks. Click the blue text to go to the indicated section. All chapters have a list of section links on the first page.
Note: Table of Contents entries are also links, but they are not shown in blue.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 5
CHAPTER
1. Integrating with a CustomerDatabase
Enterprise Contact Center (ECC) can be closely integrated with databases containing customer information to improve customer service. For example, you can use your Customer Relationship Management (CRM) application’s database to specify agent skills, call priority, and call routing, and to let callers bypass agents and interact directly with the CRM database in a self-service application.
Integrating Contact Center with a customer information database requires the interaction of three key components:
Call profiles
Call control scripts
CRM database
Refer to the following sections for more information about integrating with a customer database:
Using Call Profiles....................................................................................................... 6
Creating Call Control Scripts....................................................................................... 9
Using Call Profiles
A call profile consists of dynamic information that is attached to each call in the system. This information is used to route the call and record its history. The call profile is updated as the call moves through the system and by caller interaction or by a CRM database that uses call control scripts. In addition, you can extract and store call profile information into TAPI.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 6
Integrating with a Customer Database Call Profile Fields1
Call Profile Fields
Each field in the call profile is either mandatory or optional. Mandatory fields are predefined and exist in any ShoreTel Contact Center Solution installation. They cannot be removed or changed by the user. Optional fields that meet your business needs—also called user fields—can be defined by using Contact Center Director > System Parameters > Routing Preferences > Call Profiles. Refer to the Enterprise Contact Center Administration Guide for specifics.
Contact Center uses Structured Query Language (SQL) for database interactions. Use the call profile field’s DDE name, surround with a pair of percent signs (%), in a SQL statement. For example
Select * from table_1 where phone_number = %ANI%
The following is a list of mandatory fields in the call profile. The field names in the call profile are case-sensitive.
Table 1: Call Profile Mandatory Fields
Call Profile Name DDE Name Description
ANI ANI Automatic Number Identification (ANI) transmits the customer’s telephone number and delivers it to your call center’s telephone system.
Note: The format of the ANI call profile field includes a plus sign (+) before the ANI number. This facilitates external incoming calls (i.e. from outside your site).
Agent Queue agent_queue Indicates that the call is being handled by a personal agent queue.
Group acd_group The internal group id related to the call
Original Destination called The original destination of the call
Trunk trunk PBX and call-type depended
Call ID callid The ID of the call
DNIS DNIS The DNIS of the call
calling calling The ANI (caller ID) of the caller
Type calltyp Call type (Voice, Chat, Email, Callback, Abandoned, Web Callback, Dial List)
Media Media Call media (WEB, VOICE, EMAIL)
Priority Priority Priority of the call
Service Service Service that handles the call
Customer Number CUSTOMER_NUMBER
Identifier number of the customer (if internal, the Customers Table is used)
Customer Name CUSTOMER_NAME Customer name (if internal the Customers Table is used)
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 7
Integrating with a Customer Database Call Profile Fields1
ACD Enter Date ACD_ENTER_DATE Date the call entered Contact Center
ACD Enter Time ACD_ENTER_TIME Time the call entered Contact Center
Queue Position Q_POSITION Call position in the queue
Average Queue Time AVERAGE_Q_TIME Expected average wait time in the queue.
Call Back Time CALLBACK_TIME Callback time set by caller (if empty, Abandoned Call)
Call Back Destination CALLBACK_DEST Callback destination
Language LANGUAGE The language associated with the call (0=English, 1=Hebrew, 2=Russsian, 3=Arabic, 4=Mexican Spanish)
Agent Extension AGENT_EXT The agent’s telephone extension number
Agent Number AGENT_NUMBER Number used to identify the agent
Dial List ID DIAL_LIST_ID The ID of the dial list
Start Queue Time START_QUEUE_TIME
The time when a call enters the queue
Agent PSW AGENT_PSW Agent password
Execute Req EXECUTE_REQ For any request to be executed
Trunk Number TRUNK_NUMBER The number of the trunk
Email To EMAIL_TO The text in the To field of the email
Email CC EMAIL_CC The text in the CC field of the email
Email Subject EMAIL_SUBJECT The text in the Subject field of the email
Email From EMAIL_FROM The text in the From field of the email
Email To EMAIL_REPLY_TO The text in the Reply To field of the email
Email Sent Date EMAIL_SENT_DATE
The text in the Date Sent field of the email
Email Sent Time EMAIL_SENT_TIME
The text in the Time Sent field of the email
Email Enter OMS Date EMAIL_ENTER_OMS_DATE
The text in the OMS Date field of the email
Email Enter OMS Time EMAIL_ENTER_OMS_TIME
The text in the OMS Time field of the email
Primary Call Back Destination
PRIMARY_CB The primary destination for the callback
Table 1: Call Profile Mandatory Fields
Call Profile Name DDE Name Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 8
Integrating with a Customer Database Extracting and Storing Call Profile Information in TAPI1
Extracting and Storing Call Profile Information in TAPI
You can extract and store call profile information in TAPI by using the following process:
1. On the Contact Center Server, in the directory in which ShoreTel Contact Center is installed, open the Bin folder.
2. In the Bin folder, use a text editor to create a file named shoretelcfg.ini.
3. In the shoretelcfg.ini file, add a section named call_profile.
4. In the call_profile section, specify a key named user_fields with call profile field names as values. Separate the values with a comma. For example:
[call_profile]user_fields=AccNo, Balance, DueDate
5. Restart the Contact Center Server.
The specified call profile field values display in the TAPI call properties.
Creating Call Control Scripts
Call control scripts define the way a system processes automatic call distribution (ACD) calls. Each script contains a set of actions that are performed on a call. Call control scripts can be used to:
Create announcements
Alternative Call Back Destination 1
ALTERNATIVE1_CB
The first alternative destination for the callback
Alternative Call Back Destination 2
ALTERNATIVE2_CB
The second alternative destination for the callback.
Last Time To Initiate Callback
LAST_TIME_TO_INITIATE_CB
The time when the last callback can be made
Alternative Call ID ALTERNATIVE_CALL_ID
The PBX TAPI call ID
Group GROUP_ID The ID of the group
Outbound Caller ID OUTBOUND_CALLER_ID
The caller ID of the outbound call
SW Call GUID SW_CALL_GUID The PBX call GUID
Table 1: Call Profile Mandatory Fields
Call Profile Name DDE Name Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 9
Integrating with a Customer Database Integrating with a Customer Information Database1
Collect caller information
Make routing decisions
Implement self-service
Provide music-on-hold
Read and write information to a database
Update the call profile fields that control call handling
Contact Center provides Graphical Call Control Scripts (GCSS) Administration, a graphical call control scripting tool available from Contact Center Director. Refer to the Enterprise Contact Center Administrator Guide for information on using this tool to create call control scripts.
Complete the following steps to use call control scripts:
1. Plan the actions you want the call control script to perform.
2. Identify and connect to an external database and create open database connectivity (ODBC) queries.
3. Create any new call profile fields needed by the call control script.
4. If you are creating an announcement, record the announcement.
5. Create the call control scripts.
6. Specify the IVR application parameters.
7. Identify the call control script as an IRN or service destination.
Integrating with a Customer Information Database
To integrate your call control scripts with customer information, you must first identify the database and the columns containing the necessary information. When integrating with an external database, Contact Center acts as the client and uses an ODBC interface on the Contact Center Server to connect to the database. You must have the appropriate ODBC drivers installed on the Contact Center Server.
Contact Center uses Structured Query Language (SQL) for database interactions. External databases must be in the SQL format to be accessible by Contact Center through ODBC.
Complete the following steps to integrate with a CRM database:
1. Make sure that you have a network connection to the external database by using ping.
2. Install all needed infrastructure software (OBDC drivers and client side processes) and create the OBDC connections on the Contact Center Server.
3. Plan the data items you need to gather, define the conditions, and decide where to put data results.
4. Define the Data Source Name (DSN) of the database to which you want to connect.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 10
Integrating with a Customer Database Example: Routing a Call Based on CRM Information1
5. Restart Enterprise Contact Center.
6. Create the SQLConnect and SQLExecute actions in your call control script.
SQLConnect connects to a database to make database queries.
SQLExecute sends a query (written as a SQL statement) to the database to obtain specific information, such as the priority of a caller.
Refer to Appendix C, Supported SQL Syntax Supported SQL Syntax for information about the ShoreTel supported SQL syntax.
Example: Routing a Call Based on CRM Information
You can use the data in your customer database to route calls to agents who can better serve a particular customer. The following example routes an incoming call based on a customer type field in a CRM database.
In this scenario, a call arrives at a financial institution and is routed by customer type to either a group of agents handling stock trades, or to a group that specializes in bonds. A field for customer type has been added to the call profile.
The incoming call follows these basic stages:
1. The call arrives at the IRN and is sent to a call control script.
2. The call control script uses the Get Digits action to collect the Customer ID number and record it to the call profile.
3. The call control script assesses the database using the following interaction:
a. Connects to the CRM database using the SQLConnect action.
b. Uses the Query Database action to identify the customer’s data in the database.
c. Uses the SQLExecute action to retrieve the customer type from the CRM database and write it to the call profile.
4. The call control script uses the Decision action to check the Customer Type field and branch to the correct Change Profile action that sets the required service in the call profile.
Example: Providing Self-Service Options Using CRM Information
You can use the data in your customer database to provide customers with self-serve options. An IVR application can play back selected WAV files based on the customer status or convert text digits, currency, or dates into speech. The example below provides an account balance to a self-service customer.
In this scenario, a customer calls a financial institution and subsequently hears options for checking an account balance. A field for customer balance has been added to the call profile.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 11
Integrating with a Customer Database Example: Providing Self-Service Options Using CRM Information1
The incoming call follows these basic stages:
1. The call arrives at the IRN and is sent to a call control script.
2. The call control script uses the Get Digits action to collect the Customer ID number and record it to the call profile.
3. The call control script accesses the database using the following interaction:
a. Connects to the CRM database using the SQLConnect action.
b. Uses the Query Database action to identify the customer’s data in the database.
c. Uses the SQLExecute action to retrieve the customer’s account balance from the CRM database and write it to the call profile.
4. The call control script uses the Announce action to report the account balance to the caller.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 12
CHAPTER
2. Using Dial Lists
Enterprise Contact Center (ECC) can automatically make outbound calls for agents based on dial lists (the lists of phone numbers to call). To use dial lists for outbound dialing campaigns, you must have the dial data in an ODBC/SQL database.
It is recommended that your dial list database be case-insensitive, since the format of a dial list query is automatically converted to lower-case characters when run.
Dial lists should be in the form of a table in a SQL database. More information about dial lists, refer to the ShoreTel Enterprise Contact Center Administration Guide.
Refer to the following section for more information about using dial lists:
Accessing Dial List Data ........................................................................................... 13
Accessing Dial List Data
To use dial lists for outbound dialing campaigns, you must have the dial data in an external ODBC/SQL database.
Complete the following steps to access dial list data from an external database:
1. Create the physical connection to the external database. Make sure you can ping between the computers and that they can communicate via the network.
2. Install the needed infrastructure software (OBDC drivers and client side processes) and create the OBDC entries on the ShoreWare Contact Center Server.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 13
Using Dial Lists Storing Dial List Results2
3. Plan which data items you would like to gather, define the conditions, and decide where how the data will be used in call control scripts.
4. Define the Data Source Name (DSN) of the database to which you want to connect.
5. Restart Enterprise Contact Center.
6. Create the SQLConnect and SQLExecute scripts.
SQLConnect connects to a database for queries.
SQLExecute sends a query (written as a SQL statement) to the database to obtain specific information, such as the priority of a caller.
See Appendix C, Supported SQL Syntax for information on the ShoreTel supported SQL syntax.
Storing Dial List Results
After an agent receives an outbound call, the agent can identify the call status using ShoreWare Agent Toolbar. This includes a complete call (a person was reached), an incomplete call that should be tried again later, and a call placed using an incorrect telephone number. You must define a location in your database for storing these call results.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 14
CHAPTER
3. Automating Agent Activities
The ShoreTel Enterprise Contact Center Solution (ECC) provides interfaces for client-based integration with external applications.
The call profile contains the information related to a call, including data in mandatory fields (such as DNIS, ANI, Initiate Time, and Priority) and user-defined fields. The call profile originates when the call enters the ShoreTel system, is accessible and managed during the progress of the call through the system, and is cleared at call completion.
When a call is routed to an agent, ShoreTel Agent Toolbar uses call profile values to provide the appropriate notifications to the agent. Agent Toolbar can also deliver specific fields to external applications that are then available at the agent station along with executable commands. For example, the system can send a command to display the caller’s screen, based on the Caller ID (ANI).
ECC supports standard interfaces for integration with external applications, including dynamic data exchange (DDE), ActiveX, and basic Microsoft prompt commands (called “triggers”). Customization using these interfaces is done through the agent configuration file ETAS.INI.
Note
If your agents are using ShoreTel Communicator integrated with Contact Center as their client, make sure any automated agent activities you develop only use triggers for integration. Automated agent activities using ActiveX or DDE will not display. If you are unable to implement automated agent activities that only use triggers, have your agents use Agent Toolbar as their client instead.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 15
Automating Agent Activities The Agent Configuration File (ETAS.INI)3
Refer to the following sections for more information about automating agent activities:
The Agent Configuration File (ETAS.INI) .................................................................. 16
Using Screen Pops ................................................................................................... 19
Integrating Applications Using DDE.......................................................................... 19
Integrating Applications using ActiveX ...................................................................... 32
Activating Applications by Triggers ........................................................................... 42
The Agent Configuration File (ETAS.INI)
Each agent in Contact Center has an INI file that describes the application setup definitions and maintains the agent’s personal workstation information, along with other valuable data that relate to features, customization, and integration with external applications. This file, ETAS.INI, is formatted as a standard Windows INI file. Each agent’s ETAS.INI file is located in the Contact Center Server system directory ...\ShoreTel Contact Center Server\Agents\<agent ID>\subdirectory.
The integration data appears in the Microsoft triggers and DDE paragraphs as shown in the following example:
[TRIGGERS]OperateTriggers=1[TRIG_OnIncoming]Command=MyApplication.exe %calling %DNIS %Service %ani[TRIG_OnConnected]Command=notepad.exe %service.txt[TRIG_OnReleaseCodeEntered]Command=notepad.exe %release_code[TRIG_OnWrapUpCodeEntered]Command=notepad.exe %wrapup_code
[DDE]ActivateServer=FalseServer=CRMTopic=Events[DDE_OnStarted]Command=started %AgentID[DDE_OnReStarted]Command=restarted[DDE_OnDenied]Command=denied %cause
Note
Agents must exit Agent Toolbar before you can make changes to their ETAS.INI file; otherwise your changes will be overwritten.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 16
Automating Agent Activities The Agent Configuration File (ETAS.INI)3
[DDE_OnStoped]Command=stopped[DDE_OnLoggedIn]Command=loggedin %group[DDE_OnLoggedOut]Command=loggedout %group[DDE_OnHeld]Command=held %callid[DDE_OnRetrieved]Command=retrieved %callid[DDE_OnIncoming]Command=incoming %callid, %calltyp, %DNIS, %calling, %Service, %Priority, %ACD ENTER TIME[DDE_OnConnected]Command=connected %callid, %calltyp, %DNIS, %calling, %Service, %Priority, %ACD ENTER TIME[DDE_OnConferenced]Command=conferenced %callid[DDE_OnReleased]Command=released[DDE_OnReleaseCodeEntered]Command=releasecodeenter %release_code[DDE_OnResumed]Command=resumed[DDE_OnWrapUp]Command=wrapup[DDE_OnWrapUpCodeEntered]Command=wrapupcodeenter %wrapup_code[DDE_OnReady]Command=ready[DDE_OnCleared]Command=cleared %callid[DDE_OnReserved]Command=reserved %callid[DDE_OnSystemAvailable]Command=systemavailable %available[DDE_OnFailed]Command=failed %cause[DDE_OnSilentStarted]Command=silentstarted[DDE_OnIncomingEx]Command=incomingex %callid, %calltyp, %DNIS, %calling, %Service, %Priority, %ACD ENTER TIME, %Alternative Call ID[DDE_OnConnectedEx]Command=connectedex %callid, %calltyp, %DNIS, %calling, %Service, %Priority, %ACD ENTER TIME, %Alternative Call ID[DDE_OnShowMessage]Command=showmessage %msgid, %msgtext
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 17
Automating Agent Activities Setting the ActivateServer Parameter3
[DDE_OnUpdateCallStatusString]Command=updatecallstatusstring %callid, %Alternative Call ID, %calltyp, %statusstr
For each integration type, a list of agent states exists along with related actions (mainly commands) that are activated at that state. A command might include free text, parameters prefixed by the percent (%) sign, and control codes. A parameter can be any call profile field name available in Agent Toolbar in either the mandatory or user-defined fields.
Upon a state change, the command related to that state is evaluated, and all parameters and control codes are substituted with their appropriate values.
Setting the ActivateServer Parameter
Before integrating an application using DDE or ActiveX, the ActivateServer parameter must be set to True in each agent ‘s ETAS.ini file.
Complete the following steps to set the ActivateServer parameter:
1. From the Contact Center server, open the ETAS.INI file for the agent.
The ETAS.INI files are located in ...\ShoreTel Contact Center Server\Agents\<agent ID>\subdirectory.
2. In the ETAS.INI file, locate the [DDE] section and change the ActivateServer parameter to True. For example,
[DDE]ActivateServer=True
3. Repeat steps 1 and 2 for every agent that will use the application.
Table 1: Parameter List
Parameter/Code Substitution value
%call_profile_field Call profile field value
\\ \ (Backslash)
\t TAB
\b BACKSPACE
\r CR
\n Newline
\f Formfeed
\a Alert (Beep)
\xHH Character HH (HH= hexadecimal value of character)
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 18
Automating Agent Activities Using Screen Pops3
Using Screen Pops
The [ScreenPops] section of the ETAS.INI file acts as a filter for the specified DDE and triggers to limit screen pops. Initially, this section does not exist in the ETAS.INI file, so the system defaults to displaying screen pops for all types of contacts. You can configure Enterprise Contact Center to narrow the scope of screen pops for ACD, voice and web callback, chat, or email contacts. To do so, add a [ScreenPops] section to the ETAS.INI file and enter the following applicable parameters as appropriate:
For ACD calls only:
Add the parameter TRIG_OnACDOnly=YES
To not display screen pops for voice and web callback contacts:
Add the parameter TRIG_OnVoiceMedia=NO
To not display screen pops for chat contacts:
Add the parameter TRIG_OnChatMedia=NO
To not display screen pops for email contacts:
Add the parameter TRIG_OnEmailMedia =NO
For example, the following additions to the ETAS.INI file would trigger screen pops for ACD calls and web callbacks (and not for email and chat contacts):
[ScreenPops]TRIG_OnACDOnly=YESTRIG_OnEmailMedia =NOTRIG_OnChatMedia=NO
Integrating Applications Using DDE
The ShoreTel Agent DDE interface enables external applications to interact with Agent Toolbar.
External applications can get notifications from the Agent DDE when an important event occurs, and they can control some of the telephony and automatic call distribution (ACD) functions that Agent Toolbar supports.
For example, when a call is delivered to an agent and the phone rings, the Agent DDE connects to an application working as a DDE server and DDE client simultaneously, and invokes an EXECUTE command on the DDE protocol:
Note
Agents must exit Agent Toolbar before you make changes in their ETAS.INI file, otherwise the changes are overwritten.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 19
Automating Agent Activities Integrating Applications Using DDE3
1. The application gets the information and the parameters from the Agent DDE event. At this time, the application can perform its functions, such as displaying the customer screen and updating the database.
2. The application provides a button to the agent to answer the call. When the agent clicks the button, the application contacts Agent Toolbar, which is now working as a DDE server, and invokes an EXECUTE command on the TEL topic requesting to answer the call.
3. The call is answered, and the agent handles the call.
4. The application provides another button for the agent to end the call. When the agent clicks the button, the application contacts Agent Toolbar (now working as a DDE server) and invokes an EXECUTE command on the TEL topic requesting to end the call.
Contact Center gathers information related to a call from the moment the call enters the system until it is concluded. All this information is stored in the call profile.
Agent Toolbar makes all of the call profile information available to the external application.
Before integrating an application using DDE, the ActivateServer parameter must be changed in the agent ETAS.ini file, as explained in Setting the ActivateServer Parameter on page 18.
The following is a list of mandatory fields in the call profile. The field names in the call profile are case-sensitive.
Table 2: Call Profile Mandatory Fields
Call Profile Name DDE Name Description
ANI ANI Automatic Number Identification (ANI) transmits the customer’s telephone number and delivers it to your call center’s telephone system.
Note: The format of the ANI call profile field includes a plus sign (+) before the ANI number. This facilitates external incoming calls (i.e. from outside your site).
Agent Queue agent_queue Indicates that the call is being handled by a personal agent queue.
Group acd_group The internal group id related to the call
Original Destination called The original destination of the call
Trunk trunk PBX and call-type depended
Call ID callid The ID of the call
DNIS DNIS The DNIS of the call
calling calling The ANI (caller ID) of the caller
Type calltyp Call type (Voice, Chat, Email, Callback, Abandoned, Web Callback, Dial List)
Media Media Call media (WEB, VOICE, EMAIL)
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 20
Automating Agent Activities Integrating Applications Using DDE3
Priority Priority Priority of the call
Service Service Service that handles the call
Customer Number CUSTOMER_NUMBER
Identifier number of the customer (if internal, the Customers Table is used)
Customer Name CUSTOMER_NAME Customer name (if internal the Customers Table is used)
ACD Enter Date ACD_ENTER_DATE Date the call entered Contact Center
ACD Enter Time ACD_ENTER_TIME Time the call entered Contact Center
Queue Position Q_POSITION Call position in the queue
Average Queue Time AVERAGE_Q_TIME Expected average wait time in the queue.
Call Back Time CALLBACK_TIME Callback time set by caller (if empty, Abandoned Call)
Call Back Destination CALLBACK_DEST Callback destination
Language LANGUAGE The language associated with the call (0=English, 1=Hebrew, 2=Russsian, 3=Arabic, 4=Mexican Spanish)
Agent Extension AGENT_EXT The agent’s telephone extension number
Agent Number AGENT_NUMBER Number used to identify the agent
Dial List ID DIAL_LIST_ID The ID of the dial list
Start Queue Time START_QUEUE_TIME
The time when a call enters the queue
Agent PSW AGENT_PSW Agent password
Execute Req EXECUTE_REQ For any request to be executed
Trunk Number TRUNK_NUMBER The number of the trunk
Email To EMAIL_TO The text in the To field of the email
Email CC EMAIL_CC The text in the CC field of the email
Email Subject EMAIL_SUBJECT The text in the Subject field of the email
Email From EMAIL_FROM The text in the From field of the email
Email To EMAIL_REPLY_TO The text in the Reply To field of the email
Email Sent Date EMAIL_SENT_DATE
The text in the Date Sent field of the email
Email Sent Time EMAIL_SENT_TIME
The text in the Time Sent field of the email
Table 2: Call Profile Mandatory Fields
Call Profile Name DDE Name Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 21
Automating Agent Activities Configuring Agent Toolbar3
Configuring Agent Toolbar
Agent Toolbar provides maximum flexibility during integration. The configuration of the commands should be done at the time the system is installed. Typically, the person installing Contact Center also configures this application.
When Agent Toolbar works as a DDE client, you can configure the following general parameters:
Server — Name of the server application.
Topic — Topic to be used by ShoreTel Agent Toolbar when executing a command on the external application.
Command — Command and parameters to send to the application when a specific event occurs. This command is defined for each event type.
Agent Toolbar as a DDE Client
Agent Toolbar can execute commands on an external application when any of the following events occur:
DDE_OnIncoming — When the call rings at the agent’s station.
Email Enter OMS Date EMAIL_ENTER_OMS_DATE
The text in the OMS Date field of the email
Email Enter OMS Time EMAIL_ENTER_OMS_TIME
The text in the OMS Time field of the email
Primary Call Back Destination
PRIMARY_CB The primary destination for the callback
Alternative Call Back Destination 1
ALTERNATIVE1_CB
The first alternative destination for the callback
Alternative Call Back Destination 2
ALTERNATIVE2_CB
The second alternative destination for the callback.
Last Time To Initiate Callback
LAST_TIME_TO_INITIATE_CB
The time when the last callback can be made
Alternative Call ID ALTERNATIVE_CALL_ID
The PBX TAPI call ID
Group GROUP_ID The ID of the group
Outbound Caller ID OUTBOUND_CALLER_ID
The caller ID of the outbound call
SW Call GUID SW_CALL_GUID The PBX call GUID
Table 2: Call Profile Mandatory Fields
Call Profile Name DDE Name Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 22
Automating Agent Activities Agent Toolbar as a DDE Client3
DDE_OnConnected — When the call is answered by the agent.
DDE_OnCleared — The call was terminated.
DDE_OnHeld — The current call was held.
DDE_OnRetrieved — The call was retrieved from hold.
DDE_OnStarted — ShoreTel Agent Toolbar starts to work.
DDE_OnRestarted — ShoreTel Agent Toolbar restarts.
DDE_OnDenied — ShoreTel Agent Toolbar cannot work.
The command is a string that is sent “as is” to the external application. To provide parameters, the % sign must precede the field name in the call profile.
For example, to indicate to an external application that a call has been delivered to the agent (and is ringing), you can use the following command:
[DDE_OnIncomng]command=Incoming from=%calling group=%acd_group
When a call comes in from number 7410953 to the Sales group, the following command is sent to the external application:
Topic=ShoreWareAgentDDE_Command= DDE_EXECUTECommand= Incoming from=7410953 group=Sales
The following rules apply:
All of the commands and parameters are not case-sensitive.
If a parameter requested in the command has no value, a blank is sent.
The structure of commands and events is defined for each installation. The person installing ShoreTel Agent Toolbar performs the agent configuration.
The configuration file ETAS.INI is stored on the Contact Center Server.
More than one active call can occur at the same time. The call ID values are important.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 23
Automating Agent Activities Agent Toolbar as a DDE Client3
DDE Commands
The following table shows the DDE commands that can be used.
Table 3: DDE Commands
Event Parameter Default Description
DDE_OnIncoming Command Incoming %CallId, %Calling, %Service, %Group
A call is ringing at the agent phone.
DDE_OnConnected Command Connected %CallId, %Calling, %Service, %Group
The agent answers the call.
DDE_OnCleared Command ConnCleared %CallId The call terminates.
DDE_OnRelease Command Released Agent was released.
DDE_OnReleaseCodeEntered
Command %release_code Agent entered release code.
The DDE command executes only if the agent is in the Release state before system goes down, and once the Contact Center service has restarted or the network reconnects.
DDE_OnResume Command Resumed Agent was resumed.
DDE_OnWrapUp Command WrapUp Agent goes to wrap-up.
DDE_OnWrapUpCode Entered
Command %wrapup_code Agent entered wrap-up code.
DDE_OnReady Command Ready Agent returns from wrap-up.
DDE_OnLogin Command LoggedIn Agent logged in.
DDE_OnLogout Command LoggedOut Agent logged off.
DDE_OnHeld Command Held %CallId A call was held.
DDE_OnRetrieved Command Retrieved %CallId A call was retrieved.
DDE_OnStarted None Started Agent Toolbar started.
DDE_OnRestarted None Restarted Agent Toolbar lost connection to the server, and now it is online again.
DDE_OnDenied Cause Denied %cause Agent Toolbar is unable to do the requested action.
DDE OnFailed Cause Failed %cause The requested action failed.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 24
Automating Agent Activities Agent Toolbar as a DDE Client3
The following table shows possible OnDenied causes.
DDE_OnShowMessage Command Show Message %msgid, %msgtext
Agent Toolbar sends a screen pop.
DDE_OnUpdateCallStatusString
Command Update Call Status String %callid, %Alternative Call ID, %calltyp, %statusstr
The call status string changes.
Table 4: Possible OnDenied Causes
Cause Name Description
1 LOGGED_ON_TO_ANOTHER_EXT Agent is already logged in to another extension.
2 NEW_AGENT_ON_EXT Another agent is logged in to current extension.
3 WRONG_AGENT Wrong agent ID is supplied.
4 WRONG_PASSWORD Wrong password is supplied.
5 MAX_NUM Maximum number of agents in system is exceeded.
6 FAILED_TO_READ_FROM_DBS Internal error.
7 STILL_INITIALIZING Agent Toolbar cannot start because the system is initializing.
8 AGENT_NUMBER_IS_ALREADY_IN_USE Agent number is already being used in the system.
9 EXTENSION_IS_ALREADY_IN_USE Extension is already being used in the system.
10 AGENT_ALREADY_LOGGED_AT_LRL Agent is already logged into the system.
11 EMAIL_ACCOUNT_ALREADY_IN_USE Email account is already being used in the system.
12 WRONG_ETAS_VERSION Wrong version of Agent Toolbar is being used.
13 AGENT_NUMBER_NOT_FOUND_IN_DB Agent number does not exist in the system
100 AGENT_IS_DEACTIVATING Agent Toolbar is in the process of shutting down.
101 CANNOT_START_THE_SUP_PROCESS Supervisor process cannot be started because of an error.
102 NET_CONNECTION_TO_SERVER_FAILED Network connection to the server has failed.
103 INSTANCE_ALREADY_RUNNING Agent Toolbar is already running.
Table 3: DDE Commands
Event Parameter Default Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 25
Automating Agent Activities Agent Toolbar as a DDE Client3
The following table lists possible OnFailed causes.
104 MAX_NUMBER_OF_AGENTS_LOGGED_IN Maximum number of agents are logged into the system.
200 INVALID SUPERVISOR_NAME_OR_PWD Supervisor cannot log into Agent Toolbar either because a wrong agent ID or password have been used, or because the user is not identified as a supervisor in the system.
201 MAX_NUMBER_OF_VISORS_LOGGED_IN Maximum number of supervisors with the Supervisor Administrator or Entity Administrator permissions are logged into the system.
202 MAX_NUMBER_OF_MONITORS_LOGGED_IN Maximum number of supervisors with the Entity Monitor permission are logged into the system.
203 SUPERVISOR_ALREADY_LOGGED_IN Supervisor is already logged into the system.
Table 5: Possible OnFailed Causes
Cause Name Description
1 FAIL Internal error
2 INVALID_ID Wrong agent ID is supplied
3 MAX_AGENTS_LOGGED_IN Maximum number of agents in system is exceeded.
4 ALREADY_LOGGED_IN Maximum number of agents are logged into the system.
5 NO_ASSIGNED_GROUP Agent has tried to log into a group, but has not be assigned to this group.
6 INVALID_GROUP_ID Agent has tried to log into a group, but has supplied the wrong group ID.
7 INVALID_WRAP_CODE Agent has entered a wrap-up code that does not exist in the system.
8 NO_LICENCE_FAIL Agent is unable to log into Agent Toolbar because the appropriate license is lacking.
9 NO_INVOICE_LICENCE Agent is unable to log into Agent Toolbar because a Inbound Voice license is lacking.
Table 4: Possible OnDenied Causes
Cause Name Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 26
Automating Agent Activities Agent Toolbar as a DDE Client3
10 NO_INCHAT_LICENCE Agent is unable to log into Agent Toolbar because a Chat license is lacking.
11 NO_OUTVOICE_LICENCE Agent is unable to log into Agent Toolbar because an Outbound Voice license is lacking.
12 MISSING_EMAIL_ADDR_ON_SERVER Agent is unable to log into Agent Toolbar due to a missing server email address or password.
13 MISSING_EMAIL_ADDR_ON_PC Agent is unable to log into Agent Toolbar due to a missing personal email address or password.
14 EXTENSION_ALREADY_IN_USE Extension is already being used in the system.
15 EXT_LOST_CON_WITH_PBX Extension has lost connection with the telephony system. The agent is automatically logged out of all groups.
16 EXT_CFW_ALL Extension is set to forward all calls.
17 PREDICTIVE_GROUP_ONLY Agent can only be logged into one group while handling predictive outbound calls.
18 EXT_DND Extension is set to Do Not Disturb.
19 NOT_AUTHORIZED_TO_ACTIVATE Agent does not have authorization to launch the application.
20 TRANSFER_TO_AGENT_FAILED The process of transferring a call to the agent has failed.
21 INVALID_GROUP_NAME Agent has entered invalid group name.
22 NOT_AUTHORIZED_TO_ACTIVATE_FLA Agent does not have authorization to launch Contact Center Reports.
23 INOT_AUTHORIZED_TO_ACTIVATE_NLA Agent does not have authorization to launch Agent Manager.
24 NOT_AUTHORIZED_TO_ACTIVATE_AGENT Agent does not have authorization to launch Agent Toolbar.
25 MAX_AGT_LOGIN_GROUPS Agent has attempted to log into more groups than allowed.
26 PICKUP_NO_AGENT Call pickup has failed because no agent was available.
27 PICKUP_NO_CALL Call pickup has failed.
28 PICKUP_NOT_ALLOWED Call pickup is not allowed.
Table 5: Possible OnFailed Causes
Cause Name Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 27
Automating Agent Activities Agent Toolbar as a DDE Server3
Agent Toolbar as a DDE Server
Working as a DDE server, ShoreTel Agent Toolbar supports four topics:
ACD for ACD-related functions
TEL for all telephony-related functions
REQUESTS to get information from ShoreTel Agent Toolbar
OTHER for miscellaneous commands
The ACD Topic
The following table includes DDE_EXECUTE commands:
29 PICKUP_CANT_ROUTE_TO_AGENT Call to be picked up cannot be routed to an agent.
30 TRANSFER_TO_AGENT_FAILED_NOT_SAME_GRP Transferring the call cannot be completed because the agent is not in the same group.
31 TRANSFER_TO_AGENT_FAILED_NOT_AGENT Transferring the call cannot be completed because the extension is not valid.
32 UPDATE_RING_TONE_FILE_FAILED Updating the ring tone has failed.
33 INVALID_RELEASE_CODE Agent has entered a release code that does not exist in the system.
34 MUST_ENTER_WRAPUP_CODE Agent must enter a wrap-up code.
35 FEATURE_NOT_ALLOWED The requested action is not allowed.
36 NO_AGENT_BOARD_DEFINED Agent board has not been specified for this agent.
37 FAILED_TO_SEND_CALL_TO_AGENT_QUEUE Call could not be transferred to the agent queue.
38 FAILED_TO_SEND_CALL_TO_AGENT_QUEUE_NON_ACD
Only ACD calls can be transferred to the agent queue.
39 FAILED_TO_SEND_CALL_TO_AGENT_QUEUE_ALREADY_ANSWERED
Call has been answered by another agent.
40 LOGOUT_FROM_AGENT_QUEUE_FAILED Logging out from the agent queue has failed because calls are waiting in the queue.
Table 5: Possible OnFailed Causes
Cause Name Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 28
Automating Agent Activities Agent Toolbar as a DDE Server3
DDE_REQUEST supports the CommandList command, which has no parameters. It gets a space-delimited list of supported commands for the topic.
The following rules apply:
All of the parameters are strings.
The commands and parameters are not case sensitive.
Table 6: DDE_EXECUTE Commands
Name Parameters Description
LoginPrimaryGroups None Logs in to all primary groups.
LogoutFromPrimaryGroups
None Logs off from all primary groups.
LoginGroup Group name Logs in to a specific group.
LogoutFromGroup Group name Logs off from a specific group.
Release None Makes agent enter “release” state.
Resume None Makes agent enter “resume” state.
Wrapup Wrap-up code Enters wrap-up code.
AgentReady None Terminates wrap-up time.
TransferToAgent Agent number Transfers call to specified agent.
Help None Help request from supervisor.
SetCallProfile Field name, new field value Sets call profile field value.
LogoutFromAgentQueue 1, 2, 3
1 = log agent out of all groups
2 = log agent out of agent queue
3 = log agent out of primary groups
Logout the agent from the specified group or agent queue.
SendCallToAgentQueue Call ID Send current connected ACD voice call to agent queue.
SetInFocusCall Call ID
Alternate Call ID
Sets the specified call as the current call, enabling all telephony functions for the call.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 29
Automating Agent Activities Agent Toolbar as a DDE Server3
The TEL Topic
The following table includes commands that are invoked using DDE_EXECUTE:
DDE_REQUEST supports the CommandList command, which has no parameters. It gets a space-delimited list of supported commands for the topic.
The REQUEST Topic
The following includes commands that are supported using DDE_REQUEST:
Table 7: DDE_EXECUTIVE-Invoked Commands
Name Parameters Description
Alternate None Exchanges between the call on hold and the active call.
Answer None Answers the call that is ringing.
HangUp None Terminates the current call.
ClearSpecificConnection
Call ID Terminates the call with the selected Call ID.
Divert Destination dial number Diverts the call to the desired destination before answering the call.
Hold None Puts the current call on hold.
Retrieve None Retrieves a call that was previously put on hold.
MakeNACall Destination dial number Makes an outgoing call.
TransferCall Destination dial number Starts the transfer process.
CompleteTransfer None Removes the agent from the call, completing the transfer.
Conference Destination dial number Begins a conference call.
CompleteConference
None Completes the conference call.
SingleStepTransfer
Destination dial number Transfers the current call to another telephone.
Reconnect None Returns the agent to the original call and updates the agent state.
Table 8: Supported Commands for DDE_REQUEST
Item name Parameters Returns (string) Description
TopicItemList
None List Gets a space-delimited list of supported commands for the topic.
IsPhoneBusy None TRUE or FALSE TRUE if the phone is busy.
HeldCallsCount
None Number of calls on hold
Number of calls currently on hold () or 1.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 30
Automating Agent Activities Advanced Configuration Options3
The OTHER Topic
DDE_EXECUTE supports the Terminate command, which has no parameters. It closes ShoreTel Agent Toolbar.
DDE_REQUEST supports the CommandList command, which has no parameters. It gets a space-delimited list of supported commands for the topic.
Advanced Configuration Options
When integrating to other applications, the basic DDE client behavior of Agent Toolbar may not be enough. There may be situation where it is necessary to have more control over the DDE commands sent by Agent Toolbar to the external application. This section contains information on advanced DDE commands.
Using DDE Poke instead of DDE Execute
Some applications require the use of the DDE Poke command instead of the standard DDE Execute used by Agent Toolbar.
In order to support this, you can replace the full command line following the desired event with the following:
Poke(destination)=Value
As an example of this usage, assume that it is necessary to set the ANI number of the caller for the current call on an Microsoft Excel spreadsheet when a call is answered by the agent. This can be done with the following line in the ETAS.INI file:
[DDE_OnConnected] Poke(Excel,Sheet1,rc)=%calling
Using Multiple DDE Commands for the Same Event
Some applications must use multiple DDE commands in response to specific events. To support this, you can replace the full command line following the desired event with a list of DDE commands to perform. The DDE commands Poke and Execute can be used.
GetCpParam Field name Field value Retrieve the value of a specific call profile field.
IsReleased None TRUE or FALSE TRUE if the agent is in the release state.
IsLoggedIn Group Name TRUE or FALSE TRUE if the agent is logged in.
IsWrapUp None TRUE or FALSE TRUE if the agent is currently in wrap-up time.
Table 8: Supported Commands for DDE_REQUEST
Item name Parameters Returns (string) Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 31
Automating Agent Activities Integrating Applications using ActiveX3
An example of managing Microsoft Excel this way is:
[DDE_OnIncoming] Poke(Excel,Sheet1,rc)=%calling Execute(Excel,Sheet1)={RIGHT} Poke(Excel,Sheet1,rc)=%Service Execute(Excel,Sheet1)={RIGHT} Poke(Excel,Sheet1,rc)=%ACD_ENTER_DATE Execute(Excel,Sheet1)={RIGHT} Poke(Excel,Sheet1,rc)=%ACD_ENTER_TIME Execute(Excel,Sheet1)={RIGHT} Poke(Excel,Sheet1,rc)=David Young, ID 555 Execute(Excel,Sheet1)={RIGHT} Execute(Excel,Sheet1)={DOWN} Execute(Excel,Sheet1)={HOME}
In this case, Agent Toolbar enters several values into different Excel cells when the call rings at the agent's phone.
Working with more than One DDE Server Application at the Same Time
In certain situations it is necessary to send DDE commands to more than one application as a result of a specific trigger.
The following example illustrates how to set up the response for the DDE_OnIncoming event in the ETAS.INI file to:
1. Set a value on a Microsoft Excel spreadsheet.
2. Set the URL for Internet Explorer to www.shoretel.com.
3. Move the cursor to a different location on the spreadsheet.
[DDE_OnIncoming] Poke(Excel,Sheet1,rc)=%calling Execute(IExplore,WWW_OpenURL)=”www.shoretel.com,,0” Execute(Excel,Sheet1)={DOWN} Execute(Excel,Sheet1)={HOME}
Integrating Applications using ActiveX
Agent Toolbar ActiveX controls enable external applications to get events from Agent Toolbar when some telephony, ACD, and management events occur, and can control the telephony, ACD, and management functions supported by the application. This section describes the interface controls, available methods, parameters, and additional information required to perform the integration.
It is assumed that the you are familiar with ActiveX specifications and use.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 32
Automating Agent Activities Configuring Agent Toolbar3
For example, the following scenario details the process of an incoming call.
1. The moment a call is delivered to an agent and the phone rings, Agent Toolbar initiates an OnIncoming event to the application. The event supplies standard parameters (Call ID, Call type, DNIS, ANI, Service, Priority, and Time).
2. The application can get more call parameters from Agent Toolbar by getting properties (call profile fields).
3. At this time, the application can perform its functions, including displaying the customer screen and updating the database.
4. The application provides a button to the agent to answer the call. When the agent clicks the button, the application commands ShoreTel Agent Toolbar (using the Answer method) to answer the call.
5. The call is answered, the application gets an OnConnected event, and the agent handles the call.
6. The application provides another button to the agent to disconnect the call. When the agent clicks the button, the application commands ShoreTel Agent Toolbar to disconnect the call.
Contact Center gathers information about a call from the moment the call enters the system until the call is disconnected. The parameters are collected from the caller’s input in the IVR, read from the organization’s database, or set in the process of handling the call. All information is stored in the call profile.
Agent Toolbar makes all the call profile information available to the external application.
The call profile fields are either mandatory, for example priority, required service, and time that the call entered the system, or user-defined. Either type of field can be used to pass parameters that Contact Center can collect and share with the external application.
Before integrating an application using ActiveX, the ActivateServer parameter must be changed in the agent ETAS.ini file, as explained in Setting the ActivateServer Parameter on page 18.
Configuring Agent Toolbar
During the DDE integration, the configuration of the ActiveX behavior is done in the ETAS.INI file.
No configuration is required in Agent Toolbar. All events are sent, all call profile information is sent on relevant events, and all commands are enabled. It is the responsibility of the external application to ignore what is not required.
Managing Agent Toolbar
Management includes starting Agent Toolbar, and also stopping and monitoring the connection state to the Contact Center Server.
The application can start Agent Toolbar using the following method:
StartEa(AgentNumber AgentPwd)
Where:
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 33
Automating Agent Activities Agent Toolbar Events3
AgentNumber = the agent's numberAgentPwd = the agent's password
The application waits for a response event. The following table includes two possible events:
The application can stop Agent Toolbar using the following method:
StopEa()No parameters are required.The Stopped() is the event indicating a successful action.
Monitoring the connection state to the Contact Center Server uses the Connection lost and Restarted events. When Connection is lost (until a Restarted event is received), the ShoreTel Agent DDE is Out of Service. No new calls are received, and all telephony and ACD methods are inoperative while ShoreTel Agent Toolbar is Out of Service.
After starting Agent Toolbar, the ActiveX component must be initialized by calling the init() method.
The init() method has the following signature:
HRESULT Init(BSTR name)
Where the default name is CRM and must match the Server definition on the DDE part of the ETAS.INI file.
Agent Toolbar Events
Agent Toolbar sends events to the external application when the events described in this section occur.
The ACD Events
The following table includes ACD events:
Table 9: Response Events
Event Description
Started() ShoreTel Agent Toolbar started and logged in.
Denied(Cause number)
ShoreTel ECC Server denied the login. See Possible OnDenied Causes on page 40.
Note
After calling the StopEa() method, the ActiveX component will stop to respond. In order to re-activate it is necessary to call the init() method again.
Command Parameters Description
OnLoggedIn GroupName Agent logged in.
OnLoggedOut GroupName Agent logged off.
OnReleased Agent was released.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 34
Automating Agent Activities Agent Toolbar Events3
The following rules apply:
More than one active call can exist at the same time. Therefore the values for the call ID are important.
The TEL Events
The following table includes telephony events:
OnReleaseCodeEnter
release_code Agent entered release code.
The trigger executes only if the agent is in the Release state before system goes down, and once the Contact Center service has restarted or the network reconnects.
OnResumed Agent was resumed.
OnWrapUp Agent goes to wrap-up.
OnWrapUpCodeEnter
wrapup_code Agent enters wrap-up code.
OnReady Agent returns from wrap-up.
Command Parameters Description
OnIncoming CallId, Calltyp, DNIS, ANI, Service, Priority, ACD TimeIn
A call is ringing at the agent phone.
OnConnected CallId, Calltyp, DNIS, ANI, Service, Priority, ACD TimeIn
The agent answers the call.
OnCleared CallId The call terminates.
OnHeld CallId A call was held.
OnRetrieved CallId A call was retrieved.
Command Parameters Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 35
Automating Agent Activities Agent Toolbar Methods (Services)3
Agent Toolbar Methods (Services)
Agent Toolbar supports the following commands:
ACD for ACD-related functions
TEL for all telephony-related functions
OnShowMessage MessageId Agent Toolbar opens a screen pop. The possible message types are specified by the enumeration ECC_MESSAGEID options:
MESSAGEID_NULL
MESSAGEID_ALERT_EMAIL_MSG
MESSAGEID_REJECT_EMAIL_MSG
MESSAGEID_OUT_OF_SERVICE
MESSAGEID_OOC_MSG
MESSAGEID_SYSTEM_EMAIL_ALREADY_IN_USE_MSG
OnUpdateCallStatusString
Alternate Call ID The agent state has changed. The possible call types are specified by the enumeration ECC_CALLTYPE options:
CALLTYPE_NULL
CALLTYPE_VOICE
CALLTYPE_CHAT
CALLTYPE_EMAIL
CALLTYPE_CALLBACK
CALLTYPE_ABANDONED
CALLTYPE_WEB_CALLBACK
CALLTYPE_CALL_FROM_LIST
CALLTYPE_CALL_FROM_CAMPAIGN_LIST
CALLTYPE_CALL_FROM_PREDICTIVE_LIST
CALLTYPE_OUT_ACD
Command Parameters Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 36
Automating Agent Activities Agent Toolbar Methods (Services)3
The ACD Methods
The following table includes ACD methods:
The TEL Methods
The following table includes telephony methods:
Name Parameters Description
LoginPrimaryGroups None Logs in to all primary groups.
LogoutFromPrimaryGroups
None Logs off from all primary groups.
LoginGroup Group name Logs in to a specific group.
LogoutFromGroup Group name Logs off from a specific group.
ReleaseAgent None Makes agent enter “release” state.
ResumeAgent None Makes agent enter “resume” state.
Wrapup Wrap-up code Enters wrap-up code.
ReleaseAgentWithCode Release code Release agent with specified release code
AgentReady None Terminates wrap-up time.
TransferToAgent Agent number Transfers call to specified agent.
Help None Help request from supervisor.
SetCallProfile Call profile name, new call profile value
Sets call profile field value.
LogoutFromAgentQueue 1, 2, 3
1 = log agent out of all groups
2 = log agent out of agent queue
3 = log agent out of primary groups
Logout the agent from the specified group or agent queue.
SendCallToAgentQueue Call ID Send current connected ACD voice call to agent queue.
SetInFocusCall Call ID, Alternate Call ID Sets the specified call as the current call, enabling all telephony functions for the call.
Command Parameters Description
Answer None Answers the ringing call.
HangUp None Clears the current call.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 37
Automating Agent Activities Agent Toolbar Methods (Services)3
MakeCall Destination dial number
Makes an outgoing call.
Hold None Puts the current call on hold.
Retrieve None Retrieves a call that was previously put on hold.
Divert Destination dial number
Diverts the call to the desired destination before answering the call.
StartTransfer Destination dial number
Starts the transfer process.
CompleteTransfer
None Removes the agent from the call, completing the transfer.
SingleStepTransfer
Destination dial number
Transfers the current call to another telephone.
StartConference
Destination dial number
Begins a conference call.
CompleteConference
None Complete a conference call.
Alternate None Exchanges between the call on hold and the active call.
Reconnect None Returns the agent to the original call and terminates the consultation.
CallStatusString
Call ID, Alternate Call ID
Retrieves the call status string. The call status string contains selected values from the call profile as defined in Contact Center Director > Agents entity > COS tab. The values are formatted as name-value pairs. The string may include an agent state name-value pair as well. An example is: “State=Reserved,Calling=2002,DNIS=3000,Status=Unknown,Service=Service 2,Group=Group2,Call Type=Abandoned,Priority=100,Call Entered at=13:23:13,Avg. Wait=00:00:00”.
Command Parameters Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 38
Automating Agent Activities Agent Toolbar Methods (Services)3
Properties (Get Only)
The following table includes Get properties:
RingTone None Retrieves the full path to the ring tone wave file for the particular ring type. The possible ring types are specified by the enumeration ECC_SOUNDTYPE options:
SOUNDTYPE_NULL
SOUNDTYPE_VOICE_ACD
SOUNDTYPE_EMAIL
SOUNDTYPE_CHAT
SOUNDTYPE_CONFIRM_OUTBOUND
SOUNDTYPE_VOICE_NON_ACD
SetRingTone Sound type, Sound file path name
Sets the full path to the ring tone wave file for the particular ring type. The possible ring types are specified by the enumeration ECC_SOUNDTYPE options:
SOUNDTYPE_NULL
SOUNDTYPE_VOICE_ACD
SOUNDTYPE_EMAIL
SOUNDTYPE_CHAT
SOUNDTYPE_CONFIRM_OUTBOUND
SOUNDTYPE_VOICE_NON_ACD
Item name Parameters Returns Description
ISPHONEBUSY None TRUE or FALSE (0 or 1 Integer)
TRUE if the phone is busy.
HeldCallsCount
None Number of calls on hold (Integer)
Number of calls currently on hold.
CallProfile Call Profile field name
Field value (String) Retrieve the value of a specific call profile field.
IsReleased None TRUE or FALSE (0 or 1 Integer)
TRUE if the agent is in the release state.
IsLoggedIn Group name TRUE or FALSE (0 or 1 Integer)
TRUE if the agent is logged into the group.
IsWrapUp None TRUE or FALSE (0 or 1 Integer)
TRUE if the agent is currently in wrap-up state.
Command Parameters Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 39
Automating Agent Activities Agent Toolbar Methods (Services)3
Possible OnDenied Causes
The following table includes possible OnDenied causes:
IsSupervisorApplicationEnabled
None Application Type The possible application types are specified by the enumeration ECC_APPLICATION_TYPE options:
APPTYPE_AGENT_MANAGER APPTYPE_HISTORICAL_REPORTS APPTYPE_WALL_BOARD APPTYPE_DIAGNOSTIC_CONSOLE APPTYPE_AGENT_TOOLBAR APPTYPE_GCCS
IsInEmailState()
None True or False (0 or 1 Integer)
TRUE if the agent is engaged in Email
Note
All strings are not case-sensitive.
Cause Name Description
1 LOGGED_ON_TO_ANOTHER_EXT Agent is already logged in to another extension.
2 NEW_AGENT_ON_EXT Another agent is logged in to current extension.
3 WRONG_AGENT Wrong agent ID is supplied.
4 WRONG_PASSWORD Wrong password is supplied.
5 MAX_NUM Maximum number of agents in system is exceeded.
6 FAILED_TO_READ_FROM_DBS Internal error.
7 STILL_INITIALIZING Agent Toolbar cannot start because the system is initializing.
8 AGENT_NUMBER_IS_ALREADY_IN_USE Agent number is already being used in the system.
9 EXTENSION_IS_ALREADY_IN_USE Extension is already being used in the system.
10 AGENT_ALREADY_LOGGED_AT_LRL Agent is already logged into the system.
11 EMAIL_ACCOUNT_ALREADY_IN_USE Email account is already being used in the system.
12 WRONG_ETAS_VERSION Wrong version of Agent Toolbar is being used.
Item name Parameters Returns Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 40
Automating Agent Activities Agent Toolbar Methods (Services)3
13 AGENT_NUMBER_NOT_FOUND_IN_DB Agent number does not exist in the system
38 FAILMSG_FAILED_TO_SEND_CALL_TO_AGENT_QUEUE
Call could not be transferred to the agent queue.
39 FAILMSG_FAILED_TO_SEND_CALL_TO_AGENT_QUEUE_ALREADY_ANSWERED
Call has been answered by another agent.
40 FAILMSG_FAILED_TO_SEND_CALL_TO_AGENT_QUEUE_NON_ACD
Only ACD calls can be transferred to the agent queue.
41 FAILMSG_LOGOUT_FROM_AGENT_QUEUE_FAILED Logging out from the agent queue has failed.
100 AGENT_IS_DEACTIVATING Agent Toolbar is in the process of shutting down.
101 CANNOT_START_THE_SUP_PROCESS Supervisor process cannot be started because of an error.
102 NET_CONNECTION_TO_SERVER_FAILED Network connection to the server has failed.
103 INSTANCE_ALREADY_RUNNING Agent Toolbar is already running.
104 MAX_NUMBER_OF_AGENTS_LOGGED_IN Maximum number of agents are logged into the system.
200 INVALID SUPERVISOR_NAME_OR_PWD Supervisor cannot log into Agent Toolbar either because a wrong agent ID or password have been used, or because the user is not identified as a supervisor in the system.
201 MAX_NUMBER_OF_VISORS_LOGGED_IN Maximum number of supervisors with the Supervisor Administrator or Entity Administrator permissions are logged into the system.
202 MAX_NUMBER_OF_MONITORS_LOGGED_IN Maximum number of supervisors with the Entity Monitor permission are logged into the system.
203 SUPERVISOR_ALREADY_LOGGED_IN Supervisor is already logged into the system.
Cause Name Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 41
Automating Agent Activities Activating Applications by Triggers3
Variable Types
The following table includes variable types:
Activating Applications by Triggers
ShoreTel Agent Toolbar triggers enable the activation of external applications at events, which are mainly states, of ShoreTel Agent Toolbar. When receiving an event such as a state change or activity performed by the agent, the command line related to that event in the ETAS.INI file is activated.
Table 10: Variable Types
Name Type Comment
AgentNumber String
AgentPwd String
Cause number Long
CallId Long
Calltyp Long
DNIS String
ANI String The format of the ANI call profile field includes a plus sign (+) before the ANI number. This facilitates external incoming calls (i.e. from outside your site).
Service String
Priority Long
TimeIn String (HH:MM:SS)
GroupName String
Destination Dial number
String
WrapUp code String
Any User field String Fields can be defined in administration.
Any Skill field String Fields can be defined in administration.
Note
All strings are VB strings/BSCR in C language and are not case-sensitive.
Note
Only one trigger per event is supported.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 42
Automating Agent Activities Activating Applications by Triggers3
The following is a list of mandatory fields in the call profile. The field names in the call profile are case-sensitive.
Table 11: Call Profile Mandatory Fields
Call Profile Name DDE Name Description
ANI ANI Automatic Number Identification (ANI) transmits the customer’s telephone number and delivers it to your call center’s telephone system.
Note: The format of the ANI call profile field includes a plus sign (+) before the ANI number. This facilitates external incoming calls (i.e. from outside your site).
Agent Queue agent_queue Indicates that the call is being handled by a personal agent queue.
Group acd_group The internal group id related to the call
Original Destination called The original destination of the call
Trunk trunk PBX and call-type depended
Call ID callid The ID of the call
DNIS DNIS The DNIS of the call
calling calling The ANI (caller ID) of the caller
Type calltyp Call type (Voice, Chat, Email, Callback, Abandoned, Web Callback, Dial List)
Media Media Call media (WEB, VOICE, EMAIL)
Priority Priority Priority of the call
Service Service Service that handles the call
Customer Number CUSTOMER_NUMBER
Identifier number of the customer (if internal, the Customers Table is used)
Customer Name CUSTOMER_NAME Customer name (if internal the Customers Table is used)
ACD Enter Date ACD_ENTER_DATE Date the call entered Contact Center
ACD Enter Time ACD_ENTER_TIME Time the call entered Contact Center
Queue Position Q_POSITION Call position in the queue
Average Queue Time AVERAGE_Q_TIME Expected average wait time in the queue.
Call Back Time CALLBACK_TIME Callback time set by caller (if empty, Abandoned Call)
Call Back Destination CALLBACK_DEST Callback destination
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 43
Automating Agent Activities Activating Applications by Triggers3
Language LANGUAGE The language associated with the call (0=English, 1=Hebrew, 2=Russsian, 3=Arabic, 4=Mexican Spanish)
Agent Extension AGENT_EXT The agent’s telephone extension number
Agent Number AGENT_NUMBER Number used to identify the agent
Dial List ID DIAL_LIST_ID The ID of the dial list
Start Queue Time START_QUEUE_TIME
The time when a call enters the queue
Agent PSW AGENT_PSW Agent password
Execute Req EXECUTE_REQ For any request to be executed
Trunk Number TRUNK_NUMBER The number of the trunk
Email To EMAIL_TO The text in the To field of the email
Email CC EMAIL_CC The text in the CC field of the email
Email Subject EMAIL_SUBJECT The text in the Subject field of the email
Email From EMAIL_FROM The text in the From field of the email
Email To EMAIL_REPLY_TO The text in the Reply To field of the email
Email Sent Date EMAIL_SENT_DATE
The text in the Date Sent field of the email
Email Sent Time EMAIL_SENT_TIME
The text in the Time Sent field of the email
Email Enter OMS Date EMAIL_ENTER_OMS_DATE
The text in the OMS Date field of the email
Email Enter OMS Time EMAIL_ENTER_OMS_TIME
The text in the OMS Time field of the email
Primary Call Back Destination
PRIMARY_CB The primary destination for the callback
Alternative Call Back Destination 1
ALTERNATIVE1_CB
The first alternative destination for the callback
Alternative Call Back Destination 2
ALTERNATIVE2_CB
The second alternative destination for the callback.
Last Time To Initiate Callback
LAST_TIME_TO_INITIATE_CB
The time when the last callback can be made
Alternative Call ID ALTERNATIVE_CALL_ID
The PBX TAPI call ID
Table 11: Call Profile Mandatory Fields
Call Profile Name DDE Name Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 44
Automating Agent Activities Configuring Agent Toolbar3
Configuring Agent Toolbar
The configuration of ShoreTel Agent Toolbar to activate triggers is done in the triggers area of the ETAS.INI file for the appropriate agent. Initially, the triggers area appears as follows:
[TRIGGERS]
OperateTriggers=1
To activate the triggers option, ensure OperateTriggers is set to 1.
Activating an Application
You can activate an application at a specific event by configuring the command for the event. For example, you might activate an application called MyApplication.exe when a call rings on an agent station, and then pass the application several parameters related to the call, such as an ANI number, DNIS, and the called extension. To activate the event, set the following commands:
[TRIG_OnIncoming]
Command=MyApplication.exe %calling %DNIS %Service %called
Activation Events
Agent Toolbar can activate a command when the following events occur:
TRIG_OnIncomingTRIG_OnConnectedTRIG_OnClearedTRIG_OnReleasedTRIG_OnResumedTRIG_OnWrapUpTRIG_OnReadyTRIG_OnLoggedInTRIG_OnLoggedOutTRIG_OnHeldTRIG_OnRetrievedTRIG_OnStartedTRIG_OnReStartedTRIG_OnDeniedTRIG_OnSystemAvailable
Group GROUP_ID The ID of the group
Outbound Caller ID OUTBOUND_CALLER_ID
The caller ID of the outbound call
SW Call GUID SW_CALL_GUID The PBX call GUID
Table 11: Call Profile Mandatory Fields
Call Profile Name DDE Name Description
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 45
Automating Agent Activities Command Substitution3
TRIG_OnStopedTRIG_OnConferencedTRIG_OnReservedTRIG_OnFailedTRIG_OnWrapUpCodeEnteredTRIG_OnReleaseCodeEntered
Command Substitution
The command line can include free text and call profile parameters (mandatory and user-defined fields). For more information, refer to Chapter 1, Integrating with a Customer Database Integrating with a Customer Database.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 46
APPENDIX
A. Integration Examples
The following examples show possible integrations of the ShoreTel Contact Center Solution with external applications.
Refer to the following sections for more information about integration examples:
Web Application Using Triggers ................................................................................ 47
Vantive Using DDE.................................................................................................... 48
Microsoft Access Using DDE .................................................................................... 48
External Application Using ActiveX ........................................................................... 48
Web Application Using Triggers
The following is an example of activating a web application using the triggers interface. The application is started in a new Windows Internet Explorer window and shows all activities related to the calling customer:
[TRIGGERS]OperateTriggers=1
[TRIG_OnIncoming]command= “c:\\Program files\\internet explorer\\iexplore.exe”http://www.company.com/HomePages/CmaInternalPage/1,1564,11,FF.html?EZRu n=1&PersonalID=%calling
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 47
Integration Examples Vantive Using DDEA
Vantive Using DDE
The following example is a display of a file for the calling customer on a Vantive application:
[DDE]Server=VantiveTopic=System
[DDE_OnIncoming]Command=maEaXIncoming X%calling
Microsoft Access Using DDE
The following example starts Microsoft Access by activating a database named MYDB when ShoreTel Agent Toolbar is launched, and then opening a specific caller’s file when a call is received:
[DDE]ActivateServer=TrueServer=MsAccessTopic=SystemDatabase=D:\MYDB.mdb[DDE_OnIncoming]Command=[OpenForm cust,,, phone = %calling][DDE_OnStarted]Command=[OpenDatabase D:\MYDB.mdb]
External Application Using ActiveX
The following example is a Visual Basic 6 implementation of a console that enables agents to activate the features of ShoreTel Agent Toolbar. Events are received in the List window of the console.
Code of VbController.exe
Private Sub Button_Alternate_Click()EaX.Alternate
End Sub
Note
Microsoft Access must open the database to display the screen popup with customer information.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 48
Integration Examples Code of VbController.exeA
Private Sub Button_Answer_Click()EaX.Answer
End Sub
Private Sub cClearConn_Click()End Sub
Private Sub Button_CompTrans_Click()EaX.CompleteTransfer
End Sub
Private Sub Button_Divert_Click()EaX.Divert Edit_Divert.Text
End Sub
Private Sub Button_Exit_Click()EndEnd Sub
Private Sub Button_GetCp_Click()Edit_CallProfileValue.Text = EaX.CallProfile(Edit_CallProfileName.Text)End Sub
Private Sub Button_HangUp_Click()EaX.HangUp
End Sub
Private Sub Button_Hold_Click()EaX.Hold
End Sub
Private Sub Button_IsLoggedIn_Click()If EaX.IsLoggedIn(Edit_IsLogInGroupName.Text) = 1 ThenShape_IsLoggedIn.BackColor = &H80000003
ElseShape_IsLoggedIn.BackColor = &HFF&
End IfEnd Sub
Private Sub Button_LogIn_Click()EaX.LoginGroup Edit_LogInGroupName.Text
End Sub
Private Sub Button_LoginPrim_Click()EaX.LoginPrimaryGroups
End Sub
Private Sub Button_LogOut_Click()EaX.LogoutFromGroup eLoGroup.Text
End Sub
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 49
Integration Examples Code of VbController.exeA
Private Sub Button_LogoutPrim_Click()EaX.LogOutFromPrimaryGroups
End Sub
Private Sub Button_MakeCall_Click()EaX.MakeCall Edit_MakeCallDestination.Text
End Sub
Private Sub Button_LogOff_Click()EaX.StopEa
End Sub
Private Sub Button_LogOn_Click()EaX.StartEa Edit_AgentId.Text, Edit_Password.Text
End Sub
Private Sub Button_CompConf_Click()EaX.CompleteConference
End Sub
Private Sub Button_Ready_Click()EaX.AgentReadyEnd Sub
Private Sub Button_Reconnect_Click()EaX.Reconnect
End Sub
Private Sub Button_Release_Click()EaX.ReleaseAgent
End Sub
Private Sub Button_Resume_Click()EaX.ResumeAgent
End Sub
Private Sub Button_Retrive_Click()EaX.Retrieve
End Sub
Private Sub AddToLog(ByVal line As String)If List.ListCount > 20 ThenList.Clear
End IfList.AddItem line
End Sub
Private Sub Button_SingleStepTransfer_Click()EaX.SingleStepTransfer Edit_SingleStepTransfer.Text
End Sub
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 50
Integration Examples Code of VbController.exeA
Private Sub Button_StartConf_Click()EaX.StartConferrence Edit_Conferrence.Text
End Sub
Private Sub Button_StartTrans_Click()EaX.StartTransfer Edit_Transfer.TextEnd Sub
Private Sub Button_TransferToAgent_Click()EaX.TransferToAgent Edit_TransferTyAgendId.Text
End Sub
Private Sub Button_Wrapup_Click()EaX.WpapUp Edit_WrapupCode.Text
End Sub
Private Sub EaX_OnCleared(ByVal callid As Long)AddToLog "Cleared: " + Str(callid)
End Sub
Private Sub EaX_OnConnected(ByVal callid As Long)AddToLog "Connected: " + Str(callid)
End Sub
Private Sub EaX_OnHeld(ByVal callid As Long)AddToLog "Held:" + Str(callid)
End Sub
Private Sub EaX_OnIncoming(ByVal callid As Long)AddToLog "Incoming: " + Str(callid)
End Sub
Private Sub EaX_OnLoggedIn(ByVal group As String)AddToLog "LoggedIn " + group
End Sub
Private Sub EaX_OnLoggedOut(ByVal group As String)AddToLog "LoggedOut " + group
End Sub
Private Sub EaX_OnReady()AddToLog "Ready "
End Sub
Private Sub EaX_OnReleased()AddToLog "Released"
End Sub
Private Sub EaX_OnResumed()AddToLog "Resumed"
End Sub
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 51
Integration Examples The Control PanelA
Private Sub EaX_OnRetrieved(ByVal callid As Long)AddToLog "Retrieved " + Str(callid)
End Sub
Private Sub EaX_OnWrapUp()AddToLog "WrapUp"
End Sub
Private Sub EaX_Started()AddToLog "Started"
End Sub
Private Sub EaX_Stopped()AddToLog "Stopped"
End Sub
Private Sub Form_Load()EaX.Init "Temp"
End Sub
The Control Panel
The Control panel may appear as shown in the following figure.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 52
APPENDIX
B. ActiveX API Quick Reference
ECC includes a set of APIs that lets a customer build custom ActiveX interfaces. The lists in this appendix are a list of included ActiveX functions and included ActiveX events.
Refer to the following section for API function reference:
Functions................................................................................................................... 53
Functions
HRESULT AgentReady(); HRESULT Alternate(); HRESULT Answer(); HRESULT CallProfile(BSTR cpname, [in] BSTR newVal); // Set a CP HRESULT CallProfile(BSTR cpname, [out, retval] BSTR *pVal); // Get a CP HRESULT CallProfileByCID(long cid, BSTR cpname, [out, retval] BSTR *pVal); HRESULT CallStatusString(long ecccid, BSTR altcid,BSTR *pVal);HRESULT CloseAgentBoard(); HRESULT CompleteConference(); HRESULT CompleteTransfer(); HRESULT Divert(BSTR dest); HRESULT ExecProc(BSTR path,BSTR directory); HRESULT ExtendWrapUp(); HRESULT HangUp(); HRESULT HeldCallsCount([out, retval] long *pVal); HRESULT Help(); HRESULT Hold();
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 53
ActiveX API Quick Reference FunctionsB
HRESULT Init(BSTR name); HRESULT IsInEmailState([out, retval] BOOL *pVal); HRESULT IsLoggedIn(BSTR group, [out, retval] BOOL *pVal); HRESULT IsPhoneBusy([out, retval] BOOL *pVal); HRESULT IsReleased([out, retval] BOOL *pVal); HRESULT IsSystemAvailable([out, retval] BOOL *pVal); HRESULT IsSupervisorApplicationEnabled(BSTR ECC_APPLICATION_TYPE application, [retval][out] BOOL *pVal);HRESULT IsWrapUP([out, retval] BOOL *pVal);HRESULT LoginGroup(BSTR group); HRESULT LoginPrimaryGroups(); HRESULT LogoutFromAgentGroup(logout_type); HRESULT LogoutFromGroup(BSTR group); HRESULT LogOutFromPrimaryGroups(); HRESULT MakeCall(BSTR dest); HRESULT OpenAgentBoard(); HRESULT OpenCallsLog(); HRESULT OpenCallsStatus(); HRESULT OpenLoginGroupManager(); HRESULT Reconnect(); HRESULT ReinsertCBBusy(); HRESULT ReinsertCBNoAnswer(); HRESULT ReinsertCBTerminate(); HRESULT ReleaseAgent(); HRESULT ReleaseAgentWithCode(BSTR code); HRESULT ResumeAgent(); HRESULT Retrieve(); HRESULT RingTone(ECC_SOUNDTYPE rt_type, BSTR *pVal);HRESULT RouteMoreEmails(); HRESULT SendCallToAgentQueue(long cid);HRESULT SetCallProfile(BSTR cpname, BSTR newVal);HRESULT SetInFocusCall();HRESULT SetRingTone(ECC_SOUNDTYPE rt_type, BSTR fileName);HRESULT SingleStepTransfer(BSTR dest); HRESULT StartConferrence(BSTR dest); HRESULT StartEa(BSTR aid,BSTR pwd); HRESULT StartEaEx(BSTR aid,BSTR pwd,BSTR ext,BSTR email,BSTR email_pwd); HRESULT StartTransfer(BSTR dest); HRESULT StopEa(); HRESULT ToggleEmailState(); HRESULT TransferToAgent(BSTR aid); HRESULT Version([out, retval] BSTR *pVal); HRESULT WpapUp(BSTR code); HRESULT WrapUp(BSTR code); HRESULT Denied(long cause); HRESULT OnCleared(long callid); HRESULT OnConferenced(long callid); HRESULT OnConnected(long callid, long Calltyp, BSTR DNIS, BSTR ANI, BSTR Service, long Priority, BSTR ACD_Time_In); HRESULT OnFailed(long cause);
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 54
ActiveX API Quick Reference FunctionsB
HRESULT OnHeld(long callid); HRESULT OnIncoming(long callid,long Calltyp, BSTR DNIS, BSTR ANI, BSTR Service, long Priority, BSTR ACD_Time_In); HRESULT OnLoggedIn(BSTR group); HRESULT OnLoggedOut(BSTR group); HRESULT OnReady(); HRESULT OnReleased(); HRESULT OnReleasedCodeEntered(%release_code); HRESULT OnReserved(long callid); HRESULT OnResumed(); HRESULT OnRetrieved(long callid); HRESULT OnShowMessage(ECC_MESSAGEID msg_id, BSTR msg_text);HRESULT OnSystemAvailable(bool sys_on); HRESULT OnUpdateCallStatusString(long callid, BSTR AlternativeCID, ECC_CALLTYPE Calltyp, BSTR msg_text);HRESULT OnWrapUp(); HRESULT OnWrapUpCodeEntered(%wrapup_code); HRESULT Restarted(); HRESULT Started(); HRESULT Stopped();
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 55
APPENDIX
C. Supported SQL Syntax
This section describes the SQL syntax statements supported by the ShoreTel Enterprise Contact Center Solution.
Refer to the following sections for more information about supported SQL syntax:
All Simple Statements ............................................................................................... 56
Statements with Computed Fields............................................................................. 57
Joint Statements........................................................................................................ 57
Nested Statements.................................................................................................... 57
Scripts ....................................................................................................................... 57
SQL Syntax Format Limitations ................................................................................ 58
All Simple Statements
The following is an example of a simple SQL statement.
Select field1, field2, field3 from table1 where field1 = value Update table1 set field2=value where field1 = valueInsert into table1 values ( field1, field2, field3 )Delete from table1 where field1 = value
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 56
Supported SQL Syntax Statements with Computed FieldsC
Statements with Computed Fields
The following is an example of a SQL statement with computed fields.
Select field1, fieldx*2 as field2, field3 from table1 where field1 = value
Joint Statements
The following is an example of joint SQL statements.
Select field1, field2 from table1, table2 where table1.id1 = table2.id2 and field1 > 0Select field1, field2 from table1 left join table2 on table1.id1 = table2.id2 where field1 > 0Select field1, field2 from table1 inner join table2 on table1.id1 = table2.id2 where field1 > 0
Nested Statements
The following is an example of nested SQL statements.
Select field1 from table1 where id1 in ( select id2 from table2 )Update table1 set field1 = value1 where id1 in ( select id2 from table2 )Delete from table1 where id1 in ( select id2 from table2 )
Scripts
The following is an example of a SQL statement with scripts.
Declare @value1 intDeclare @value2 intSet @value1 = 5Select @value2 = field2 from table1 where field1 = @value1
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 57
Supported SQL Syntax SQL Syntax Format LimitationsC
SQL Syntax Format Limitations
The following SQL syntax format restrictions apply to the ShoreTel Enterprise Contact Center Solution.
ECC supports only certain data types for write operations to an external database. For example, when the system writes the ANI to a database for routing purposes, the column must use VARCHAR—it cannot use NVARCHAR.
In a field that accepts only select statements, any statement that does not start with select does not work.
The outcome of complex scripts that include more than one basic statement usually depends on the ODBC driver of the database.
For database integration to succeed, music on hold (MOH) must be configured. During the execution of an SQL operation, the system plays the default hold music until it receives a result from the database. If the MOH is not specified, the system disconnects the caller. Specify MOH in System > Misc.
ShoreTel recommends customers work with ShoreTel professional services or implementation services for scripting a database or dial list to ensure that the scripts meet the requirements of the customer.
ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 58