ShoreTel Enterprise Contact Center 8 Applications Interface Guide

Similar documents
ShoreTel Contact Center Solution CRM Integration Guide Release Robust IP Phone Systems

ShoreTel Enterprise Contact Center 8 Using Agent Toolbar

ShoreTel Enterprise Contact Center Using Agent Toolbar

ShoreTel Contact Center Using ShoreWare Agent Toolbar

ShoreTel Enterprise Contact Center 8 Supervisor Guide

ShoreTel Enterprise Contact Center 8 Administrator Guide

FOR SHORETEL CHAMPION PARTNERS ShoreTel Contact Center Workgroups vs. ECC 9 GENERAL SYSTEM OVERVIEW

ShoreTel Enterprise Contact Center 8 Report Data Fields

ShoreTel Enterprise Contact Center 8 Report Data Fields

ShoreTel Enterprise Contact Center Supervisor Guide

ShoreTel Enterprise Contact Center 9 Supervisor Guide

Personal Call Manager. User Guide

ShoreTel Enterprise Contact Center 8 Installing and Implementing Chat

ShoreTel 11. ShoreTel Communicator for Windows Guide

Using the. Call Manager Features. (Student Guide)

<Insert Picture Here> Contact Center Anywhere: Interaction Manager (IM) Overview

Sage CRM. Sage CRM 7.3 CTI Guide

Virtual Contact Center

USER GUIDE SHORETEL NETSUITE CLIENT. ShoreTel Professional Services

OmniTouch 8400 Instant Communications Suite. My Instant Communicator for Microsoft Outlook User guide. Release 6.7

ShoreTel 115 IP Phone User Guide

Hosted VoIP Phone System. Desktop Toolbar User Guide

Using Your ShoreTel 210 IP Phone

ShoreTel Contact Center Version Software Notice

Phone Manager Application Support JANUARY 2015 DOCUMENT RELEASE 4.2 APPLICATION SUPPORT

PRODUCT DOCUMENTATION. Contact Center Installation Guide

Using Your ShoreTel 110 IP Phone

White Paper Integration of TTY Calls into a Call Center Using the Placeholder Call Technique Updated: February 2007

Multi-Tech FaxFinder IP

Interaction Center Integration with HEAT

Virtual Contact Center

ShoreTel & AMTELCO Infinity Console via SIP Trunking (Native)

RiOffice Users Manual

INTRODUCTION TO SYNTHESYS

ShoreTel 13 Conferencing User Guide. Part Number

HP EPICCenter Contact Center Software for VCX Solutions Series

Enterprise Toolbar User s Guide. Revised March 2015

HP EPICCenter Contact Center Software for VCX Solutions Overview

Deploying Cisco Unified Contact Center Express Volume 1

Application Note. IP8000 Conference Phone Configuration Guide. Table of Contents. Overview. Requirements. ST October 25, 2007

MiVoice Integration for Salesforce

Contact Center 5.1. Software Release Notes. GA Build

Template 1 - Call Center

ShoreTel ShoreWare Call Manager Manual

Five9 Virtual Contact Center

ShoreTel Converged Conferencing ShoreTel Converged Conferencing V5.6.2b Quick Start Guide

Wave IP 2.0 SP1. Wave ViewPoint User Guide

Virtual Contact Center

IP Office Phone Manager Users Guide

Fidelity ACD Agent. User Guide

exchange Call Center Quick Installation Guide

Personal Call Manager User Guide. BCM Business Communications Manager

Corporate Telephony Toolbar User Guide

Hosted Voice Product Training Automatic Call Distributor (ACD)

BPMonline CRM + Service Desk Agent Desktop User Guide

Allworx Call Assistant 2.4 Quick Reference Guide

8x8 Virtual Contact Center

SYNTHESYS PERSONNEL. Synthesys Personnel Management 1

Hosted VoIP Phone System. Admin Portal User Guide for. Call Center Administration

Phone Manager Application Support OCTOBER 2014 DOCUMENT RELEASE 4.1 SAGE CRM

