Skip to main content
Skip table of contents

On-Premise CRM Solution CTI Deployment Guide

Preface

This document provides deployment details of the Web CTI Connector for on-premise MS Dynamics CRM 

Prerequisites

The following are the prerequisites for the deployment of the Javascript CTI Toolbar.

  1. Dynamics 365 should be installed. 

  2. The user must have administrative rights 

Install Javascript CTI Toolbar for MS Dynamics CRM 

Javascript CTI Toolbar is a CTI Toolbar for any web-based CRM. Follow these steps to install the Javascript CTI Toolbar inside MS Dynamics CRM.

Note: If you have already installed EF CTI packages before then follow this guide to delete installed packages first.

  1. Download the following zip archives from the below links:

    1. EFCTI_Unmanaged_3_1_3_1.zip (Download Link)

    2. EFCTI_Managed_3_1_3_1_managed.zip (Download Link)

  2. Log in CRM using admin credentials

  3. Go to Settings → Solutions

  4. Import downloaded “EFCTI_Managed_3_1_3_1_managed” Solution.

  5. From the import solution window, Select solution package  “EFCTI_Managed_3_1_3_1_managed” and click on next

  6. On solution, information window click on next.

  7. After the solution is imported successfully, click on close to close the window.

  8. Repeat the same process to install the “EFCTI_Unmanaged_3_1_3_1.zip” solution.

  9. Refresh CRM then EF CTI Toolbar should be visible on the top right corner

  10. Classic.jpg
  11. Unified Client Interface (UCI) view will look like as following

  12. UCI.jpg

Configuration

Configurations are saved in an EFCTI_U solution. 

  1. Go to solution “EFCTI_Unmanaged_3_1_3_1”.

  2. Open the new_config.js web resource. Click on "Text Editor" Button.

  3. Set the properties as per the below table:-

S.No

Property Name

Value

 Description

1

adminUserName

admin

The Finesse Admin Username, This username is used to call the different Finesse APIs

2

adminPassword

*******