Extension Manual. 3CX Assistant, MyPhone User portal, Dial codes & Voice mail for 3CX Phone System Version 8.0

Screen Pop CHAPTER 10. What is Screen Pop? Configuration and Administration. ! What is Screen Pop? (page 1)

CRM On Demand. Oracle CRM On Demand CTI Developer s Guide

User Manual. 3CX VOIP client / Soft phone Version 6.0

Telephone Integration for Microsoft CRM 4.0 (TI)

PBX IVR ACD. 7011Koll Center Parkway, Suite 150 Pleasanton, CA Phone: (925) Fax: (925) SUPERVISOR, MANAGER

White Paper UC for Business - Outdial Queuing

... SphericallTM. Sphericall Desktop User Manual

MAXIS ONE TECHNOLOGIES, L.L.C. MAXIS ONE TECHNOLOGIES, L.L.C. CLOUD-BASED VIRTUAL HOSTED PBX USER S MANUAL

CHAPTER 4 Enhanced Automated Attendant

Thirdlane User Portal 2.1. Users Guide 05/12/2008. Third Lane Technologies, LLC 39 Power Lane Fairfax, CA

one Managing your PBX Administrator ACCESSING YOUR PBX ACCOUNT CHECKING ACCOUNT ACTIVITY

MXIE. User s Manual. Manual Part Number Zultys Technologies 771 Vaqueros Avenue Sunnyvale CA USA

Ipiphony Phone System. User Manual. 1 P a g e

White Paper UC for Business - Queuing Desktop SMTP

Call Center - Agent Application User Manual

SIP Trunking using Optimum Business SIP Trunk Adaptor and ShoreTel IP PBX Phone System

User Manual. Call Center - Agent Assistant Application

Hosted VoIP Phone System. Admin Portal User Guide for. Call Center Administration

8x8 Complete Contact Center

ShoreTel Mobility User s Guide for iphone and ipod touch. Release 6.0

5 Setting up a Contact Center

MAX Communication Server Release 7.5

Extension Manual. User portal, Dial codes & Voice mail for 3CX Phone System Version 7.0

Configurator Administrators Guide

ShoreTel Workgroup Real-Time Monitor

User Manual in English. Call Center RC Elastix. For more information visit

Manual. 3CX Phone System integration with Microsoft Outlook and Salesforce Version 1.0

ShoreTel Mobility User s Guide for Android. Release 6.0

Virtual Contact Center (VCC) Overview & Features

Orchestra Call Centre Agent Software Version 3

ShoreTel Mobility Router Administration Guide

Access Cloud Call Center Features

Allworx Call Assistant 2.3 Quick Reference Guide

Sage 100 ERP. Installation and System Administrator s Guide

NGT Hosted Digital Voice. User Guide

Contents How do I gain access to the Horizon website... 2 Logging in as the Administrator... 2 How do I customise my Dashboard?...

Assistant Enterprise. User Guide

Transcription:

ShoreTel Enterprise Contact Center 8 Applications Interface Guide November 2012

Legal Notices Document and Software Copyrights Copyright 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. Trademarks ShoreTel, 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. Patents ShoreTel Enterprise Contact Center is covered by patents as listed at http://www.shoretel.com/about/patents.html. Version Information Applications Interface Guide Part Number: 800-1708-01 Contact Center 8 Version: 8 Date: 2/12/13 Company Information ShoreTel, 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