The Finesse Admin Password. (You'll first need to encrypt the password and then use the encrypted string here as adminPassword)

3

domain

https://<finesseFQDN>:8445/

The domain name for finesse with which we are integrating 

4

subDomain

https://<subscriberfinesseFQDN>:8445/

The domain name for subscriber finesse with which we are integrating 

5

boshURL

https://<finesseFQDN>:7443/http-bind /

The boshbaURL variable basically append the same Finesse Domain with a predefined URL 

6

subBoshUrl

https://<subscriberfinesseFQDN>:7443/http-bind/

The sub bosh URL variable basically appends the same subscriber Finesse Domain with a predefined URL 

7

finesseFlavor

UCCE/UCCX

This property can have 2 values 

  • UCCE

  • UCCX

Note: In the case of PCCE, we need to provide value UCCE.

8

callVariable

callVariable1

Our Connector required an empty one variable which it needs to use for some internal mechanism.  That variable can be any callVariable like callVariable1,callVariable2, callVariable3....callVariable10, or any ECC variable as well. 

In the case of the ECC variable, we need to provide names like ECC.variableName

9

powered_by

True

System variable should always remain True

10

disableEndCallBtn

false

This should always remain false

11

CRM

0/1

A possible value for this key would be 0 or 1

0= When web CTI is deployed as a standalone project without any CRM Integration 

1= When Web CTI is deployed with some CRM, The CRM can be any. If the value for this property is 1, then the crmFilePath variable must be set

12

crmFilepath

The predefined path of the CRM file

To make this property work, the above property CRM must be set 1 . Value for this property depends on the CRM you are using.  Possible values are 

CRMValue
new_MS_OnPremise.js new_MS_OnPremise.js


13

organizationDomain

https://expertflow.dynamics.com

This value can only be set when you are using Microsoft CRM Online (CIF enabled) else you can ignore this property. This is the organization domain of your online CRM 

14

entities

"contact,account"

The searching priority user can define in the config file. For example, as per this configuration, the CTI connector first searches the record in the contact and then accounts. If you wanted to search the record first in the account, you can simply change the order as per your requirement and the searching order will be changed. 

INFO

In online CRM entities name should be in the small latter

entities: "contact, account"

15

noMatchEntity

"contact"

In case there is no record found in the entities searched, then we need to tell the CRM which entity should be created. For example, as per this configuration, the CTI connector will open the Lead entity form, then you can save it by providing necessary information like name etc. 

We can also set the value to "phonecall" so that in case of no match, an anonymous activity(not linked to any CRM account/contact/lead) is created.

16

sso

true

This configuration is for auto-login in CTI connector. It is a boolean field, it can have 2 values:

  • true

  • false

Note

For mobile agent this configuration value will always remains false. 

17

sso_prefix

"new"

This is a CRM prefix for custom fields in the user entity. It is "new" by default.

18

agent_field_name

"new_agentid"

Id of custom field in CRM for agent id in user entity

19

password_field_name

"new_password"

Id of custom field in CRM for the password  in user entity

20

extension_field_name

"new_extension"

Id of custom field in CRM for extension in user entity

21

ssoAgent_field_name

"new_ssoagent"

Id of custom field in CRM for SSO agent in user entity

22

licenseKey

"licenseKey"

License key generated by Expertflow

23

getQueuesDelay

6000

This is only applicable for UCCE/PCCE deployment. This is the time by which CTI Toolbar queries the UCCE Database to display the Queue Stats

24

logoutFlag

True

Used in Team Performance gadget, to display the logout agent as well. 

25

ssoBackendURL

https://192.168.*.*:8084

Javascript CTI Toolbar supports Finesse SSO login as well, and for that EF has developed its own Utility which needs to be deployed First. The Deployment Guide for SSO is available here. Once you deploy that Utility, you can then provide the link here. If Finesse is not SSO enabled, please ignore this property 

26

isGadget

False

A System property should remain false always. 

27

registeredNumberVariable 

"callVariable5"

This is a property used for the popup, the possible values for this property can be any call variable name or "Ani". By default we pop up on Ani, if you want the popup to happen on a number other than Ani then you can set any call variable.

28

makeNotReadyOutboundCall

false

This property is used for making outbound calls in a Ready state, for CCE 12.5+ we can make calls in Ready state without any issues, but for below versions we need to set this property to true in order to make calls in ready state.

Note: The agent will be in Not Ready state after the call ends if the property is set to true. 

29

defaultNotReadyReasonCode

27

This property is used for changing the agent state to Not ready for the outbound calls if made in Ready state and the makeNotReadyOutboundCall property is set to true. 

30

aniLength

7

This is the number of digits from (right to left) that need to be considered for searching records

31

searchPrefix

"92"

This is the searrch prefix that is appended to the ani, if you don't want any search prefix to be appended then you can set it's value to empty string.

32

outboundPrefix

"0"

This is the outbound prefix that is appended to the ani, if you don't want any outbound code to be appended then you can set it's value to empty string.

33

callVariablesList

{"callVariable1": "Language"}

The call variables list is the config where you can decide which variables you want to display on the UI and with what name they should appear on the UI. In the list, you mention the call variable name followed by the value that will appear on the UI. So for example, if you want only call variable 1 to be displayed with the key 'language' then your config should be {"callVariable1": "Language"}. 

34

newWindowAutoLogin

true/false

This is for auto login to new tab of same browser . If value is true then it will allow to auto login to new tab else will not allow. This will work everywhere except in Ms Dynamics crm on premise version when SSO is true.

35

tabIconChange

true/false

This will change the icon of browser tab where it is currently login after logout it will changed the icon to normal. This will not work in Ms Dynamics Online(CIF). 

36

statesDropDown

true/false

This will block the agent states drop down list by default it value must be false. 

37

margin

10

This is the margin from top for the CTI Toolbar, based on the margin you set the height will be adjusted.

  1. The actual file looks like this. Please note that the order of the properties doesn't matter

    2024-03-27_14-16-02.jpg
    2024-03-27_14-16-26.jpg
    2024-03-27_14-16-59.jpg
  2. Update the configurations.

  3. Save web resource and then publish it.

Configure Click-to-Call

Follow the steps to configure click to call on the Account page.

  1. Go to Account from Customizations. Setting→ Customizations → Customize the system.

  2. Select from the left navigation Account Entity, then select Forms.

  3. Open Account (Main) as highlighted above.

  4. In the newly opened window, load “Form Properties”.

  5. Inside the Form Properties window,  Click on add and add new_click2callOnForm.js web resource.

  6. Now inside the Form Properties window, the Event Handlers section add the file new_click2callonForm.js and add the function “hello” OnLoad event of the form

  7. Click OK, this will close the Form Properties window.

  8. On the Account Form window, click save and then click publish, then close all windows and reload crm dashboard page.

  9. From point 3 repeat the same for all the other remaining forms like Account Quick Create form of Account entity.  

  10. Repeat the same process to configure click to call on Contacts Entity.

UCI Click To Dial

In order to enable click to dial for UCI, the process is quite similar. Select the "Phone" entity in the second step, then from forms select Phone Call (Main). Follow the rest of steps until step 8. In step 9, provide the function name "newClicktoCall" as show in image below

and follow the steps onwards as described above.

CRM Configurations for Single Sign On

To configure SSO, follow this guide and go Configure Single Sign-On Section. After completing the section, do the following steps.

  1. Go to Setting → Security → User

  2. Select the CRM user and open it.

  3. Provide Cisco Agent details in Agent id, password and extension fields and click Save. Refresh the page.

CRM Configurations for Security Roles

User should have 

  1. Customer Service Representatives role 

  2. Rights for activity creation

  3. Appropriate rights for creating, modifying and appending all those entities against which activity is created i.e. (Lead, Account, Contact)

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.