Table of Contents Organization............................................................ 4 Conventions............................................................ 5 Call Profile Fields........................................................ 7 Extracting and Storing Call Profile Information in TAPI............................ 9 Integrating with a Customer Information Database.............................. 10 Example: Routing a Call Based on CRM Information............................ 11 Example: Providing Self-Service Options Using CRM Information.................. 11 Storing Dial List Results.................................................. 14 Setting the ActivateServer Parameter........................................ 18 Configuring Agent Toolbar................................................ 22 Agent Toolbar as a DDE Client............................................. 22 DDE Commands..................................................... 24 Agent Toolbar as a DDE Server............................................ 28 The ACD Topic...................................................... 28 The TEL Topic...................................................... 30 The REQUEST Topic................................................. 30 The OTHER Topic................................................... 31 Advanced Configuration Options............................................ 31 Using DDE Poke instead of DDE Execute................................. 31 Using Multiple DDE Commands for the Same Event......................... 31 Working with more than One DDE Server Application at the Same Time......... 32 Configuring Agent Toolbar................................................ 33 Managing Agent Toolbar.................................................. 33 Agent Toolbar Events.................................................... 34 The ACD Events..................................................... 34 The TEL Events..................................................... 35 Agent Toolbar Methods (Services).......................................... 36 The ACD Methods................................................... 37 The TEL Methods.................................................... 37 Properties (Get Only)................................................. 39 Possible OnDenied Causes............................................ 40 Variable Types...................................................... 42 Configuring Agent Toolbar................................................ 45 Activating an Application.................................................. 45 Activation Events........................................................ 45 Command Substitution................................................... 46 Code of VbController.exe................................................. 48 The Control Panel....................................................... 52 ShoreTel Enterprise Contact Center ShoreTel Contact Center 8 Applications Interface Guide 3

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. Note The options and modules required for application integration are only available with the ShoreTel ECC Solution. Organization 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. The document is divided into the following chapters: Chapter 1, Integrating with a Customer Database Chapter 2, Using Dial Lists Chapter 3, Appendix A, Integration Examples Appendix B, ActiveX API Quick Reference Appendix C, Supported SQL Syntax ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 4

ii Before You Start Conventions Conventions The following typographical marking conventions are used in this document. Marking Bold Courier Courier Italic Blue Meaning Names of interface objects, such as buttons and menus. Code examples. Variables in code examples. 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 Integrating with a Customer 1. Database 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

1 Integrating with a Customer Database Call Profile Fields 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 casesensitive. 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_NUMBE R 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

1 Integrating with a Customer Database Call Profile Fields 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_TI ME 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_DAT E The text in the Date Sent field of the email Email Sent Time Email Enter OMS Date Email Enter OMS Time Primary Call Back Destination Table 1: Call Profile Mandatory Fields Call Profile Name DDE Name Description EMAIL_SENT_TIM E EMAIL_ENTER_OM S_DATE EMAIL_ENTER_OM S_TIME PRIMARY_CB The text in the Time Sent field of the email The text in the OMS Date field of the email The text in the OMS Time field of the email The primary destination for the callback ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 8

1 Integrating with a Customer Database Extracting and Storing Call Profile Information in TAPI Alternative Call Back Destination 1 Table 1: Call Profile Mandatory Fields Call Profile Name DDE Name Description ALTERNATIVE1_C B The first alternative destination for the callback Alternative Call Back Destination 2 Last Time To Initiate Callback Alternative Call ID ALTERNATIVE2_C B LAST_TIME_TO_I NITIATE_CB ALTERNATIVE_CA LL_ID The second alternative destination for the callback. The time when the last callback can be made The PBX TAPI call ID Group GROUP_ID The ID of the group Outbound Caller ID OUTBOUND_CALLE The caller ID of the outbound call R_ID SW Call GUID SW_CALL_GUID The PBX call GUID 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 ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 9

1 Integrating with a Customer Database Integrating with a Customer Information Database 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

1 Integrating with a Customer Database Example: Routing a Call Based on CRM Information 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

1 Integrating with a Customer Database Example: Providing Self-Service Options Using CRM Information 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 Using Dial Lists 2. 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

2 Using Dial Lists Storing Dial List Results 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. 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

The Agent Configuration File (ETAS.INI) 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. Note Agents must exit Agent Toolbar before you can make changes to their ETAS.INI file; otherwise your changes will be overwritten. 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=False Server=CRM Topic=Events [DDE_OnStarted] Command=started %AgentID [DDE_OnReStarted] Command=restarted [DDE_OnDenied] Command=denied %cause ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 16

The Agent Configuration File (ETAS.INI) [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

Setting the ActivateServer Parameter [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 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) 3. Repeat steps 1 and 2 for every agent that will use the application. ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 18

Using Screen Pops 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=YES TRIG_OnEmailMedia =NO TRIG_OnChatMedia=NO Note Agents must exit Agent Toolbar before you make changes in their ETAS.INI file, otherwise the changes are overwritten. 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: ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 19

Integrating Applications Using DDE 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 casesensitive. 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

Integrating Applications Using DDE Priority Priority Priority of the call Service Service Service that handles the call Customer Number CUSTOMER_NUMBE R 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_TI ME 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_DAT E The text in the Date Sent field of the email Email Sent Time Table 2: Call Profile Mandatory Fields Call Profile Name DDE Name Description EMAIL_SENT_TIM E The text in the Time Sent field of the email ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 21

Configuring Agent Toolbar Email Enter OMS Date Email Enter OMS Time Primary Call Back Destination Alternative Call Back Destination 1 Table 2: Call Profile Mandatory Fields Call Profile Name DDE Name Description EMAIL_ENTER_OM S_DATE EMAIL_ENTER_OM S_TIME PRIMARY_CB ALTERNATIVE1_C B The text in the OMS Date field of the email The text in the OMS Time field of the email The primary destination for the callback The first alternative destination for the callback Alternative Call Back Destination 2 Last Time To Initiate Callback Alternative Call ID ALTERNATIVE2_C B LAST_TIME_TO_I NITIATE_CB ALTERNATIVE_CA LL_ID 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 The second alternative destination for the callback. The time when the last callback can be made The PBX TAPI call ID Group GROUP_ID The ID of the group Outbound Caller ID OUTBOUND_CALLE The caller ID of the outbound call R_ID SW Call GUID SW_CALL_GUID The PBX call GUID 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. ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 22

Agent Toolbar as a DDE Client 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=ShoreWareAgent DDE_Command= DDE_EXECUTE Command= 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

Agent Toolbar as a DDE Client 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 DDE_OnConnected Command Connected %CallId, %Calling, %Service, %Group A call is ringing at the agent phone. The agent answers the call. DDE_OnCleared Command ConnCleared %CallId The call terminates. DDE_OnRelease Command Released Agent was released. DDE_OnReleaseCodeEn tered 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

Agent Toolbar as a DDE Client DDE_OnShowMessage Command Show Message %msgid, %msgtext DDE_OnUpdateCallSta tusstring Command Table 3: DDE Commands Event Parameter Default Description Update Call Status String %callid, %Alternative Call ID, %calltyp, %statusstr Agent Toolbar sends a screen pop. The call status string changes. The following table shows possible OnDenied causes. 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. ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 25

Agent Toolbar as a DDE Client Table 4: Possible OnDenied Causes Cause Name Description 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. The following table lists possible OnFailed causes. 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. ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 26

Agent Toolbar as a DDE Client Table 5: Possible OnFailed Causes Cause Name Description 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. ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 27

Agent Toolbar as a DDE Server 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. 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 Table 5: Possible OnFailed Causes Cause Name Description 38 FAILED_TO_SEND_CALL_TO_AGENT_QUEUE_NO N_ACD 39 FAILED_TO_SEND_CALL_TO_AGENT_QUEUE_AL READY_ANSWERED The following table includes DDE_EXECUTE commands: Only ACD calls can be transferred to the agent queue. 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. ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 28

Agent Toolbar as a DDE Server Table 6: DDE_EXECUTE Commands Name Parameters Description LoginPrimaryGroups None Logs in to all primary groups. LogoutFromPrimaryGro ups 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 Logout the agent from the specified group or agent queue. 2 = log agent out of agent queue 3 = log agent out of primary groups 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. DDE_REQUEST supports the CommandList command, which has no parameters. It gets a spacedelimited 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. ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 29

Agent Toolbar as a DDE Server The TEL Topic The following table includes commands that are invoked using DDE_EXECUTE: 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. ClearSpecificCon nection 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. CompleteConferen ce None Completes the conference call. SingleStepTransf er Destination dial number Transfers the current call to another telephone. Reconnect None Returns the agent to the original call and updates the agent state. DDE_REQUEST supports the CommandList command, which has no parameters. It gets a spacedelimited list of supported commands for the topic. The REQUEST Topic The following includes commands that are supported using DDE_REQUEST: Table 8: Supported Commands for DDE_REQUEST Item name Parameters Returns (string) Description TopicItemLi st None List Gets a space-delimited list of supported commands for the topic. IsPhoneBusy None TRUE or FALSE TRUE if the phone is busy. HeldCallsCo unt 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

Advanced Configuration Options The OTHER Topic Table 8: Supported Commands for DDE_REQUEST Item name Parameters Returns (string) Description 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. 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 spacedelimited 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. ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 31

Integrating Applications using ActiveX 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

Configuring Agent Toolbar 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

Agent Toolbar Events AgentNumber = the agent's number AgentPwd = the agent's password The application waits for a response event. The following table includes two possible 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. 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. Note After calling the StopEa() method, the ActiveX component will stop to respond. In order to reactivate it is necessary to call the init() method again. 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: 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

Agent Toolbar Events Command Parameters Description OnReleaseCod eenter OnResumed OnWrapUp OnWrapUpCode Enter OnReady release_code wrapup_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. Agent was resumed. Agent goes to wrap-up. Agent enters wrap-up code. Agent returns from wrap-up. 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: Command Parameters Description OnIncoming CallId, Calltyp, DNIS, ANI, Service, A call is ringing at the agent phone. Priority, ACD TimeIn 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. ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 35

Agent Toolbar Methods (Services) Command Parameters Description 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 OnUpdateCallSta tusstring Alternate Call ID MESSAGEID_SYSTEM_EMAIL_ALRE ADY_IN_USE_MSG 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_CAMPAIG N_LIST CALLTYPE_CALL_FROM_PREDICTI VE_LIST CALLTYPE_OUT_ACD Agent Toolbar Methods (Services) Agent Toolbar supports the following commands: ACD for ACD-related functions TEL for all telephony-related functions ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 36

Agent Toolbar Methods (Services) The ACD Methods The following table includes ACD methods: Name Parameters Description LoginPrimaryGroups None Logs in to all primary groups. LogoutFromPrimaryGro ups 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 The TEL Methods 1 = log agent out of all groups 2 = log agent out of agent queue 3 = log agent out of primary groups The following table includes telephony methods: 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

Agent Toolbar Methods (Services) Command Parameters Description 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 CompleteTrans fer SingleStepTra nsfer StartConferen ce CompleteConfe rence Destination dial number None Destination dial number Destination dial number None Starts the transfer process. Removes the agent from the call, completing the transfer. Transfers the current call to another telephone. Begins a conference call. 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. CallStatusStr ing 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=Unknow n,service=service 2,Group=Group2,Call Type=Abandoned,Priority=100,Call Entered at=13:23:13,avg. Wait=00:00:00. ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 38

Agent Toolbar Methods (Services) Command Parameters Description 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 SetRingTone Sound type, Sound file path name SOUNDTYPE_VOICE_NON_ACD 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 Properties (Get Only) The following table includes Get properties: Item name Parameters Returns Description ISPHONEBUSY None TRUE or FALSE (0 or 1 TRUE if the phone is busy. Integer) HeldCallsCoun t None Number of calls on hold (Integer) CallProfile Call Profile field name Field value (String) IsReleased None TRUE or FALSE (0 or 1 Integer) IsLoggedIn Group name TRUE or FALSE (0 or 1 Integer) IsWrapUp None TRUE or FALSE (0 or 1 Integer) Number of calls currently on hold. Retrieve the value of a specific call profile field. TRUE if the agent is in the release state. TRUE if the agent is logged into the group. TRUE if the agent is currently in wrap-up state. ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 39

Agent Toolbar Methods (Services) Item name Parameters Returns Description IsSupervisorA pplicationena bled None Application Type The possible application types are specified by the enumeration ECC_APPLICATION_TYPE options: IsInEmailStat e() None True or False (0 or 1 Integer) APPTYPE_AGENT_MANAGER APPTYPE_HISTORICAL_REPORTS APPTYPE_WALL_BOARD APPTYPE_DIAGNOSTIC_CONSOLE APPTYPE_AGENT_TOOLBAR APPTYPE_GCCS TRUE if the agent is engaged in Email Note All strings are not case-sensitive. Possible OnDenied Causes The following table includes 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. ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 40

Agent Toolbar Methods (Services) Cause Name Description 13 AGENT_NUMBER_NOT_FOUND_IN_DB Agent number does not exist in the system 38 FAILMSG_FAILED_TO_SEND_CALL_TO_AGENT_Q UEUE 39 FAILMSG_FAILED_TO_SEND_CALL_TO_AGENT_Q UEUE_ALREADY_ANSWERED 40 FAILMSG_FAILED_TO_SEND_CALL_TO_AGENT_Q UEUE_NON_ACD Call could not be transferred to the agent queue. Call has been answered by another agent. 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. ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 41

Activating Applications by Triggers Variable Types The following table includes variable types: 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. 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. Note Only one trigger per event is supported. ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 42

Activating Applications by Triggers The following is a list of mandatory fields in the call profile. The field names in the call profile are casesensitive. 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_NUMBE R 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

Activating Applications by Triggers 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_TI ME 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_DAT E The text in the Date Sent field of the email Email Sent Time Email Enter OMS Date Email Enter OMS Time Primary Call Back Destination Alternative Call Back Destination 1 Table 11: Call Profile Mandatory Fields Call Profile Name DDE Name Description EMAIL_SENT_TIM E EMAIL_ENTER_OM S_DATE EMAIL_ENTER_OM S_TIME PRIMARY_CB ALTERNATIVE1_C B The text in the Time Sent field of the email The text in the OMS Date field of the email The text in the OMS Time field of the email The primary destination for the callback The first alternative destination for the callback Alternative Call Back Destination 2 Last Time To Initiate Callback Alternative Call ID ALTERNATIVE2_C B LAST_TIME_TO_I NITIATE_CB ALTERNATIVE_CA LL_ID The second alternative destination for the callback. The time when the last callback can be made The PBX TAPI call ID ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 44

Configuring Agent Toolbar Table 11: Call Profile Mandatory Fields Call Profile Name DDE Name Description Group GROUP_ID The ID of the group Outbound Caller ID OUTBOUND_CALLE The caller ID of the outbound call R_ID SW Call GUID SW_CALL_GUID The PBX call GUID 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_OnIncoming TRIG_OnConnected TRIG_OnCleared TRIG_OnReleased TRIG_OnResumed TRIG_OnWrapUp TRIG_OnReady TRIG_OnLoggedIn TRIG_OnLoggedOut TRIG_OnHeld TRIG_OnRetrieved TRIG_OnStarted TRIG_OnReStarted TRIG_OnDenied TRIG_OnSystemAvailable ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 45

Command Substitution TRIG_OnStoped TRIG_OnConferenced TRIG_OnReserved TRIG_OnFailed TRIG_OnWrapUpCodeEntered TRIG_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 Integration Examples A. 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

A Integration Examples Vantive Using DDE Vantive Using DDE The following example is a display of a file for the calling customer on a Vantive application: [DDE] Server=Vantive Topic=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=True Server=MsAccess Topic=System Database=D:\MYDB.mdb [DDE_OnIncoming] Command=[OpenForm cust,,, phone = %calling] [DDE_OnStarted] Command=[OpenDatabase D:\MYDB.mdb] Note Microsoft Access must open the database to display the screen popup with customer information. 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 ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 48

A Integration Examples Code of VbController.exe Private Sub Button_Answer_Click() EaX.Answer Private Sub cclearconn_click() Private Sub Button_CompTrans_Click() EaX.CompleteTransfer Private Sub Button_Divert_Click() EaX.Divert Edit_Divert.Text Private Sub Button_Exit_Click() End Private Sub Button_GetCp_Click() Edit_CallProfileValue.Text = EaX.CallProfile(Edit_CallProfileName.Text) Private Sub Button_HangUp_Click() EaX.HangUp Private Sub Button_Hold_Click() EaX.Hold Private Sub Button_IsLoggedIn_Click() If EaX.IsLoggedIn(Edit_IsLogInGroupName.Text) = 1 Then Shape_IsLoggedIn.BackColor = &H80000003 Else Shape_IsLoggedIn.BackColor = &HFF& End If Private Sub Button_LogIn_Click() EaX.LoginGroup Edit_LogInGroupName.Text Private Sub Button_LoginPrim_Click() EaX.LoginPrimaryGroups Private Sub Button_LogOut_Click() EaX.LogoutFromGroup elogroup.text ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 49

A Integration Examples Code of VbController.exe Private Sub Button_LogoutPrim_Click() EaX.LogOutFromPrimaryGroups Private Sub Button_MakeCall_Click() EaX.MakeCall Edit_MakeCallDestination.Text Private Sub Button_LogOff_Click() EaX.StopEa Private Sub Button_LogOn_Click() EaX.StartEa Edit_AgentId.Text, Edit_Password.Text Private Sub Button_CompConf_Click() EaX.CompleteConference Private Sub Button_Ready_Click() EaX.AgentReady Private Sub Button_Reconnect_Click() EaX.Reconnect Private Sub Button_Release_Click() EaX.ReleaseAgent Private Sub Button_Resume_Click() EaX.ResumeAgent Private Sub Button_Retrive_Click() EaX.Retrieve Private Sub AddToLog(ByVal line As String) If List.ListCount > 20 Then List.Clear End If List.AddItem line Private Sub Button_SingleStepTransfer_Click() EaX.SingleStepTransfer Edit_SingleStepTransfer.Text ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 50

A Integration Examples Code of VbController.exe Private Sub Button_StartConf_Click() EaX.StartConferrence Edit_Conferrence.Text Private Sub Button_StartTrans_Click() EaX.StartTransfer Edit_Transfer.Text Private Sub Button_TransferToAgent_Click() EaX.TransferToAgent Edit_TransferTyAgendId.Text Private Sub Button_Wrapup_Click() EaX.WpapUp Edit_WrapupCode.Text Private Sub EaX_OnCleared(ByVal callid As Long) AddToLog "Cleared: " + Str(callid) Private Sub EaX_OnConnected(ByVal callid As Long) AddToLog "Connected: " + Str(callid) Private Sub EaX_OnHeld(ByVal callid As Long) AddToLog "Held:" + Str(callid) Private Sub EaX_OnIncoming(ByVal callid As Long) AddToLog "Incoming: " + Str(callid) Private Sub EaX_OnLoggedIn(ByVal group As String) AddToLog "LoggedIn " + group Private Sub EaX_OnLoggedOut(ByVal group As String) AddToLog "LoggedOut " + group Private Sub EaX_OnReady() AddToLog "Ready " Private Sub EaX_OnReleased() AddToLog "Released" Private Sub EaX_OnResumed() AddToLog "Resumed" ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 51

A Integration Examples The Control Panel Private Sub EaX_OnRetrieved(ByVal callid As Long) AddToLog "Retrieved " + Str(callid) Private Sub EaX_OnWrapUp() AddToLog "WrapUp" Private Sub EaX_Started() AddToLog "Started" Private Sub EaX_Stopped() AddToLog "Stopped" Private Sub Form_Load() EaX.Init "Temp" 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 ActiveX API Quick Reference B. 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

B ActiveX API Quick Reference Functions 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

B ActiveX API Quick Reference Functions 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 Supported SQL Syntax C. 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 = value Insert into table1 values ( field1, field2, field3 ) Delete from table1 where field1 = value ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 56

C Supported SQL Syntax Statements with Computed Fields 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 > 0 Select field1, field2 from table1 left join table2 on table1.id1 = table2.id2 where field1 > 0 Select 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 int Declare @value2 int Set @value1 = 5 Select @value2 = field2 from table1 where field1 = @value1 ShoreTel Enterprise Contact Center ShoreTel Contact Center Applications Interface Guide 57

C Supported SQL Syntax SQL Syntax Format Limitations 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